[Помощь] Последние сообщения

Статус
В этой теме нельзя размещать новые ответы.

KveSteR

Постоялец
Регистрация
19 Апр 2007
Сообщения
68
Реакции
5
Последние сообщения (Latest Post), для вывода на сайт

Был такой замечательный мод Latest Post для двушки. С его помощью на сайте можно было выводить список последних постов форума.
Привожу код: Может кто адаптирует кто адаптирует к IPB 3.0.*? очень нужен, думаю и не одному мне полезен будет.
 
Мод очень нужен, кто нибудь адаптирует за деньги?
 
Рекомендовал бы вам поставить unreal portal(чем мучатся с хуком), там это уже все есть и красиво смотрится все.
Сначала идет портал, там есть блок последние сообщения, последние новости и прочее. Настраивается легко и просто в админке.
 
url include врубите и пользуйтесь ssl.php для вывода. Уже обсуждали. Зачем вам этот велосипед.
 
Помогите с этим скриптом...
Все настроил и подчистил под WP, но с кодировкой проблемы :(
Вот код:
HTML:
<? 
// ******************************************* // 
// Оригинальная идея Miles Johnson.            // 
// Дополнение: HungerGhost                     // 
//             Schnapz                         // 
//             mrMad-Cat                       //  
// Дополнительная информация в readme.html     // 
// ******************************************* // 
$i=1; 
$posts = 10; 
$showtopiclength = 1; 
$topiclength = 35; 
$forumexclude = "26"; 
$datedisplay = 'd F Y'; 
// Скрипт работает на российском 24х часовом формате показа времени 
// Так что следующие две строки не меняем :) 
$hours_display='H'; 
$minutes_display = 'i'; 
// Сюда вводим размер коррекции по часам и по минутам 
// Если не нужны - ставим нули 
$hours_corrector = 0; 
$minutes_corrector = 0; 
require "/data0/customers/motor.ck.ua/forum/ips_kernel/class_db_mysql.php"; 
require "/data0/customers/motor.ck.ua//forum/conf_global.php"; 
$db = new db_driver_mysql; 
$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(); 
ob_start(); 
$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"); 
while ($post = $db->fetch_row($getposts)) { 
$post[full_title] = $post[title]; 
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()); 
$hours_edited = substr(date($hours_display, $post[last_post]),0,2); 
$hours_edited = $hours_edited + $hours_corrector; 
if ($hours_edited == 24) {$hours_edited = "00";} 
if ($hours_edited > 24) {$hours_final =$hours_edited - 24; $hours_edited = "0".$hours_final;} 
$minutes_edited = substr(date($minutes_display, $post[last_post]),0,2); 
$minutes_edited = $minutes_edited + $minutes_corrector; 
if ($minutes_edited == 60) {$minutes_edited = "00";} 
if ($minutes_edited > 60) {$minutes_final = $minutes_edited - 60;    } else {$minutes_final = $minutes_edited; } 
if ($minutes_final < 10) { 
$time_edited = $hours_edited.":0".$minutes_edited; } 
else 
{ 
$time_edited = $hours_edited.":".$minutes_edited; 
} 
If ($posted_on == $today_date) { 
$datefield = "Сегодня"; 
$datefield = $datefield . ", " . $time_edited; 
} 
elseif (date('d F Y',strtotime("-1 day")) == $posted_on) { 
$datefield = "Вчера"; 
$datefield = $datefield . ", " .$time_edited; 
} 
else { 
$dates[January]="Января";
$dates[February]="Февраля";
$dates[March]="Марта";
$dates[April]="Апреля";
$dates[May]="Мая";
$dates[June]="Июня";
$dates[July]="Июля";
$dates[August]="Августа";
$dates[September]="Сентября";
$dates[October]="Октября";
$dates[November]="Ноября";
$dates[December]="Декабря";
  $day = date('d', $post[last_post]);
  $month_key = date('F', $post[last_post]);
  $datefield = $day . " " . $dates[$month_key];
$db->close_db();
} 
// Вывод информации (Вы можете изменить вывод для своего дизайна сайта, примеры представлены в readme.html) 
echo 
<<<EOD
<li>
<a href="/forum/index.php?showtopic=$post[tid]&view=getnewpost" target="_top">$post[short_title]</a><BR>
<font size="-10">от <i><a href="/forum/index.php?showuser=$post[last_poster_id]" target="_top">$post[last_poster_name]</a> - $datefield</i></font>
</li>
EOD;
$i++;
}
$tmp = ob_get_contents(); 
ob_end_clean(); 
echo iconv('CP1251','UTF-8', $tmp); 
?>
а вот что выводит (см.картинку)
Причем название тем в нормальной кодировке, а строка ниже
слово "от" и дата "сегодня", "вчера" или название месяца - в мазямбах.
 

Вложения

  • 333.jpg
    333.jpg
    46,9 KB · Просмотры: 19
Попробуй сам скрипт пересохранить в нжной кодировке.
 
кстати, если убрать эту строку в коде
HTML:
echo iconv('CP1251','UTF-8', $tmp);
то получается ровно наоборот: тема форума в мазямбах, а от кого и дата - читабельно

Добавлено через 7 минут
Попробуй сам скрипт пересохранить в нжной кодировке.

Я вписал в страницу код
HTML:
<script language='JavaScript' src='/forum/latest_post.php'></script>

но просмотрев папку /forum/ этого файла latest_post.php я не нашел :nezn:
но работает и без него. странно.
 
Ту строку я дописывал, потому что форум в CP1251, а сайт UTF-8. Неудевительно что кракозябры вылазят если ее убрать. Скрипт вставь инклюдингом, и посмотри в какой кодировке он сохранен сейчас?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху