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

[2.3.x]Latest Posts


HGhost

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

  • Ответы 181
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

4itos, можешь попробовать поставить, там в принципе только данные из базы используются.

Должно так работать, или чуть чуть поправить только

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

а эту ссылку <?php include("http://my_site.ru/forum/latest_posts.php");?> нужно вставлять только на php стр. ?

Просто у меня главная стр. в shtml..

Есть какой-то выход?:D

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

Можно его как ифрейм вставить. Я уже писал про это вроде.
Ссылка на комментарий
Поделиться на других сайтах

Schnapz, ток вот небольшая проблема возникла - время на некоторых постах стоит как "Сегодня, 18:8" а в самом форуме "Вчера, 18:08" ..
и т.д. Тоесть 21 вчера пишет как сегодня.... sad.gif

Погоди-ка, а ты коррекцию по часам оставил равным восьми чтоли? :D Это я себе ставил такое, т.к. время на сервере хостера на 8 часов отличалось от моего. Если у тебя нет такого, впиши 0.

теряется нолик в минутах (это при $hours_corrector = 8; ).

Опа, точно теряется. Счас поправлю ;)

 

Исправление ошибки с теряющимся нулём.

 

В коде моего latest_posts.php ищем строку

$minutes_edited = $minutes_edited + $minutes_corrector;

Затем чуть ниже:

If ($posted_on == $today_date) {

 

Убиваем код между этими двумя строками, заменяем его на

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;
}

 

Наслаждаемся :) Заодно и себе исправил :) Образец работы скрипта можно посмотреть, перейдя по ссылке в моей подписи.

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

Теперь все наоборот, появился баг такого плана:

 

"Вчера, 020:43"

А вот у меня нет никаких багов! Смотреть здесь - http://chernyahovsk.com/

 

Ппц, ребята, как вы форумы админите, если в элементарном разобраться не можете?

Вот код целиком:

<?

// ******************************************* //
// Создатель оригинального мода Miles Johnson. //
// Перевод и улудшение HungerGhost			 //
// ******************************************* //
// Дополнительные улучшения - Schnapz		 //
//	-Добавлен номер сообщения слева от поста
//	-Коррекция времени

$i=1;
$posts = 5;
$showtopiclength = 1;
$topiclength = 35;
$forumexclude = "42,28";
$datedisplay = 'd F Y';

// Скрипт работает на российском 24-ёх часовом формате показа времени
// Так что следующие две строки не меняем :)

$hours_display='H';
$minutes_display = 'i';

// Сюда вводим размер коррекции по часам и по минутам
// Если не нужны - ставим нули

$hours_corrector = 0;
$minutes_corrector = 0;

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");


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 {
$datefield = $posted_on;
}

echo

<<<EOD

$i. <a href="$INFO[board_url]/index.php?showtopic=$post[tid]&view=getnewpost">$post[short_title]</a> [<a href="$INFO[board_url]/index.php?showuser=$post[last_poster_id]">$post[last_poster_name]</a> - $datefield]<br>

EOD;
$i++;
}

?>

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

О! Теперь заработало идеально)) Время работает правильно 100% !!

 

Спасибо тебе большое еще раз, добрый человек! :0))

 

Ппц, ребята, как вы форумы админите, если в элементарном разобраться не можете?

Да нет, ты вчера не до конца инструкции опубликовал, я отредактировал твой файл, не работало, думаю ты одну упустил.

 

Сейчас все работает замечательно.

 

 

УРА, ТОВАРИЩИ! Блок 'Latest Posts' оффициально завершен! Теперь он работает так как нужно!))

 

гг))

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

О! Теперь заработало идеально)) Время работает правильно 100% !!

 

Спасибо тебе большое еще раз, добрый человек! :0))

Битте шон :D

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

Enase, возьми и запусти то что дал Schnapz... ну и ctrl+f5 нажми в браузере, кеш обнови.

 

Почему у тебя глюки незнаю, у меня и у него работает.

 

%)

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

может кому пригодится:

в коде между маркерами EOD можно вставить переменную кол-ва просмотров - $post[views] (вставлять по аналогии с $post[posts]).

если свободное место позволяет, можно также вставить автора темы.

пасиб за внимание)

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

Проблема возникла:

пользователь создает тему не в соответствующем разделе. Я переношу тему в другой раздел и осставляю ссылку на исходящий форум, чтобы юзер не потерял свою тему. На сайте мод отображает две ссылки на одну и ту же тему. Что делать?)

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

Народ помогите.

Не работает этот скрипт.

Пишет, что не может экземпляр класса создать в 19 строке

Может проблема в том, что версия уменя 2.2.1

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

И так, на счет ошибки с нулем, плана - "Вчера, 020:43"

 

Как мы можем лицезреть ноль добавлялся безусловно:

 

{$hours_final =$hours_edited - 24; $hours_edited = "0".$hours_final;}

 

Для решения проблемы меняем эту строку на:

 

{

$hours_final =$hours_edited - 24;

if ($hours_final < 10) { $hours_edited = "0".$hours_final; } else { $hours_edited = $hours_final; }

}

 

ЗЫЖ Спасибо автору за помощь в решении проблемы! :D

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

вобщем заработало, но на сайт все одно не могу вставить

Видимо проблема в том на html странице не работает php.

Как быть? страницу не переименовать уж очень сложно. :D

вопрос сводится как на html странице исполнить php?

может как-то скриптом?

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


×
×
  • Создать...

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

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