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

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


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 например), в интернете по такому примитиву кучи ... много всего

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

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

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

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

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

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

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

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