mod_boss_category
  • trotom Декабрь 2011
    Что-то не хочет по человечески работать.
    Всё последнее.

    xampp на локалхосте
    Версия базы данных: 5.5.8
    Версия PHP: 5.3.5
    Веб-сервер: Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.4 mod_perl/2.0.4 Perl/v5.10.1
    Интерфейс между веб-сервером и PHP: apache2handler
    Версия Joostina!: Joostina 1.3.0.5::885 build. [ ] 26:10:2011 01:57 +5 GMT


    =========
    Deprecated: Call-time pass-by-reference has been deprecated in \www\modules\mod_boss_category\boss_category.helper.php on line 34

    $child_cat = array_filter(&$categories, 'filter');
    убрать &
    $child_cat = array_filter($categories, 'filter');


    =========
    Не работает активное меню
    Строки в файле www\modules\mod_boss_category\boss_category.helper.php всегда разные
    $link = sefRelToAbs('index.php?option=com_boss&task=show_category&catid=' . $category["category_id"] . '&directory=' . $directory . '&Itemid=' . $itemid);
    $here = sefRelToAbs($_SERVER['REQUEST_URI']);// Ссылка на текущую страницу

    Во-первых, пришлось снова убрать &amp и оставить просто & в строке
    $link = sefRelToAbs('index.php?option=com_boss&task=show_category&catid=' . $category["category_id"] . '&directory=' . $directory . '&Itemid=' . $itemid);

    Во-вторых, если сеф выключен, то сравнение не проходит из-за переменной $here. $_SERVER['REQUEST_URI'] выдаёт
    /index.php?option=com_boss&task=show_category&catid=4&directory=1&Itemid=8
    Со слешем впереди - и в итоге строки разные.

    При включённом сеф и easysef не обрабатывается функция sefRelToAbs, по моему всё из-за того де слеша впереди.
    Какие тонкости у этих двух функций? (sefRelToAbs и $_SERVER['REQUEST_URI'])

    Если я слеш поставлю в переменной $link, то и эта переменная перестаёт обрабатываться функцией sefreltoabs, на выходе получим две переменные
    /index.php?option=com_boss&Itemid=8&catid=4&directory=1&lang=ru&task=show_category
    /index.php?option=com_boss&task=show_category&catid=4&directory=1&Itemid=8


    обе не сеф, но и обе разные ) т.к. easysef меняет структуру переменных в ссылке
    Отредактированно trotom в 2011-12-06 20:43:30
  • trotom Декабрь 2011
    Сейчас установил JPromoter - c ним всё заработало.
    Даже &amp работает. Только при включённом сеф. При выключенном сеф ссылки вроде выглядят одинаково, но сравнение не проходят )

    /index.php?option=com_boss&task=show_category&catid=4&directory=1&Itemid=8
    /index.php?option=com_boss&task=show_category&catid=4&directory=1&Itemid=8


    Возможно где-то надо донастроить easysef чтобы с ним заработало, но я уже не возьмусь опять к нему возвращаться. Да и может там в плагине дело или в коде, я так легко не осилю найти причину проблем.
    Отредактированно trotom в 2011-12-06 13:56:38
  • trotom Декабрь 2011
    Ещё одна ошибка осталась:
    при публикации модуля не работал модуль слайдшоу и
    изображения в com_boss не открывались в Fancybox, а открывались в новом окне.

    firebug
    Ошибка: $ is not a function
    Источник: /includes/js/jquery/plugins/jquery.simplegallery.js
    Строка: 146


    Код:
    146 setting.$navpanel=$('<div class="navpanellayer"></div>')
    149 $('<div class="navpanellayerbg"></div><div class="navpanellayerfg"></div>')

    на
    Код:
    setting.$navpanel=jQuery('<div class="navpanellayer"></div>')
    jQuery('<div class="navpanellayerbg"></div><div class="navpanellayerfg"></div>')
    Отредактированно trotom в 2011-12-06 14:12:11
  • ArkadiyArkadiy Декабрь 2011
    1. Где качал дистрибутив?
    2. С каким Боссом ставищь?
  • trotom Декабрь 2011
    Вроде всё последнее. Может напутал? да вроде нет )
  • ArkadiyArkadiy Декабрь 2011
    Не, так не пойдет, надо знать точно.
  • trotom Декабрь 2011
    Arkadiy, я взял 1304, патчем твоим обновил до 1305, установил стабильный joiboss 1.0.8 stable
    Установил последний EasySEF_1-1.zip
    Установил плагин изи для босса Plugin_EasySEF_JoiBOSS.zip
    установил mod_boss_category_1.1.5 .zip
    и в итоге получилось что не работает

    удалил изи, установил промозер, всё заработало, как я выше описал
    Отредактированно trotom в 2011-12-07 11:21:19
  • trotom Декабрь 2011
    Добавил себе уникальных идентификаторов для категорий 0 уровня. Чтобы можно было сделать меню уникальным каждую главную категорию.

    С одним каталогом работает. С большим количеством не пробовал, что там да как выйдет.
    Отредактированно trotom в 2011-12-08 08:31:31
  • trotom Декабрь 2011
    Ещё раньше делал такие изменения, но с обновлениями пока не требовались, в выше архиве их нет:
    показывать только определённые категории в модуле mod_boss_category
    Для одного каталога работало как меню. Можно было исключить ненужные пункты (категории), вернее оставить только нужные.

    \www\modules\mod_boss_category.xml
    add
    27
    <param name="showAllCategories" type="radio" default="1" label="Показывать все категории" description="Если выбрано «Да», то в меню будут отображены все категории, если «Нет» - только категории, идентификаторы (ID) которых, будут введены через запятую в поле ниже.">
    <option value="1">Да</option>
    <option value="0">Нет</option>
    </param>
    <param name="categoryId" type="text" default="" label="Показывать категории" description="Идентификаторы (ID) категорий через запятую, без пробелов. Не зависит от каталогов. Т.е. либо применять к одному каталогу пунктом выше, либо будет во всех каталогах выводиться одни и те же категории." />

    \www\modules\mod_boss_category.php
    add
    13
    $showAllCategories = $params->get('showAllCategories', 1);
    $categoryId = $params->get('categoryId', 0);

    изм
    42
    <?php getCategoryTreeArray($directories, $showDirName, $moduleclass_sfx, $menuclass_sfx, $showAllCategories, $categoryId); ?>


    изм
    www\modules\mod_boss_category\boss_category.helper.php
    63
    function getCategoryTreeArray($directories, $showDirName, $moduleclass_sfx, $menuclass_sfx, $showAllCategories, $categoryId) {

    изм
    71
    $q = "SELECT id, parent, name, ordering";
    $q .= " FROM #__boss_" . $directory->id . "_categories as c";
    $q .= " WHERE c.published='1'";
    if($showAllCategories == 0) $q .= " AND id IN ($categoryId)";
    $q .= " ORDER BY parent, ordering, name";
    $database->setQuery($q);
  • trotom Декабрь 2011
    Ещё разобрался вроде как сделать аккордион меню. Но подключал всё напрямую в шаблон. Возможно можно прописать и в модуле, но если использовать как меню, то на всех страницах всё-равно лежит. И тут нашей библиотеки jquery не хватает. Нужно дополнительно подключать ещё пару скриптов.
    Отредактированно trotom в 2011-12-08 08:37:02

Добро пожаловать!

Похоже, что Вы здесь впервые. Если хотите поучаствовать, нажмите на одну из этих кнопок!

Войти Зарегистрироваться

В теме отметились