Joomla портал
seo seo Subscribe
seo
0
seo

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.

seo
5th Фев 2011
Теги:
seo

Написать ответ

seo
 
Все права защищены © 2023 Joomla портал
 
 
seo