+3.21
Рейтинг
5.54
Сила
Плагин Categorize. livestreetcms.com/addons/view/185/
Категоризация блогов; фильтр; любая глубина вложенности категорий.
Нелогично, сто выпадающий список присутствует на странице просмотра топика. Topic.tpl
держи
dl.dropbox.com/u/2445192/Pokupalka/social.zip
— переустанови плагин
— отключи ВСЕ другие плагины и попробуй не поменяется ли чего.
— установи стандартный скин
— переустанови ЛС
действительно, маппер я зря указал в $aInherits.
на самом деле, я уже точно так же сделал с модулем и entity и все конфликты отпали.
НО
я все еще пытаюсь понять, чем был вызван конфликт именно по ModuleTopic?

еще раз, с фокусом на этот модуль:

//Плагин Pokupalka
//Plugin Pokupalka
protected $aInherits=array(       
       'module'  =>array('ModuleTopic'),
);

class PluginPokupalka_ModuleTopic extends PluginPokupalka_Inherit_ModuleTopic {

//плагин Topicsfilter
protected $aInherits=array(
        'module'=>array('ModuleTopic'=>'_ModuleTopic'),
    );
class PluginTopicsfilter_ModuleTopic extends PluginTopicsfilter_Inherit_ModuleTopic {

Два плагина заявляют о наследовании одного и того же класса, при этом один из них перестает работать.

Есть ли тут логическая ошибка, или стоит принять это как «необъяснимый глюк»?
если нет переопределения функций то зачем его использовать.
возможно я ошибаюсь, но в коменте мапер у Вас
я просто маппер сюда не приложил. он есть, я только заголовок класса запостил.
В моем комментарии не целиком классы, а только те части, которые, как мне кажется, могут иметь отношение к конфликту плагинов.

я не меняю ни одну из стандартных функций, просто дописал свои, некоторые из которых используют стандартные. потому проще было унаследовать класс, да и логично, что поддержка нового вида топика будет вызываться через тот же класс, что и остальные.
не знаю, как так получилось, но данный топик был категоризирован как «goods», хотя на самом деле был «топиком»
вот такая забавная вещь :)
ок, с массивом почти поятно стало, только не понятно, как воспринимается '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 что-то видно?
Какой у вас скин и какие плагины установлены? Покупалка свежескачанная? Tinymce включен?
Вечером гляну.
Попредыдущемувопросу тоже вечером постараюсь отписать, пока что мне причина не ясна.
Дошло, спасибо.
Непонятно.
Как вытащить через шаблонданные из таблицы?
Как я понимаю, только event'ом.
Да, я именно это имел в виду, но несколько некорректно выразился.
А почему «неправильно» работает, а «правильно» — не работает?
Конфликтуют Pokupalka + TopicsFilter
То, что потом я в курсе.
Меня интересует, из-за чего плагины конфликтуют именно при такой записи 'module'  =>array('ModuleTopic')

2. А как?
проблема совместимости с Pokupalka. Покупалку поправил, но вынес вопрос на обсуждение. все же не совсем понятно, как правильно указать $aInherits в плагине.
обсуждение тут:
livestreet.ru/blog/7359.html