Главная Форум Поиск Пользователи Регистрация Добрый день, Гость Вход


Главная


Форум torrenpier который уже живет
это сообщество владельцев форумов на phphBB2, торрент-трекеров на движках torrentpier и SVN всех версий.
Здесь можно найти решение своих проблем на своем сайта.
Здесь можно скачать полезные и нужные моды torrenpier, phpBB2 и svn.
Наш форум - это место для общения и обмена опытом между любителей движков, создателей модов на заказ и владельцев сайтов!
RSS лента на сайт (2 способ)  
Начать новую тему   Ответить на тему    Главная -> Оформление
Автор Сообщение
Admin
Администратор
Зарегистрирован: 2010-07-27
Сообщ.: 771
russia.gif
Сообщение 07-Мар-11 12:17 #1  
Прежде всего, надо уяснить, что на выходе мы должны получить XML файл определенной структуры (об этом можно почитать в википедии). Для удобного манипулирования с RSS каналами у меня имеется хороший PHP класс (скачать файл внизу поста---class.RSSFeed.zip [1.25KB]).

Для того, чтобы установить себе на сайт RSS канал, проделайте следующие шаги:
1. загрузите класс RSSFeed себе на сервер;
2. создайте файл rss.php, в который поместите строки, приведенные ниже в примере (с вашими конфигурационными настройками).
PHP: (rss.php, начало файла)
Код:
<?
# отключаем вывод замечаний
error_reporting(E_ALL ^ E_NOTICE);
# устанавливаем макс. время работы скрипта 30 сек.
set_time_limit(60 * 30);
# подключаем класс (в каталоге lib)
require_once("lib/class.RSSFeed.php");

# задаем параметры базы данных
define("DB_HOST", "localhost"); // хост
define("DB_NAME", "sitedatabase"); // имя БД
define("DB_USER", "mysite_dbuser"); // имя польз-ля
define("DB_PASS", ""); // пароль к БД

# другие настройки
define("NEWS_TABLE", "news"); // таблица новостей
define("DATE_COLUMN", "dtadded"); // поле в таблице, в кот. хранится дата добавления новости
define("NUM_ROWS", 15); // кол-во выводимых в rss записей
define("HTTP_URL", "http://mywebsite.ru/"); // адрес сайта (или раздела)
define("RSS_TITLE", "Последние новости на нашем сайте site.ru"); // заголовок RSS канала
define("RSS_DESCR", "Самая свежая информация с сайта site.ru: события, игры, путешествия, конкурсы и многое другое!"); // описание RSS канала

# соединяемся с СУБД
if (!($conn = mysql_connect(DB_HOST, DB_USER, DB_PASS)))
    exit(); // при неудачном соединении
mysql_select_db(DB_NAME, $conn); // выбор БД
mysql_query("SET NAMES 'utf8'"); // используем utf8


В приведенном PHP коде необходимо настроить константы (задаются функцией define). Обратите особое внимание на NEWS_TABLE и DATE_COLUMN, это имя таблицы новостей (или статей и т.д.) и имя колонки с датой, если последней в таблице нет, то её надо добавить (записи RSS фида обязательно должны содержать дату публикации).

Мы определили константы и подключились к БД, теперь необходимо вывести все записи в XML формате. Для этого используем следующие строки кода (добавляем их ниже предыдущих не изменяя).
PHP: (rss.php, конец файла)
Код:
# формируем запрос
$query = "
   SELECT *
   FROM `%s`
   ORDER BY `%s` DESC
   LIMIT 0, %d
";

# посылаем запрос к базе данных
if (!($rs = mysql_query(sprintf($query, NEWS_TABLE, DATE_COLUMN, NUM_ROWS))))
    exit(); // при неудачном выполнении запроса

# создаем rss объект
$rss = new RSSFeed(HTTP_URL, RSS_TITLE, RSS_DESCR);

# формируем Item в RSS для каждой записи
while($row = mysql_fetch_assoc($rs))
{
    $rss->AddItem(
        htmlentities(HTTP_URL . $row['path']),
        $row['title'],
        $row['body'],
        $row[DATE_COLUMN]
    );
}

# публикуем рузельтирующий RSS 2.0
$rss->Publish();
?>

Единственное, что можно редактировать в вышеприведенном коде, это названия полей в базе данных для URL страницы ($row['url']), заголовка ($row['title']) и описания ($row['body']). То есть, если у вас эти параметры формируются по другому принципу (например URL) или исходя из других названий полей, то необходимо сделать соответствующие правки.
Файл готов, что теперь?

Теперь необходимо проверить, работает ли то, что мы написали!?
Ваш новые RSS канал будет находиться по адресу http://site.ru/rss.php. Проверьте, отдается ли что-нибудь по этому адресу и если нет, то что-то не учли и надо искать причину (вероятнее всего в конфиге).

Также используйте валидаторы для проверки валидности самих XML фидов. Это можно сделать с помощью Feed Validator или W3C Feed Validator. Если все прошло отлично, поздравляю, вы успешно поставили себе на сайт RSS!
Неужели это все, что касается установки?

Да, на этом можно закончить установку RSS, однако адрес вида /rss.php не очень юзабелен, лучше с помощью .htaccess (если используется apache) сделать URL вида /latest-news.xml, этот вариант будет понятней для подписчиков. Файл .htaccess должен содержать примерно следующее:
Код:
Text: (.htaccess)
RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^latest-news\.xml$  /rss.php  [NE,QSA,L]
Теперь вы можете использовать http://site.ru/latest-news.xml в качестве адреса для своего нового RSS канала, или же зарегистрировать его в FeedBurner, и отдавать читателям и ботам адрес фидбернера. Преимущество последнего варианта в том, что при создании на сайте новой новости она помимо того, что автоматически помещается в фид, фидбернер ещё пингует множество сервисов и поисковых систем, чтобы они были в курсе ваших обновлений.
Вернуться к началу
    
Заголовок новой темы
Форум для новой темы
 
Страница 1 из 1
Показать сообщения:   
Начать новую тему   Ответить на тему    Главная -> Оформление Часовой пояс: GMT + 4

 

Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Все материалы сайта представлены только для ознакомления. При копировании материала ссылка на torrentpier-download.ru обязательна!

sitemap     карта форума | Статистика визитов поисковых ботов | Выдача в поисковиках


Поделиться на stumbleupon.com /a>

Яндекс.Метрика
Google Pagerank mйrйs, keresooptimalizбlбs
Счетчик тИЦ и PR



Powered by phpBB © 2001, 2011 phpBB Group
| ©2011-2016 - Воронеж |