Иерархия категорий в breadcrumb

Иерархия категорий в breadcrumb

от Vadim Dvorovenko -
Количество ответов: 9
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода
Есть такая штука, называается breadcrumb, не имею представления, как этот термин правильно перевести на русский (дословно хлебные крошки). В данный момент это Home ▶ Russian ▶ Технические вопросы ▶ ...

Теперь проблема.
У нас иерархическая структура курсов: Факультет>Кафедра>Дисциплина>Специальность>Курсы

Но когда ты находишься внутри курса в breadcrumb отражается только Сайт>Специальность>Курс, то есть имя категории без надкатегорий, а хотелось бы
Сайт>Факультет>Кафедра>Дисциплина>Специальность>Курс

Есть ли это где-то в настройках или нужно ковырять код?
В ответ на Vadim Dvorovenko

Re: Иерархия категорий в breadcrumb

от Dmitry Pupinin -
не имею представления, как этот термин правильно перевести на русский

Ну это видимо обратный путь (путь домой)... как в сказках... подмигиваю

Настройки такой не помню, так что нужно ковырять код, а там может и настройка найдется... подмигиваю

ЗЫ: А у меня категория вообще не отображается... значит есть какая-то настройка... улыбаюсь
В ответ на Vadim Dvorovenko

Re: Иерархия категорий в breadcrumb

от Vadim Tabunshchik -
Изображение пользователя Developers
ИМХО:
копать нужно в сторону функций print_navigation и build_navigation, кот. описаны в файле \lib\weblib.php.
Вот, что говорится про последнюю:
 * This function will build the navigation string to be used by
print_header and others.
 * It automatically generates the site and course level (if appropriate) links.
 * If you pass in a $cm object, the method will also generate the activity (e.g. 'Forums')
 * and activityinstances (e.g. 'General Developer Forum') navigation levels.
 * If you want to add any further navigation links after the ones this function generates,
the pass an array of extra link arrays like this:
array(
 array('name' => $linktext1, 'link' => $url1, 'type' => $linktype1),
 array('name' => $linktext2, 'link' => $url2, 'type' => $linktype2)
)
 * The normal case is to just add one further link, for example
'Editing forum' after 'General Developer Forum', with no link.
 * To do that, you need to pass array(array('name' => $linktext, 'link' => '', 'type' => 'title'))
 * However, becuase this is a very common case, you can use a
shortcut syntax, and just pass the string 'Editing forum',
instead of an array as $extranavlinks.

Ну и далее по тексту.

В ответ на Vadim Tabunshchik

Re: Иерархия категорий в breadcrumb

от Dmitry Pupinin -
Очевидно внутрь этого условия нужно добавлять подкатегории (в build_navigation):

// Course name, if appropriate.
if (isset($COURSE) && $COURSE->id != SITEID) {

ЗЫ: Правда я все-таки не могу понять почему у вас одна категория отображается... улыбаюсь
В ответ на Dmitry Pupinin

Re: Иерархия категорий в breadcrumb

от Vadim Dvorovenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода
Я попутал, категория не отображается. А надо, чтобы отображались, причем все и как при навигации по категориям, так и находясь внутри курса.
Всё ясно, будем работать
В ответ на Vadim Dvorovenko

Re: Иерархия категорий в breadcrumb

от Dmitry Pupinin -
Да че тут работать-то... подмигиваю
Таблица mdl_course_categories, поле parent и один цикл while... улыбаюсь
В ответ на Dmitry Pupinin

Re: Иерархия категорий в breadcrumb

от Vadim Tabunshchik -
Изображение пользователя Developers
Ну да, только надо прикрутить к таблице mdl_course_categories поле shortname, как у курсов, и добавить это поле на страницу создания категорий-подкатегорий.
Иначе, breadcrumb будет выглядеть, как ну ООООООООООООчень длинный путь домой, что-нибудь этакое:
СДО ГТУ ► Факультет транспортных технологий ► Кафедра технологий международных перевозок и логистики ► Коммерческое обслуживание международных перевозок ► ЗТГ
Это уже будет точно какой-то bred улыбаюсь

В ответ на Vadim Tabunshchik

Re: Иерархия категорий в breadcrumb

от Vadim Dvorovenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода
Ничего, зато всё понятно и логично. А у нас чтобы в соседнюю специальность попасть приодится переходить снова на главную и оттуда снова начинать.
А если укоротить в вашем случае получится
СДО ГТУ-ФТТ-КТМПиЛ-КОМП-ЗГТ, тоже достаточно смешно. У нас сейчас shortname у курсов прописан как раз в виде КТМПиЛ-КОМП-ЗГТ и особой ясности это не добавляет
В ответ на Vadim Dvorovenko

Re: Иерархия категорий в breadcrumb

от Vadim Tabunshchik -
Изображение пользователя Developers
>>Ничего, зато всё понятно и логично
С этим не поспоришь, но я имел в виду то, что разработчики специально опустили отображение категорий-подкатегорий в строке навигации, т. к. невозможно предугадать структуру и иерархию на каждом сайте.
Показ категорий может привести к тому, что эти breadcrumb’ы займут не одну, а 2 и более строк - названия факультетов, кафедр, дисциплин, предметов могут быть непредсказуемыми по количеству символов + иерархия улыбаюсь
Тут одинакового рецепта для всех не придумаешь, на мой взгляд. Кого-то это устроит, кого-то нет.
>> СДО ГТУ-ФТТ-КТМПиЛ-КОМП-ЗГТ, тоже достаточно смешно
В каждом универе уже давно существует укоренившаяся система аббревиатур факультетов, кафедр и даже дисциплин (в нашем, во всяком случае, есть). Так что, про смех можно не думать.

Кстати, для быстрого перехода по категориям можно просто вставить в header.html панель навигации типа такой, как на рис.:


Приложение _.jpg