Создание модуля для панели управления в Joomla 3
Движок Joomla уникальный в своём роде. Те, кто пользуются им достаточно давно, понимают, что он состоит из множества частей отвечающих за разное выполнение действий. Подобно Lego, наша CMS собрана из деталей и каждая деталь для чего-то требуется. При сильном желании можно найти это в панели и убрать. При этом детали нашего конструктора могут быть как внутренними (системными), так и внешними, и всё это можно настроить (изменить, удалить, установить). Так вот, сегодня речь пойдёт о стартовой страницы панели управления Joomla 3.x. Перед тем как мы создадим для неё модуль, для начала разберёмся, что же вообще можно сделать с этой страницей. Новичков удивит, но то, что вы видите на ней, абсолютно каждый элемент можно изменить. Опытные программисты смогут даже структуру внешнего вида поправить, но для этого требуется хорошее знание кода и самой CMS. Однако мы станем говорить о возможностях доступных каждому.
Панель управление делиться на несколько частей и состоит из следующих модулей:
1. Admin Menu – верхнее меню, думаю всем понятно, зачем оно нужно. Но мало кто знает, что все ссылки и расположение пунктов можно менять. За вывод ссылок хоть и отвечает модуль Admin Menu, но вы ведь можете создать свой вместо него и написать там что угодно.
2. User Status – нижняя панель статистики. В ней так же находиться модуль Joomla Version, он показывает используемую версию движка справа. Мне кажется, эта самый бессмысленный элемент в панели, за исключением статистики посетителей. Было бы куда удобней видеть эту информацию, где не будь, повыше.
3. Title – единственное предназначение этого элемента, сообщать место, где вы находитесь. Ну, ещё справа находиться логотип. Может показаться, что он не нужен, но благодаря Title, создать уникальный стиль панели управления становиться лёгкой задачей. Представьте, что на этом месте фирменный цвета вашей компании и собственный логотип. Скажите пустяк, но всё равно приято.
4. Toolbar – это панель инструментов. Используется часто и те, кто привык к её обычному расположению, скорее всего не станут в ней что-то менять.
5. Quick Icons – панель быстрого доступа (на картинке слева). Не знаю как остальным, но для меня она бесполезна, всё равно пользуюсь верхним меню.
6. Область на картинке справа – в данный момент там установлены три модуля Popular Articles, Recently Added Articles и Site Information. Количество размещённых элементов в ней не ограничено, но, к сожалению joomla предлагает мало стандартных модулей для установки в этом месте. Да и те, что имеются в наличии, хорошими трудно назвать. Вот поэтому мы и рассмотрим создание модуля для этой области.
Все эти части, как я и говорил выше, настраиваются. Для того чтобы изменить внешний вид панели, или настроить отдельный модуль, перейдите в «Панель управления – Менеджер модулей – слева выбрать панель управления».
Обратите внимание на позиции некоторых модулей. Наша область называется cpanel, именно cpanel отвечает за вывод на стартовой странице панели управления. Для того чтобы настроить какой-то конкретный модуль, необходимо нажать по его названию.
Создание модуля для панели
Теперь поговорим о том, как же создаются они. Сделать модуль оказалось просто. Достаточно создать два файла в специально отведённом для этого месте, после чего найти его через амин панель, установить и настроить. Наш модуль будет показывать текстовые ссылки на сторонние ресурсы, которые мы сами же будем добавлять.
И так, создаём папку mod_mymodule, внутри которой должны располагаться два файла - mod_mymodule.xml, mod_mymodule.php. Эти файлы создаём при помощи знакомой нам программы NotePadd++.
Открываем mod_mymodule.xml и вставляем это:
XML код:
<?xml version="1.0" encoding="utf-8"?> <extension type="module" version="3.6" client="administrator" method="upgrade"> <name>Мой модуль</name> <author>WebDesign</author> <creationDate>august 2016</creationDate> <copyright>Copyright (C) 2016. All rights reserved.</copyright> <license>Public License</license> <authorEmail>Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.</authorEmail> <authorUrl>www.author.ru</authorUrl> <version>1.0.0</version> <description>Модуль для панели управления.</description> <files> <filename module="mod_mymodule">mod_mymodule.php</filename> </files> <config> <fields name="params"> <fieldset name="basic"> <field name="texturl1" class="" type="text" default="" label="Текст ссылки 1" description="Название ссылки 1." /> <field name="cPanel-Link1" type="url" default="" label="Установить ссылку 1" description="Вставте сюда url страницы." filter="string" /> <field name="texturl2" class="" type="text" default="" label="Текст ссылки 2" description="Название ссылки 2." /> <field name="cPanel-Link2" type="url" default="" label="Установить ссылку 2" description="Вставте сюда url страницы." filter="string" /> <field name="texturl3" class="" type="text" default="" label="Текст ссылки 3" description="Название ссылки 3." /> <field name="cPanel-Link3" type="url" default="" label="Установить ссылку 3" description="Вставте сюда url страницы." filter="string" /> <field name="texturl4" class="" type="text" default="" label="Текст ссылки 4" description="Название ссылки 4." /> <field name="cPanel-Link4" type="url" default="" label="Установить ссылку 4" description="Вставте сюда url страницы." filter="string" /> </fieldset> </fields> </config> </extension>
Это файл настроек модуля, он мало чем отличается от templateDetails.xml расположенного в каждом шаблоне. Благодаря написанному коду, joomla определяет, что это системный модуль для панели управления. Здесь указаны: название, версия, описание, файлы, находящиеся в папке и т.д. Всё что между тегами <fieldset> это настройки. Правила создания настроек точно такие же, как и для файла templateDetails.xml.
В файл mod_mymodule.php вставляем следующий код:
PHP код:
<?php defined( '_JEXEC' ) or die( 'Restricted access' ); if ($params->get('texturl1')){ $TextUrl1 = '' . $params->get('texturl1') . '';} if ($params->get('texturl2')){ $TextUrl2 = '' . $params->get('texturl2') . '';} if ($params->get('texturl3')){ $TextUrl3 = '' . $params->get('texturl3') . '';} if ($params->get('texturl4')){ $TextUrl4 = '' . $params->get('texturl4') . '';} ?> <?php if ($params->get('cPanel-Link1')){ echo '<a href="' . $params->get('cPanel-Link1') . '">' . $TextUrl1 . '</a>';} else { echo $TextUrl1;} ?> <br> <?php if ($params->get('cPanel-Link2')){ echo '<a href="' . $params->get('cPanel-Link2') . '">' . $TextUrl2 . '</a>';} else { echo $TextUrl2;} ?> <br> <?php if ($params->get('cPanel-Link3')){ echo '<a href="' . $params->get('cPanel-Link3') . '">' . $TextUrl3 . '</a>';} else { echo $TextUrl3;} ?> <br> <?php if ($params->get('cPanel-Link4')){ echo '<a href="' . $params->get('cPanel-Link4') . '">' . $TextUrl4 . '</a>';} else { echo $TextUrl4;} ?>
Он отвечает за показ самого модуля и то, что в нём находится. В данном случае, идёт проверка параметров из mod_mymodule.xml, если поля заполнены, выводится текст из них. Структура бывает сложная – дополнительные папки, скрипты, стили оформления и т.д. Но для работы простого модуля достаточно всего два этих файла.
После того как мы подготовили папку, открываем программу FileZilla и бросаем её в директорию …/administrator/modules/.
В панели управления переходим в «Расширения – Менеджер расширения - Поиск».
При открытии страницы, если всё правильно сделано, Joomla самостоятельно должна найти и добавить в список наш элемент. Выберите его и нажмите на кнопку «Установить» вверху.
Но и это ещё не всё, необходимо создать «Мой модуль» в панели и установить в позицию cpanel. Переходим в «Расширения – Менеджер модулей – выбираем Панель управления», нажимаем на «Создать». В списке ищем наше название и выбираем его:
В открывшейся странице заполняем заголовок, устанавливаем позицию cpanel, пишем ссылки и в конце сохраняемся (показывать заголовок или нет, по желанию).
Если вы сейчас перейдёте на стартовую страницу административной панели, то увидите вверху созданный нами элемент. Вот как он выглядит:
Заключение
Таким образом, любой администратор может создать под личные нужды свой собственный модуль. При этом движок предлагает права доступа, а это означает, что модуль легко скрыть от посторонних глаз. Кстати, точно по такому же принципу создаются модули для других позиций. Вы можете в папке «modules» на сервере взять за основу стандартный модуль, сделать копию и изменить её, так как вам необходимо.
Соседние материалы | ||||
Создаём всплывающее окно авторизации для Joomla | Joomla 3.6: Дополнения, исправления и впечатляющие улучшения |