Зачастую бывает необходимо отредактировать часть функционала какого-нибудь 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