Перейти к контенту

Last Topics for 2.1


Вжик

Рекомендуемые сообщения

Все гениальное - просто! :D

Перерыл весь Ваш форум но так ничего для 2.1 толкового и не нашел.

В итоге, нашел у буржуйских коллег.

Все работает как часы, пользуйте!

 

Код см. ТУТА

Ссылка на комментарий
Поделиться на других сайтах

А как бы сюда еще и текст сообщения добавить? :D Изменено пользователем AnGL
Ссылка на комментарий
Поделиться на других сайтах

А как бы сюда еще и текст сообщения добавить? ;)

 

А вот так, например :D

<?
// **************************************** //
// Original mod submitted by Miles Johnson. //
// Completely rewritten by Anthony Petito.. //
// Modify and locate by Barinyn Vladimir  //
// V2.0: 4 April 2005...................... //
// V2.1: 10 April 2005..................... //
// V2.1.1: 6 October 2005.................. //
// **************************************** //

// Этот мод выводит последние Х постов из ващего форума в любое место на Вашем сайте
// Эта новая версия локализована и позволяет выводить коротко начало последнего поста в теме.

// Поместите этот файл в директорию, куда установлен Ваш форум (например, [url="http://domain.tld/forum"]http://domain.tld/forum[/url].

// Вставьте этот код в то место у себя на сайте, где хотите выводить последние топики:
/* <?php include("http://domain.tld/forum/latest_posts.php");?> */

///////////////////////////////////
// Отредактируйте настройки мода //
///////////////////////////////////

// Количество последних постов
$posts = 3;

// Выводить начало поста?
$showposttext = 1;

// Обрезать длинные топики
$showtopiclength = 1;

// Длинна топика и длинна сообщения
$topiclength = 40;
$postlength = 100;

// Форумы из которых НЕ ВЫБИРАТЬ последние топики
$forumexclude = "0";

$datedisplay = 'd F Y';
$timedisplay = 'h:i';
$rusmonth = array(1 => "Января","Февраля","Марта","Апреля","Мая","Июня","Июля","Августа","Сентября","Октября","Ноября","Декабря");

//////////////
// Required //
//////////////

require "ips_kernel/class_db_mysql.php";
require "conf_global.php";

//////////////
// Database //
//////////////

$db = new db_driver;
$db->obj['sql_database']     = $INFO['sql_database'];
$db->obj['sql_user']         = $INFO['sql_user'];
$db->obj['sql_pass']         = $INFO['sql_pass'];
$db->obj['sql_host']         = $INFO['sql_host'];
$db->obj['sql_tbl_prefix']   = $INFO['sql_tbl_prefix'];

// Connect to DB
$db->connect();

// Query the DB with the supplied user inputted variables.
$getposts = $db->query("SELECT posts, last_poster_name, last_poster_id, title, tid, forum_id, last_post FROM ibf_topics WHERE (forum_id NOT IN ($forumexclude)) ORDER BY last_post DESC LIMIT $posts");
// Format and display the results.
?>
<b>Последние темы на форуме:</b>
<?
while ($post = $db->fetch_row($getposts)) {
$post[full_title] = $post[title];
$postpid = $post[pid];

if ($showposttext == 1) {
$getposttext = $db->query("SELECT post FROM ibf_posts WHERE topic_id = '$post[tid]'");
while ($text = $db->fetch_row($getposttext)) {
$lastposttext= $text[post];
$posttext = substr($lastposttext,0,$postlength);
$posttext = $posttext."...<br>";
}
}
if ($showtopiclength == 1 AND strlen($post[full_title]) > $topiclength) {
$post[short_title] = substr($post[full_title],0,$topiclength);
$post[short_title] = $post[short_title]."...";
}
else {
$post[short_title] = $post[full_title];
}

$posted_on = date($datedisplay, $post[last_post]); // Need to change mySQL timestamp to something more human readable.
$today_date = date($datedisplay, time()); // Grab today's date so we can compare it against the posted date
$posted_day = date("d", $post[last_post]);
$posted_month = date("n", $post[last_post]);
$posted_year = date("Y", $post[last_post]);

// If it was posted today, we want to display "Today, hh:mm AMPM"
If ($posted_on == $today_date) {
$datefield = "Сегодня";
$datefield = $datefield . ", " . date($timedisplay, $post[last_post]);
}

// If it was posted yesterday, we want to display "Yesterday, hh:mm AMPM"
elseif (date('d F Y',strtotime("-1 day")) == $posted_on) {
$datefield = "Вчера";
$datefield = $datefield . ", " . date($timedisplay, $post[last_post]);
}

else {
$datefield = $posted_day."-".$rusmonth[$posted_month]."-".$posted_year;
}

echo
////////////////////
// ФОРМАТ ВЫВОДА //
///////////////////
// Вы можете изменять HTML код внутри маркеров EOD под Ваши требования
<<<EOD
<p style="margin: 0; padding-top: 5; padding-bottom: 0;">
<a href="$INFO[board_url]/index.php?showtopic=$post[tid]&view=getnewpost"><b>$post[short_title]</b></a>
<br>$posttext <i><b>разместил
<font color="#FF00FF">$post[last_poster_name] <BR>
</font>$datefield, с $post[posts] ответом</i></b>
</p>
EOD;
}
?>

 

P.S. Народ, когда пишите посты, не ЦИТИРУЙТЕ ОГРОМНЫЙ КОД, если нет надобности!

Ссылка на комментарий
Поделиться на других сайтах

Спасибо.

 

А для того, чтобы попадали только открытые темы надо

 

(forum_id NOT IN ($forumexclude))

 

заменить на

 

(forum_id NOT IN ($forumexclude) AND state="open")

Ссылка на комментарий
Поделиться на других сайтах

  • 4 месяца спустя...

Не работает, выдает

 

"Января","Февраля","Марта","Апреля","Мая","Июня","Июля","Августа","Сентября","Октября","Ноября","Декабря"); require "ips_kernel/class_db_mysql.php"; require "conf_global.php"; $db = new db_driver; $db->obj['sql_database'] = $INFO['sql_database']; $db->obj['sql_user'] = $INFO['sql_user']; $db->obj['sql_pass'] = $INFO['sql_pass']; $db->obj['sql_host'] = $INFO['sql_host']; $db->obj['sql_tbl_prefix'] = $INFO['sql_tbl_prefix']; $db->connect(); $getposts = $db->query("SELECT posts, last_poster_name, last_poster_id, title, tid, forum_id, last_post FROM ibf_topics WHERE (forum_id NOT IN ($forumexclude)) ORDER BY last_post DESC LIMIT $posts"); ?> Последние темы на форуме: fetch_row($getposts)) { $post[full_title] = $post[title]; $postpid = $post[pid]; if ($showposttext == 1) { $getposttext = $db->query("SELECT post FROM ibf_posts WHERE topic_id = '$post[tid]'"); while ($text = $db->fetch_row($getposttext)) { $lastposttext= $text[post]; $posttext = substr($lastposttext,0,$postlength); $posttext = $posttext."...
"; } } if ($showtopiclength == 1 AND strlen($post[full_title]) > $topiclength) { $post[short_title] = substr($post[full_title],0,$topiclength); $post[short_title] = $post[short_title]."..."; } else { $post[short_title] = $post[full_title]; } $posted_on = date($datedisplay, $post[last_post]); $today_date = date($datedisplay, time()); $posted_day = date("d", $post[last_post]); $posted_month = date("n", $post[last_post]); $posted_year = date("Y", $post[last_post]); If ($posted_on == $today_date) { $datefield = "Сегодня"; $datefield = $datefield . ", " . date($timedisplay, $post[last_post]); } elseif (date('d F Y',strtotime("-1 day")) == $posted_on) { $datefield = "Вчера"; $datefield = $datefield . ", " . date($timedisplay, $post[last_post]); } else { $datefield = $posted_day."-".$rusmonth[$posted_month]."-".$posted_year; } echo <<

$post[short_title]
$posttext разместил $post[last_poster_name]
$datefield, с $post[posts] ответом
EOD; } ?>

 

что сожно сделать?

Ссылка на комментарий
Поделиться на других сайтах

  • 1 месяц спустя...
А чем не подходит то что лежит в архиве? У меня стоит и всё прекрасно не считая небольших проблем со временем. Я на свой штмл сайт пиханул в ифрейм.
Ссылка на комментарий
Поделиться на других сайтах

В штмл понимаешь немного? Это кусок в таблице. Но есть недостаток - я ещё не придумал как зделать так чтобы размер таблицы менялься в зависимости от текста.

<table width=100% height=100% bgcolor=FFFFFF border=3 cellpadding=4 cellspacing=2>
<tr><td align=center style="font-size: 14pt" background="img/title_bg.gif"><b>Останнє на <a href="forum" target="_blank" title="Іти до форуму Ескімосів">форумі:</b></td></tr>
<tr><td>
<iframe src="http://www.твой сайт/forum/latest_posts.php" width=100% height=1000 scrolling="no" frameborder="0"></iframe>
</table>
</td>

 

А просто ифрейм который вставляй куда хоч.

<iframe src="http://твой сайт/forum/latest_posts.php" width=100% height=1000 scrolling="no" frameborder="0"></iframe>
</td>

 

Как это выглядит можешь посмотреть у меня на сайте www.eskimosi.in.ua

 

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

 

Вот мой пхп файл:

<?

// *******************************************//
// Мод для вывода последних сообщений на сайт.	//
//  mrMad-Cat edited edition					   //
// *******************************************//


$posts = 10;
$showtopiclength = 1;
$topiclength = 40;
$forumexclude = "8,10,11";
$datedisplay = 'd.n.Y';
$timedisplay = 'H:i:s';

-------------------------------ничего не менял поєтому кусок выризаю.... Дальше опять немного менял слова но не более-------------------------------
If ($posted_on == $today_date) {
	$datefield = "Сьогодні";
	$datefield = $datefield . ", " . date($timedisplay, $post[last_post]);
}

elseif (date('d F Y',strtotime("-1 day")) == $posted_on) {
	$datefield = "Вчора";
	$datefield = $datefield . ", " . date($timedisplay, $post[last_post]);
}

else {
	$datefield = $today_date;
}

echo
--------------------------- кучу всего добавил:---------------------------------------
<<<EOD

<a href="$INFO[board_url]/index.php?showtopic=$post[tid]&view=getnewpost" target="_blank"><img src="http://eskimosi.in.ua/img/all_news.gif" width=20 height=20 border=0>"$post[short_title]"</a><br>Автор: <a href="$INFO[board_url]/index.php?showuser=$post[last_poster_id]" target="_blank"><b>$post[last_poster_name]</b></a><BR>$datefield, і <b>$post[posts]</b> відповідей.<P>

EOD;
}

?>

Ссылка на комментарий
Поделиться на других сайтах

  • 4 недели спустя...
еще вопрос..у меня мод установлен чтоб юрлы были в виде forum.html ...а на сайт выводятся ссылки строго вида ...как сделать чтоб нормальные юрля выводились?
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.