Зачастую бывает необходимо отредактировать часть функционала какого-нибудь joomla-компонента.
В этой заметке я рассматриваю действия необходимые для того чтобы заменить дерево категорий выпадающим списком в компоненте SOBI2.
Задача:
- Заменить дерево категорий выпадающим списком.
- Примечание: мульти-выбор категорий станет невозможным.
План решения:
- Открыть файл \components\com_sobi2\includes\inc\custom.functions.php и добавить функцию:
- В файле \components\com_sobi2\includes\inc\config.ini прописываем: edit_callback_func=getSobiCatsDrop
<?php function getSobiCatsDrop() { $config =& sobi2Config::getInstance(); $database =& $config->getDb(); $database->setQuery( "SELECT catid, name FROM `#__sobi2_categories` WHERE published = 1 AND catid > 1" ); $cats = $database->loadObjectList(); if ( $database->getErrorNum() ) { trigger_error( "DB reports: ".$database->stderr(), E_USER_WARNING ); } $catList = array(); if( !empty( $cats ) ) { foreach( $cats as $category ) { $category->name = $config->jsAddSlashes( $config->getSobiStr( $category->name ) ); $category->name = $config->getSobiStr($category->name); $catList[] = sobiHTML::makeOption( $category->catid, $category->name ); } } $catList = sobiHTML::selectList( $catList, "sobi2SlectedCatsID[]", 'size="1" class="inputbox"' , 'value', 'text' ); $returnVal = "<tr><td>Choose category:</td><td>{$catList}</td>"; return $returnVal; } ?> |
Пруфлинк: http://www.sigsiu.net/forum/index.php/topic,15840.0.html
Не понятно, куда вставлять строчку во втором пункте?
Проделал все как написано — изменений никаких
У меня вставлено в блоке [edit_form] файла config.ini:
Надо в кавычки заключить, и все заработает
с этим решением есть проблема-мои пользователи по своей простоте душевной лупят записи в первую попавшую категорию, как вставить туда значение «выбрать» чтобы не пускало кнопку добавить?
Не совсем понял в чем суть вопроса (насчет значения «выбрать»), но думаю что добавление некоторого сдерживающего фактора не сделает ваших юзеров более разборчивыми в выборе категории для сабмита итемов .
Получилось и работает на английском но по русски крокозябла.
Упирается фильтр по категориям, подкатегориям и товарам.
Как сделать чтобы в
категорию: Сельскохозяйственные
подкатегорию: Зерновые
подставлялись товары Пшеница, Ячмень и тд а в
подкатегорию Бобовые
подставлялись товары Горох, Нут и тд. Спасибо заранее.
после добавления данной функции, пропало сообщение о незаполненных обязательных полях, просто перекидывает на главную страницу и все.
Может просто версия SOBI2 у вас значительно новее той, на которой я это делал?
возможно... но я думаю дело не в версии. после того как в реестре меняю на getSobiCatsDrop пропадают сообщения, ставлю обратно ноль тобишь возвращаю дерево, все как и было с всплывающими окнами о незаполненных полях.
вот куда меня перекидывает если я не заполняю поля обязательные и нажимаю отправить : на главную и сообщение «Сообщение
Вы не авторизированы для просмотра данной страницы»
Доброго времени суток всем. Вопрос такой. А как реализовать тоже самое в sobipro?
Да хрен знает, не использовал пока еще SobiPro поэтому не разбирался. И теоретически думаю, что соби слишком узко-заточенный вариант со стрынными реализациями
Под коталог фирм и компаний, SOBIPRO классный компонент. Только вот реализовать выбор категорий, при добавлении записи, выподающим списком. Вообще бы цены небыло.
По пункту 1.) Вставляем код, приведенный автором между тегами php.
2.)Заходим в настройки SOBI — редактор реестра и в секции — Section: [edit_form]
вместо 0 написать — getSobiCatsDrop
Проверено, все работает.