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

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

  • Давно я тут
  • 827
  • 68 / 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

  • Живу я здесь
  • 4974
  • 457 / 20
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

  • Давно я тут
  • 827
  • 68 / 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

  • Живу я здесь
  • 4974
  • 457 / 20
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

  • Давно я тут
  • 827
  • 68 / 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

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

dmitry_stas

  • Легенда
  • 13152
  • 1233 / 8
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

  • Давно я тут
  • 827
  • 68 / 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 »
Спасибо
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

gantry5 Joomla шаблон denali и вобще не пойму как настроить частицы

Автор imanager

Ответов: 0
Просмотров: 37
Последний ответ 29.05.2023, 21:42:17
от imanager
Администрирую и редактирую сайт на CMS Joomla. Вопросы про настройки CMS

Автор admi5575

Ответов: 4
Просмотров: 195
Последний ответ 10.05.2023, 09:02:29
от admi5575
Joomla 3 не пускает в админку (просто перезагружается страница) (гуглил, нашёл решение, не помогло)

Автор lifelover2b

Ответов: 10
Просмотров: 2510
Последний ответ 18.04.2023, 09:32:55
от Akeksandr
Затроились все записи в админке Joomla 3.10

Автор rimm

Ответов: 7
Просмотров: 246
Последний ответ 17.04.2023, 12:41:58
от sivers
Joomla 3.3.4 nginx и конфиг htaccess

Автор bagas

Ответов: 16
Просмотров: 4545
Последний ответ 29.03.2023, 12:33:18
от SolopoV