Переопределение некоторых методов в Action

Здравствуйте, назрел у меня вот такой вопрос:
хочу через плагин переопределить один из методов класса ActionComment.class.php
Если это делать через $aInherits и переопределить только тот метод который мне нужен, то тогда вылазит ошибка об абстрактных методах Init и RegisterEvents если же я заменяю весь ActionComments (т.е. просто копипастну все методы и изменю только тот который мне надо), то возможно в будущем будет конфликт с другими плагинами которые тоже будут переопределять какие-то методы ActionComments.
Пробовал черпать информацию отсюда: http://livestreet.ru/blog/dev_documentation/4499.html, но там про перопределение Action ничего не сказано (только вскольз упомянуто в комментах).
Подскажите в какую сторону копать

6 комментариев

avatar
Переопределить один или несколько методов екшина можно. Нужно больше информации об ошибке с которой вы столкнулись дабы можно было вам помочь.
avatar
Создал класс class PluginTest_ActionTestBlog extends ActionPlugin
В нем определил только метод protected function EventShowTopic()
И выдает ошибку о которой я говорил (об абстрактных методах)
Fatal error: Class PluginTest_ActionTestBlog contains 2 abstract methods and must therefore be declared abstract or implement the remaining methods (Action::Init, Action::RegisterEvent) in
avatar
Вам нужно еще добавить функции Init и RegisterEvent.
avatar
Дык я то в курсе, вопрос был про то что можно ли както унаследовать код Action-на к примеру ActionComment или надо переписывать все заново
avatar
class PluginTest_ActionComment extends PluginCompany_Inherit_ActionComment

только нужно в плагине не забыть описать
protected $aInherits=array('action' => array('ActionComment'));
avatar
Есть вроде пошло + естественно я думаю можно сделать так:

protected function EventShowTopic() {
		if (!($oTopic=$this->Topic_GetTopicById($iTopicId))) {
			return parent::EventNotFound();
		}
		if($oTopic->getType() != 'mytopic') {
			return parent::EventShowTopic();
		}
 ..............кодим свой код...........

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.