Код (PHP): //Подключаемся к базе сдля выдирания значения $itemid= для возможности привязыват к компоненту статьи $database->setQuery("SELECT * FROM #__menu WHERE `link` LIKE '%option=com_test%' LIMIT 1 "); $list = $database->loadObjectList(); foreach($list as $user) { $itemid = $user->id;// присваем значение передаваемой запросами переменной } Использую данный способ получения значения itemid для привязки к своему компоненту разных вищичек. Но вчера обнаружил что бывает данный запрос выдаёт не тот itemid. Как правильно его извлеч или откуда!
Ответ: Правильное Получение itemid не заморачивался на данное решение потому как, если есть две ссылки в меню, то тут уже надо изловчиться, чтобы Itemid был именно тот, который надо, если ссылок уже больше чем 2? Тогда вообще очень трудно будет это сделать. Поэтому данная переменная у меня присутствует лишь как параметр, который можно задавать вручную.
Ответ: Правильное Получение itemid Ты вообще понимаешь смысл кода, который процитирован или просто так скопировал.
Ответ: Правильное Получение itemid рабочий код ,а что, я его сам написал глючит только в случаи если несколько ссылок на данный компонет, потомучто выбирает последний. В топике выше единственно правильное решение предложено на данный момент.
Ответ: Правильное Получение itemid Давно написал для себя такую функцию Код (PHP): /************************************************ * Функция извлечения наименования пункта * меню для компонента и его Itemid * * Параметры: * $find_option - наименование компонента * например: com_mycomp * Возвращаемое значение: * Массив из двух элеменов. * array['name'] - тайтл пункта меню * array['itemid'] - Itemid этого пункта *************************************************/ function getMenuInfo($find_option) { global $database; $menu_row = null; $retVal = array( "name"=>"", "itemid"=>"" ); $database->setQuery("SELECT id FROM #__components WHERE link='option=$find_option'"); $component_id = intval($database->loadResult()); if($component_id > 0) { $database->setQuery("SELECT id, name FROM #__menu WHERE componentid=$component_id"); $database->loadObject($menu_row); if($menu_row) { $retVal["itemid"] = '&Itemid='.$menu_row->id; $retVal["name"] = $menu_row->name; } } return $retVal; } Там есть трабл, что если будет несколько пунктов меню для одного компонента, то определение будет только для одного из них, котороый первым стоит в базе. Собственно в таком случае лучше использовать задание Itemid в ручную.
Подскажитье пожалуйста, в какой файл или вообще куда вставляется выше указанный код , который предоставил kvt ? Я пока что только разбираюсь в Joomla и у меня проблема, по которой идет обсуждение. Заранее спасибо !
У меня есть блоки на mod_php , они назначены на главную страницу, но как я заметил отображаются они не только на главной странице, а еще примерно на 20-ти страницах В этих блоках стоят ссылки - и проблема в том что они получаются практически сквозными Вот объяснил как мог
Я понял, что это глобальная переменная Но почему эта глобальная переменная от главной страницы присваивается еще 20-30 страницам, совсем не главным Правда я заметил, что на часть этих страниц ведут ссылки с главного меню Но как решить проблему ???
Так задумано А главную можно и не так определять, а тупо по наличию в строке запроса переменной с именем компонента и задачи.