Новости Joomla

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

voprospoj3

  • Новичок
  • 4
  • 0 / 0
Добрый день. Ситуация следующая. Есть сайта на J3 (3.9.5)

Материалы выводятся стандартной структурой. Сайт/категория/материал.

Например есть каталог стран. Страны/Турция/Алания (на который соотв.выводится текст материала Алания).

А каким образом сделать еще множество страниц (так сказать программно / шаблонно). Чтобы расширить кол-во страниц по данному городу по разным типам, по месяцам, по годам. Чтобы грубо говоря открывалась эта же страница что и ранее, только я уже в шаблоне подписывал в ней взяв все что нужно мне из юрл. (месяц, год например)

site.ru/strany/turkey/alania/month/july  или site.ru/strany/turkey/alania/year/2019
т.е. month и year к примеру это статичная часть url а july или 2019 или др это динамичные. Но чтобы роутер Joomla не выдавал 404 ошибку, а выдавал исходный документ без доп.части юрл.

Подскажите, такое возможно сделать в рамках уже созданного каталога в com_content. Возможно как-то переделав router компонента com_content

Прошу помощи или буду рад любой подсказке
*

Taatshi

  • Глобальный модератор
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Из того, что есть, Вы такие урлы вряд ли получите. - только если создавать пункты меню на все материалы.
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

ChaosHead

  • Гуру
  • 5241
  • 451 / 13
теги можно использовать, но такие точно url вы не получите
*

voprospoj3

  • Новичок
  • 4
  • 0 / 0
Ну а если такие юрл поставить на последнее место по важности, хотя бы принципиально сделать такие страницы, как лучше поступить?
*

voland

  • Легенда
  • 11030
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Ну а если такие юрл поставить на последнее место по важности, хотя бы принципиально сделать такие страницы, как лучше поступить?
Чего? Какие страницы? Какое это имеет отношение к теме роутинга?
*

Taatshi

  • Глобальный модератор
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Я бы на Вашем месте сейчас последние материалы тоже сделала категориями и в них уже подкатегории и материалы - до нужного уровня вложенности.

Иначе придется в той же категории создавать материалы с тегами и выводить в пункте меню по тегам
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
В принципе, можно переписать router по своему алгоритму, но честно говоря, не понял, что хочет ТС. Что значит
Чтобы грубо говоря открывалась эта же страница что и ранее, только я уже в шаблоне подписывал в ней взяв все что нужно мне из юрл. (месяц, год например)
Чтобы один и тот же материал был доступен по разным URL'ам, что ли? Подписывать что? Для чего взять год и месяц?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

sivers

  • Живу я здесь
  • 2465
  • 336 / 0
В принципе, можно переписать router по своему алгоритму, но честно говоря, не понял, что хочет ТС.
Вероятно, хочет из сравнительно небольшого количества материалов наделать побольше урлов для поисковиков с псевдо-уникальными текстами, меняющимися по некоему шаблону в зависимости от параметров, переданных в ссылках.

Настраивать надо роутер, чтоб ссылки работали. И шаблоны потом.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

voprospoj3

  • Новичок
  • 4
  • 0 / 0
Я бы на Вашем месте сейчас последние материалы тоже сделала категориями и в них уже подкатегории и материалы - до нужного уровня вложенности.
Это не подходит, так как тогда в каждой категории мне нужно будет делать одинаковые подкатегории (месяца, года и т.д.)

Вероятно, хочет из сравнительно небольшого количества материалов наделать побольше урлов для поисковиков с псевдо-уникальными текстами, меняющимися по некоему шаблону в зависимости от параметров, переданных в ссылках.

Настраивать надо роутер, чтоб ссылки работали. И шаблоны потом.
Вот именно то что нужно, все верно! Самый главный вопрос, можно ли так модифицировать роутер com_content'а чтобы реализовать данную задачу?


*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
можно ли так модифицировать роутер com_content
нет, это не получится

1) при минорной обнове ваши правки слетят, а роутер не переопределяется

2) роутер сам по себе очень сложен, это не типичный ассоциативный список поаналогии с ларавель или симфони, в Joomla всё намного сложнее

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

sivers

  • Живу я здесь
  • 2465
  • 336 / 0
Самый главный вопрос, можно ли так модифицировать роутер com_content'а чтобы реализовать данную задачу?
Модифицировать можно, чтоб он сефил "левые" параметры и распознавал их потом. Берете станадртный роутер и добавляете правила в функцию build и parse соответственно. А вторую часть задачи (по шаблонам текстовым) уже не роутер решает.

Только не вносите правки в родной роутер - переопределите его сперва, чтоб не затерся при обновлении )

Во вложении плагин, который это умеет.
Роутер контента надо скопировать сюда:
/templates/шаблон/html/com_content/router.php

И править его. Самое первое - заменить константы __DIR__ на JPATH_COMPONENT иначе сразу же с ошибкой вылетит.
« Последнее редактирование: 18.05.2019, 22:01:14 от sivers »
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
нет, это не получится
Нельзя так сразу говорить, не видя ТЗ, тем более о переходе на другие фреймворки, когда сайт ТС на J!.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

voprospoj3

  • Новичок
  • 4
  • 0 / 0
Модифицировать можно, чтоб он сефил "левые" параметры и распознавал их потом. Берете станадртный роутер и добавляете правила в функцию build и parse соответственно. А вторую часть задачи (по шаблонам текстовым) уже не роутер решает.

Только не вносите правки в родной роутер - переопределите его сперва, чтоб не затерся при обновлении )

Во вложении плагин, который это умеет.
Роутер контента надо скопировать сюда:
/templates/шаблон/html/com_content/router.php

И править его. Самое первое - заменить константы __DIR__ на JPATH_COMPONENT иначе сразу же с ошибкой вылетит.

Благодарю за самые дельные сообщения и советы, но, похоже, в последних версиях Joomla механизм роутинга переделан, и не совсем понятно как это все модифицировать и использовать. Функции build и parse лежат не в com_content/router.php а в com_content/helpers/legacyrouter.php и то, похоже, используются совсем не из этого файла...
*

sivers

  • Живу я здесь
  • 2465
  • 336 / 0
Благодарю за самые дельные сообщения и советы, но, похоже, в последних версиях Joomla механизм роутинга переделан, и не совсем понятно как это все модифицировать и использовать. Функции build и parse лежат не в com_content/router.php а в com_content/helpers/legacyrouter.php и то, похоже, используются совсем не из этого файла...
Да все там работает - сам пользуюсь.
Для построения ссылки используйте вот эту функцию:
Код
function contentBuildRoute(&$query)
{
$app = JFactory::getApplication();
$router = new ContentRouter($app, $app->getMenu());

return $router->build($query);
}

поменяйте ее так:
Код
function contentBuildRoute(&$query)
{
$app = JFactory::getApplication();
$router = new ContentRouter($app, $app->getMenu());
    $segments = $router->build($query);
   
    // Здесь можете к дефолтному составу массива $segments добавить свое или убрать лишнее
   
return $segments;
}

аналогично для парсинга ссылок:

Код
function contentParseRoute($segments)
{
$app = JFactory::getApplication();
$router = new ContentRouter($app, $app->getMenu());
    $query = $router->parse($segments);
   
    // Здесь парсите свои кастомные параметры или вовсе отказываетесь от строк выше и парсите по-своему
   
return $query;
}

Если не получится что-то - пишите.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

ajax загрузка компонента на странице материала К2

Автор Divn

Ответов: 0
Просмотров: 527
Последний ответ 13.01.2023, 15:05:52
от Divn
Ошибка при установке компонента

Автор JackThaCat

Ответов: 6
Просмотров: 1483
Последний ответ 11.11.2022, 06:04:13
от Satelitte
Убрать префикс языка многоязычного сайта для компонента

Автор vigiv

Ответов: 0
Просмотров: 446
Последний ответ 25.04.2022, 18:11:47
от vigiv
Вопрос по роутеру: вложенность статей друг в друга

Автор effrit

Ответов: 6
Просмотров: 521
Последний ответ 30.09.2021, 10:17:15
от sivers
Удаление непонятного компонента из Joomla 3

Автор phvsfpgs

Ответов: 7
Просмотров: 528
Последний ответ 24.09.2021, 20:49:54
от ProtectYourSite