avatar_pirazok

Новости и сообщения с IPB форума: MU online, Веб сайты, Deathless Engine Web DEW | Как создать THCT

Автор pirazok, 2013 Сен. 15, 15:04

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

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

Ключевые слова [SEO] новостипоследние сообщенияipb форумrss форумthctоригинальные скрипты

pirazok

Витягиваем новости и последние сообщения с rss форума. В принципе можна без проблем подбит под любои саит..
Оригинальные скрипты взяты отсюда - /index.php?topic=17891.0

Установка:

1. Создаём rss.php в корне саита (папка htdocs, www или другая) и закидываем этот скрипт:
<?php
header
("Content-type:text/html; Charset=UTF-8");
error_reporting(E_ALL ^E_WARNING ^E_NOTICE);

require_once 
'config.php';
require_once 
'Includes/DEW_Engine.php';

ob_start();

if (!
$OldContent ReadCache("rss"$Web['cache_rss']*60)) {
$RSS simplexml_load_file($Web['rss']);
$Items $RSS->channel->item;

function 
RemoveSpace($String) {
$String preg_replace ('/s+/'' '$String) ;
$String trim($String) ;
return 
$String;
}

if(
count($Items) > 0) {
foreach (
$RSS->channel->item as $Item) {
$Link $Item->link;
$Title PrewText($Item->title,'50');
$Date date($Web['format'],strtotime($Item->pubDate));
$Description = (strip_tags(htmlspecialchars_decode($Item->description)));
$Description PrewText($Description,'150');

echo 
'<div class="theme_icon">
<div class="theme">
<div class="theme_title"><a href="'
.$Link.'">'.PrewText($Title,50).'</a></div>
<div class="theme_info">'
.PrewText($Description,150).'</div>
</div>
</div>'
;
}
}
else {
echo 
'<font color="red">Временно недоступно</font>';
}

$NewContent ob_get_contents();
ob_clean();
WriteCache($NewContent"rss");
}

ob_end_clean();
echo 
$OldContent.$NewContent;

?>
2. Создаём news.php в папке Modules и закидываем этот скрипт:
<?php

// Новости
// Автор: NexT

error_reporting(E_ALL ^E_WARNING ^E_NOTICE);
require_once 
'Includes/DEW_Engine.php';

// Начинаем буферизацию вывода
ob_start();

// Обработка шапки
if (!$Content ReadCache("news"$Web['cache_news']*60)) {
$RSS simplexml_load_file($Web['news']);
$Items $RSS->channel->item;

echo 
'<h2>Новости</h2>';

if(
count($Items) > 0) {
foreach (
$RSS->channel->item as $Item) {
$Link $Item->link;
$Title $Item->title;
$Date date($Web['format'],strtotime($Item->pubDate));
$Description $Item->description;

echo 
'<div class="news">
<div class="news_title">'
.$Date.' — <a href="'.$Link.'">'.$Title.'</a></div>
<div class="news_text">
<div id="news-id-7" style="display:inline;">'
.PrewText($Description,1700).'</div>
</div>
<div class="news_read"><a href="'
.$Link.'">Читать далее...</a></div>
</div>'
;
}
}
else {
echo 
Message('warning','Новости временно недоступны!');
}

// Сохранение кэш-файла с контентом
$Content ob_get_contents();
ob_clean();
WriteCache($Content"news");
}

// останавливаем буферизацию
ob_end_clean();

// Выводим содержимое страницы
echo $Content;

?>
3. В config.php добавляем:
$Web['news']                        = 'ут ссылка на рсс новостей';
$Web['rss']                            = 'тут ссылка на рсс форума';
$Web['module']                        = 'news.php';
$Web['cache_news']                    = 120;
4. В Includes/DEW_Engine.php добавляем:
/********************************************************************************

NEWS & RSS

********************************************************************************/
function PrewText($Text,$Max = 500) {
$Words = explode(' ',$Text);
$Text='';

foreach ($Words as $Word) {
if (mb_strlen($Text.' '.$Word) < $Max) {
$Text.=' '.$Word;
}
else {
$Text.='</span></strong>';
break;
}
}
return $Text;
}

И вот результат:
Спойлер
[свернуть]

Credits:
NexT - скрипти
pirazok - чуть чуть переделал)

gucciprado

Спасибо. Нужная вещь как раз искал!
Ну новости думаю не обязательно с форума выводить, а вот последние темы то что нужно.

sovatar


Телега


madias


Телега


sovatar

мне надо скрипт чтоб писать в старт страницы без форума чтоб брало с тхт

pirazok

Удали всё c news.php и пиши от руки всё что хочешь  

Everybody

#8
Цитата: sovatar от 2013 Дек. 07, 15:41  мне надо скрипт чтоб писать в старт страницы без форума чтоб брало с тхт
Наверно подойдет вариант, инклюдом. Вставь там в дизайне
<?php include 'sovatarnews.txt'?>

sovatar

pirazok спосибо ) пашет )))

возникла новая проблема тхт принимает только английский место рус пишет ероглеф

Телега


Profesor08

Таких скриптов в интернете полно. И данный будет хорошо работать если кодировка страницы в UTF-8. А что если там другая кодировка? Ведь IPB свой RSS экспорт в UTF-8 делает. Так что, чтоб все по уму работало надо еще и перекодировать вывод.

sovatar

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"  не пашет *(

Телега

Саму блеать кодировку текстового файла измени

positive


pirazok

Цитата: positive от 2014 Фев. 19, 20:39  Сделал все как написано, вот результат:

Хз что там делал но мне в news.php невыходит 57 строчек..


А насчет rss как уже писали, кодировку поменяи.

positive

Цитата: pirazok от 2014 Фев. 20, 13:22  Хз что там делал но мне в news.php невыходит 57 строчек..
Спойлер
[свернуть]

А насчет rss как уже писали, кодировку поменяи.


Кодировку менял - не помогло.
57-я строк потому, что не удалил из модуля новостей рынок.




HaPKoTuK

Цитата: positive от 2014 Фев. 20, 17:03  Кодировку менял - не помогло.
57-я строк потому, что не удалил из модуля новостей рынок.





у меня такая же проблема ты как исправил ?

positive


HaPKoTuK

Цитата: positive от 2014 Апр. 12, 10:02  Правильные ссылки вписал в конфигах для рсс..
сылки правильно вписаны

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