Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

[MODDB] RSS Feed 2.0.0

Здесь авторы постили бета-версии своих модификаций для phpBB 2.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 19 лет 6 месяцев
Откуда: оттуда

[MODDB] RSS Feed 2.0.0

Сообщение Егор Наклоняев »

RSS 2.0 для форума на phpBB
Поддерживает HTTP-заголовки: If-Modified-Since и If-None-Match
Использует расширение Dublin Core Metadata для корректного описания автора сообщения и заголовка.
Выдаёт только сообщении, после предыдущего запроса, используя дату в If-Modified-Since.
Описывает иерархию вида сообщение-ответы, использованием <annotate:reference> для NewzCrawler.
Позволяет просматривать приватные форумы с использование WWW-Authenticate. Корректно работает с привелегиями пользователей.
Можно получать ленту новостей только с выбранного форума и регулировать их количество.

Подробнее - здесь
Последняя версия доступна: здесь
Последний раз редактировалось Егор Наклоняев 09.01.2005 0:19, всего редактировалось 3 раза.
Аватара пользователя
Mr. Anderson
phpBB Guru
phpBB Guru
Сообщения: 7522
Стаж: 20 лет 1 месяц
Откуда: СССР
Благодарил (а): 5 раз
Поблагодарили: 105 раз

Сообщение Mr. Anderson »

Егор Наклоняев
Давно ждал такого МОДа! Ура!!!
Сейчас скачаю, проверю и если работает - срочно в нашу коллекцию!!!
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 19 лет 6 месяцев
Откуда: оттуда

Update

Сообщение Егор Наклоняев »

Небольшая косметика:
1) Добавлено поле <comments> в RSS
2) Добавлена gzip компрессия ленты новостей
3) Добавлен вывод в формате Atom 0.3

rss.php - иходники
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 19 лет 6 месяцев
Откуда: оттуда

Сообщение Егор Наклоняев »

Еще небольшие косметические изменения. Теперь отображаются не только последние сообщения, но и измененные с последнего раза.

1. Корректно отображается <modified> в Atom 0.3
2. Добавлено <dcterms:issued> и <dcterms:modified> в RSS

Теперь внимание, вопрос к знатокам. Что нужно сделать для того, чтобы в административной панели видеть нечто типа:
"Вася Пупкин с АйПи такой-то на странице RSS"?

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

P.S. Ссылка на исходник в предыдущем посте.
У меня там есть волшебные слова, типа:

Код: Выделить всё

//
// BEGIN Session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//
Чувствую, что где-то здесь собака порылась...

Добавлено спустя 14 минут 43 секунды:

Думаю, надо вставить строчку после успешной регистрации, а после этого код должен сработать правильно.

Код: Выделить всё

$session_id = session_begin($row['user_id'], $user_ip, PAGE_INDEX, FALSE, 0);
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

Егор Наклоняев
Предоставлю код, просто там надо писать в phpBB для резервирования id страницы за модом.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 19 лет 6 месяцев
Откуда: оттуда

Сообщение Егор Наклоняев »

Xpert

Насколько я глянул, нужно подправить
viewonline.php и admin/index.php

Тамошние CASE по страницам.

Внимание, вопрос. Страницу -69 ещё никто не занял?
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

Егор Наклоняев
Я послал запрос на резервацию id с -1130 по -1134 включительно для нужд phpBB Guru Team.

Техническую часть вопроса прекрасно иллюстрирует соответствующий код из Photo Album Mod:

Код: Выделить всё

#
#-----[ OPEN ]-------------------------------------------------------
#
viewonline.php

#
#-----[ FIND ]----------------------------------------
#
				case PAGE_FAQ:
					$location = $lang['Viewing_FAQ'];
					$location_url = "faq.$phpEx";
					break;

#
#-----[ AFTER, ADD ]----------------------------------
#
				case PAGE_ALBUM:
					$location = $lang['Album'];
					$location_url = "album.$phpEx";
					break;


#
#-----[ OPEN ]-------------------------------------------------------
#
admin/index.php

#
#-----[ FIND ]----------------------------------------
#
						case PAGE_FAQ:
							$location = $lang['Viewing_FAQ'];
							$location_url = "index.$phpEx?pane=right";
							break;

#
#-----[ AFTER, ADD ]----------------------------------
#
						case PAGE_ALBUM:
							$location = $lang['Album'];
							$location_url = "index.$phpEx?pane=right";
							break;
В includes/constants.php добавляется:

Код: Выделить всё

define('PAGE_ALBUM', -19);	// for Session Handling
... а среди первых строк скриптов альбомов есть это:

Код: Выделить всё

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_ALBUM);
init_userprefs($userdata);
//
// End session management
//
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 19 лет 6 месяцев
Откуда: оттуда

Сообщение Егор Наклоняев »

Техническую часть вопроса прекрасно иллюстрирует соответствующий код из Photo Album Mod
Спасибо.

Приятно осознавать, что я копал именно в том же направлении, и даже всё это сделал. Один в один. Ну, с учётом кода -69, конечно.
Теперь пытаюсь оттестировать.

Добавлено спустя 9 минут 58 секунд:

Ан не работает, увы. Упорно пишет "Список форумов" вместо RSS. Хотя иногда слово RSS всё-таки проскакивает, что делает ситуацию еще более забавной.



Добавлено спустя 15 минут 1 секунду:

Скорее всего не работает из-за авторизации. У меня то редирект отсуствует после авторизации по WWW-Authenticate.
А насколько я посмотрел sessions.php нужны или куки, или GET.


Добавлено спустя 37 минут 30 секунд:

Итак, авторизация без куков или sid в GET не работает, регистрирует куки как для Гостя. Зато разобрался, почему для Гостя не показывалась страница "RSS". Оказывается, в admin/index.php целых 2 CASE и в оба надо ставить отображение страницы.


Да. Справочно. У меня выложена стабильная, работающая версия, а не этот полуфабрикат, который я сейчас курочу. Скорее всего дальнейшие изыскания в данном направлении прекращу. Ибо можно, конечно, принудительно прописать ссесию, но с точки зрения безопасности и совместимости - это контрпродуктивно.

Изображение Изображение
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 19 лет 6 месяцев
Откуда: оттуда

Сообщение Егор Наклоняев »

Полезный довесок. Таблица стилей XSL, для отображения в браузерах RSS.
После первой строки в rss_body.tpl вставляем
<?xml-stylesheet type="text/xsl" href="rss.xsl"?>

В каталоге форума создаём фаил:

Фаил: rss.xsl

Код: Выделить всё

<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html"/>
<xsl:template match="/rss/channel">
<html>
<head>
<title><xsl:value-of select="title"/></title>
<style>
h1, h1 a {background:#001850;color:#FFFFFF;font:bold large/normal tahoma,arial,sans-serif;margin:0;padding:1ex;text-align:left}
dd {font:0.8em arial,sans-serif;margin:0.5ex 10px 0.5ex 50px;text-align:left}
dt {background:#EEEEEE;font:0.8em arial,sans-serif;margin:0 10px 0 10px;text-align:left;}
.gen { font-size : 12px; }
.genmed { font-size : 11px; }
.gensmall { font-size : 10px; }
.gen,.genmed,.gensmall { color : #000000; }
a.gen,a.genmed,a.gensmall { color: #006699; text-decoration: none; }
a.gen:hover,a.genmed:hover,a.gensmall:hover	{ color: #DD6900; text-decoration: underline; }
.code {
	font-family: Courier, 'Courier New', sans-serif; font-size: 11px; color: #006600;
	background-color: #FAFAFA; border: #D1D7DC; border-style: solid;
	border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px
}
.quote {
	font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; color: #444444; line-height: 125%;
	background-color: #FAFAFA; border: #D1D7DC; border-style: solid;
	border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px
}
.genmed {
  font-size: 0.8em;
}
.off { font-size: 10px; color: #999999 }
</style>
</head>
<body>
<h1><a><xsl:attribute name="href"><xsl:value-of select="link"/></xsl:attribute>
<xsl:value-of select="title"/></a></h1>
<p><xsl:value-of select="description" disable-output-escaping = "yes"/></p>
<dl>
<xsl:for-each select="item">
    <dt>
        <a><xsl:attribute name="href"><xsl:value-of select="link"/></xsl:attribute>
        <xsl:value-of select="title" disable-output-escaping = "yes"/></a>
    </dt>
    <dd>
        <xsl:value-of select="description" disable-output-escaping = "yes"/><br /><span>
        <xsl:attribute name="style">font-size:0.8em;color:#FF6600</xsl:attribute>
        <xsl:value-of select="pubDate"/></span>
    </dd>
</xsl:for-each></dl>
<hr /><p class="off"><xsl:text>This text generated by XSLT from RSS Feed</xsl:text><br /><xsl:value-of select="copyright"/></p>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Секцию <style> правим по вкусу. Если есть такое желание.

Замеченые "тараканы" в отображении:
Mozilla Огненный Лисыц не понимает аттрибут "disable-output-escaping", как это предусмотрено спецификацией, в результате вместо HTML в описании и заголовках просто текст из RSS. Но результат всё равно симпатичнее, чем без таблицы стилей. В Опере не смотрел.

UPD: У себя временно отключил, т.к. некоторые агрегаторы в Mozilla перестают работать с RSS, при наличии таблицы стилей. Сделаю по отдельному ключу.
Последний раз редактировалось Егор Наклоняев 23.11.2004 8:31, всего редактировалось 1 раз.
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 19 лет 6 месяцев
Откуда: оттуда

Сообщение Егор Наклоняев »

В результате установки на сайты выявлены следующие неточности, которые были исправлены.
1. С наличием функции getallheader() повезло не всем, заменил на $_SERVER[]. Если RSS не вылетает по ошибке, жалуясь на недоступность этой функции, эти изменения вносить не обязательно.

2. Строка, где-то в районе 139.
$replypost = ( $script_name != '' ) ? $script_name . '/posting.' . $phpEx.'?mode=quote' : 'posting'. $phpEx.'&mode=quote';

должна звучать:
$replypost = ( $script_name != '' ) ? $script_name . '/posting.' . $phpEx.'?mode=quote' : 'posting.'. $phpEx.'?mode=quote';

Из-за этих опечаток RSS давал невалидный код в тэге <comments> для сайтов, у которых форум размещен в корне. Поскольку символа &mode - не существует, то в результате, при попытке отобразить в браузере, выдавалась ошибка вида: "A semi colon character was expected. Error processing resource". Плюс ссылка формировалась неверно, в виде postingphp, вместо posting.php
Для исправления достаточно заменить & на ?, как это показано выше, и добавить точку после posting. Скачивать обновление не обязательно. Актуально только для сайтов, у которых phpBB в корне.

В исходники на сайте исправления внесены. Приношу извинения за допущенные ошибки.

Добавлено спустя 22 минуты 20 секунд:

P.S. Кстати, граждане, вставляя в заголовок RSS картинку не забываем о стандарте:
http://blogs.law.harvard.edu/tech/rss#l ... tchannelgt, а именно:
Maximum value for width is 144, default value is 88.
Maximum value for height is 400, default value is 31.
А то в агрегаторах она занимает слишком много места. Хотя это не критично, но не эстетично.

Добавлено спустя 1 час 37 минут 24 секунды:

Еще нашёл, тяжкое наследие от предыдущих авторов. Строка 292 должна звучать:
$post_subject = htmlspecialchars($lang['Subject'].': '.$post_subject.'<br />');
вместо
$post_subject = $lang['Subject'].': '.htmlspecialchars($post_subject).'<br />';

Это приводило к невалидному RSS в отдельных случаях.
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

По моему запросу команде сайта phpBB Guru были выделены id страниц с -1135 по -1139 включительно. Выбирай какой тебе больше по душе :)

Добавлено спустя 6 минут 44 секунды:

Попробовал посмотреть новости в формате RSS у тебя на сайте, смотрел Оперой. Обнаружил корявости с кодировкой.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 19 лет 6 месяцев
Откуда: оттуда

Сообщение Егор Наклоняев »

Попробовал посмотреть новости в формате RSS у тебя на сайте, смотрел Оперой. Обнаружил корявости с кодировкой.
Уважаемый, глюки Оперы в отображении XML меня совершенно не трогают. У меня лично все заголовки прописаны корректно, что подверждается независимой экспертизой:
Изображение

Допускаю, что Опера работает только в UTF-8 с RSS. (UPD: Как выяснилось прекрасно работает и в windows-1251) Мне не сложно добавить перекодировку, тем более что наработки уже есть.
Но тогда возникнут следующие проблемы:
1. iconv()- есть не у всех, хотя это решается моим личным перекодировщиком.
2. Главная беда будет у тех, у кого русский Апач. Он будет пытаться перекодировать на лету, и нужно будет выносить rss в отдельную папку и играть с .htaccess, иначе полезет кракозябра. Поэтому RSS будет выдаваться только в кодировке форума.

Рекомендую из агрегаторов Abilon
Бесплатный и работает корректно.
Последний раз редактировалось Егор Наклоняев 16.11.2004 9:05, всего редактировалось 1 раз.
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 19 лет 6 месяцев
Откуда: оттуда

Сообщение Егор Наклоняев »

Не поленился, поставил Оперу.
Всё работает.

Изображение

UPD: Причём под разными ОС и на разных компьютерах.
ahat

Сообщение ahat »

а управление из админ панели?!
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 19 лет 6 месяцев
Откуда: оттуда

Сообщение Егор Наклоняев »

а управление из админ панели
Пардон муа, чем?

Вернуться в «Бета-версии модов для phpBB 2.0.x»