Активизация модуля Price
Затем в списке модулей вызываем наш модуль и видим табличку — Прайс-
лист (рис. 11.2).
Теперь несколько замечаний о работе этого модуля:
» прайс-лист нужно сохранить под именем l.csv и поместить в каталог
/modules/Price;
? файл должен быть в формате CSV (разделители — запятые);
138 Часть III. SLAED CMS
D внешний вид таблицы можно изменить в файле excelit.php. Думаю, для
вас это не составит труда.
Рис. 11.2. Вывод прайс-листа
ГЛАВА 12
Создание собственных модулей
12.1. Совместимость модулей
SLAED CSM и PHP-Nuke
Создать собственный модуль в Slaed так же легко, как и в PHP-Nuke. Более
того, даже синтаксис подобен. Сделано это для того, чтобы можно было
легко импортировать модули, написанные для PHP-Nuke, в Slaed. Однако не
нужно думать, что любой модуль, написанный для PHP-Nuke, будет работать
в Slaed. Нет. Его придется адаптировать под особенности конкретной CMS.
Например, если модуль работает с базой данных PHP-Nuke, то потребуется
изменить все SQL-запросы, адаптировав их под таблицы Slaed.
В данной главе мы адаптируем написанный ранее модуль random_image.
Этим мы убьем двух зайцев сразу: разберемся, как переносить модули из
PHP-Nuke в Slaed, и рассмотрим разработку модуля для Slaed.
12.2. Простой модуль
В данном разделе мы импортируем наш простой разработанный для PHP-
Nuke модуль, выводящий случайную картинку.
Первым делом следует создать в каталоге modules каталог randomimage.
После этого создаем каталог images и помещаем в него наши картинки. Как и в
случае с PHP-Nuke, нам нужно создать каталог language и поместить в него
Два файла: lang-russian.php и lang-english.php. Чтобы вы лишний раз не
листали книгу, снова приведу листинги этих файлов. Они такие же, как и в случае
с PHP-Nuke.
140
Часть III. SLAED CMS
Вот файл lang-russian.php:
define(«RND_TITLE»,»Случайная картинка»);
?>
Второй языковый файл, langenglish.php, будет выглядеть так:
define(«RND_TITLE»,»Random image»);
?>
He спешите копировать главный файл модуля — index.php. Он почти такой
же, но отличия все же есть. Рассмотрим листинг 12.1.
// Запрещаем прямой вызов модуля
if (! defined (·MODULE_FILE ·) ) {
die («You can’t access this file directly…»);
}
// Переменная $module__name содержит имя модуля
$module_name = basename(dirname( FILE ));
// Подключаем» языковый файл в зависимости от выбранного пользователем
// языка
// Функция get__lang() сама подключит нужный файл
get_lang($module_name);
// Определяем заголовок странички
$pagetitle = «$defis Случайная картинка»;
// Вставляем шапку сайта
include(«header.php»);
// Открываем таблицу для вывода данных
OpenTable();
// Это заголовок модуля
title(«Случайная картинка»);
Глава 12. Создание собственных модулей
141
/? Начинается код модуля
// Это наш каталог, в котором будут храниться картинки
$dir = ‘modules/random_image/images/’;
// Открываем каталог
$dh = opendir($dir);
// Читаем список файлов
while (false !== ($filename = readdir($dh)))
{
$files[] = $filename;
?
II Получаем случайное число от 2 до ?, где N — число элементов каталога
$к = mt_rand(0, count($files)-l);
// Выводим нашу константу
echo «
» . RNDJTITLE . «
// Выводим картинку
echo «
// Закрываем таблицу
CloseTable ();
// Вставляем нижнюю часть сайта
include(«footer.php»);
?>
Теперь поговорим об отличиях от PHP-Nuke. Во-первых, нам больше не
требуется подключать mainfile.php. Во-вторых, нам не нужна переменная
Sindex— в Slaed вы можете использовать переменную с таким же названи-
ем, но она будет обычной переменной и никак не будет влиять на вывод
блоков. В-третьих, нам необходимо определить переменную $pagetitle,
задающую заголовок страницы:
Spagetitle = M$defis Случайная картинка»;
беременная $def is — это разделитель, который задается в панели
администратора на странице Конфигурации.
142 Часть III. SLAED CMS
Кроме этого, с помощью функции title о следует задать заголовок модуля,
например:
title(«Случайная картинка»);
Поэтому, по большому счету, оператор
echo «» .
5th Фев 2011
|
Теги:
|