Последние сообщения с форума ipb

оооооооо, тогда не факт что получится: не на всех хостингах разрешено удаленное обращение к базам.
имхо, делай через рсс. просто пусть почаще обновляецо.
 
<!--quoteo(post=65824:date=21.08.2007, 10:20:name=Ayaweb)--><div class='quotetop'>Цитата(Ayaweb @ 21.08.2007, 10:20) [snapback]65824[/snapback]</div><div class='quotemain'><!--quotec-->Хочешь сказать, это невозмоно?<!--QuoteEnd--></div><!--QuoteEEnd-->
Разве я это где то написал?

<!--quoteo(post=65824:date=21.08.2007, 10:20:name=Ayaweb)--><div class='quotetop'>Цитата(Ayaweb @ 21.08.2007, 10:20) [snapback]65824[/snapback]</div><div class='quotemain'><!--quotec-->Ну а как тогда совместить их?<!--QuoteEnd--></div><!--QuoteEEnd-->
Блин!!! Долго объяснять... Не сейчас Котенок!!! :tender:
Вообщем это можно реализовать средствами RSS импорта из IPB, вот только нада поглядеть как там команды задавать (я сейчас не помню). В паке <b>Tools</b> с дистрибутивом IPB есть файлик <b>ssi.php</b> - вот его и нужно юзать. Но правда возможностей у него не так уж и много и к тому же не совсем то что нужно. Выдает например последнее сообщение целиком, но только одно...

Другой варриант, более функциональный - это как раз читать таблицы IPB из PHP Fusion (я же уже про это написал), но читать их нужно уметь. Нужно знать что именно читать и из каких таблиц. Вообщем потом об этом, сейчас я на работе, заскочил домой на 30 минут пожрать... :pod_stolom:

А вообще у тебя сразу виден БАГ в скрипте... Я даже разбираться не стал но сразу заметил косяк...
Ты подключаешься к базе данных коммандой<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->mysql_connect ($this->db_host_aya, $this->db_user_aya, $this->db_pass_aya);<!--c2--></div><!--ec2-->
Как ты думаешь? А что будет с тем соединением, которое установил PHP Fusion? Ведь ты установила новое соединение и теперь у тебя их два, а в функциях PHP Fusion <b>dbquery, dbrows, dbarray</b> не задается идентификатор соединения с БД... Откуда будет производиться чтение? ХЗ еси чесно, но наверное все таки из нового, вновь установленного, а старое соединение стало быть улетит в потолок, хотя на самом деле соединение так и будет подключенным.
После выполнения твоего скрипта, PHP Fusion должен вернуться к своим операциям, а соединение с БД сменилось... Вот у тебя и выскакивают ошибки что таблицы которые ищет PHP Fusion не находятся, так как PHP Fusion ищет их не в той базе данных...

ЛАН ВСЕ УБЕЖАЛ Я РАБОТАТЬ!!!! :yahoo:
 
Вообщем коротко и по делу...
Как там RSS экспорт настроить в IPB я чето не понял, чет какие-то XML файлы он отправляет... ы-ы-ы-ы.... вообщем муть какая-то...
Я зделал по своему:

Заходим в PHP Fusion
<b>Панель администратора > Администрирование системы > Панели > Добавить новую панель</b>
Название панели: <b>Темы с форума IPB</b>
Содержание панели: <i>вставляем код</i><!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->if (!defined('IN_FUSION')) { header('Location: ../../index.php'); exit; }
define('IPB_URL', 'http://www.test1.ru/ipb231/');
openside($locale['022']);
include(IPB_URL.'input.php?a=posts&show=10');
closeside();<!--c2--></div><!--ec2-->
<!--coloro:#FF0000--><span style="color:#FF0000"><!--/coloro--><i>Примечание: Не забудьте во второй строке кода, вписать домен форума IPB с которого будут экспортироваться последние сообщения.</i><!--colorc--></span><!--/colorc-->
Выбираем нужную положение панели и доступ к ней, затем нажимаем <b>Сохранить</b>
Затем нажимаем <b>Назад в панель управления панелями</b> и включаем панель <b>Темы с форума IPB</b>.
PHP Fusion на этом можно считать настроенным. Возвращаемся на главную страничку или вообще покидаем сайт.


Теперь займемся IPB.
Создайте в блокнотике файлик <b>input.php</b> с таким содержанием:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1--><?php
define("IPB_THIS_SCRIPT", "public");
define("IPB_LOAD_SQL", "queries");
require_once("./init.php");
define("SSI_TEMPLATES_DIR", ROOT_PATH."ssi_templates");
define("SSI_MAX_SHOW", 100);
define("SSI_ALLOW_SYND", 1);
$INFO = array();
require_once ROOT_PATH."sources/ipsclass.php";
require_once ROOT_PATH."sources/classes/class_forums.php";
require_once ROOT_PATH."sources/classes/class_session.php";
require_once ROOT_PATH."conf_global.php";
$ipsclass = new ipsclass();
$ipsclass->vars = $INFO;
$Debug = new Debug;
$Debug->startTimer();
$ipsclass->init_db_connection();
$ipsclass->sess = new session();
$ipsclass->sess->ipsclass =& $ipsclass;
$ipsclass->forums = new forum_functions();
$ipsclass->forums->ipsclass =& $ipsclass;
$ipsclass->parse_incoming();
$ipsclass->cache_array = array_merge(array('attachtypes','bbcode', 'multimod','ranks','profilefields'), array('rss_calendar', 'rss_export','components','banfilters', 'settings', 'group_cache', 'systemvars', 'skin_id_cache', 'forum_cache', 'moderators', 'stats', 'languages'));
$ipsclass->init_cache_setup();
$ipsclass->init_load_cache($ipsclass->cache_array);
$ipsclass->DB->set_debug_mode($ipsclass->vars['sql_debug'] == 1 ? intval($_GET['debug']) : 0);
$ipsclass->initiate_ipsclass();
$ipsclass->member = $ipsclass->sess->authorise();
$ipsclass->md5_check = $ipsclass->return_md5_check();
$ipsclass->forums->strip_invisible = 1;
$ipsclass->forums->forums_init();
$ipsclass->load_skin();
$ipsclass->base_url = $ipsclass->vars['board_url'].'/index.'.$ipsclass->vars['php_ext'];
$runme = new ssi_autorun();
$runme->ipsclass =& $ipsclass;
$runme->auto_run();

class ssi_autorun {

&nbsp;&nbsp;&nbsp;&nbsp;function auto_run() {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch ($this->ipsclass->input['a']) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case 'posts':
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->do_posts();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo("При обработке данной операции произошла ошибка"); exit();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;function do_posts() {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->ipsclass->DB->simple_construct(array('select' => '*', 'from' => 'topics', 'order'&nbsp;&nbsp;=> 'last_post DESC', 'limit'&nbsp;&nbsp;=> array(0, $this->ipsclass->input['show'])));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->ipsclass->DB->simple_exec();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while($row = $this->ipsclass->DB->fetch_row()) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print "<a href='{$this->ipsclass->base_url}?showtopic=".$row['topic_firstpost']."&view=getlastpost' class='side' title=".$row['description'].">{$row['title']}</a><br>"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;."<a href='{$this->ipsclass->base_url}?showuser={$row['last_poster_id']}' class='side-small'>{$row['last_poster_name']}</a> ".$this->ipsclass->get_date($row['last_post'], 'LONG', 1)."<br><br>";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;}
}
?><!--c2--></div><!--ec2-->
Сохрните и загрузите его на сервер, в корневую дирректорию форума IPB (рядом с index.php).

<div align="center"><!--sizeo:4--><span style="font-size:14pt;line-height:100%"><!--/sizeo--><!--coloro:#FF0000--><span style="color:#FF0000"><!--/coloro--><b>Заходим на сайт PHP Fusion и радуемся!!!</b><!--colorc--></span><!--/colorc--><!--sizec--></span><!--/sizec--></div>
 
F А это для какой версии?

И у меня это не работает :(
Так как на хостинге инклуды выключенны :cry:

<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->Warning: include() [function.include]: URL file-access is disabled in the server configuration in /home/pronetsr/public_html/administration/panel_editor.php(111) : eval()'d code on line 4

Warning: include(http://www.forum.pronets.ru/input.php?a=posts&show=10) [function.include]: failed to open stream: no suitable wrapper could be found in /home/pronetsr/public_html/administration/panel_editor.php(111) : eval()'d code on line 4

Warning: include() [function.include]: Failed opening 'http://www.forum.pronets.ru/input.php?a=posts&show=10' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/pronetsr/public_html/administration/panel_editor.php(111) : eval()'d code on line 4<!--c2--></div><!--ec2-->
 
Тестировал я это на версии 2.3.1 но я так думаю этот файлик input.php мало привязан к версии. Он и в IPB 2.1.5 должен прекрасно работать.
Вместо <b>include</b> можно юзать <b>require_once</b> - это впринципе тоже самое. require_once - у тебя не должен быть отключен на сервере иначе у тебя вообще ни один движек не заработал бы.
Вообще отключенный <b>include</b> - это плохо по моему... Такой защитой сервера можно лишить функциональности несколько сотен скриптов, которые вполне резонно используют эту функцию.
Попробуй в панели PHP Fusion написать такой код:<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->if (!defined('IN_FUSION')) { header('Location: ../../index.php'); exit; }
define('IPB_URL', 'http://www.test1.ru/ipb231/');
openside($locale['022']);
require_once IPB_URL.'input.php?a=posts&show=10';
closeside();<!--c2--></div><!--ec2-->

И кстати файлик <b>input.php</b> тоже можно значительно сократить.
Повырезал все лишнее и он стал примерно таким:<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1--><?php
define("IPB_THIS_SCRIPT", "public");
require_once("./init.php");
$INFO = array();
require_once ROOT_PATH."conf_global.php";
require_once ROOT_PATH."sources/ipsclass.php";
$ipsclass = new ipsclass();
$ipsclass->vars = $INFO;
$ipsclass->init_db_connection();
$ipsclass->parse_incoming();
$ipsclass->cache_array = array_merge(array('attachtypes','bbcode', 'multimod','ranks','profilefields'), array('rss_calendar', 'rss_export','components','banfilters', 'settings', 'group_cache', 'systemvars', 'skin_id_cache', 'forum_cache', 'moderators', 'stats', 'languages'));
$ipsclass->init_cache_setup();
$ipsclass->init_load_cache($ipsclass->cache_array);
$ipsclass->initiate_ipsclass();
$ipsclass->base_url = $ipsclass->vars['board_url'].'/index.'.$ipsclass->vars['php_ext'];
$runme = new ssi_autorun();
$runme->ipsclass =& $ipsclass;
$runme->auto_run();

class ssi_autorun {

&nbsp;&nbsp;&nbsp;&nbsp;function auto_run() {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch ($this->ipsclass->input['a']) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case 'posts':
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->do_posts();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo("При обработке данной операции произошла ошибка"); exit();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;function do_posts() {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->ipsclass->DB->simple_construct(array('select' => '*', 'from' => 'topics', 'order'&nbsp;&nbsp;=> 'last_post DESC', 'limit'&nbsp;&nbsp;=> array(0, $this->ipsclass->input['show'])));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->ipsclass->DB->simple_exec();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while($row = $this->ipsclass->DB->fetch_row()) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print "<a href='{$this->ipsclass->base_url}?showtopic=".$row['topic_firstpost']."&view=getlastpost' class='side' title=".$row['description'].">{$row['title']}</a><br>"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;."<a href='{$this->ipsclass->base_url}?showuser={$row['last_poster_id']}' class='side-small'>{$row['last_poster_name']}</a> ".$this->ipsclass->get_date($row['last_post'], 'LONG', 1)."<br><br>";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;}
}
?><!--c2--></div><!--ec2-->
 
Сверху