Узнать ID текущей категории и материала при включенном SEF

  • 13 Ответов
  • 11056 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Оффлайн back

  • ****
  • 217
  • [+]7 / [-]0
  • Все просто если по очереди)
    • Просмотр профиля
Добрый день
нужно для небольшого php модуля узнать id категории и id текущего материала
Модуль выводиться только на страницах материала.

Вот ссылка без включенного SEF
/index.php?option=com_content&view=article&id=17%3Axranenie-gruzov&catid=9%3Alogistics&Itemid=37&lang=ru

Как вы видите возможность вытянуть их из $_GET нет.
не можно вытянуть
&id=17%3Axranenie-gruzov
&catid=9%3Alogistics
Можно вытянуть но толку от него нет
&Itemid=37
(вытенуть можно и при включённом SEF)
Как узнать id категории и id текущего материала
В каких переменных это хранится?

Спасибо.
Я не волшебник - я только учусь

*

Оффлайн beliyadm

  • ********
  • 8341
  • [+]1590 / [-]63
  • Севастополь == Россия
    • Просмотр профиля
    • записки нетрезвого кодера
catid=9 - категория
id=17 - материал
вот и получайте из GET

Код: (php) [Выделить]
$catid = JRequest::getInt( 'catid', 1, 'get' );
$articleid = JRequest::getInt( 'id', 1, 'get' );
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb

*

Оффлайн back

  • ****
  • 217
  • [+]7 / [-]0
  • Все просто если по очереди)
    • Просмотр профиля
Я не волшебник - я только учусь

*

Оффлайн back

  • ****
  • 217
  • [+]7 / [-]0
  • Все просто если по очереди)
    • Просмотр профиля
Работает на половину
При включенном SEF скавлю код
   <?
$catid = JRequest::getInt( 'catid', 1, 'get' );
echo $catid.'<br>';
$articleid = JRequest::getInt( 'id', 1, 'get' );
echo $articleid;
   ?>
Выводиться он на страницах материала.

Для одного и того же материала.
если ссылка имеет вид
/ru/dlya-pokupatelej/16-opt-iz-kitaya.html
то получаем
1
16
Если выключить SEF
В том же материале.
/index.php?option=com_content&view=article&id=16%3Aopt-iz-kitaya&catid=10%3Adlya-pokupatelej&Itemid=36&lang=ru
10
16
и второй вариант правильный
то есть не вытягивается catid

Но и на этом спасибо. Я уже по id материала могу вытянуть catid из базы.
Хотя это один лишний запрос.
Я не волшебник - я только учусь

*

Оффлайн archer1981

И как же по id материала вы вытягиваете catid?
http://walkspb.ru - Энциклопедия Санкт-Петербурга

а как сделать так, чтобы в адресной строке отображалось не id материала, а псевдоним. (SEF включён).
"Если хочешь сказать мне слово, попытайся использовать рот". (БГ)

как узнать адрес модуля?
"Если хочешь сказать мне слово, попытайся использовать рот". (БГ)

*

Оффлайн beliyadm

  • ********
  • 8341
  • [+]1590 / [-]63
  • Севастополь == Россия
    • Просмотр профиля
    • записки нетрезвого кодера
как узнать адрес модуля?
у модуля нет адреса
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb

ок, ну как тогда раскрывающийся модуль? нечто вроде спойлера туда вставить можно?
"Если хочешь сказать мне слово, попытайся использовать рот". (БГ)

*

Оффлайн ecolora

  • ******
  • 1410
  • [+]170 / [-]2
  • творец
    • Просмотр профиля
    • Мой Блог
Адрес страницы с открытым модулем можете получить вот таким образом:
$uri = & JURI::getInstance();
$url = $uri->toString();
Научу зарабатывать на сайте ->>

Давайте делать Интернет вместе!

*

Оффлайн gartes

Не знаю может немного не в тему но вопрос бывает часто актуален !
При включенном SEF в Joomla  (параметры url) или параметры Get  запроса можно так получить

$uri = JURI::getInstance();
$app = & JFactory::getApplication('site');
$router = & $app->getRouter();
$getParams = $router->parse($uri);

echo '<pre>'; print_r ($getParam); echo '</pre>';

На выходе получаем array $getParam; Речь идет об url страницы
Может кому поможет )))

*

Онлайн vipiusss

  • ********
  • 5448
  • [+]327 / [-]10
  • Skype: renor_
    • Просмотр профиля
Может кому поможет )))
кстати, можно было бы в техн.факю добавить, норм решение!Перепишу себе в "записную", вдруг пригодиться.Плюсану.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями

*

Оффлайн thc40

Добрый день.
Возможно не по теме, но очень интересует вопрос как привести в порядок URL сайта.
При включенном SEF в индексе (яндекс вебмастер) присутствуют ссылки типа /?catid=22&id=155:dvigatel-g4gb, хотя опубликованные на сайте материалы имеют ссылки типа /article/155-dvigatel-g4gb.html
Вопрос 1: Как избавиться от ссылок типа /?catid=22&id=155:dvigatel-g4gb?
Вопрос 2: При настройке 301 редиректа ( в файле .htaccess ) с ссылок типа /?catid=22&id=155:dvigatel-g4gb на /article/155-dvigatel-g4gb.html, он не срабатывает при заходе на страницу /?catid=22&id=155:dvigatel-g4gb     Как решается данная проблема ?

*

Оффлайн beliyadm

  • ********
  • 8341
  • [+]1590 / [-]63
  • Севастополь == Россия
    • Просмотр профиля
    • записки нетрезвого кодера
Перенаправление УРЛ включено в настройках? Хтацесс переименован?
Ссылки странного типа, стандартный движок вроде такие и не формирует, с алиасами и id одновременно (должен пропускать через роутер и изменять)
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb