Крупнейшая биржа рекламы в Телеграм
0 Пользователей и 1 Гость просматривают эту тему.
  • 9 Ответов
  • 4914 Просмотров

Здравствуйте! После прочтения топиков про ЧПУ, ItemID и индексацию страниц в качестве эксперимента в функции getItemId в /includes/joomla.php вставил в самом начале функции return ""; и теперь имею ссылки на контент в виде sitename/content/view/N#/

Очень хотелось бы узнать мнение специалистов, может ли данное изменение на чем-либо отразиться кроме бардака в расположении модулей. Я просто решил переделать шаблон кардинальным образом и наверное расположение модулей зашью прямо туда (буду анализировать $option в коде шаблона).

*

smart

  • Администратор
  • 6485
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Ну помимо расположения модулей, не будут работать проверки уровня доступа к пунктам меню. Не будут загружаться параметры пунктов меню... Много чего работать не будет...

я убрал генерацию itemid только для элементов контента. Smart, можешь по памяти сказать, что отвалится именно при таком ограничении? Или надо в код лезть и там смотреть?

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

Поделюсь результатами ,как и обещал, возможно, это кому то окажется полезным.

На сайте было два места где располагался материал - главная страница и интерфейс компонента AlphaContent. Оба доступны через пункты меню, ItemId равные 1 и 31 соответственно.
Что было сделано: в файлах, где формируются ссылки для выводимых материалов было закоментировано все, что добавляло в ссылку ItemId. У меня это были файлы от com_content, com_alphacontent и мамбот от JComments.
После этого в файл /includes/sef.php было внесено изменение, для всех урлов имеющих $option=content и с отсутствующим ItemID в ссылке принудительно добавлялся ItemID = 31.

В результате при открытии главной страницы количетсво запросов к базе упало с 37 до 23, при открытии AlphaContent с 46 до 27.

Это связано с тем, что при старом варианте работы для каждого материала выполнялся запуск метода getItemId, вычислящий номер ItemId для подстановки в формирующуюся ссылку.
На текущий момент я продолжаю тестировать сайт, пока что потерь в функциональности не обнаружено (опубликованных модулей у меня нет).
Возможно, кому то эта информация пригодится, но если будете это делать, делайте, пожалуйста, на свой страх и риск)))

я что-то поторопился)) рассказал тока о том, ради чего сам это делал - об уменьшении числа обращений к базе.
Минусы:
Хотя это уже говорилось, повторюсь - при таком изменении нарушится схема расположения модулей, то есть расположение модулей будет одним и тем же (как для пункта меню с ItemId=31), независимо от того, на какой странице мы находимся в момент когда жмем на ссылку.
Если для пунктов меню установлены разные уровни доступа, также может произойти перекос.

Если у кого-то есть идеи о том, что еще может случиться, отпишите, пожалуйста.

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

smart

  • Администратор
  • 6485
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Если для пунктов меню установлены разные уровни доступа, также может произойти перекос.
дело не только в уровнях доступа... согласно параметра Itemid для блог-разделов и блог-категорий к примеру грузятся параметры пункта меню... если этого параметра нет, то блог отображаться будет по дефолтным настройкам...

"если этого параметра нет"
этот параметр как раз есть. его нет только в сгенеренных ссылках, которые отображаются на странице, а в движок он передается. просто я не могу предложить универсальный метод вычисления этого параметра (ItemId) налету - я значение этого параметра подставляю в sef в виде константы, потому что меня вполне устраивает, что он будет одинаковым. для других задач, возможно, потребуется алгоритм по вычислению этого параметра, возможно, даже отличный от оригинального алгоритма.

я пока столкнулся с такой проблемой - есть другие места, где генерится ItemId - например, если в редакторе JCe сделать ссылку ан внутреннюю статью. Поскольку я хочу ради эксперимента вообще иметь все ссылки на материал в виде sitename/content/view/id/ , то я, наверное, внесу изменения и в мамбот mossef.

ВЫскажите, пожалуйста, предположения о возможных проблемах с учетом указанных здесь уточнений.
*

smart

  • Администратор
  • 6485
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
этот параметр как раз есть. его нет только в сгенеренных ссылках, которые отображаются на странице, а в движок он передается. просто я не могу предложить универсальный метод вычисления этого параметра (ItemId) налету - я значение этого параметра подставляю в sef в виде константы, потому что меня вполне устраивает, что он будет одинаковым
но это означает, что параметры отображения главной страницы, и какого-либо блог-раздела будут совпадать... ведь Joomla именно исходя из значения Itemid выбирает нужный пункт меню и из него берет параметры для отображения (сколько там колонок и т.д.)...

Ну конкретно у меня ситуация такая - все тексты открвываются как бы для пункта меню, соответствующего AlphaContent, меня это вплне устраивает.
А в более универсальном варианте - если надо определить с какой именно страницы пришла эта ссылка в сеф, чтобы открыть ее с соответствующими настройками - можно ли это сделать как то через http[referrer]?
Для меня это вопрос важен, если будет найдено решение, то я смогу его применить на другом сайте, где уже будет несколько старниц для отображения контента и правильно определенный ItemID там будет играть важную роль.

Спасибо.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

SEF и красивые ссылки

Автор sergvm

Ответов: 10
Просмотров: 413
Последний ответ 14.06.2020, 19:52:38
от sergvm
После включения SEF ссылки не до конца становятся красивыми

Автор borro

Ответов: 3
Просмотров: 1049
Последний ответ 19.04.2020, 13:48:12
от robert
Как сделать короткие ссылки Joomla 3.9?

Автор ezheck

Ответов: 12
Просмотров: 853
Последний ответ 10.01.2020, 07:44:37
от arma
SEF ссылки в AcyMailing

Автор vladimirwk

Ответов: 3
Просмотров: 1185
Последний ответ 28.11.2019, 20:00:23
от polezniy
Вдруг перестают работать ссылки меню при включенном SEF

Автор natashalina

Ответов: 2
Просмотров: 1134
Последний ответ 14.12.2017, 09:59:54
от natashalina