Структура внутрішніх посилань сайту на 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) - можливо, зможу відповісти конкретніше.