Intereting Posts
Инкапсулировать все приложение в транзакции базы данных Codeigniter, когда я нажимаю delete, я хочу всплывающее уведомление, если при нажатии «да» или нет AJAX: Как заменить содержимое DIV ссылкой в ​​том же DIV? Почему «PHP не удается сломать / продолжить 1 уровень»? Как проверить дублирующее письмо перед отправкой в ​​php-файл Использование Jquery Ajax для извлечения данных из Mysql PHP-файл не может восстанавливать переменную сеанса на разных страницах Лучший способ проверить, вернулись ли результаты MySQL в PHP? Какая самая лучшая / самая быстрая таблица таблиц MySQL для временного / вращающегося хранилища, например, для управления сеансом? PHPmailer отправляет почту спама в hotmail. как исправить? Как использовать транзакцию в php / mysql Эффективно использовать Google App Engine для отправки большого количества писем с помощью PHP? заполнять форму автоматически с помощью curl и php Отправлять push-уведомление конкретному пользователю с помощью Parse Почтовые заголовки

Joomla: как получить URL-адрес определенного ID элемента меню?

Друзья вопрос новичков ……… Мне нужна помощь в получении URL-адреса определенного элемента ItemID. Ситуация такова:

Я запускаю Joomla и прошу пользователя ввести идентификатор меню и выбрать макет для этого идентификатора меню.

Я хочу сделать что-то еще с этим URL-адресом элемента ItemID.

Как я могу получить URL-адрес этого элемента ItemID, предоставленного пользователем?

Например, если пользовательский ввод является liek $this->get ('menulayoutid'>; и он вводит и ID 54 то как мне получить URL для ID меню 54.

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

Незлая помощь.

 $itemid = JRequest::getVar('Itemid'); $application = JFactory::getApplication(); $menu = $application->getMenu(); $item = $menu->getItem($itemid); $link = new JURI($item->link); $link->setVar('ItemId', $itemid); 

Источник: http://forum.joomla.org/viewtopic.php?p=1836005

Однако мы получаем Itemid из любого места (пользовательский ввод, из нашего собственного разработанного модуля, используя тип поля «пункт меню» в XML-файле, как описано в типах полей формы Joomla Docs – Standard )

 // get the menuItemId from wherever... // as described above or as in other posts here and do whatever with that! $menuItemId = 'fromWherever'; // as an example "107"; // build the link to the menuItemId is just easy and simple $url = JRoute::_('index.php?Itemid=' . $menuItemId); 

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

это работает и в Joomla 3.0, 3.1

Я просто хочу добавить, что если вам нужно настроить таргетинг на конкретное меню, вы передаете имя меню в качестве аргумента getMenu ().

 $itemid = JRequest::getVar('Itemid'); $application = JFactory::getApplication(); $menu = $application->getMenu( 'menu-name' ); $item = $menu->getItem($itemid); $link = new JURI($item->link); $link->setVar('ItemId', $itemid); 

Я не уверен, что Joomla изменила способ работы с 2,5 или даже 1,7, но я потратил худшую половину из 2 часов на это.

Надеюсь, это помогает кому-то.

 $menuID = $params->get('menuItem'); // from module field menu ex. '105' $js = new JSite; $menu = $js->getMenu(); $link = $menu->getItem($menuID)->route; //Returns URL Friendly Link -> menu/article //Then format it -> $link = 'http://www.yoursite.com/index.php/'.$link; echo '<a href="'.$link.'">Borrowed Menu Link Path</a>"; 

Когда вам нужно получить свой активный идентификатор элемента меню в Joomla, чтобы отобразить определенный контент только для этого пункта меню или просто для отображения идентификатора элемента меню, вставьте следующий код, в котором вы хотите отобразить активный элемент меню:

 <?php $currentMenuId = JSite::getMenu()->getActive()->id; echo $currentMenuId; ?>