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

Доступные кнопки пи

Joomla! позволяет переопределить любую кнопку для вашей собственной задачи (task) и ее название (label), передавая их как первый и второй параметры соответственно. В стандартной поставке Joomla! доступны следующие кнопки:

Если бы вы хотели создать пользовательскую кнопку, которая выглядит и ведет себя как основные, используйте функцию custom() из JToolBarHelper, используя task, icon, mouse-over image и text description в качестве параметров.

Резюме

Мы создали основные файлы Компонента. Joomla! теперь знает, что этот Компонент доступен как для ИА так и для ИП. Используя стандартные HTML и CSS классы он будет отображаться аналогично другим Компонентам системы, что делает возможным использование различных шаблонов. Для Компонента доступны основные панели инструментов и с помощью переменной $task могут быть назначены дополнительные.

Разработка ИА

Создание и управление Обзорами является крупнейшей задачей нашего Компонента. Чтобы начать добавлять Обзоры мы добавим форму и некоторые функции БД. Это также позволит некоторым из наших обозревателей ресторана высказать свои замечания. В следующих разделах этой главы мы рассмотрим:

  • Создание таблицу БД для хранения Обзоров

  • Создание основной формы для ввода данных

  • Обработка данных и добавление их в БД

  • Листинг существующих Обзоров

  • Редактирование и удаление Обзоров

Создание таблицы бд

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

CREATE TABLE 'jos_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) unsigned NOT NULL default '0',

'credit_cards' varchar(255) NOT NULL,

'cuisine' varchar(31) NOT NULL,

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

'review_date' datetime NOT NULL,

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

PRIMARY KEY ('id')

);

Если вы используете PhpMyAdmin введите jos_reviews как имя таблицы с 13 полями:

После нажатия кнопки Go, то вы увидите таблицу. Заполните ее так, как это показано на картинке:

Убедитесь, что в поле id выбрано как auto_increment и primary key:

Создание класса Table

Мы могли бы создать отдельные функции для добавления, обновления и удаления Обзоров. Однако, это элементарные функции, которые вы предпочли бы не писать. К счастью, команда Joomla! уже сделала это за вас. Класс JTable предоставляет функции для создания, чтения, обновления и удаления записей из таблицы БД. Для того чтобы воспользоваться JTable, мы должны написать расширение (подкласс) для jos_reviews. В папке /administrator/components/com_reviews создайте папку с именем таблицы. В этой папке создайте файл review.php и введите следующий код:

<?php

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

class TableReview extends JTable

{

var $id = null;

var $name = null;

var $address = null;

var $reservations = null;

var $quicktake = null;

var $review = null;

var $notes = null;

var $smoking = null;

var $credit_cards = null;

var $cuisine = null;

var $avg_dinner_price = null;

var $review_date = null;

var $published = null;

function __construct(&$db)

{

parent::__construct( '#__reviews', 'id', $db );

}

}

?>

После расширения класса JTable мы добавим все столбцы таблицы БД в качестве переменных и обнулим их. Также мы переопределить конструктор класса: метод __construct(). Как минимум, наш __construct() будет принимать объект базы данных в качестве параметра и будет вызывать родительский конструктор, используя имя таблицы БД (где #__ это префикс таблиц), первичный ключ и объект БД

Почему используется #__ в качестве префикса?

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

Класс TableReview наследует функции Bind(),store(), Load (), delete(). Эти четыре функции позволяют Вам управлять записями в базе данных, не написав ни одной строки SQL.

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