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

ruslan13

  • Захожу иногда
  • 156
  • 2 / 0
Логика парсинга Url в Joomla
« : 18.06.2018, 05:53:00 »
По какой логике Url запрос в форме /cats/news/535-some-news преобразуется во внутренний /index.php?option=com_content&view=article&id=535 ?
*

kern.USR

  • Давно я тут
  • 805
  • 61 / 1
Re: Логика парсинга Url в Joomla
« Ответ #1 : 18.06.2018, 16:35:00 »
https://docs.joomla.org/J3.x:Supporting_SEF_URLs_in_your_component

Вообще очень полезный сайт  ;)
*

ruslan13

  • Захожу иногда
  • 156
  • 2 / 0
Re: Логика парсинга Url в Joomla
« Ответ #2 : 18.06.2018, 16:47:13 »
Спасибо.
Мне не нужно Joomla API, мне нужна логика, чтобы распарсить url самому.
Там я нашел:
Код
When viewing an article: http://www.example.com/[menualias]/[category]/[article]
When viewing a category: http://www.example.com/[menualias]/[category]
Статья и блог всегда именно так?
То есть, делим по слэшам, смотрим число частей, определяем статью/блог, ищем элиасы в меню и категории и т.д.?

п.с. вообще-то http://www.example.com/[article] тоже прекрасно работает...
*

robert

  • Живу я здесь
  • 4589
  • 428 / 16
Re: Логика парсинга Url в Joomla
« Ответ #3 : 18.06.2018, 17:00:35 »
У каждого компонента своя логика. Что значит
распарсить url самому
? Откуда берется url?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

ruslan13

  • Захожу иногда
  • 156
  • 2 / 0
Re: Логика парсинга Url в Joomla
« Ответ #4 : 18.06.2018, 17:24:49 »
url приходит от клиента. До запуска джумловского фреймворка мне нужно его распарсить.

Логика нужна, скажем, только для статьи и блога ком_контента
*

kern.USR

  • Давно я тут
  • 805
  • 61 / 1
Re: Логика парсинга Url в Joomla
« Ответ #5 : 18.06.2018, 17:37:51 »
А зачем его парсить, до обработки Joomla? Отдайте его Joomla, а потом уже разобранный по параметрам берите и используйте
*

ruslan13

  • Захожу иногда
  • 156
  • 2 / 0
Re: Логика парсинга Url в Joomla
« Ответ #6 : 18.06.2018, 17:41:42 »
Ну значит надо, наверно. Чтобы при определенных случаях не запускать Joomla с ее 100+ обращениями к БД по каждому клиентскому запросу, например.
*

robert

  • Живу я здесь
  • 4589
  • 428 / 16
Re: Логика парсинга Url в Joomla
« Ответ #7 : 18.06.2018, 17:52:14 »
Чтобы при определенных случаях не запускать Joomla
Я вас не понимаю. То есть, полученные urls не будут использоваться в Joomla? Тогда зачем вообще их получать?
Начните с /components/com_content/router.php, потом доберетесь до /liblaries/src/Component/Router/, если оф.док. вас не устраивает.
« Последнее редактирование: 18.06.2018, 18:52:17 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

kern.USR

  • Давно я тут
  • 805
  • 61 / 1
Re: Логика парсинга Url в Joomla
« Ответ #8 : 18.06.2018, 17:58:04 »
Чтобы при определенных случаях не запускать Joomla
Тогда вам нужно перехватывать запрос, до того как вебсервер его направит на php. И роутинг Joomla тут ни как не имеет отношения, как и сама Joomla.
Подозреваю, что вы там напланировали супер-мега-кэш систему?
*

ruslan13

  • Захожу иногда
  • 156
  • 2 / 0
Re: Логика парсинга Url в Joomla
« Ответ #9 : 18.06.2018, 18:04:20 »
Я вас не понимаю. То есть, полученные urls не будут использоваться в Joomla? Тогда зачем вообще их получать?
Например, чтобы фильтровать ботов и давать им своё. Этот вопрос (зачем) в данном топике не рассматривается.

Тогда вам нужно перехватывать запрос, до того как вебсервер его направит на php.
Я прекрасно его перехватываю сейчас в главном index.php вот так:
Код
preg_match('/(.*)\/(\d+)-(.*)/', $_SERVER["REQUEST_URI"], $matches);
if ($matches && isset($matches[2]) && is_numeric($matches[2])) {
$isArticle = true;
}
Но ищу более универсальное решение
*

ruslan13

  • Захожу иногда
  • 156
  • 2 / 0
Re: Логика парсинга Url в Joomla
« Ответ #10 : 18.06.2018, 18:06:05 »
Я отдаю ботам 304 ответ (если есть if-last-modified) по статьям до загрузки Joomla - разве это плохо?
*

robert

  • Живу я здесь
  • 4589
  • 428 / 16
Re: Логика парсинга Url в Joomla
« Ответ #11 : 18.06.2018, 18:41:55 »
Я прекрасно его перехватываю
Ну, это уже не до PHP.
Joomla routing завязан на меню, нет там простых правил. В случаях, когда не задействован пункт меню и речь идет о материале, то последний сегмент - это либо его ID, либо alias.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

dmitry_stas

  • Легенда
  • 12171
  • 1155 / 7
Re: Логика парсинга Url в Joomla
« Ответ #12 : 18.06.2018, 18:50:37 »
Но ищу более универсальное решение
а это оно и есть. в противном случае если вы хотите именно повторить логику Joomla, то с таким успехом и апи Joomla можно подгрузить. грубо говоря там происходит следующие: разбивается URL по слешу, затем проверяется первая часть пути, алиас какого это пункта меню. и так далее. если на каком то этапе пункт меню не находится, то оставшаяся часть URL передается роутеру того компонента, который последний определили по меню. если даже первая часть урл не соответствовала никакому пункту меню, то смотрим какой компонент отвечает за главную страницу, и передаем весь урл его роутеру. в двух словах как то так.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

ruslan13

  • Захожу иногда
  • 156
  • 2 / 0
Re: Логика парсинга Url в Joomla
« Ответ #13 : 18.06.2018, 19:32:42 »
Спасибо. Значит руками под свои нужды будем парсить...
*

ruslan13

  • Захожу иногда
  • 156
  • 2 / 0
Re: Логика парсинга Url в Joomla
« Ответ #14 : 27.06.2018, 06:59:05 »
Задам тут вопрос, чтобы новую тему не открывать
Как правильно передать переменную из /index.php в /templates/mytemplate/index.php  ?
$GLOBALS не работает

Через $_GET работает, но кривовато это.
*

kern.USR

  • Давно я тут
  • 805
  • 61 / 1
Re: Логика парсинга Url в Joomla
« Ответ #15 : 27.06.2018, 13:02:34 »
Как то так
Код
$params = JComponentHelper::getParams('com_template');
$params->set('my_param', 'my_value');

Потом в шаблоне прочитать их

Код
$params = JComponentHelper::getParams('com_template');
$dashboardID = $params->get('my_param');
*

ruslan13

  • Захожу иногда
  • 156
  • 2 / 0
Re: Логика парсинга Url в Joomla
« Ответ #16 : 27.06.2018, 17:43:27 »
Спасибо
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как вывести миниатюру материала Joomla через background-image?

Автор Merk

Ответов: 5
Просмотров: 139
Последний ответ 14.11.2018, 17:18:35
от Efanych
Помощь в настройке модуля на Joomla 3, подпрыгивает страница вверх

Автор black_vlad_ik1

Ответов: 0
Просмотров: 84
Последний ответ 13.11.2018, 19:55:37
от black_vlad_ik1
Комментарии для Joomla 3

Автор phvsfpgs

Ответов: 33
Просмотров: 1112
Последний ответ 13.11.2018, 17:23:17
от ChaosHead
Нужна помощь в настройке шаблона, стиль срабатывает для всего ряда. Joomla Blog

Автор black_vlad_ik1

Ответов: 2
Просмотров: 112
Последний ответ 12.11.2018, 17:26:50
от black_vlad_ik1
Joomla неправильно выводит description и keywords

Автор Sensession

Ответов: 7
Просмотров: 204
Последний ответ 03.11.2018, 21:46:27
от Sensession