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

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 ...а на сайт выводятся ссылки строго вида ...как сделать чтоб нормальные юрля выводились?
Ссылка на комментарий
Поделиться на других сайтах

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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

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

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