Центр пользователя  |  Ваши сообщения  |  FAQ
Форум поддержки phpBB » phpBB 3.0.x » Интеграция и конвертирование

вывод последних тем форума, на страницы сайта dle

Взаимодействие phpBB 3.0.x с другими системами.
Пожалуйста, помните, что существуют: Поиск, Правила форума
Возможно, ответ на Ваш вопрос уже имеется: Документация, Статьи, Накопленный опыт
Полезные материалы по этой теме: Конвертеры

Сообщение 04 июн 2010, 12:22

Вообщем скачал модуль для dle... всё зделал, но выдает ошибку sql error, что компонент форума не найден phpbb_posts_text
Сам копался в базе, нету такой структуры... ниже весь модуль... помогите мне заменить на нормальную структуру... форум версии 3.0.7
Код: выделить все
<?php
/*
=================================================================
Created by MSK. mywarez.ru
=================================================================
Файл: lasttopicphpBB.php
-----------------------------------------------------------------
Версия: 0.1 (19.02.2007)
-----------------------------------------------------------------
Назначение: Вывод тем последних сообщений из форума phpBB
=================================================================
*/
if(!defined('DATALIFEENGINE'))
{
  die("Hacking attempt!");
}

function lasttopicphpBB()
{
Global $db;

//========== ОТРЕДАКТИРУЙТЕ ЭТИ ДАННЫЕ ======================
$phpBB_mysql_data_base_name="dle";
$phpBB_mysql_host="localhost";
$phpBB_mysql_user="root";
$phpBB_mysql_password="";
$phpBB_mysql_db_prefix="phpbb_";
$phpBB_site="http://skyhem.ru/forum"; //адрес сайта форума (без / в конце)

$koli4estvo_tem=5; //кол-во выводимых тем
$dlina_temi=20; //кол-во символов в выводимом заголовке

/*формат выводимого заголовка.
{Full_title} - полное название темы
{URL_to_post} - ссылка на последний пост темы
{Short_title} - название темы, обрезанное до $dlina_temi символов
{User_name} - имя последнего написавшего пост в теме
{Date} - дата и время последнего поста

{ReplyCount} - количество ответов
{Views} - количество просмотров
*/
//$format_stroki.="<li><a title='{Full_title}' href='{URL_to_post}'>{Short_title}</a> от <b>{User_name}</b> {Date} [{ReplyCount}|{Views}]</li>";
$format_stroki.="<li>{Date} <b>{User_name}</b><br /><a title='{Full_title}' href='{URL_to_post}'>{Short_title}</a></li>";

//========== Конец редактирования ===========================

$db->connect($phpBB_mysql_user, $phpBB_mysql_password, $phpBB_mysql_data_base_name, $phpBB_mysql_host);

    $query_str = 'SELECT f.*, p.*, pt.*, t.*, u.*
            FROM phpbb_topics AS t, phpbb_users AS u, [b]phpbb_posts_text[/b] AS pt, phpbb_posts AS p, phpbb_forums AS f
            WHERE t.topic_last_post_id = pt.post_id AND t.topic_last_post_id = p.post_id AND t.forum_id = f.forum_id AND u.user_id = p.poster_id
            ORDER BY p.post_time DESC
            LIMIT 0,'.$koli4estvo_tem;
    $sql_12354 = $db->query($query_str);

while ($row = mysql_fetch_array($sql_12354, MYSQL_ASSOC))
{

   $format_stroki_user_profile='<a href='.$phpBB_site.'/profile.php?mode=viewprofile&u='.$row['poster_id'].'>'.$row["username"].'</a>';

   switch (date("d.m.y",$row["post_time"])):
      case date("d.m.y"):
           $day=date("cегодня в H:i",$row["post_time"]);   //пост был написан сегодня
          break;
      case date("d.m.y",time()-86400):
            $day=date("вчера в H:i",$row["post_time"]);      //пост был написан вчера
          break;
       default:
          $day=date("d.m.y H:i",$row["post_time"]);      //пост был написан более двух дней назад
    endswitch;

   $title1=$row['topic_title'];
   if (strlen($title1) > $dlina_temi)
      $title2 = substr ($title1, 0, $dlina_temi)." ...";    //если длина темы больше $dlina_temi символов, то обрезаем
   else
      $title2 = $title1;                           //если меньше или равна, то оставляем

   $replycount=$row["topic_replies"];
   $views=$row['topic_views'];

   $zagolovok=preg_replace('/{Full_title}/',$title1, $format_stroki);
   $zagolovok=preg_replace('/{URL_to_post}/',$phpBB_site.'/viewtopic.php?p='.$row["post_id"].'#'.$row["post_id"], $zagolovok);
   $zagolovok=preg_replace('/{Short_title}/',$title2, $zagolovok);
   $zagolovok=preg_replace('/{User_name}/',$format_stroki_user_profile, $zagolovok);
   $zagolovok=preg_replace('/{Date}/',$day, $zagolovok);
   
   $zagolovok=preg_replace('/{ReplyCount}/',$replycount, $zagolovok);
   $zagolovok=preg_replace('/{Views}/',$views, $zagolovok);
   
   $asdaa.=$zagolovok;
}
   mysql_free_result($sql_12354);
   return $asdaa;
}
$lasttopicphpbb=lasttopicphpbb();
?>
DIaR4IK

 

Сообщение 04 июн 2010, 12:25

DIaR4IK писал(а):$phpBB_mysql_data_base_name="dle";

база для форума называется dle?
DIaR4IK писал(а):$phpBB_mysql_user="root";
$phpBB_mysql_password="";

пользователь и пароль тоже такой?
Вообще ест мод recent.
crash
Поддержка
 
Сообщений: 11348
Зарегистрирован:
27 янв 2009, 03:22
Благодарил (а): 1 раз.
Поблагодарили: 568 раз.

Сообщение 04 июн 2010, 15:47

crash писал(а):
DIaR4IK писал(а):$phpBB_mysql_data_base_name="dle";

база для форума называется dle?
DIaR4IK писал(а):$phpBB_mysql_user="root";
$phpBB_mysql_password="";

пользователь и пароль тоже такой?

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

 

Сообщение 04 июн 2010, 17:22

Код: выделить все
$koli4estvo_tem
$dlina_temi
$format_stroki
$zagolovok

Какая жуть. )))

компонент форума не найден phpbb_posts_text

Это модуль для phpBB2, там была такая таблица.

Ставьте это: http://www.phpbbguru.net/community/topic16075.html.
Аватар пользователя
Nekstati
Поддержка
 
Сообщений: 600
Зарегистрирован:
06 июн 2009, 23:31
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение 04 июн 2010, 18:38

нет... я попробовал, не то, что надо... посмотрел примеры сайтов, как работает данный модул-просто супер... мне просто нужно, как только появилась новая тема (не ответ в теме), модуль сразу показал название темы, в том месте, куда я поставил тэг {lasttopicphpBB}
Вообщем требуется заменить, с 2-ой версии, на 3....
Код: выделить все
    $query_str = 'SELECT f.*, p.*, pt.*, t.*, u.*
            FROM phpbb_topics AS t, phpbb_users AS u, phpbb_posts_text AS pt, phpbb_posts AS p, phpbb_forums AS f
            WHERE t.topic_last_post_id = pt.post_id AND t.topic_last_post_id = p.post_id AND t.forum_id = f.forum_id AND u.user_id = p.poster_id
DIaR4IK

 

Сообщение 04 июн 2010, 20:31

Этот модуль — полный бред, поскольку он не учитывает права доступа на форуме. Этого уже достаточно, чтобы отправить его в топку. Во-вторых, он рассчитан на CP1251, в то время как в phpBB3 используется Уникод. Короче, надо полностью переписывать, а не только изменять SQL-запрос.
Аватар пользователя
Nekstati
Поддержка
 
Сообщений: 600
Зарегистрирован:
06 июн 2009, 23:31
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.


Вернуться в Интеграция и конвертирование

 


  • Похожие темы
    Ответов
    Просмотров
    Последнее сообщение

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

Форум поддержки phpBB
2008 - 2017 © BB3x.ru - русская поддержка форума phpBB3
Создано на основе phpBB® Forum Software © phpBB Group
авторов модов
разработчиков скинов
русификаторов
и всех поклонников phpBB3