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

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

  • Глобальный модератор
  • 5171
  • 475 / 1
  • Верстаем и кодим. Обращайтесь ;)
Из того, что есть, Вы такие урлы вряд ли получите. - только если создавать пункты меню на все материалы.
*

ChaosHead

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

voprospoj3

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

voland

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

Taatshi

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

Иначе придется в той же категории создавать материалы с тегами и выводить в пункте меню по тегам
*

robert

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

sivers

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

Настраивать надо роутер, чтоб ссылки работали. И шаблоны потом.
На связи в телеге @sivers
*

voprospoj3

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

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

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


*

AlekVolsk

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

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

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

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

sivers

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

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

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

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

robert

  • Живу я здесь
  • 4753
  • 436 / 17
нет, это не получится
Нельзя так сразу говорить, не видя ТЗ, тем более о переходе на другие фреймворки, когда сайт ТС на 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

  • Давно я тут
  • 844
  • 97 / 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;
}

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

Вопрос про кэширование сайта

Автор Dragunskich

Ответов: 2
Просмотров: 129
Последний ответ 12.11.2019, 08:32:48
от xpank
[РЕШЕНО] Получить параметры компонента из произвольного fieldset

Автор effrit

Ответов: 2
Просмотров: 150
Последний ответ 27.10.2019, 22:17:09
от robert
Из файла com_content идет двойная отправка писем на почту

Автор pavel2950

Ответов: 10
Просмотров: 313
Последний ответ 20.10.2019, 11:31:34
от pavel2950
Вывод компонента без оформления темы

Автор AllInC

Ответов: 1
Просмотров: 102
Последний ответ 17.10.2019, 21:21:07
от sivers
Не вставляется видео из Youtube в Joomla 3. (вопрос внутри)

Автор IamAsk YouQuestion

Ответов: 9
Просмотров: 339
Последний ответ 14.09.2019, 09:10:01
от wishlight