Чтение RSS каналов

Статьи

Статьи

Категории

УстройствоУстройство
Обучающее руководство
ТемыТемы
Оформление и компоненты дизайна
МодулиМодули
Использование и изготовление модулей
БлокиБлоки
Использование и изготовление блоков
ДокументацияДокументация
Описание функций и модулей
ИнформацияИнформация
Полезная информация для администратора

Общее количество: 56 страниц в 8 категориях

Интеграция модулей PHP-Nuke в систему SLAED

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

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

Прошу учитывать, что старые варианты использования кода в модулях PHP-Nuke могут незначительно отличаться от описанных в данной статье.

1. В самом верху изменяем способ защиты для модулей от стороннего доступа.

Старый вариант:
if (!eregi("modules.php", $_SERVER["PHP_SELF"])) {
die ("You can"t access this file directly...");
}


Новый вариант:
if (!defined("MODULE_FILE")) {
Header("Location: ../../index.php");
exit;
}


2. Старые модули PHP-Nuke используют соединение с базой по средствам переменной $dbi. Наша система использует соединение с базой по средствам переменной $db, по этой причине необходимо изменить все переменные $dbi на $db.

• Меняем все глобальные переменные $dbi в функциях, на новые $db. Если это необходимо, указываем переменную $db как глобальную.

Старый вариант: global $prefix, $dbi;
Новый вариант: global $prefix, $db;

• Изменяем структуру запроса в базу данных.

Старый вариант: $result = sql_query("SELECT id, name FROM ".$prefix."_categories WHERE id=$id", $dbi);
Новый вариант: $result = $db->sql_query("SELECT id, name FROM ".$prefix."_categories WHERE id=$id");

Как вы заметили, удалена переменная $dbi в конце запроса и добавлена переменная $db в начале. Это нужно проделать со всеми запросами.

В запросах необходимо изменить:

sql_fetch_array на $db->sql_fetchrow
sql_query на $db->sql_query
sql_fetch_row на $db->sql_fetchrow
sql_num_rows на $db->sql_numrows
sql_free_result на $db->sql_freeresult

Если появляются вопросы по поводу запросов или правильности их написания, смотрим файл function/mysql.php

• В некоторых модулях используются прямые запросы в базу данных в обход файла классов соединения с базой. В таком варианте запросы не подсчитываются. При желании вы так же можете изменить запросы подобного рода.

В запросах необходимо изменить:

mysql_fetch_array на $db->sql_fetchrow
mysql_query на $db->sql_query
mysql_fetch_row на $db->sql_fetchrow
mysql_num_rows на $db->sql_numrows
mysql_free_result на $db->sql_freeresult

В функциях не забываем указывать переменную $db как глобальную.

3. В некоторых модулях производится соединение с файлом конфигурации которое нужно заменить.

Старый вариант: include("config.php");
Новый вариант: include("config/config.php");

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

Старый вариант: $nukeurl
Новый вариант: $conf['homeurl']

Не исключено что в последствии возникнет необходимость использования параметров основных конфигураций системы. Для этих целей рекомендуется прописать в глобальные, переменную $conf, отвечающую за основные настройки, которые хранятся в файле config/config_global.php

5. В некоторых модулях используются функции темы OpenTable() и CloseTable() которые нужно заменить.

Старый вариант: OpenTable(); или OpenTable2();
Новый вариант: open();

Старый вариант: CloseTable(); или CloseTable2();
Новый вариант: close();

6. В стандартных модулях в начале скриптов используется соединение с файлом mainfile.php.

Необходимо удалить: require_once("mainfile.php"); или include("mainfile.php");

7. Во всех скриптах нужно произвести поиск и изменить стандартные ссылки modules.php на index.php.

Старый вариант: modules.php
Новый вариант: index.php

8. Во всех скриптах нужно произвести поиск и удалить стандартные цветовые переменные в глобальных, и заменить их в коде.

Старый вариант: bgcolor="$bgcolor1"
Новый вариант: class="bgcolor1"

Старый вариант: bgcolor="$bgcolor2"
Новый вариант: class="bgcolor2"

Старый вариант: bgcolor="$bgcolor3"
Новый вариант: class="bgcolor3"

Старый вариант: bgcolor="$bgcolor4"
Новый вариант: class="bgcolor4"

9. В файлах модуля следует изменить метод подключения верхней и нижней частей системы.

Старый вариант: include("header.php");
Новый вариант: head();

Старый вариант: include("footer.php");
Новый вариант: foot();

10. Следует модифицировать верхний участок файла администратора системы отвечающий за безопасность.

• Для файлов находящихся в директории: admin/modules используйте ниже приведённый метод.

if (!defined("ADMIN_FILE") || !is_admin_god()) die("Illegal File Access");


• Для файла: index.php находящегося в директории модуля: modules/название_модуля/admin/ используйте ниже приведённый метод.

if (!defined("ADMIN_FILE") || !is_admin_modul("название_модуля")) die("Illegal File Access");


название_модуля - Необходимо заменить на реальное название модуля. Учитывайте, в названии модуля допустимо использование только знаков латинского алфавита.
3.62
51
Назад

Комментарии

30.07.2008 14:50:54
shell35, Неа Смайл - 04
06.04.2008 20:39:39
Очень ценный Мануал!!!
По больше таких желательно.
Надеюсь он не устарел для новой версии системы?
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.
старыйновыйнеобходимонекоторыхвариантизменитьмодуляadminmysqlмодуляхfileнужнозаменитьqueryquot
Хотите опробовать SLAED CMS в действии?

Технологии

PHP MySQL HTML 5 CSS 3 jQuery jQuery UI

Контакты

  • D-49179, Deutschland
    Ostercappeln, Im Siek 6
  • +49 176 61966679

  • https://slaed.net
Идеи и предложения
Обратная связь