Структура внутрішніх посилань сайту на joomla

За останній час я написав і впровадив кілька функцій, що дозволяють фільтрувати висновок сторінок сайту, що працює на CMS Joomla версії 2.5 і новіше. Перед тим, як поділитися ними з громадськістю, торкнуся тему, винесену в заголовок цієї статті, оскільки розуміння принципу формування внутрішніх посилань на сторінки джумловскіх додатків допоможе краще розібратися в їх алгоритмах.

трохи теорії

Рядок запиту (query string) являє собою послідовність пар ключ = значення. розділених амперсандом. Значення ключів і визначають висновок кожної сторінки. URI сторінок генеруються відповідно до структури компонента. Нас зараз цікавить не механізм формування посилань, а результат для кожної сторінки або груп сторінок конкретного додатка. Знаючи, як ідентифікувати ключі і їх значення, можна гнучко маніпулювати висновком контенту.

Фреймворк Джумли визначає деяку кількість стандартних ключів. Розглянемо найбільш використовувані з них.

  • option - ім'я компонента з префіксом 'com_';
  • view - вид (або подання) конкретної сторінки компонента;
  • layout - додатковий варіант виведення конкретного виду;
  • Itemid - ідентифікатор пункту меню, до якого прив'язана сторінка, якщо така прив'язка має місце.

У разі мультимовного сайту додається ще й параметр

Значення ключів для цього компонента:

Приклади виведення сторінок компонентом com_content

Розглянемо кілька прикладів вмісту ключів рядки стану в URI певних сторінок додатку com_content.

Приклад 1. На сторінці, прив'язаною до пункту меню 35, відображається блог обраних матеріалів англомовній частині сайту:

Якби була відсутня пара layout = blog. то матеріали виводилися б за замовчуванням у вигляді списку.

Приклад 3. Сторінка статті, яку ви зараз Новомосковскете:

Використання на практиці

Якщо у вас вистачило терпіння продертися через попередні розділи, вітаю: настав час розглянути сферу застосування отриманих відомостей.

Для створення такого умови скористаємося конструкцією:

Для цілочисельних ідентифікаторів можна використовувати метод getInt:

Тепер можна створити блок коду ініціалізації всіх змінних, відповідних цікавлять нас ключам запиту компонента:

Отримавши значення параметрів виведення сторінок, можна комбінувати їх при створенні умов для фільтрації контента. Функції, згадані на початку статті. містять саме такі умови.

На закінчення - кілька зауважень. Ті, хто використовує додаткові фреймворки - K2, T3 і т. Д. - можуть витягнути ключі, передбачені їх розробниками, за тим же принципом. Як, втім, і з будь-яких інших компонентів. Ті ж, хто хоче сам створювати оригінальні компоненти на основі існуючих або з нуля, можуть почитати в мережі про паттерне MVC (Модель-Вид-Контролер | Model-View-Controller), розібратися з методом JRoute та іншими девелоперськими премудростями. І останнє, що хотів би відзначити: кастомизация під себе - це здорово, але вносити свій код в ядро ​​і розширення слід дуже акуратно, намагаючись звести до мінімуму процес відновлення змін після установки оновлень.

У мене є сайт, де при внутрішніх переходах в каталозі (плагін) я потрапляю на сторінку з посиланням /apparaty-dlya-smazki-i-chistki-nakonechnikov.html?Itemid=105

Це небезпечно для SEO? Для правильного підрахунку переходів?

Я не спец по СЕО, але такий формат посилання мені здається дивним. Мабуть, плагін додає Itemid в рядок запиту вже після перетворення посилання ЧПУ. Не знаю, з якою метою, адже значення ідентифікатора пункту меню можна витягнути так, як описано в статті.

У вашому випадку я спробував би досліджувати, навіщо додається значення Itemid. Якщо кинете лінк на сайт (тут в камментах або в личку - ogri.me/ru/obratnaya-svyaz) - можливо, зможу відповісти конкретніше.