<?php /* =========================================================== Для [IPB 2.3.6 + DLE9] и [IPB 3.1 + DLE9] ----------------------------------------------------------- Назначение: Вывод последних изменеменных тем на форуме IPB =========================================================== */ if(!defined('DATALIFEENGINE')) { die("Hacking attempt!"); } function lasttopicipb() { Global $db; //========== ОТРЕДАКТИРУЙТЕ ЭТИ ДАННЫЕ ====================== $ipb_mysql_data_base_name="[color=red]umarov_forum[/color]"; //имя базы данных форму IPB $ipb_mysql_host="localhost"; //адрес MySQL для форума IPB $ipb_mysql_user="[color=red]*******[/color]"; //пользователь для MySQL, на которой стоит база IPB $ipb_mysql_password="[color=red]*******[/color]"; //пароль MySQL $ipb_mysql_db_prefix="ipb"; //префикс таблиц IPB $ipb_site="http://umarov.net/"; //адрес сайта форума (до /index.php) $koli4estvo_tem=10; //кол-во выводимых тем $dlina_temi=20; //кол-во символов в выводимом заголовке $forum_id="*"; //Kакие разделы форума обрабатывать. ID разделов (число, которое стоит в ссылке на раздел после "showforum="). Через запятую и без пробелов. "*" - обрабатывать все разделы. $forum_id_no="9999999999"; //Какие разделы форума не нужно обрабатывать. Для того, чтобы обрабатывались ВСЕ разделы присвойте $forum_id="*", а переменной $forum_id_no любое заоблочное 😀 число. Например 1000000000. В общем, число должно быть больше чем номер последнего раздела. Сначала обрабатывается переменная $forum_id: если ей присвоено "*", то обрабатывается $forum_id_no. если переменной $forum_id присвоино значение отличное от "*", то тогда уже обрабатывается $forum_id_no. //В общем можно делать так "Обрабатывать только разделы с номерами ..." или "Обрабатывать все кроме номеров..." /*формат выводимого заголовка. {Full_title} - полное название темы {URL_to_post} - ссылка на последний пост темы {Short_title} - название темы обрезанное до $dlina_temi символов {User_name} - имя последнего написавшего пост в теме {Date} - дата и время последнего поста {ReplyCount} - количество ответов {Views} - количество просмотров {ReplyCount} - количество ответов {Views} - количество просмотров */ $format_stroki=" <tr> <td>{Date}</td> <td> <a title='{Full_title}' href='{URL_to_post}'>{Short_title}</a> <div class=\"highslide-html-content\" id=\"f_entry-{id}\" style=\"width: 600px;height:auto;\"> <div align=\"left\" style=\"padding: 10px;\" class=\"highslide-body\"> <div class=\"stext\" style=\"background-color: #FFC; padding: 5px;\"> </div> <br /><br /> </div> </div> </td> <td>{User_name}</td> <td align=\"center\">{ReplyCount}</td> <td align=\"center\">{Views}</td> </tr> "; //========== Конец редактирования =========================== $db->connect($ipb_mysql_user, $ipb_mysql_password, $ipb_mysql_data_base_name, $ipb_mysql_host); if ($forum_id=="*") $forum_id='WHERE `forum_id`!='.preg_replace('/,/'," AND `forum_id`!=",$forum_id_no); else $forum_id='WHERE `forum_id`='.preg_replace('/,/'," OR `forum_id`=",$forum_id); $query_str='SELECT posts,views,last_poster_id,last_post,title,tid,last_poster_name FROM `'.$ipb_mysql_db_prefix.'topics` '.$forum_id.' ORDER BY `last_post` DESC LIMIT 0 ,'.$koli4estvo_tem; $sql_12354=$db->query($query_str); while ($row = mysqli_fetch_array($sql_12354, MYSQL_ASSOC)) { $title1=$row["title"]; quoted_printable_decode($title1); if (strlen($title1) > $dlina_temi) $title2 = substr ($title1, 0, $dlina_temi)." ..."; //если длина темы больше $dlina_temi символов, то обрезаем else $title2 = $title1; //если меньше или равна, то оставляем //Формат выводимого даты и времени switch (date("d.m.Y",$row["last_post"])): case date("d.m.Y"): $day=date("Сегодня в H:i",$row["last_post"]); //пост был написан сегодня break; case date("d.m.Y",time()-86400): $day=date("Вчера в H:i",$row["last_post"]); //пост был написан вчера break; default: $day=date("d.m.Y H:i",$row["last_post"]); //пост был написан более двух дней назад endswitch; //Вывод URL на профиль юзера if ($row['last_poster_id'] != 0) //если зарегистрированный юзер { $format_stroki_user_profile='<a href='.$ipb_site.'/index.php?showuser='.$row['last_poster_id'].'>'.$row["last_poster_name"].'</a>'; } else //если незарегистрированный юзер { $format_stroki_user_profile=$row["last_poster_name"]; } $replycount=$row["posts"]; $views=$row["views"]; //формат выводимого заголовка. $zagolovok=preg_replace('/{Full_title}/',$title1, $format_stroki); $zagolovok=preg_replace('/{URL_to_post}/',$ipb_site.'/index.php?showtopic='.$row["tid"].'&view=getlastpost', $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; } mysqli_free_result($sql_12354); return $asdaa; } $lasttopicipb=lasttopicipb(); $db->connect(DBUSER, DBPASS, DBNAME, DBHOST); //Переключаемся на БД DLE ?>