Как удалить идентификатор элемента меню из ссылки на элемент k2

У меня есть два разных шаблона на моем сайте, давайте просто назовите их Tcat и Titem. Страница просмотра категории k2 использует Tcat, то есть пункт меню страницы просмотра категории k2 связан с Tcat. Я хочу, чтобы страницы элементов k2 использовали Titem, то есть, когда я нажимаю ссылку на элемент на странице просмотра категории, я надеюсь, что новая страница, показывающая этот элемент, будет использовать Titem. Однако по умолчанию эта новая страница будет использовать Tcat.

Я знаю, это потому, что в ссылке href есть параметр itemid = xxx. Насколько я знаю, элемент k2 можно открыть с помощью URL-адреса, например mysite.com/index.php?option=com_k2&view=item&id=10, в этом случае без идентификатора элемента меню в URL-адресе , страница будет использовать шаблон по умолчанию; но если добавлен параметр Itemid, и URL-адрес выглядит как http://67.20.67.232/index.php?option=com_k2&view=item&id=10&Itemid=150, тогда на странице будет использоваться шаблон, связанный с элементом меню #150. Проблема в том, что, поскольку я связал представление категории с элементом меню #150, ссылки всех элементов этой категории, похоже, всегда имеют это Itemid=150.

Я всегда сталкиваюсь с аналогичной проблемой с k2. Одним из способов решения проблемы является использование javascript для устранения этого параметра Itemid, другой не очень практичный способ - связать каждый элемент с пунктом меню что связано с Titem .... Есть ли другой способ? Может быть, путем hardcoding некоторые PHP?

Кроме того, в файлах php php в k2 ссылка генерируется чем-то вроде <?php echo $this->item->link ?>, я думаю, если я узнаю, как ---- +: = 8 =: + ----, я могу найти способ его жесткого кодирования. Но мои знания PHP очень ограничены, при некоторых исследованиях я могу только догадываться, что $this->item является экземпляром $this в k2ItemviewList, но этот класс имеет только один член: com_k2/views/itemlist/view.html.php, function display($tpl = null) нигде не было найдено. Я изучаю PHP и пытаюсь понять ядро ​​joomla и ядро ​​k2, поэтому я не удовлетворен решением javascript. Если вы можете объяснить, как отслеживать коды за кодом item, это очень поможет в обучении. Любые намеки приветствуются. Спасибо заранее.

k2
2 голоса | спросил shenkwen 15 AM00000030000003831 2015, 03:10:38

1 ответ


1

Itemid - ключевая часть Joomla Router для идентификации цели и навигации по структуре меню. Кроме того, модули связаны с конкретными Itemid.

Если нет Itemid, Joomla отображает страницу по умолчанию с модулями, назначенными страницам «Все».

Если вы ищете способ настройки SEF и генерации Urls без идентификаторов, вы можете просто установить Расширение SEF .

ответил Anibal 15 AM000000100000001931 2015, 10:29:19

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132