Home Joomla Статьи Статьи о Joomla Слоеный пирог и com_weblinks Joomla
Слоеный пирог и com_weblinks Joomla PDF Печать E-mail
Автор: А.Волос   

 Слоеный пирог

Речь пойдет о компоненте com_weblinks и о html-разметке страницы Joomla. О том, как легко и просто создать каталог ссылок на сайте Joomla.

Эта CMS и создавалась для интерактивной работы с зарегистрированным пользователем, без прямого кодирования. Хотя тенденция развитя Joomla ведет к тому, чтобы отказаться от компонента com_weblinks вовсе как от бесполезного на сайте, и просто добавляющего лишний вес (более 100 кб - 90 файлов) и без того "тяжелой" системе.  Но пока этот компонент еще присутствует в дистрибутиве и используется некоторыми программистами.

 

Видимая на экране страница сайта Joomla представляет из себя слоеный пирог, в построении которого одновременно участвует много блоков (соответственно много шаблонов).  Здесь сказывается философия Joomla - крупноблочное сайтостроение.  Для каждого блока обязательно есть свой шаблон (макет) html-разметки.

 

Основные блоки:

- шаблон главной страницы (шаблон_сайта/index.php), который своей html-разметкой определяет позиции для модулей и компонентов и выводит эти модули и компоненты.
- шаблон страницы
- шаблоны модулей
- шаблоны компонентов

 

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

 

Начинающему программисту бывает трудно понять, что первая строка в контентной части страницы выводится как заголовок страницы и редактируется на странице редактирования пункта меню, который указывает на эту страницу. Что вторая строка выводится из шаблона компонента com_content или com_weblinks.  А строки в шаблонах как правило - это строковые переменные и их инициализация и локализация производится в языковых файлах, таких как language\ru-RU\ru-RU.mod_weblinks.ini и им подобных.

 

Иногда начинающего ставит в тупик: какой именно шаблон вывел ту или иную строку, которые на экранной странице выглядят как логичное продолжение одного и того-же повествования. Оказывается одна строка находится в одном шаблоне, другая во втором шаблоне, третья в третьем. А таблица со вкладками, расположенная ниже - это вывод из шаблона модуля mod_tabform.

 

Иногда шаблоны модулей называют макетами. Но это вопрос терминологии. Суть одна - это "одежда" для содержимого. Правильнее сказать - разметка. Так вот разметка одной экранной страницы находится в разных файлах каталогов Joomla.

 

Меню

 

Многие начинающие программисты Joomla часто не понимают, что пункты меню могут иметь разные типы. Иными словами - пункты меню могут ссылаться на объекты Joomla разных типов. Это могут быть разные объекты, такие как: компоненты (голосование, поиск, каталог ссылок и тд).

Выбор типа пункта меню:

    Контакты (com_contact)
            Список категорий контактов (categories)
            Список контактов заданной категории (category)
            Контакт (contact)
            Избранные контакты (featured)

    Материалы (com_content)
            Архивные материалы (archive)
            Материал (article)
            Список всех категорий (categories)
            Блог категории (blog category)
            Список материалов категории (category)
            Избранные материалы (featured)
            Создать материал

    Умный поиск (com_search)
            Поиск (search)

    Hello World! (com_helloworld)
            Сообщение (helloworld)

    Ленты новостей (com_newsfeeds)
            Список всех категорий лент новостей (categories)
            Список лент новостей в категории (category)
            Лента новостей (newsfeed)

    Поиск (com_search)
            Форма поиска и список результатов поиска (search)

    Менеджер пользователей (com_users)
            Форма авторизации (login)
            Профиль пользователя (profile)
            Изменить профиль пользователя
            Форма регистрации (registration)
            Восстановление имени пользователя (remind)
            Изменение пароля (reset)

    Ссылки (com_weblinks)
            Список категорий ссылок (categories)
            Список ссылок в категории (category)
            Создать ссылку (weblink)

    Обёртка (com_wrapper)
            Обёртка (wrapper)

    Системные ссылки


Как видим, здесь все типы меню являются компонентами. Своим названием тип пункта меню фактически указывает на имя шаблона своего типа компонента. А шаблоны компонентов находятся в каталогах views (вид):

 

joomla\components\com_weblinks\views\categories
joomla\components\com_weblinks\views\category
joomla\components\com_weblinks\views\weblink
joomla\components\com_users\views\login

 

Как видим имена типов ссылок в меню и имена шаблонов в каталогах vews совпадают.

Разработчик имеет возможность создавать новые нестандартные шаблоны (макеты) для компонентов. Эти новые макеты так же будут отражаться в качестве новых типов меню в окне выбора типов меню. Это отдельная тема.

 

Демоконтент дистрибутива Joomla

 

Посмотрим как выстроена иерархия пунктов Меню "About Joomla" для отображения Компонента com_weblinks на установленном по умолчанию демо контенте  (шаблон  Beez2 - Default) Joomla.

Зайдем в админке на страницу редактирования компонента com_weblinks : Компоненты->Ссылки. Видим, что в демоконтенте, идущем с дистрибутивом создано пять категорий для компонента com_weblinks. Значит ссылки будут распределены по пяти категориям. Все созданные категории будут сохранены в таблице БД #_categories. В этой же таблице сохраняются категории и для других компонентов.

 

Иерархия категорий в компоненте com_weblinks:

Sample Data-Weblinks
|—Park Links
|—Joomla! Specific Links
|—|—Other Resources
Uncategorised

 

В меню About Joomla (в редакторе меню) соответственно создана иерархия пунктов меню:


Иерархия пунктов меню:

Using Joomla! (тип: материал)
|—Using Extensions (тип:  список всех категорий) :: список категорий в материалах
|—|—Components (тип: блог категории)   :: категория в материалах
|—|—|—Weblinks Component (тип: материал)
|—|—|—|—Submit a Weblink  (тип: создать ссылку) :: в компоненте Ссылки
|—|—|—|—Weblinks Single Category (тип: список ссылок в категории) :: в компоненте Ссылки
|—|—|—|—Weblinks Categories (тип: список категорий ссылок) :: в компоненте Ссылки

 

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

index.php?option=com_weblinks&view=form&layout=edit

 

Некоторые пункты в меню могут быть показаны только зарегистрированному пользователю! Например пункт меню с типом "Создать ссылку" будет виден только для зарегистрированных пользователей. Эта возможность создана специально для того, чтобы зарегистрированные пользователи могли создавать ссылки, которые будут размещены на странице.

Таким образом, компонент com_weblinks дает хороший способ интерактивного наполнения страницы интересными ссылками. При этом все ссылки, которые будут размещены на такой страничке, имеют редирект, то есть не будут индексироваться как внешние. Возможно, такие ссылки вы могли наблюдать на форумах. При наведении мышки на такую ссылку, вы увидите адрес своего сайта, и только после клика по ней произойдет перенаправление по указанному Вами адресу.

 

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


Дать возможность зарегистрированному пользователю, наделенному правами, наполнять сайт содержимым без прямого кодирования - основная философия CMS Joomla.

 

Иерархия категорий в пунктах меню отчасти соотносится с иерархией категорий в материалах.
Посмотрим в админке страницу редактирования категорий материалов.


Иерархия категорий в материалах:

 Uncategorised
Sample Data-Articles
|— Joomla!
|—|— Extensions
|—|—|— Components
|—|—|— Modules
|—|—|—|— Content Modules
|—|—|—|— User Modules
|—|—|—|— Display Modules
|—|—|—|— Utility Modules
|—|—|—|— Navigation Modules
|—|—|— Templates
|—|—|—|— Atomic
|—|—|—|— Beez 20
|—|—|—|— Beez 5
|—|—|— Languages
|—|—|— Plugins
|— Park Site
|—|— Park Blog
|—|— Photo Gallery
|—|—|— Animals
|—|—|— Scenery
|— Fruit Shop Site
|—|— Growers
|—|— Recipes

 

Кажется не слишком много категорий для материалов!
Посмотреть иерархию категорий в материалах можно так же при помощи запроса к таблице категорий в БД:

SELECT * FROM `#_categories` WHERE `extension` = "com_content"

В предыдущей статье "Модуль Дерево категорий Joomla" был создан модуль, который при помощи этого запроса выводит дерево категорий для com_content.

 

Для каждой категории в таблице категорий, кроме имени категории, алиаса и тд, указано еще расширение (extention)! Это поле указывает на тип компонента, к которому относится категория. Следующий запрос позволяет увидеть все уникальные расширения, в которых в настоящий момент созданы категории:

SELECT DISTINCT extension FROM `#_categories` WHERE 1

Результат:

com_banners

com_contact

com_content

com_newsfeeds

com_users.notes

com_weblinks

system

 

Для указанных типов компонентов созданы одна или несколько категорий, и в таблице категорий есть поле extension, в котором содержится имя компонента (например com_weblinks)! Это значит, что эта категория относится к типу указанного в этом свойстве компонента.

Например, категории:

- sample-data-weblinks
- joomla-specific-links
- park-links
- other-resources  

Все эти категории материала относятся к компоненту com_weblinks и имеют иерархию!

 Для компонента com_weblinks в БД есть отдельная таблица #_weblinks, в ней содержатся все ссылки и есть поле catid, которое связывает ссылку с категорией ссылок.

 

Посмотрим на экран

 

1. Список категорий ссылок:

 

 

 

Как видим Список категорий выводится в контентную часть страницы в аскетичном виде. Таков макет categories.
В адресной строке:
/joomla/index.php/using-joomla/extensions/components/weblinks-component/weblinks-categories

 

2. Список ссылок в категории выводится в виде таблицы, второй столбец - хиты (макет category).

 

 

В адресной строке:
/joomla/index.php/using-joomla/extensions/components/weblinks-component/weblinks-single-category

 

3. Здесь не виден еще пункт меню, который ссылается на тип "Создать ссылку".
Это потому, что мы зашли как незарегистрированный пользователь.
Если зарегистрируемся на сайте, то этот пункт будет виден (Submit a Weblinks)

 

 

 

Этот пункт меню выводит на страницу создания новой ссылки:
Вид этой страницы так же определяется в макете  компонента.

 

 

Видим страницу с формой и с редактором. Зарегистрированный пользователь может создавать новые ссылки! При этом он должен указать категорию и URL на который будет перенаправлен пользователь по ссылке.

 

Права на создание ссылок и прочие опции компонента com_weblinks устанавливаются в админпанели на странице редактирования компонента в окне пункта меню Настройки (Options). Здесь в таблице с закладками можно настроить опции для ссылки, списка ссылок, списка категорий, макета списка ссылок, интеграцию и права.

 

Ну, вот оказывается, разработчики Joomla все-таки предусмотрели не так уж мало вариантов использования системы и без дополнительных расширений. Используйте уже заложенные возможности, прежде чем упаковывать ваш движок по полной программе сторонними компонентами по каждому пустяку.

 

На сайте, на котором вы сейчас находитесь, так же можно увидеть каталог ссылок, если пройти по пункту Ссылки в главном меню. Но поскольку в сайте нет авторизации, то нет и страницы добавления ссылок авторизованным пользователем.

 

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

Дизайн сайта на Joomla, красота его страниц целиком в руках Joomla дизайнера и программиста. Здесь возможности ограничены только их фантазией и умением. Любой html-шаблон легко превращается в шаблон Joomla.

 

Среди профессионалов Joomla получила название «CMS для домохозяек». Что-ж, возможно и так. Но и в этом сегменте можно создавать красивые, функциональные и замечательные сайты. И они всегда будут востребованы в своей нише заказчиков. Вот например "вкусный" сайт для домохозяек:  http://vkysno-vcem.ru/,   http://edasla.ru/

 

 

 

 

 

 

 

 

 

Обновлено 05.10.2014 11:40