Довольно прямолинейно ...
Я предполагаю, что вы хотите добавить категорию и раздел для статьи, а не свой пользовательский компонент.
Проверьте, является ли запрашиваемый текущий URL для статьи. Если для статьи вы знаете идентификатор статьи, используйте этот идентификатор статьи, чтобы перейти к базе данных и получить catid
из #__content
, используйте этот cat_id
, чтобы перейти к #__categories
и получить section
(это идентификатор раздела) перейдите к #__sections
, чтобы получить правильное имя раздела. Все это можно сделать в 1 sql выражении.
$breadcrumbs =& JFactory::getApplication()->getPathway();
$breadcrumbs->addItem("SECTION_NAME", JRoute::_("index.php?option=com_content&view=section&id=SECTION_ID"));
$breadcrumbs->addItem("CATEGOY_NAME", JRoute::_("index.php?option=com_content&view=category&id=CATEGORY_ID"));
$breadcrumbs->addItem("Article");
В качестве альтернативы, если вам известен URL-адрес элемента «хлебная крошка». Вы можете разобрать его и получить IDS. Хитрость здесь не в том, чтобы получить объект URI по умолчанию JFactory::getURI()
, потому что все станет ужасно, используйте JFactory::getURI('YOU_URI_NAME')
.
<?php
// You need to get Your own uri, you do not want to modify default URI
// because this will messup a lot of things
$uri = JFactory::getURI('MyCustomURI');
// Test # 1 [ID = SECTION_ID]
$url = "index.php?option=com_content&view=section&id=SECTION_ID";
$uri->parse($url);
echo "CURRENT SECTION = " . (int) $uri->getVar('id');
// Test # 2 [ID = 123]
$url = "index.php?option=com_content&view=section&id=123";
$uri->parse($url);
echo "CURRENT SECTION = " . (int) $uri->getVar('id');
?>