Разработка собственной CMS
// Выводим статьи
foreach ($chan['items1] as $item)
{
echo «
$item[title]
$item[description]«;
}
}
else {
echo «Ошибочка! Пустой канал или неправильный формат
файла
$url\n
«;
}
}
?>
Рис. 16.2. Результат работы сценария import.php
Гпава 16. Работа с RSS: получаем новости на сайт 201
Наш сценарий позволяет указать не один, а несколько RSS-файлов: они будут
выведены по очереди. Сначала мы выводим данные из заголовка RSS-канала:
название канала, ссылку, описание канала и информацию об авторских
правах. Затем выводим сами новости: заголовок, описание и ссылку, по которой
можно перейти на сайт-источник новостей и прочитать интересующую
новость подробнее. Зная формат RSS-файла (см. разд. 16.2), вы можете вывести
дополнительные элементы заголовка или статьи, например дату публикации
статьи (рис. 16.2).
16.4. Подключение файла
import.php к сайту
16.4.1. Интеграция с нашей CMS
Сначала нужно определиться, где вы хотите выводить новости. Новости
можно выводить или на главной странице, или на отдельной странице сайта.
Если вы хотите вывести новости на главной странице, тогда найдите в in-
dex.php следующий фрагмент кода:
if (!isset($p)) {
$q = «select * from static where id=\»main\» limit 1″;
$r = mysql_query($q);
$row = mysql_fetch_array($r);
$page = $row[content^ ;
}
Данный фрагмент нужно заменить следующим фрагментом:
if (!isset($p)) {
$page = join(»,file(«http://$SERVER_N???/import.php»));
}
Переменная окружения $server_name содержит имя вашего сайта, например
www.dkws.org.ua. Но иногда (если сервер неправильно сконфигурирован и
эта переменная устанавливается неверно) вместо $server_name лучше явно
Указать имя сайта.
Если вы хотите выводить новости на отдельной странице, то первым делом
отредактируйте шаблон page.tpl, добавив в него ссылку:
HOBOCTM
202
Часть IV. Разработка собственной CMS
Затем откройте index.php и, как обычно, после последней закрывающей фи*
гурной скобки добавьте следующий код:
elseif($p==Mlenta») {
$page = join(»,file(«http://$SERVER_NAME/import.phpM));
}
Измененные версии файлов page.tpl и index.php вы найдете вместе с
остальными файлами в каталоге Glava_16. При закачке файлов на сервер обратите
внимание на регистр букв файла lastRSS.php — регистр не должен быть
изменен (т. е. не нужно преобразовать все символы в нижний регистр), иначе
код работать не будет!
16.4.2. Интеграция
с произвольной CMS
Тут все зависит от сайта и от его «движка». Если вы используете какую-
нибудь готовую CMS, то, возможно, вам придется преобразовать данный
файл в модуль для вашей системы. Этот вариант мы рассматривать не будем,
поскольку систем управления контентом очень много и описать создание
модуля для каждой системы просто невозможно, а создание модулей для CMS
Joomla!, PHP-Nuke и Slaed уже описано.
Если же движок для сайта разрабатывали вы сами, тогда все намного проще.
Вам в нужном месте потребуется просто подключить файл import.php:
include «import.php»;
Если же вы написали сложную систему вывода страниц и такое подключение
файла может нарушить дизайн вашего сайта, то рекомендую поступить
иначе. Сначала следует получить вывод сценария import.php, а затем вывести
результат его работы в нужном месте:
// Укажите ваше имя сервера
$txt = join(‘·,file(‘http://dkws.org.ua/import.php’));
// Переменную $txt следует вывести в нужном месте,
// чтобы не нарушить дизайн сайта
Обратите внимание: результат вывода сценария import.php необходимо
получать только согласно протоколу HTTP, если просто указать имя файла
(import.php), то функция file () прочитает его с диска, а не по HTTP, и в
результате вместо новостей будет выведен исходный код сценария.
Гпава 16. Работа с RSS: получаем новости на сайт
203
16.5. Создание граббера новостей
Наш сценарий импорта новостей работает просто превосходно. Но ссылки на
полное описание статьи уводят пользователей с нашего сайта на сайт-
источник новостей.
5th Фев 2011
|
Теги:
|