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

Параметры

Наши Обзоры удовлетворяют всем особенностям, но есть некоторые проблемы.

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

Добавим параметры для расширений:

  • Параметры для Модулей

  • Параметры Плагины

  • Параметры для Компонентов

Добавление параметров к расширениям

Ранее мы выполняли запросы, чтобы зарегистрировать расширения в Joomla!. В таблицах, где мы вставляли эти данные, есть столбец с именем Params. Эта колонка позволяет хранить конфигурацию значений параметров в базе данных. Однако колонка сама по себе не обеспечивает любой формат для значений параметров. Для этого мы введем значения параметров, как часть XML-документа для настройки. Этот файл будет рядом с нашим основным файлом Модуля и будет содержать основную информацию идентификации, а также список всех возможных настроек

Параметры для Модулей

Модуль, что мы писали в Обзорах уже содержит логику для различных типов отображения и различных сценариев извлечения данных. Поэтому не составит большого труда создать параметры вывода и использовать их по необходимости. В /modules/mod_reviews создайте XML-файл конфигурации mod_reviews.xml и введите такой код:

<?xml version="1.0" encoding="utf-8"?>

<install type="module" version="1.5">

<name>Restaurant Reviews</name>

<author>Sumptuous Software</author>

<creationDate>January 2007</creationDate>

<copyright>(C) 2007</copyright>

<license>Commercial</license>

<authorEmail>support@packtpub.com</authorEmail>

<authorUrl>www.packtpub.com</authorUrl>

<version>1.0</version>

<description>A module for promoting restaurant

reviews.</description>

<params>

<param name="random" type="radio" default="0" label="Randomize"

description="Show random reviews">

<option value="0">No</option>

<option value="1">Yes</option>

</param>

<param name="@spacer" type="spacer"

default="" label="" description="" />

<param name="items" type="text" default="1" label="Display #"

description="Number of reviews to display" />

<param name="style" type="list" default="default" label="Display

style" description="The style to use for displaying the reviews.">

<option value="default">Flat</option>

<option value="bulleted">Bulleted</option>

</param>

</params>

</install>

Документ XML начинается с определения стандарта XML, все остальные элементы заключены в <install>. Этот элемент определяет, что описываемое расширение является Модулем и предназначено для Joomla!. Внутри <install>, у нас есть несколько элементов, которые предназначены для идентификации: name, author, creation date, copyright, license, author email, author URL, version и description. За исключением description они будут появляться в Модулях в Extension Manager в ИА.

После элементов идентификации, добавляется элемент <params>, который включает несколько элементов <param>. Для нашего Модуля мы хотели бы предоставить возможность управления выводом Обзоров в случайном порядке, количеством выводимых Обзоров за раз и стиля отображения.

Документ XML позволяет не только создавать эти параметры, но и определить как они будут отображаться в ИА. Управление выводом Обзоров в случайном порядке имеет опции да и нет, поэтому целесообразно использовать переключатель. Назначим этому параметру имя random (в соответствии с ранее созданным кодом), тип radio, значение по умолчанию 0 (для No), текст для label = Randomize, и описание Show random reviews. Внутри определяем два элемента <option>, один со значением 0 и соответствующим текстом, а другой с 1 - очень похоже на синтаксис HTML тега options, что в select. Два других параметра для работы с дисплеем, поэтому отделимся от предыдущего. Параметр с именем @spacer имеет тип spacer и предназначен как раз для этого. Для выбора количества (items) отображений мы хотим, чтобы администратор просто вводил цифру. Используем параметр типа text и устанавливаем значение по умолчанию 1.

Стили необходимо выбирать из доступных. Мы используем тип параметров list и определяем варианты плоский (flat) и маркированный (bulleted) аналогично тому, как мы делали для радио-кнопки.

Какие параметры доступны для использования?

Модули, Плагины Компоненты позволяют определить параметры конфигурации через файлы XML. Многие распространенные типы параметров определены заранее и могут быть использованы в любом расширении. Каждый параметр, что вы определяете должен иметь пять основных атрибутов. Во-первых, вы должны дать параметру имя (name), чтобы вы могли ссылаться на него в коде. Далее, необходимо значение по умолчанию (default). Оно будет отображаться и использоваться, если значение не выбрано. Чтобы определить параметр, вы должны дать ему как отображаемое название (label), так и описание (description), которое появляется при наведении курсора мыши над ним. Наконец, необходимо указать тип параметра. Вот список типов по категориям:

Содержание:

section

Список всех опубликованных разделов

category

Список всех опубликованных категорий

Ввод текста:

text

стандартный ввод текста

textarea

текстовое поле

password

стандартный ввод текста, но символы заменены звездочками

editors

для ИА, чтобы отобразить WYSIWYG редактор для ввода

Выбор:

menu

Список всех опубликованных меню

menuitem

Все опубликованные пункты меню в виде списка

filelist

список файлов для выбора, с учетом базового пути папки

folderlist

список папок для выбора, с учетом базового пути папки

ImageList

список изображений для выбора, с учетом базового пути папки

list

список элементов для выбора. Прямо указаны в определении параметра

radio

список радио-кнопок для выбора. Прямо указаны в определении параметра

sql

Создает выпадающий список из условии запроса SQL

Предопределенные:

helpsites

список веб-сайтов с переводами файла справки для выбора

languages

список установленных языков для выбора

spacer

создает визуальное разделение между параметрами; не имеет входных значений

timezones

список всех мировых часовых поясов

Другие:

hidden

Создает скрытый элемент формы с указанными value и name

После сохранения XML-документа, перейдите в Extensions / Module Manager в ИА. Здесь выберите из списка Restaurant Reviews, и вы должны увидеть такой экран:

Попробуйте установить параметры, сохранить Модуль, открыть его вновь – Вы должны увидеть изменения.

Теперь нам необходимо сделать некоторые изменения в коде, чтобы параметры начали работать. Откройте /modules/mod_reviews/mod_reviews.php и измените код (изменения выделены):

<?php

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

require(dirname(__FILE__).DS.'helper.php');

$random = $params->get('random', 0);

$style = $params->get('style', 'default');

if($random)

{

$list = modReviewsHelper::getRandomReview();

}

else

{

$list = modReviewsHelper::getReviews($params);

}

require(JModuleHelper::getLayoutPath('mod_reviews', $style));

?>

Для Модулей $params доступно глобально. Этот объект имеет функцию get(), которая возвращает значение параметра по имени (и, опционально, значение по умолчанию). Наш предыдущий код обрабатывает опцию random, теперь мы делаем небольшое изменение и вызывае6м getLayoutPath для обеспечения различных стилей. После сохранения файла, вернитесь в панель конфигурации и установить для параметра Display # значение 2 и сохраните Модуль. В ИП Модуль должен отобразить примерно такое:

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