держи dl.dropbox.com/u/2445192/Pokupalka/social.zip
— переустанови плагин
— отключи ВСЕ другие плагины и попробуй не поменяется ли чего.
— установи стандартный скин
— переустанови ЛС
действительно, маппер я зря указал в $aInherits.
на самом деле, я уже точно так же сделал с модулем и entity и все конфликты отпали.
НО
я все еще пытаюсь понять, чем был вызван конфликт именно по ModuleTopic?
если нет переопределения функций то зачем его использовать.
возможно я ошибаюсь, но в коменте мапер у Вас
я просто маппер сюда не приложил. он есть, я только заголовок класса запостил.
В моем комментарии не целиком классы, а только те части, которые, как мне кажется, могут иметь отношение к конфликту плагинов.
я не меняю ни одну из стандартных функций, просто дописал свои, некоторые из которых используют стандартные. потому проще было унаследовать класс, да и логично, что поддержка нового вида топика будет вызываться через тот же класс, что и остальные.
ок, с массивом почти поятно стало, только не понятно, как воспринимается 'module' =>array('ModuleTopic'), где 'мой новый класс' не задан? в теории — как PluginPokupalka_ModuleTopic…
еще раз повторю, именно это 'module' =>array('ModuleTopic'=>'ModuleTopic') написание является единственным, при котором не конфликтуют плагины Pokupalka и Topicsfilter, и которое, по утверждению Ajaxy, является непправильным.
При этом, Topicsfilter установлен последним. это, вероятно, имеет значение.
по коду. объявление наследования я выложил в тексте поста.
// переопределения функций в этом модуле нет. только добавляются новые.
// вот ровно на этом месте я подумал, что тогда павильнее было написать
//class PluginPokupalka_ModuleTopic extends ModuleTopic - это да.
class PluginPokupalka_ModuleTopic extends PluginPokupalka_Inherit_ModuleTopic {
public function Init() {
parent::Init();
$this -> oUserCurrent = $this -> User_GetUserCurrent();
# Catch up my mapper
$this -> oMapperTopic = Engine::GetMapper('PluginPokupalka_ModuleTopic');
}
//маппер:
class PluginPokupalka_ModuleTopic_MapperTopic extends ModuleTopic_MapperTopic {
------------------------
//плагин Topicsfilter
class PluginTopicsfilter_ModuleTopic extends PluginTopicsfilter_Inherit_ModuleTopic {
public function GetTopicsByFilter($aFilter,$iPage=0,$iPerPage=0,$aAllowData=array('user'=>array(),'blog'=>array('owner'=>array(),'relation_user'),'vote','favourite','comment_new')) {
$aFilter = $this->ModifyFilter($aFilter);
return parent::GetTopicsByFilter($aFilter,$iPage=0,$iPerPage=0,$aAllowData=array('user'=>array(),'blog'=>array('owner'=>array(),'relation_user'),'vote','favourite','comment_new'));
}
public function GetCountTopicsByFilter($aFilter) {
$aFilter = $this->ModifyFilter($aFilter);
return parent::GetCountTopicsByFilter($aFilter);
}
вот вроде все правильно сделано. оба класса наследуют класс ModuleTopic, соответственно и друг друга тоже, ни одна функция не теряется, а включаешь — не работает.
Class 'PluginPokupalka_ModuleTopic' not found in C:\wamp\www\pokupalka.com\engine\classes\Engine.class.php on line 975
Fatal error: Class 'PluginPokupalka_Inherit_ModuleTopic' not found in C:\wamp\www\pokupalka.com\plugins\pokupalka\classes\modules\topic\Topic.class.php on line 8
Простите за односложные ответы: днем есть возможность писать только с телефона.
В общем, объясните структуру массива $aInherits и принцип его обработки на back-end. Все еще не ясно, как правильно его указать в плагине, ИЛИ из-за чего возникают конфликты?
Ссылка на рабочий engine есть в этом посте.
Повисание формы- это ошибка JS или что-то связанное с шаблоном. Странно в общем.
Напишите мне лс с адресом сайта, если есть?
В JavaScript console что-то видно?
проблема совместимости с Pokupalka. Покупалку поправил, но вынес вопрос на обсуждение. все же не совсем понятно, как правильно указать $aInherits в плагине.
обсуждение тут: livestreet.ru/blog/7359.html
Категоризация блогов; фильтр; любая глубина вложенности категорий.
dl.dropbox.com/u/2445192/Pokupalka/social.zip
— переустанови плагин
— отключи ВСЕ другие плагины и попробуй не поменяется ли чего.
— установи стандартный скин
— переустанови ЛС
на самом деле, я уже точно так же сделал с модулем и entity и все конфликты отпали.
НО
я все еще пытаюсь понять, чем был вызван конфликт именно по ModuleTopic?
еще раз, с фокусом на этот модуль:
Два плагина заявляют о наследовании одного и того же класса, при этом один из них перестает работать.
Есть ли тут логическая ошибка, или стоит принять это как «необъяснимый глюк»?
В моем комментарии не целиком классы, а только те части, которые, как мне кажется, могут иметь отношение к конфликту плагинов.
я не меняю ни одну из стандартных функций, просто дописал свои, некоторые из которых используют стандартные. потому проще было унаследовать класс, да и логично, что поддержка нового вида топика будет вызываться через тот же класс, что и остальные.
вот такая забавная вещь :)
еще раз повторю, именно это 'module' =>array('ModuleTopic'=>'ModuleTopic') написание является единственным, при котором не конфликтуют плагины Pokupalka и Topicsfilter, и которое, по утверждению Ajaxy, является непправильным.
При этом, Topicsfilter установлен последним. это, вероятно, имеет значение.
по коду. объявление наследования я выложил в тексте поста.
вот вроде все правильно сделано. оба класса наследуют класс ModuleTopic, соответственно и друг друга тоже, ни одна функция не теряется, а включаешь — не работает.
В общем, объясните структуру массива $aInherits и принцип его обработки на back-end. Все еще не ясно, как правильно его указать в плагине, ИЛИ из-за чего возникают конфликты?
Повисание формы- это ошибка JS или что-то связанное с шаблоном. Странно в общем.
Напишите мне лс с адресом сайта, если есть?
В JavaScript console что-то видно?
Попредыдущемувопросу тоже вечером постараюсь отписать, пока что мне причина не ясна.
Как вытащить через шаблонданные из таблицы?
Как я понимаю, только event'ом.
Меня интересует, из-за чего плагины конфликтуют именно при такой записи 'module' =>array('ModuleTopic')
2. А как?
обсуждение тут:
livestreet.ru/blog/7359.html