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

Новости

Новости

Категории

Наши новости
Наши новости
Новости проекта
Интернет
Интернет
Мир интернета
Программы
Программы
Компьютерный мир

Общее количество: 96 новостей в 3 категориях

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

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


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

Прошу учитывать, что старые варианты использования кода в модулях 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. В некоторых модулях используются функции темы OpenTable2() и CloseTable2() которые нужно заменить.

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

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

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"
3.85
21
Назад

Смотрите также похожие новости

Комментарии

3.56

3.56
Там все раскидано просто, вот и непонятно
16.09.2005 20:07:52
Вот это мне и было нужно;-) А то весь форум прочитал, так и неразобрался что к чему:-)
10.07.2005 23:04:54
Чего и следовало ожидать. Никогда не понимал разговоров о несовместимости Слаеда с нюковскими модулями.
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.
Хотите опробовать SLAED CMS в действии?

Технологии

PHP MySQL HTML 5 CSS 3 jQuery jQuery UI

Контакты

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

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