Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Samouchitel_po_razrabotke_rasshireny_dlya_Jooml....docx
Скачиваний:
3
Добавлен:
10.11.2018
Размер:
2.53 Mб
Скачать

Разделение на иа и ип в Joomla

Для всех Joomla! Компонентов, код расширения ИА отделен от кода ИП. В некоторых случаях ИА будет использовать определенные файлы из ИП, например классы таблиц базы данных, но в остальном две отдельные части. Для безопасности не стоит использовать административные функции в коде ИП. Это важно, так как передняя часть и задняя часть похожи по структуре

Так выглядит структура папок Joomla!, также показана структура внутри папки administrator:

Обратите внимание, что папка administrator имеет похожую структуру с корневой папкой. Важно всегда помнить это, чтобы случайно не поместить свой код в неправильную папку.

Регистрация Компонента в бд

Теперь вы знаете, как получить доступ к Компонентам в ИА и ИП. Конечно же вы можете изменять URL, каждый раз, когда вы хотели бы выполнить кусок кода, однако это не будет приемлемым для пользователей. Для правильной навигации необходимо зарегистрировать Компонент в БД путем добавления строки в таблицу Компонентов. Мы проведем регистрацию с помощью следующего запроса. Предполагается, что таблицы БД имеют префикс jos_. Если вы предпочитаете работать с SQL напрямую с помощью командной строки, введите следующий запрос в консоли:

INSERT INTO jos_components (name, link, admin_menu_link,

admin_menu_alt, 'option', admin_menu_img, params)

VALUES ('Restaurant Reviews', 'option=com_reviews',

'option=com_reviews', 'Manage Reviews', 'com_reviews',

'js/ThemeOffice/component.png', '');

Если вы предпочитаете использовать графический интерфейс или веб-менеджер баз данных, такие как PhpMyAdmin, введите

Restaurant Reviews в поле name,

option=com_reviews в поля link и admin_menu_link,

Manage Reviews в поле admin_menu_alt,

com_reviews в поле option и

js/ThemeOffice/component.png в поле admin_menu_img.

Остальные поля оставьте пустыми. Поля menuid, parent, ordering и iscore по умолчанию 0, а enabled по умолчанию 1.

Добавление этой записи дает системе информацию о Компоненте. Здесь указывается имя, которое вы хотите использовать для Компонента. Оно может содержать пробелы и знаки препинания [и кириллицу прим. переводчика]. Вы можете указать и конкретные ссылки для перехода в ИА и ИП. Также определена иконка, используемая в меню Компоненты, описание, что используется в строке состояния браузера - не является необходимым.

После создания основных каталогов и файлов, Компонент готов к выполнению. В любом случае будет добавлен пункт меню в ИА и предоставлена возможность добавить соответствующую ссылку в ИП без использования прямого кодирования URL. После того, как мы записали данные в БД можно обновить ИА в браузере. В меню Компоненты (Components) появятся новые опции:

Теперь, когда Компонент зарегистрирован, вы также можете создать ссылку в ИП. Перейдите в ИА Меню/Главное меню (Menus/Main Menu) и выберите команду Создать (New). На этом экране, выберите Restaurant Reviews. Введите отображаемое название в поле Name [в нашем случае Reviews прим.переводчика] – как показано на рисунке:

Нажмите кнопку Сохранить и перейдите в ИП. Вы должны увидеть Restaurant Reviews.

Теперь Вы можете вспомнить свои навыки PHP-программирования и начать создавать Компонент.

Все запросы к ИП идут через

http://localhost/joomla/index php?option=com_reviews,

а все запросы к ИА через

http://localhost/joomla/administrator/index.php?option=com_reviews. Joomla! является достаточно гибкой, поэтому вы можете делать практически все что пожелаете. В некоторых случаях, у вас уже есть готовый код и Вы, конечно же сможете его использовать. Его нужно будет разделить на соответствующие файлы и разместить в соответствующих папках.

Однако наш Компонент мы будем разрабатывать с нуля. У вас есть возможность использовать ПИ Joomla, пользователей, классы БД и библиотеки по вашему усмотрению. Эти элементы сэкономят вам много времени, как только вы поймете, как они работают.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]