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

Вывод постов в вордпресс


fstyle

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

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

было бы совсем отлично и про ip.blog узнать, как там последние посты выводить?

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

  • 2 месяца спустя...
Посмотри такое пойдет?? http://matizclub.ru/ - на сайте сбоку новые темы и конкретно новые сообщения из барахолки. Работает через Java + php. Выводить можешь где тебе заблагоразумится и CMS на это никак не влияет. Если чего пиши в личку, поделюсь.
Ссылка на комментарий
Поделиться на других сайтах

  • 3 недели спустя...

Выкладываю для всех код php файла который надо положить в корень форума.

 

document.write('<!--тут html-код для префикса если нужен-->');
<?

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

$i=1;
$posts = 10;
$showtopiclength = 1;
$topiclength = 60;
$forumexclude = "";
$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_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_charset'] = $INFO['sql_charset'];


$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];
$post[short_title] = iconv('windows-1251', 'utf-8', $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;
}

$post[last_poster_name] = iconv('windows-1251', 'utf-8', $post[last_poster_name]);

echo

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

<<<EOD
document.write('<tr><td class="earnews">');
document.write('<b><a href="$INFO[board_url]/index.php?showtopic=$post[tid]&view=getnewpost" target="_top">$post[short_title]</a></b><BR>');
document.write('<font size="-10">от <i><a href="$INFO[board_url]/index.php?showuser=$post[last_poster_id]" target="_top">$post[last_poster_name]</a> - $datefield</i>');
document.write('</td></tr>');
EOD;
$i++;
}

?>
document.write('<!--тут html-код для суффикса если нужен-->');

 

А в нужном месте сайта просто вставить вот такой код

 

<script language='JavaScript' src='путь до файла php который лежит в корневой директории форума'></script>

 

 

Так как у меня CMS вставки php кода обрабатывает самыми первыми и вставить нужный код в необходиму область через php не представлялось возможным, то я прибегнул к вставке через Java-script, а сам php код обрабатывается отдельным файлом.

Для этого были добавлены строки в самом начале и конце файла

document.write('');

А также извенен вывод данных <<<EOD со вставкой того же самого шаблона.

 

На выходе получается следующее

document.write('<table width="100%" cellpadding="1" cellspacing="1" border="1" bordercolor="#006699" bordercolordark="white" bordercolorlight="#006699">');
document.write('<tr><td class="earnews">');
document.write('<b><a href="http://matizclub.net/index.php?showtopic=30563&view=getnewpost" target="_top">[spb] Помогите прошить БК.</a></b><BR>');
document.write('<font size="-10">от <i><a href="http://matizclub.net/index.php?showuser=8362" target="_top">Shish</a> - Сегодня, 15:08</i>');
document.write('</td></tr>');document.write('</table>');

 

Тут очень важно что бы строчки внутри document.write не переносились, иначе работать не будет.

 

Код работает как на 2.3.6 так и на 3.1.2. Но для последней будьте внимательны добавлена конвертация iconv для того что бы данные из базы брало в utf-8, а на сайте отображало в cp-1251. Если получаете крокозяюбры на выходе, то смотрите эту строчку и в какой кодировке сохранен сам файл.

 

 

Естественно Вы можете использовать его как вставку php или так как я через Java абсолютно на любом движке сайта. Мой html-код вывода естественно адаптируйте под свой дизайн.

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

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

это вставка через яваскрипт, а не через ява

и вставка невалидная в заявленном xhtml, потому что надо писать

script type='text/javascript'

а не language

ну а за document.write нужно колесовать, жечь фтопке и употреблять на каннибалистический ужин автора строк

потому что надо делать <div id='topics_from_forum'></div> и в яваскрипте адресовать контент внутрь его (ну или не див, а что там подходит в рамках сайта)

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

Если отредактируете так ка валидно и как лучше, то благодарны будут все))

ИМХО среди клиентов не много спецов в программинге, в основном. Поэтому пользователи и делают как могут, а вот то что здесь я опубликовал, я как-то нашел давно когда еще пользовался 2.3.6 и отредактировал как знал. Вариант хоть и не валидный, но рабочий и другого увы не найдено.

Хаять все умеем, а вот помочь что-то не каждый готов.

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

это надо только тем, у кого сайт html

а если есть форум php, зачем нахрен нужен сайт html, когда очевидно можно сделать его php и обойтись безо всякой ереси

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

а как сделать правильно я сказал полностью - текст/яваскрипт и направление в див (.innerHTML например), в интернете по такому примитиву кучи ... много всего

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

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

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

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

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

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

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

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

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

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

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

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