Joomla 1.5 Модифицируем строку навигации (не безызвестный BreadCrumb)

Тема в разделе "Программирование", создана пользователем omfgpanda, 22.02.2010.

  1. omfgpanda
    Offline

    omfgpanda специалист

    Регистрация:
    22.01.2008
    Сообщения:
    673
    Симпатии:
    53
    Пол:
    Мужской
    Хотелось бы рассмотреть вопрос, интересующий многих разработчиков джумлы - "Как добавить в строку навигации свои элементы?"

    Во всех темах, в которых был поднят этот вопрос, упор был сделан на модификацию модуля mod_breadcrubs. После небольшого ковыряния этого модуля, а также ядра джумлы, я понял что это направление было ошибочным. Сейчас я постараюсь Вам все объяснить )))

    Изначально, когда мы находимся на главной странице, наша Строка Навигации (далее СН), выглядит примерно так
    Код (CODE):
    1. Главная

    т.е. мы видим наше текущее местоположение (просто название, без ссылки).
    После того, как мы установим наш компонент, создадим пункт меню и перейдем по нему, мы получим следующую СН
    Код (CODE):
    1. [B][COLOR="Blue"][U]Главная[/U][/COLOR][/B] >> Компонент1

    Теперь мы видим, что Главная (родитель) приобрела ссылку, для перехода обратно, а "Компонент" - наше новое текущее местоположение (название, без ссылки).

    Теперь, если мы хотим, организовать в нашем компоненте, так называемую, вложенность и отображать текущее место положение в СН, то необходимо сделать следующее:
    Код (PHP):
    1. $app =& JFactory::getApplication();
    2. $pathway =& $app->getPathway(); // получаем объект СН для модификации
    3. $pathway->addItem('Раздел1');  // добавляем название раздела

    Таким образом, находясь в "Компонент1" и перейдя по внутренней ссылке мы получим измененную СН
    Код (CODE):
    1. [B][COLOR="Blue"][U]Главная[/U][/COLOR][/B] >> [B][COLOR="Blue"][U]Компонент1[/U][/COLOR][/B] >> Раздел1

    Теперь мы имеем ссылки на Главную страницу, на компонент и текущее положение в компоненте (без ссылки).
    Хотелось бы обратить ваше внимание на то, что при добавлении нового,дочернего, элемента СН, на предыдущий, родительский, элемент была установлена ссылка. Без нашего вмешательства. Если мы увеличим уровень вложенности компонента еще на один:
    Код (PHP):
    1. $app =& JFactory::getApplication();
    2. $pathway =& $app->getPathway(); // получаем объект СН для модификации
    3. $pathway->addItem('Раздел1');  // добавляем название раздела
    4. $pathway->addItem('Подраздел1');  // добавляем название подраздела

    то получим вот такую СН
    Код (CODE):
    1. [B][COLOR="Blue"][U]Главная[/U][/COLOR][/B] >> [B][COLOR="Blue"][U]Компонент1[/U][/COLOR][/B] >> Раздел1 >> Подраздел1

    Т.е. Раздел1(родитель для нашего текущего местоположения) не имеет ссылки. Т.е. джумле уже пофигу на структуру вашего компонента и вам придется заботиться о себе самому )))
    Код (PHP):
    1. $app =& JFactory::getApplication();
    2. $pathway =& $app->getPathway(); // получаем объект СН для модификации
    3. $pathway->addItem('Раздел1', 'index.php?omption=com_mycom&itemid=777&razdel=1');  // добавляем название раздела
    4. $pathway->addItem('Подраздел1');  // добавляем название подраздела

    Получим:
    Код (CODE):
    1. [B][COLOR="Blue"][U]Главная[/U][/COLOR][/B] >> [B][COLOR="Blue"][U]Компонент1[/U][/COLOR][/B] >> [B][COLOR="Blue"][U]Раздел1 [/U][/COLOR][/B]>> Подраздел1


    Таким образом вы можете устанавливать неограниченную вложенность в ваших компонентах и не переживать за то, что пользователь потеряется в навигации.
     
    Dead Krolik и Fanamura нравится это.
  2.  
  3. Fanamura
    Offline

    Fanamura Доброта

    Регистрация:
    12.03.2007
    Сообщения:
    5 108
    Симпатии:
    159
    Пол:
    Мужской
    Re: Модицируем строку навигации (не безызвестный BreadCrumb)

    omfgpanda, создайте блог свой, пожалуйста. Куда все эти вкусности будете дополнительно публиковать. Ну пожжжжалуууйста :)
     
  4. omfgpanda
    Offline

    omfgpanda специалист

    Регистрация:
    22.01.2008
    Сообщения:
    673
    Симпатии:
    53
    Пол:
    Мужской
    я уже думал об этом ... но как то не доходят руки )))) вот скоро в мск поеду на пару месяцев, там может быть и займусь ) была бы возможность, я бы на хабре вел колонку про джумлу )
     
  5. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 356
    Симпатии:
    370
    Пол:
    Мужской
    А я за централизованное размещение )
     
  6. omfgpanda
    Offline

    omfgpanda специалист

    Регистрация:
    22.01.2008
    Сообщения:
    673
    Симпатии:
    53
    Пол:
    Мужской
    хммм.... пусть блог будет центральным )))))
     
  7. Fanamura
    Offline

    Fanamura Доброта

    Регистрация:
    12.03.2007
    Сообщения:
    5 108
    Симпатии:
    159
    Пол:
    Мужской
    sourpuss, именно поэтому я и написал о дополнительном постинге :) Т.е. в +
    :)
     
  8. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 356
    Симпатии:
    370
    Пол:
    Мужской
    Я другое имел в виду

    ага, одним из множества ) успехов! ;)
     
  9. Offline

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

    Регистрация:
    09.06.2010
    Сообщения:
    4
    Симпатии:
    0
    Пол:
    Мужской
    подскажите, как модифицировать модуль BreadCrumb . так чтобы на каждый раздел/категорию была ссылка ?
    т.е.
    Если я захожу в Главная >> Раздел1 -Категория1,
    то ссылка дается только на страницу Главная.
    надо чтобы у Раздел1 и Категория1 тоже были ссылки.
    А Если захожу в Главная >> Раздел2 -Категория2-Маитериал
    то ссылка дается только на Главную и Категорию2 ( Раздел2 и -Категория2 по одной ссылке)
    надо чтобы у Раздел2 и Категория2 имели каждый свои ссылки ссылки.
    Как это реализовать, подскажите ?
     
  10. omfgpanda
    Offline

    omfgpanda специалист

    Регистрация:
    22.01.2008
    Сообщения:
    673
    Симпатии:
    53
    Пол:
    Мужской
    у вас собственный компонент ?
     
  11. Offline

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

    Регистрация:
    09.06.2010
    Сообщения:
    4
    Симпатии:
    0
    Пол:
    Мужской
    omfgpanda,
    нет. Это модуль, уже встроенный в joomla 1.5.
    modules\mod_breadcrumbs
    Кто поможет модифицировать его так чтобы на каждый раздел/категорию была ссылка ?
     
  12. omfgpanda
    Offline

    omfgpanda специалист

    Регистрация:
    22.01.2008
    Сообщения:
    673
    Симпатии:
    53
    Пол:
    Мужской
    епа .... понятно что он встроенный ... я говорю про компонент, который "не правильно" модифицирует BC.
     
  13. Offline

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

    Регистрация:
    09.06.2010
    Сообщения:
    4
    Симпатии:
    0
    Пол:
    Мужской
    бл...!!! - блин.
    такого компонента нет.
    Джумла- это один большой "компонент", который в неумелых руках создает много проблем.............
    Я имею ввиду что надо покопаться в исходном коде модуля. и там что-то изменить, пока не могу понять что именно.
    А вообще впринципе есть какой-то компонент(точнее это модуль) , кажется moscmenutree -он создает меню навигации по категориям и каталогам.
    Когда-то пробовал его ставить- не получилось настроить.Хотя видел в инете много сайтов где успешно работает меню навигации.- может у них какой-то другой модуль или они сумели настроить этот пресловутый BreadCrumb....Не знаю.
    Итак, ребята, решение НЕ найдено. Помогите советом.
     
  14. omfgpanda
    Offline

    omfgpanda специалист

    Регистрация:
    22.01.2008
    Сообщения:
    673
    Симпатии:
    53
    Пол:
    Мужской
    мммм..... очень интересно ... я бы поспорил :D
     
  15. Offline

    _voland_ специалист

    Регистрация:
    12.04.2008
    Сообщения:
    2 173
    Симпатии:
    102
    Пол:
    Мужской
    Отлично, пригодилось!
    Добавлю от себя - случай когда надо поменять название последнего элемента в pathway (в данном случае оно уже в переменной $name)
    Код (PHP):
    1. $app =& JFactory::getApplication();
    2. $pathway =& $app->getPathway();
    3. $pw=& end($pathway->_pathway); $pw->name=$name;
     
  16. Offline

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

    Регистрация:
    29.06.2011
    Сообщения:
    4
    Симпатии:
    0
    Пол:
    Мужской
    Ребят, вобщем ситуация эта давно известна, о которой говорит AndySpite. Ещё раз опишу её. В меню навигации, за которую отвечает стандартный модуль Breadcrumbs не отображаются названия разделов: вместо структуры Главная-Название Раздела-Название Категории-Название Статьи, отображается структура Главная-Название Категории-Название Статьи. Причём используются все стандартные (СТАНДАРТНЫЕ) компоненты. Просто модуль Breadcrumb не выводит Название Раздела. И никто до сих пор не знает как решит эту проблему - отшучиваются и переводят стрелки :) (как сейчас). Если кто-то знает как сделать так, чтобы Название Раздела всё-таки выводилось в хлебных крошках, подскажите, плизззззззз.
    ---------------------------
    С уважением,
    zoarex
     
  17. Offline

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

    Регистрация:
    29.06.2011
    Сообщения:
    4
    Симпатии:
    0
    Пол:
    Мужской
    Вот ещё вырезка с одного сайта:
    Где найти нормальный модуль навигации вместо breadcrumbs?

    Сегодня часа два провозился с этим breadcrumbs, пытаясь каким-то образом заставить его повторять структуру сайта "Главная - раздел - категория"...

    Проблема в том, что если для категорий или материалов используются внутренние менюшки (т.е. открываем раздел, а там своя менюшка для категорий и материалов этого раздела, которая отображается только в этом разделе), то этот бездарный модуль не показывает название раздела. Получаем "Главная - категория", как будто раздела над ней уже нет..

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

    Итак вопрос - может кто встречал что-нибудь типа extended breadcrumbs или еще что, способный ориентироваться на структуру сайта (как я ее вижу - пусть даже это где-то надо будет прописывать дополнительно) и выводить соответственно навигацию?

    ContentTrail со страницы Куртеева не предлагать - он не работает воооообще :( (и почему он до сих пор не уберёт на него ссылку?)
     
  18. Offline

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

    Регистрация:
    26.06.2011
    Сообщения:
    13
    Симпатии:
    1
    Пол:
    Мужской
    А на каком движке лучше всего писать блоги?
     
  19. Offline

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

    Регистрация:
    29.06.2011
    Сообщения:
    4
    Симпатии:
    0
    Пол:
    Мужской
    на сайте livejournal ;)[!]
     

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

Загрузка...