SOBI2 category chooser выпадающим списком

Зачастую бывает необходимо отредактировать часть функционала какого-нибудь joomla-компонента.
В этой заметке я рассматриваю действия необходимые для того чтобы заменить дерево категорий выпадающим списком в компоненте SOBI2.

Задача:

  • Заменить дерево категорий выпадающим списком.
  • Примечание: мульти-выбор категорий станет невозможным.

План решения:

  1. Открыть файл \components\com_sobi2\includes\inc\custom.functions.php и добавить функцию:
  2. <?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;
    }
    ?>
  3. В файле \components\com_sobi2\includes\inc\config.ini прописываем: edit_callback_func=getSobiCatsDrop

Пруфлинк: http://www.sigsiu.net/forum/index.php/topic,15840.0.html

Комментариев: 3

  • 04.07.10 ant125:

    Не понятно, куда вставлять строчку во втором пункте?
    Проделал все как написано – изменений никаких

  • 04.07.10 Кирилл:

    У меня вставлено в блоке [edit_form] файла config.ini:

    [edit_form]
    ...
    save_callback_func	= 0
    edit_callback_func	= getSobiCatsDrop
    edittab_callback_func	= 0
    ...
    
  • 05.24.10 alex:

    Надо в кавычки заключить, и все заработает

    [edit_form]
    ...
    save_callback_func	= "0"
    edit_callback_func	= "getSobiCatsDrop"
    edittab_callback_func	= "0"
    ...
    

Добавление комментария:

Вы можете использовать эти теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">