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

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

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

ChaosHead

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

voprospoj3

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

voland

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

Taatshi

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

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

robert

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

sivers

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

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

voprospoj3

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

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

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


*

AlekVolsk

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

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

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

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

sivers

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

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

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

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

robert

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

  • Завсегдатай
  • 1344
  • 176 / 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
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вопрос по Алиас и формировании строки запроса

Автор Alex_dark74

Ответов: 3
Просмотров: 168
Последний ответ 25.06.2020, 15:29:36
от Alex_dark74
Ошибка при установке компонента

Автор JackThaCat

Ответов: 5
Просмотров: 179
Последний ответ 17.06.2020, 07:41:52
от AlexB
Вопрос по CSS

Автор Lemonez

Ответов: 2
Просмотров: 147
Последний ответ 28.02.2020, 19:40:47
от SeBun
Вопрос по реализации сайта

Автор alexupto

Ответов: 3
Просмотров: 161
Последний ответ 17.02.2020, 20:33:21
от AlexB
Как реализовать rel=canonical на страницах компонента com_tags?

Автор alex9158

Ответов: 0
Просмотров: 112
Последний ответ 06.02.2020, 22:24:21
от alex9158