avatar_Everybody

Последние сообщения на форуме IPB – мод для вашего сайта

Автор Everybody, 2009 Июнь 08, 00:15

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ключевые слова [SEO] модпоследние сообщенияipb форумmiles johnson

Everybody

Мод который позволит отображать на вашем сайте последние сообщения с форума IPB (версий 2.0.x, 2.1.x, 2.2.х)

Содержимое latest_posts.php
<?

// ******************************************* //
// Оригинальная идея Miles Johnson.            //
// Дополнение: HungerGhost                    //
//            Schnapz                        //
//            mrMad-Cat                      //
// Дополнительная информация в readme.html    //
// ******************************************* //

$i=1;
$posts = 5;
$showtopiclength = 1;
$topiclength = 35;
$forumexclude = "21,2";
$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

// Вывод информации (Вы можете изменить вывод для своего дизайна сайта, примеры представлены в readme.html)

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

?>


ЦитироватьНастройка
ройте файл latest_posts.php в текстовом редакторе (например: WordPad или Блокнот) и руководствуясь инструкции, измените параметры на необходимые вам.

$posts = 5; - Количество выводимых, новых сообщений на страницу

$showtopiclength = 1; - Функция сокращения сообщений. 1 – сокращение сообщений включено, 0 - полный текст.

$topiclength = 35; - Если значение $showtopiclength = 1, тогда через N кол-во символов название темы будет скрашено до ...

$forumexclude = "21,2"; - Эта функция скрывает все новые сообщения с подфорума N-id
Например: index.php?showforum=2 - номер форума 2. Если скрывать ничего не нужно впишите значение равное 0

$datedisplay = 'd F Y'; - Настройка отображения даты, подробнее вы можете прочитать тут

$hours_corrector = 0; - Коррекция времени – час
$minutes_corrector = 0; - Коррекция времени – минута
Если коррекция времени не требуется, установите значение равное 0

Маркеры EOD
Изменять маркеры EOD вы можете, руководствуясь html тегами. Более подробную информацию вы можете найти на этой странице.


Установка

Если вы уверены что все настройки выполнены корректно, тогда вам необходимо загрузить файл latest_posts.php в корневую папку форума (где находятся conf_global.php)

Например: _https://my_site.ru/forum/latest_posts.php

Вывод информации с помощью php include
<?php include("Абсолютный путь");?>

Например:
<?php include("/home/unix/site/www/forum/latest_posts.php");?>

Вывод информации с помощью frame
<IFRAME src="Путь до latest_posts.php" width="400" height="100"
scrolling="auto" frameborder="1">
</IFRAME>

Например:

<IFRAME src="https://my_site.ru/forum/latest_posts.php" width="400" height="100"
scrolling="auto" frameborder="1">
</IFRAME>

... скачать *https://db.ibresource.ru/641/

cTpaHHuK

Everybody большое, человеческое тебе спасибо, давно такое искал, работает идеально ;)

Deathless

Цитата: cTpaHHuK от 2009 Нояб. 29, 17:25  Everybody большое, человеческое тебе спасибо, давно такое искал, работает идеально ;)
Люди, да сколько можно?
Для "Спасибо" есть кнопка.

Лучше нажать на "Спасибо" и написать: Давно искал, проверил, работает идеально.

Ну это так, наболело после удаления флуда  :D

DJGRAD

Почему мне показивает вот это ?

Спойлер
Warning: require(/ips_kernel/class_db_mysql.php) [function.require]: failed to open stream: No such file or directory in C:xampphtdocsforumlatest_posts.php on line 21

Fatal error: require() [function.require]: Failed opening required '/ips_kernel/class_db_mysql.php' (include_path='.;C:xamppphppear') in C:xampphtdocsforumlatest_posts.php on line 21
[свернуть]

Версиа форума : IPB V.2.2.2

Ominous


komandirbk

перезалейте плз ато я просто скопировал и вот мне эррор бьёт
Fatal error: Class 'db_driver' not found in C:\AppServ\www\forum\latest_posts.php on line 33

Profesor08


komandirbk

уже разобрался,но крякозяблики почему-то,русского не видно,как испавить?

komandirbk

блин подскажите чо так может быть когда захожу именно по ссылке на эти сообшения то русский видно,а когда его ставлю как блок на сайт то квадраты,как устранить?

Ember

Цитата: komandirbk от 2011 Дек. 30, 10:57  блин подскажите чо так может быть когда захожу именно по ссылке на эти сообшения то русский видно,а когда его ставлю как блок на сайт то квадраты,как устранить?
Кодировка.

komandirbk

та я понял что кодировка,но где менять,если именно в файл этот захожу видно русский,а на сайте криво,пробывал в header.php на UTF-8 не помагает

cokpat

Если у вас возникают проблемы с кодировкой:

Найдите строку:
_________________________________

$db->obj['sql_tbl_prefix']   = $INFO['sql_tbl_prefix'];
_________________________________

Добавьте после:
_________________________________

$db->obj['mysql_codepage']   = $INFO['mysql_codepage'];
_________________________________

Откройте

Найдите строку:
_________________________________

$INFO['mysql_tbl_type']      = 'MyISAM';
_________________________________

Добавьте перед
_________________________________

$INFO['mysql_codepage']      = 'latin1_swedish_ci';
_________________________________

Замечание 1: "latin1_swedish_ci" необходимая кодировка

Замечание 2: в ./conf_global.php у вас уже может быть 1 раз прописана кодировка, так что посмотрите внимательно чтобы не повторяться.

komandirbk

изменения после того что кинул сократ - вместо квадратиков стали знаки вопроса)

cokpat


komandirbk


Sil3nT


kRiak

Да да, и чтобы под mmw еще был
желательно мини гайдик, чтобы знать куда что. а то я 1 раз непонимаю вообще что к чему)

Ctrl


gucciprado



Похожие темы (5)

Сообщений: 8
Просмотров: 7456

Сообщений: 10
Просмотров: 5985

Сообщений: 3
Просмотров: 4411

Сообщений: 2
Просмотров: 2758