как получить часть данных из "breadcrumbs pathway" ?

Тема в разделе "Программирование", создана пользователем s.a.filko, 08.12.2009.

  1. Offline

    s.a.filko Недавно здесь

    Регистрация:
    03.12.2009
    Сообщения:
    11
    Симпатии:
    0
    Пол:
    Мужской
    установлен компонент com_datsogallery

    для него написал меню навигации.. ( http://stylevision.com.ua/component/datsogallery/?func=viewcategory&catid=22 )

    теперь нужно исключить его со страниц, которые не относятся к этому разделу.

    добавил условие в breadcrumbs.

    Код (CODE):
    1. if ($list[$i]->name=="Коллекции") {$jumpmenu="on";}


    казалось, теперь при условии что переменная "on" можно отображать меню, но переменная не читается. пробовал читать через
    Код (CODE):
    1. global $jumpmenu;

    ничего не получается..
    пожалуйста, подскажите, в чем проблема?

    или есть какой другой вариан исключить меню с остальных странииц?
     
  2.  
  3. sectus
    Offline

    sectus специалист

    Регистрация:
    19.04.2006
    Сообщения:
    1 210
    Симпатии:
    46
    Пол:
    Мужской
    Запрограммировал свое меню?
     
  4. Andrey
    Offline

    Andrey Недавно здесь

    Регистрация:
    27.12.2005
    Сообщения:
    77
    Симпатии:
    4
    Пол:
    Мужской
    Ничего не понял. На каких страницах есть ваше "меню навигации", которое нужно убрать?
     
  5. Offline

    s.a.filko Недавно здесь

    Регистрация:
    03.12.2009
    Сообщения:
    11
    Симпатии:
    0
    Пол:
    Мужской
    http://stylevision.com.ua/component/datsogallery/?func=viewcategory&catid=22

    выпадающий список.

    практически да, детали тут http://joomla-support.ru/showthread.php?p=75817
     
  6. Andrey
    Offline

    Andrey Недавно здесь

    Регистрация:
    27.12.2005
    Сообщения:
    77
    Симпатии:
    4
    Пол:
    Мужской
    Если вы про меню слева "Каталог", то в самом модуле нужно делать проверку для текущей страницы, на такие параметры:
    - option
    - func
    - catid
    Если соответствует нужным условиям, то выводите модуль.
     
  7. Offline

    parsanches Недавно здесь

    Регистрация:
    26.11.2009
    Сообщения:
    38
    Симпатии:
    2
    Пол:
    Мужской
    Может вы мне подскажите. У меня есть установленный модуль breadcrumbs.
    В нем допустим выводится путь Главная - инет магазин - телевизоры - цветные - Сони
    Как мне не выводить например слово телевизоры?
    И как мне не выводить последнюю часть пути, например: цветные - Сони
     
  8. Andrey
    Offline

    Andrey Недавно здесь

    Регистрация:
    27.12.2005
    Сообщения:
    77
    Симпатии:
    4
    Пол:
    Мужской
    В модуле не стоит ничего менять, он отвечает только за вывод. Вам нужно заполнить под свои требования объект JPathwaySite. Для этого нужно как минимум базовые знания PHP.
    Есть некий компонент datsogallery, в нем нужно найти функцию где происходит инициализация переменных для вывода в шаблон (в стандартном варианте модели MVC для Joomla 1.5 это в файле компонента view/view.html.php). В этой функции, вы можите изменить весь пасвей. Для этого сначала определяем текущий путь:
    Код (PHP):
    1. $pathway =& $mainframe->getPathway();
    В этом объекте будет переменная _pathway ($pathway->_pathway), в ней будет содержаться массив текущих значений пути. Вам будет нужно только удалить лишнее и сохранить новый путь
    $pathway->setPathway(Новый массив значений пути);
     
  9. Offline

    s.a.filko Недавно здесь

    Регистрация:
    03.12.2009
    Сообщения:
    11
    Симпатии:
    0
    Пол:
    Мужской
    нет, я имею ввиду вот это:

    [​IMG]

    дело в том, что код в самом компоненте работает как-то отдельно от кода скрипта joomla, и если я объявляю переменные непосредственно в меню навигации вверху слева ( Главная > Дизайнеры > Коллекции ) они работают, и читаются только там, несмотря на то что пробовал их объявлять глобальными, и читать..

    я даже пробовал в шаблоне вставить это меню до вывода datsogallery где начинается "content". но и там переменные не читались, но в том месте читались переменные объявленные после тега <body> (в галерее они не читались).
     
  10. Andrey
    Offline

    Andrey Недавно здесь

    Регистрация:
    27.12.2005
    Сообщения:
    77
    Симпатии:
    4
    Пол:
    Мужской
    Не понял, при чем тут пасвей и ваш выпадающий список? Может чтобы совсем все стало понятно, вы приведете ссылки страниц, которые не относятся к разделу и сделаете скрины где укажите где правильная навигация, а где нет.
     
  11. Offline

    s.a.filko Недавно здесь

    Регистрация:
    03.12.2009
    Сообщения:
    11
    Симпатии:
    0
    Пол:
    Мужской
    http://stylevision.com.ua/component/datsogallery/?func=viewcategory&catid=93

    вот к примеру раздел "Городская мода", вверху слева это отображается ( ГЛАВНАЯ > ГОРОДСКАЯ МОДА ),

    но поскольку я вставил меню (скриншот выше) непосредственно в код компонента глереи, он отображается на всех страницах, где используется компонент. так вот, я нашел способ записать переменную в модуле breadcrumbs, но как передать эту переменную в компонент, не знаю.

    или ищу других вариантов...
     
  12. Andrey
    Offline

    Andrey Недавно здесь

    Регистрация:
    27.12.2005
    Сообщения:
    77
    Симпатии:
    4
    Пол:
    Мужской
    Как я понял, то вам нужно ограничить показ вашего выпадающего списка на некоторых страницах компонента. Если это так, то причем здесь breadcrumbs я не пойму. То что вы вставили меню в код компонента это нормально, но перед выводом этого кода, нужно сделать проверку, например по catid. Если 22, то меню показывается, иначе - нет.
     
  13. sectus
    Offline

    sectus специалист

    Регистрация:
    19.04.2006
    Сообщения:
    1 210
    Симпатии:
    46
    Пол:
    Мужской
    Покажите код меню и свои попытки
     
  14. Offline

    s.a.filko Недавно здесь

    Регистрация:
    03.12.2009
    Сообщения:
    11
    Симпатии:
    0
    Пол:
    Мужской
    да, была такая идея, но отбросил её.. поскольку категорий очень много, и они добавляются (как те которые можно исключить, так и те которые включить условием) но значение дериктории в breadcrumbs pathway не меняется, по этому зацепился за него..
     
  15. Offline

    s.a.filko Недавно здесь

    Регистрация:
    03.12.2009
    Сообщения:
    11
    Симпатии:
    0
    Пол:
    Мужской
    это вставляю после заголовка "Галерея" в компоненте datsogallery


    - это всё включал в условие if ($jumpmenu=="ok") -

    echo '<script language="javascript" src="' . $mosConfig_live_site . '/components/com_datsogallery/jumpmenu/chainedmenu.js"></script>';
    echo '<script type="text/javascript" language="javascript" src="' . $mosConfig_live_site . '/components/com_datsogallery/jumpmenu/config.php"></script>';
    echo '<form name="listmenu0">';
    echo '<table width="449"><tr>';
    echo '<td width="170"><select name="firstlevel" style="width:170px; border:#CCC solid 1px; background-color:#FFF;"></select></td>';
    echo '<td width="170"><select name="secondlevel" style="width:170px; border:#CCC solid 1px; background-color:#FFF;"></select></td>';
    echo '<td width="123"><input style="border:#CCC solid 1px; background-color:#FFF; width:27px;" type="button" value=">" onClick="goListGroup(document.listmenu0.firstlevel, document.listmenu0.secondlevel)">';
    echo "&nbsp;<input type='button' value='сброс' onClick=".'"'."resetListGroup('chainedmenu')".'"'." style='border:#CCC solid 1px; background-color:#FFF;'>";
    echo '</tr></table>';
    echo '</form>';

    в архиве файлы, на которые ссылается код


    а вот это вставляю в цыкл, который строит навигационное меню вверху. когда попадается меню с имене коллекция, переменной присваивается имя. пробовал выводить переменную прям в меню, сработало, перед словом коллекции выводилось значение переменной.


    <?php for ($i = 0; $i < $count; $i ++) :

    // If not the last item in the breadcrumbs add the separator
    if ($i < $count -1) {
    if(!empty($list[$i]->link)) {
    if ($list[$i]->name=="Коллекции") { global $jumpmenu; $jumpmenu = 'ok'; }
    echo '<a href="'.$list[$i]->link.'" class="pathway">'.$list[$i]->name.'</a>';
    } else {
    echo $list[$i]->name;
    }
    echo ' '.$separator.' ';
    } else if ($params->get('showLast', 1)) { // when $i == $count -1 and 'showLast' is true
    echo $list[$i]->name;
    }
    endfor; ?>
     

    Вложения:

    • jumpmenu.zip
      Размер файла:
      1.6 КБ
      Просмотров:
      1
    Последнее редактирование: 11.12.2009
  16. Andrey
    Offline

    Andrey Недавно здесь

    Регистрация:
    27.12.2005
    Сообщения:
    77
    Симпатии:
    4
    Пол:
    Мужской
    В модуле breadcumbs, вы не сможете выключить ваш модуль. Это не правильное направление решения проблемы. Попробуйте в модуле (где выпадающий список) выполнить код:
    Код (PHP):
    1. $pathway =& $mainframe->getPathway();
    2. var_dump($pathway->_pathway); die();

    Если название "Коллекция" уже будет определен, то делайте проверку. Если нет, то нужно выводить модуль не в компоненте, а как модуль и сделать привязку модуля к элементу меню.
     

Поделиться этой страницей

Загрузка...