Добрый день, решил завести тему как для JoomShopping где описывались бы "хотелки" и "просилки" для разработчиков, реально улучшающих компонент.
Первое и самое важное, на мой взгляд, что бы не "ломать" и не хакать ядро компонента оч.хочется видеть в следующем релизе побольше точек входа для плагинов. Вот если взять тот же самый JoomShopping там более 150 диспетчеров по всему компонету, так пока писал магазин, точнее свои плагины и аддоны, вышло 2-а обновления, без проблем обновился и плагины работают, и компонент с новыми функциями. А здесь куча хаков нужна потом версию не обновить.
Для начала точки входа плагинов нужны в видах шаблона и моделях компонента где есть запросы. Например в виде листинга объявлений перед
$total = $contentmodel->getNbContents($filters);
$contents = $contentmodel->getContents($filters,$limitstart, $limit,$filter_order,$filter_order_Dir);
добавить диспетчера:
$dispatcher = JDispatcher::getInstance();
JPluginHelper::importPlugin('adsmanagercontent');
$dispatcher->trigger('getContentFilters', array (&$filters, &$filter_order, &$filter_order_Dir));
Так плагином можно будет добавлять параметры фильтрации объявлений, например по регионам выводить, или "по типу" по умолчанию.
Ну а соответственно в модели получения контента нужно что-то типа этого:
function getContent($contentid,$onlyPublished = true) {
.....
$sql = "....";
$sql .= " WHERE a.id = ".(int)$contentid;
....
// перед выполнением запроса дать возможность плагину внести изменения в запрос, если потребуется например присоединить еще какую таблицу для выборки объявлений
$dispatcher = JDispatcher::getInstance();
JPluginHelper::importPlugin('adsmanagercontent');
$dispatcher->trigger('getContentFilters', array (&$sql));
....
$this->_db->setQuery($sql);
$contents = $this->_db->loadObjectList();
....
}
будет больше таких точек для плагинов, можно будет расширять функционал компонента неограниченно, и не затрагивая ядро компонента, т.е. можно обновляться на новые версии.
PS это "прошение" больше для модераторов или кто связывается с разработчиками компонента.