Ошибка: "Циклическое наследование" в Engine autoload

Здравствуйте, на одном из проектов у меня выскочила ошибка «циклического наследования».
Что я имею в виду:
При попытке вызова функции $this->User_GetUserById(....);
получаю ошибку
PHP Fatal error:  Class 'PluginAdminusers_Inherit_ModuleUser_EntityUser' not found in /var/www/augme/www/plugins/adminusers/classes/mo
dules/user/entity/User.entity.class.php on line 11

И эта ошибка не устраняется при отключении плагина. При дальнейшем исследовании проблемы установил print на функцио Engine::autoload:

Читать дальше →

Решено: Конфликт плагинов. Переопределение через $aInherits

Есть 2 плагина. Из каталога, и мой, разрабатываемый. Оба плагина используют переопределение с помощью
$aInherits. Переопределяются одни и теже классы.

Соответственно, если активировать оба плагина — возникает конфликт:

Warning: Class 'PluginChronos_ModuleTopic_MapperTopic' not found in /Users/xxxxx/Sites/xxxxx.local/xxxxx.loc/engine/classes/Engine.class.php on line 1105

Fatal error: Class 'PluginChronos_Inherit_ModuleTopic_MapperTopic' not found in /Users/xxxxx/Sites/xxxxx.local/xxxxx.loc/plugins/chronos/classes/modules/topic/mapper/Topic.mapper.class.php on line 24


По-одиночке — плагины работают корректно. Как быть в такой ситуации?
Подскажите, пожалуйста.

Читать дальше →

Как правильно переопределить Action

Вопрос отчасти продолжение
этого вопроса, но появились некоторые нюансы.
К примеру у меня есть 2 РАЗНЫХ типа топика которые должны отображаться по разному.
Пример если я реализовую отображение топика так:

protected function EventShowTopic() {
                if (!($oTopic=$this->Topic_GetTopicById($iTopicId))) {
                        return parent::EventNotFound();
                }
                if($oTopic->getType() != 'mytopic') {
                        return parent::EventShowTopic();
                }

То этот метод будет отрабатывать ДЛЯ ВСЕХ топиков независимо от типа. Соответственно я и делаю проверку на тип топика:

                if($oTopic->getType() != 'mytopic') {
                        return parent::EventShowTopic();
                }

И вроде бы все хорошо.
НО. Теперь если я добавлю еще один новый тип топика с таким же кодом:

protected function EventShowTopic() {
                if (!($oTopic=$this->Topic_GetTopicById($iTopicId))) {
                        return parent::EventNotFound();
                }
                if($oTopic->getType() != 'myNEWtopic') {
                        return parent::EventShowTopic();
                }

то здесь происходит конфуз. А конкретно, этот переопределенный метод не будет выполняться никогда. Потому что в предыдущем вызывается return parent::EventShowTopic();, который вызывает оригинальный метод.
Вопрос. Как преодолеть этот конфуз?

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

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