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

Включение sql-запросов

Чтобы добавить таблицы для управления Обзорами мы должны выполнить некоторые SQL запросы. Для этого мы добавим файлы с запросами, которые будут выполняться при установке или удалении. Создайте файл install.mysql.sql в /administrator/components/com_reviews и добавьте следующие запросы:

CREATE TABLE IF NOT EXISTS '#__reviews' (

'id' int(11) NOT NULL auto_increment,

'name' varchar(255) NOT NULL,

'address' varchar(255) NOT NULL,

'reservations' varchar(31) NOT NULL,

'quicktake' text NOT NULL,

'review' text NOT NULL,

'notes' text NOT NULL,

'smoking' tinyint(1) NOT NULL default '0',

'credit_cards' varchar(255) NOT NULL,

'cuisine' varchar(31) NOT NULL,

'avg_dinner_price' tinyint(3) NOT NULL default '0',

'review_date' datetime NOT NULL,

'published' tinyint(1) NOT NULL default '0',

PRIMARY KEY ('id')

);

CREATE TABLE IF NOT EXISTS '#__reviews_comments' (

'id' int(11) NOT NULL auto_increment,

'review_id' int(11) NOT NULL,

'user_id' int(11) NOT NULL,

'full_name' varchar(50) NOT NULL,

'comment_date' datetime NOT NULL,

'comment_text' text NOT NULL,

PRIMARY KEY ('id')

);

Есть два отличия от ранее созданных запросов. Во-первых, мы добавили дополнительные условия IF NOT EXISTS. Если была проблема при удалении Компонента и таблицы существуют, возможно, также из резервной копии, это позволит предотвратить возникновение ошибки. Кроме того, в запросе мы используем #_ префикс таблиц, который будет заменен на принимающей стороне Joomla!. В дополнение к установке, мы хотим создать SQL-сценарий удаления, который будет удалять таблицы чтобы не оставить никаких следов Компонента. Создайте файл uninstall.mysql.sql в /administrator/components/com_reviews и добавьте следующий код:

DROP TABLE #__reviews;

DROP TABLE #__reviews_comments;

Код обоих этих файлов будет использован, так как мы определили их в тегах <install> и <uninstall> в XML-файле.

Создание пунктов меню иа

В XML-файле в тегах <administration> мы определяем пункты меню для Компонента в ИА. Если мы будем управлять только одним типом записи, следующего фрагмента будет достаточно для установления связей с ИА:

<menu> Обзоры Ресторанов </menu>

Однако наш Компонент управляет как Обзорами, так и комментариями. Поэтому в пункте Обзоры Ресторанов создадим два пункта подменю. В следующем XML-фрагменте мы располагаем пункты меню в тегах <submenu>. Первый пункт использует link чтобы определить жесткую ссылку на index2.php?option=com_reviews, второй использует task для формирования ссылки index2.php?option=com_reviews&task=comments

<submenu>

<menu link="option=com_reviews">Управление Обзорами</menu>

<menu task="comments">Управление коментариями</menu>

</submenu>

Дополнительные сценарии установки

После установки Компонента, Joomla! отображает стандартное сообщение об успехе вместе с описанием, приводимым в XML-файле. Общее сообщение об удалении также генерируется при удалении. Мы можем переопределить эти сообщения с помощью пользовательского кода. Создадим install.reviews.php файл в /components/com_reviews с таким кодом:

<?php

defined( '_JEXEC' ) or die( 'Restricted access' );

function com_install()

{

?>

<div class="header">Поздравляем, Компонент Обзоры

Ресторанов готов к работе!</div>

<p>

Поздравляем с покупкой и успешной установкой

Компонента Обзоры Ресторанов!

Несомненно, вы на пороге многих радостных часов

создания и организации всех общепитов вашего

города. Чтобы начать работу, перейдите в

Components / Restaurant Reviews / Manage Reviews

(Компоненты / Обзоры ресторанов / Управление

Обзорами )и нажмите кнопку "New" в правом углу

экрана.

Также не забудьте установить сопровождающие Плагины

и Модули для продвижения ваших Обзоров по всему сайту!

</p>

<?php

}

?>

Для деинсталляции создайте файл uninstall.reviews.php в /components/com_reviews такого содержания:

<?php

defined( '_JEXEC' ) or die( 'Restricted access' );

function com_uninstall()

{

?>

<div class="header">Обзоры ресторанов удалены из вашей

системы.</div>

<p>

Очень жаль, что Вы удалили Компонент!

Для полного удаления Компонента убедитесь,

что также удалены Модули и Плагины.

</p>

<?php

}

?>

Ссылки на файлы с этими сценариями находятся сразу после <description> в XML-файле:

<installfile>install.reviews.php</installfile>

<uninstallfile>uninstall.reviews.php</uninstallfile>

Joomla! будет загружать файл install.reviews.php при установке и uninstall.reviews.php при удалении и вызывать функции com_install() и com_uninstall() соответственно. Эти функции можно использовать не только для вывода сообщений. Функция com_install() вызывается сразу после завершения процесса установки, так что она может быть использована для первого ознакомления пользователей с конфигурацией. Кроме того, функция com_uninstall() вызывается непосредственно перед удалением Компонента, любой вывод генерируется в буфер и отображается после удаления Компонента. Если com_install() или com_uninstall() возвращает ошибку (false), будет произведен откат. Это может быть использовано для предотвращения установки Компонента, например, когда целевая система не отвечает минимальным требованиям. Также может быть использовано для предотвращения удаления Компонента, который опубликовал ссылки на пункт меню.

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