RNDJTITLE . ««;
нам уже не нужен. Вместо него лучше вызвать функцию title ():
title(RNDJTITLE);
12.3. Активация модуля
В разделе Модули панели администратора активизируйте наш модуль
(рис. 12.1).
Рис. 12.1. Активизация модуля
Глава 12. Создание собственных модулей 143
После активизации наш модуль будет отображен в списке модулей.
Запустите его (рис. 12.2).
Рис. 12.2. Результат запуска модуля
Как видите, дублировать надпись «Случайная картинка» ни к чему, поэтому
Удалите «лишний» оператор echo из кода модуля.
12.4. Передача параметров модулю
Нашему модулю, как и любому другому PHP-сценарию, можно передать
параметры. Передача параметров очень важна. Да, наш модуль прост: он
выводит картинку и завершает работу. А ведь другие модули могут, например,
п°странично выводить информацию, и потребуется навигация между стра-
ницами. Делается это все просто.
144
Часть III. SLAED CMS
В вывод модуля помещаются ссылки вида:
Ha3afl
Bnepefl
А в теле модуля анализируется переменная page (имя переменной может
быть любое):
if ($page == «back») …
12.5. Подробно об адаптации модулей
PHP-Nuke
В данной главе мы адаптировали модуль, написанный нами ранее. Понятно,
что наш модуль использовал далеко не все возможности PHP-Nuke, поэтому
часть из них осталась незатронутой, следовательно, у вас могут быть
проблемы при адаптации модулей, использующих все возможности PHP-Nuke.
Сейчас мы не будем рассматривать какой-то определенный модуль, чтобы не
сбивать вас с толку примерами кода из этого модуля. Вместо этого мы
рассмотрим абстрактный модуль PHP-Nuke.
12.5.1. Код защиты модуля
Первым делом заменим код защиты от непосредственного вызова модуля.
Обычно этот код находится в самом начале файла модуля. В PHP-Nuke
данный код выглядит примерно так:
if (!defined(·MODULE_FILE·)) {
die («You can’t access this file directly…»);
}
или так:
if (!eregi(«modules.php», $_SERVER["PHPJSELF"])) {
die («You can’t access this file directly…»);
}
В первом случае можно ничего и не менять, что мы и сделали при адаптации
модуля randornjmage.
Глава 12. Создание собственных модулей
145
Но разработчики Slaed рекомендуют все же использовать следующий код:
if (!defined(MMODULE_FILEM)) {
Header(«Location: ../../index.php»);
exit;
}
В этом случае вместо вывода сообщения об ошибке браузер будет
перенаправлен на главную страницу сайта.
12.5.2. Новый вызов файла конфигурации
Некоторые модули PHP-Nuke вызывали файл конфигурации config.php так:
include(«config.php»);
В Slaed нужно использовать следующий код:
include(«config/config.php»);
12.5.3. Код доступа к базе данных
Модули PHP-Nuke получают доступ к базе данных через переменную $dbi.
В Slaed данная переменная называется $db. Поэтому теперь все переменные
$dbi должны называться просто — $db.
Вот пример старого (PHP-Nuke) кода:
global $prefix, $dbi;
Его нужно заменить следующим кодом:
global $prefix, $db;
Кроме того, вам нужно заменить SQL-функции, указанные в табл. 12.1.
Таблица 12.1. SQL-функции PHP-Nuke и Slaed
PHP-Nuke
sql_query
sqljetch_array
sql_fetchjrow
sqljiumjrows
Slaed
$db->sql_query
$db->sql_fetchrow
$db->sql_fetchrow
$db->sql_numrows
146 Часть III. SLAED CMS
Таблица 12.1 (окончание)
PHP-Nuke
sql_free_result
mysql_query
mysql_fetch_array
mysql_fetch_row
mysql_num_rows
mysql_free_result
Slaed
$db->sql_freeresult
$db->sql_query
$db->sql_fetchrow
$db->sql_fetchrow
$db->sql_numrows
$db->sql_freeresult
Примечание
Весьма желательно заменить все функции mysql* на соответствующие им
функции $db->sql*, поскольку это обеспечит легкий перенос вашей CMS на
любую СУБД, а с функциями mysql* код будет работать только с MySQL.
В функциях не забудьте объявить переменную $db как глобальную:
global $prefix, $db;
12.5.4. Вызовы
ОрепТаЫе2() и CloseTable2()
Все вызовы функций OpenTable2() и cioseTable2 () нужно заменить на
функции OpenTable () и closeTable () соответственно.
12.5.5.
5th Фев 2011
|
Теги:
|