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

RSS Feed

Все моды, созданные нашим сообществом для phpBB 2.0.x, анонсированы тут.
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 16 лет 9 месяцев
Откуда: оттуда

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

Ну дак это заголовок http, а не XML. Так ведь?
Так! Виноват, искренне раскаиваюсь в содеянном, а также во всем том, чего не успел совершить по недостатку ума и времени.
Аватара пользователя
avm
Former team member
Сообщения: 582
Стаж: 16 лет 6 месяцев
Откуда: Москва

Сообщение avm »

Да ладно (скромно так)
:oops:
выделенный сервер по цене обычного хостинга - менее 150 рублей в месяц
Благодарности принимаются в Яндекс.Деньгах на счет 4100143316948
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 16 лет 9 месяцев
Откуда: оттуда

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

Wizzz_art
:idea: Решение найдено.

Найти

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

//
// END Includes of phpBB scripts
//
Перед этим вставить

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

$nonascii=array();
for($i=0;$i<32;$i++)$nonascii[chr($i)]="";
Найти

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

'POST_TEXT' => htmlspecialchars($message),
Заменить на

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

'POST_TEXT' => htmlspecialchars(strtr($message,$nonascii)),
:!: Новая версия выйдет к следующему понедельнику, если не будет найдено критических ошибок, ибо планирую набрать поболе замечаний для исправления.
izpitera
phpBB 1.4.2
Сообщения: 65
Стаж: 16 лет 7 месяцев

Сообщение izpitera »

Классный мод! Увага автору!

Самый главный вопрос:

Закрытые (приватные форумы) без авторизации в агрегаторе человек не сможет получать по RSS?
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 16 лет 9 месяцев
Откуда: оттуда

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

Закрытые (приватные форумы) без авторизации в агрегаторе человек не сможет получать по RSS?
Не сможет.

Добавлено спустя 4 часа 36 минут 2 секунды:

Сделал новую версию

Изменения в версии 2.1.4
- улучшена совместимость с PHP 3.0
- Добавлен новый ключ 'styled' , есть возможность автоматического применения стиля для MSIE
- исправлена ошибка, возникающая при наличии служебных символов в сообщении
- улучшено быстродействие
- разрешено использование куков для получения RSS
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 16 лет 9 месяцев
Откуда: оттуда

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

Исправил таблицу стилей, теперь работает и с Mozilla. Обновил общий архив. Отдельно стиль доступен здесь:

СКАЧАТЬ
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 16 лет 9 месяцев
Откуда: оттуда

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

Изменения в версии 2.2.0
- поддержка авторизации в PHP, установленного как CGI
- правильное формирование заголовков в PHP, установленного как CGI
решена проблема с "304 OK" выдаваемой сервером.
- для будущих разработок (RSS для фотоальбома, в частности) фаил разделен на 3: программа, функции и фаил конфигурации
- незначительные улучшения
- поддержка Page Generation Time от Smartor
- Автоматический двуязычный стиль

СКАЧАТЬ

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

Рекомендации по обновлению в версии 2.1.4
Скопировать из начала файла rss.php настройки
Между

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

//
// BEGIN Configuration. Change values
//
и

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

//
//*** DON't MODIFY CODE BELOW ****************
//
И заменить в rss_config.php
Код между

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

// Copyright (c) 2004-2005, Egor Naklonyaeff  
и

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

// Config Page generation method
В случае, если PHP, установлен как CGI для авторизации нужен Apache mod_rewrite и доступ к .htaccess
Туда необходимо записать инструкции

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

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]
</IfModule>
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 16 лет 9 месяцев
Откуда: оттуда

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

Ну, шлифовка кода. Версия 2.2.1. Надеюсь, что на этом всё.
Все свои извращенные фантазии я осуществил: теперь даже распознает установленный албанский язык и выдает соответсвующий код языка для RSS.
Мод уже включает новый стиль с поддержкой RSS для фотоальбома.
Обратите внимание: двуязычный rss.xsl теперь лежит в папке Russian.

Кроме того, в довеске изменилась страница RSS_PAGE на -1169

А так, по мелочи: улучшил быстродействие одного SQL, форматирую дату для RSS с учетом временной зоны заказчика.
Alexgraf

Сообщение Alexgraf »

Егор Наклоняев
Отличный мод, спасибо.
Выяснился небольшой недочёт - если в сообщении используется тэг [hide], то в rss-колонке отображется (без авторизации)

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

[hide:79a236ebcd] текст сообщения в форуме [/hide:79a236ebcd]
Понимаю, что это не стандартный тэг, но всё же...
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 16 лет 9 месяцев
Откуда: оттуда

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

Понимаю, что это не стандартный тэг, но всё же...
Забавно. У меня на сайте установлено более десятка нестандартынх тэгов и все работают, благо вызываются одной функцией.

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

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

Получил я вот такое писбмо от полорогих буржуев.
MOD Database Manager писал(а):-------------------------------------------------------------------------------------
This PM is automatically generated. Please do not reply.
-------------------------------------------------------------------------------------

Hello,

As you may know, all MODs submitted to the phpBB MOD Database must be validated and approved by members of the phpBB Team.

Upon validating your MOD, the phpBB MOD Team regrets to inform you that we have had to deny your MOD.

To correct the problem(s) with your MOD, please following the below instructions:
  1. Make the necessary changes to correct any problems (listed below) that resulted in your MOD being denied.
  2. Increase your version number. (See Knowledge Base Article 43 for help.)
  3. Change the filename. (For example, my_mod_1.0.0.zip would become my_mod_1.0.1.zip.)
  4. Re-upload your MOD into our MOD Database.
Please ensure you tested your MOD on the latest version of phpBB (see the Downloads page) before you reupload your MOD.

Before you resubmit your MOD, please check your MOD Syntax via our MOD Syntax Validator to ensure your MOD is using the correct MOD Template Syntax.

Here is a report on why your MOD was denied:
-------------------------------------------------------------------------------------

Instead of using header to redirect, you needs to use phpBB's redirect function.

Short var ($_SERVER) is not acceptable.

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

$useragent = (isset($_SERVER["HTTP_USER_AGENT"]) ) ? $_SERVER["HTTP_USER_AGENT"] : $HTTP_USER_AGENT;
htmlspecialchars() on $HTTP_SERVER_VARS['QUERY_STRING']

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

         header('Location: ' .$index_url."rss.".$phpEx."?".$HTTP_SERVER_VARS['QUERY_STRING'].'&login');
One of the addon has russian changed inside the main MOD. Because of the new guideline, you need to put non-english changes into a separate file. Please read: http://www.phpbb.com/phpBB/viewtopic.php?t=160827

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

# 
#-----[ OPEN ]------------------------------------------------------- 
# 
language/lang_russian/lang_main.php 

# 
#-----[ FIND ]---------------------------------------- 
# 
$lang['Viewing_FAQ'] = 'Viewing FAQ'; 

# 
#-----[ AFTER, ADD ]---------------------------------- 
# 
$lang['Viewing_RSS'] = 'RSS feed';  // RSS Feed Mod 
~Mac

-------------------------------------------------------------------------------------
Please refer to the following links before you reupload your MOD: For further reading, you may want to review the following: For help with writing phpBB MODs, the following resources exists:
  • Forum for MOD Authors' Help
  • IRC Support - [url=irc://irc.freenode.net/phpBBMOD]#phpBBMOD[/url] is registered on the FreeNode IRC network ([url=irc://irc.freenode.net/]irc.freenode.net[/url])
Should you have any questions, please contact us at: mod-team@phpbb.com
If you feel this denial was not warranted, you can contact the MOD Team Leader, wGEric.

Thank You,
phpBB MOD Team

-------------------------------------------------------------------------------------

If you wish to discuss anything in this PM please contact: ycl6

-------------------------------------------------------------------------------------
На что с присущей мне тактичностью ответил:
Instead of using header to redirect, you needs to use phpBB's redirect function.
No. I don't need It.
I need to redirect RSS Agregator AND CHANGE LINK in it
so I use HTTP header '301 Moved Permanently'
Short var ($_SERVER) is not acceptable.

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

$useragent = (isset($_SERVER["HTTP_USER_AGENT"]) ) ? $_SERVER["HTTP_USER_AGENT"] : $HTTP_USER_AGENT;
It's code from page_header.php.:

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

$do_gzip_compress = FALSE;
if ( $board_config['gzip_compress'] )
{
	$phpver = phpversion();

	$useragent = (isset($_SERVER["HTTP_USER_AGENT"]) ) ? $_SERVER["HTTP_USER_AGENT"] : $HTTP_USER_AGENT;
htmlspecialchars() on $HTTP_SERVER_VARS['QUERY_STRING']

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

 header('Location: ' .$index_url."rss.".$phpEx."?".$HTTP_SERVER_VARS['QUERY_STRING'].'&login');
And? After that as I think '&' became '&' and GET string will have error.
One of the addon has russian changed inside the main MOD. Because of the new guideline, you need to put non-english changes into a separate file. Please read: http://www.phpbb.com/phpBB/viewtopic.php?t=160827
Ok. I remove this code. As I see It's only one that I must to do.
Аватара пользователя
Coagulant
Former team member
Сообщения: 955
Стаж: 16 лет 6 месяцев
Откуда: Москва

Сообщение Coagulant »

Нетщательно проверяют, находят несуществующие ошибки :( Я вот уже месяц никак не могу свой мод добавить в базу phpbb...

Мод отличный - давно пора его зарелизить в мировом масштабе :)
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 16 лет 9 месяцев
Откуда: оттуда

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

Мод отличный - давно пора его зарелизить в мировом масштабе
Спасибо за комплимент, но, увы, я бы его очередной раз переписал ;)
Давеча хотел сделать Add-On для Atachment Mod и с тоскою увидел, что из-за того, что пытался на начальной стадии добиться совместимости с предыдущим RSS теперь эта невинная операция требует большого количества ритуальных танцев. А если исправить имена полей в шаблоне в соответствии view_topic.tpl , то нужно будет вставить всего одну строку в код. Вот и думаю: делать версию 2.3 или успокоиться на достигнутом.
Потому как осталась только косметика.
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 16 лет 9 месяцев
Откуда: оттуда

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

Вторая часть марлезонского балета. Нам пишут:
ycl6 писал(а):Hi

I've consulted with our team leader wGEric about the header redirection issue.

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

         header('Location: ' .$index_url."rss.".$phpEx."?".$HTTP_SERVER_VARS['QUERY_STRING'].'&login'); 
             ExitWithHeader("301 Moved Permanently");
With the above, I don't get it why he is redirecting when he doesn't need to. Just see if they are logged in near the top of the script. There is no need to redirect to the same page but with a varaible added to the url.
I hope you understand this.

login.php may offer you an example how redirect can be done, and also use str_replace together with htmlspecialchars to secure your variable.

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

						$url = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : "index.$phpEx";
						redirect(append_sid($url, true));
~Mac
Ну, а мы не остаёмся в долгу.
============================

I'm sorry, but do you see any difference between POST and GET methods and how to work HTTP protocol?

Please, open function.php, find redirect function and show me any calling htmlspecialchars in code.

How it work, for example:
=>
GET /rss.php?f=1 HTTP/1.1
Host: myhost.com

I this example I don't use login key for private forum. It's not correct URL and program try to change it.

<=
HTTP/1.x 301 Moved Permanently
Location: http://myhost.com/rss.php?f=1&login


NB! 301 Moved Permanently
The requested resource has been assigned a new permanent URI and any future references to this resource SHOULD use one of the returned URIs. Clients with link editing capabilities ought to automatically re-link references to the Request-URI to one or more of the new references returned by the server, where possible. This response is cacheable unless indicated otherwise.

But if I use function redirect from function.php header will be HTTP/1.x 302 Found and aggreg don't permanent change link for private forum.

=>
GET /rss.php?f=1&login HTTP/1.1
Host: myhost.com

<=
HTTP/1.x 401 Authorization Required
WWW-Authenticate: Basic realm="For registred users only"


=>
GET /rss.php?f=1&login HTTP/1.1
Host: myhost.com
Authorization: Basic ****************


If user haven't permission to see forum:
<=
HTTP/1.x 404 Not Found
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 16 лет 9 месяцев
Откуда: оттуда

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

Ниже публикуется возможное решение, позволяющее корректно использовать идентификацию пользователя в Opera.
К сожалению, оно не универсально и требуется задавать кодировку сервера (в данном случае windows-1251) и наличие функции iconv
Посему в релиз оно входить не будет. Однако вполне рабочее, кому нужно - пользуйтесь.
Нужно заменить функцию в файле rss_functions.php

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

function rss_get_user()
{
	global $db, $HTTP_SERVER_VARS, $HTTP_GET_VARS,$useragent;
	if((!isset($HTTP_SERVER_VARS['PHP_AUTH_USER']) || !isset($HTTP_SERVER_VARS['PHP_AUTH_PW']))
		&& isset($HTTP_SERVER_VARS['REMOTE_USER']) && preg_match('/Basic\s+(.*)$/i', $HTTP_SERVER_VARS['REMOTE_USER'], $matches)) {
		list($name, $password) = explode(':', base64_decode($matches[1]), 2);
		$HTTP_SERVER_VARS['PHP_AUTH_USER'] = strip_tags($name);
		$HTTP_SERVER_VARS['PHP_AUTH_PW']	= strip_tags($password);
	}
	if (isset($HTTP_SERVER_VARS['PHP_AUTH_USER']) && isset($HTTP_SERVER_VARS['PHP_AUTH_PW'])) {
        if((function_exists("iconv")) && (strpos($useragent,'Opera')!==false))
            {
              $HTTP_SERVER_VARS['PHP_AUTH_USER']=iconv("utf-8","windows-1251",$HTTP_SERVER_VARS['PHP_AUTH_USER']);
              $HTTP_SERVER_VARS['PHP_AUTH_PW']=iconv("utf-8","windows-1251",$HTTP_SERVER_VARS['PHP_AUTH_PW']);
            }
		$username=(function_exists("phpbb_clean_username"))? phpbb_clean_username($HTTP_SERVER_VARS['PHP_AUTH_USER']):$HTTP_SERVER_VARS['PHP_AUTH_USER'];
		$password=md5($HTTP_SERVER_VARS['PHP_AUTH_PW']);
		if(isset($HTTP_GET_VARS['uid'])){
			$uid=intval($HTTP_GET_VARS['uid']);
	   		$sql = "SELECT * FROM " . USERS_TABLE . " WHERE user_id = $uid";
	   	}
	   	else
	   		$sql = "SELECT user_id, username, user_password, user_active, user_level
			FROM " . USERS_TABLE . "
			WHERE username = '" . str_replace("\\'", "''", $username) . "'";

		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Error in obtaining userdata', '', __LINE__, __FILE__, $sql);
		}
		if( $row = $db->sql_fetchrow($result) )
        {
         if( $password == $row['user_password'] && $row['user_active'] )
         {
	      // Yes!!!  It's good user
    	    return $row['user_id'];
         }
       	 else GetHTTPPasswd();
    }
    }
	else GetHTTPPasswd();
	return ANONYMOUS;
}

Вернуться в «Анонсы и поддержка модов для phpBB 2.0.x»