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

RSS Feed

Все моды, созданные нашим сообществом для phpBB 2.0.x, анонсированы тут.
Аватара пользователя
avm
Former team member
Сообщения: 582
Стаж: 19 лет 3 месяца
Откуда: Москва

Сообщение avm »

Тот же "более сложный случай", но элегантнее:

$unauthed_list=array(666,777);
$unauthed = '0' . (($s=@join(',',$unauthed_list)) ? ','.$s : '');
if(!$is_auth[$forum_id]['auth_read'] && !in_list($forum_id,$unauthed_list))

P.S. Даже зарегистрироваться пришлось, чтоб это написать. Так глаза резануло...
выделенный сервер по цене обычного хостинга - менее 150 рублей в месяц
Благодарности принимаются в Яндекс.Деньгах на счет 4100143316948
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 19 лет 5 месяцев
Откуда: оттуда

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

Спасибо за критику!
Тот же "более сложный случай", но элегантнее:

$unauthed_list=array(666,777);
$unauthed = '0' . (($s=@join(',',$unauthed_list)) ? ','.$s : '');
if(!$is_auth[$forum_id]['auth_read'] && !in_list($forum_id,$unauthed_list))
А поподробнее про функцию in_list расскажите нашим читателям?
Может лучше in_array? :lol:

Теперь об "элегантности":
$unauthed = '0,666,777';
if(!$is_auth[$forum_id]['auth_read'] and !in_array($forum_id,explode(",",$unauthed)))

Работает минимум в 4 раза быстрее :)

P.S. В своей заметке я давал просто мысль где копать, о чём честно и написал в конце.

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

Самое во всем этом смешное, что собственно логика то сравнения неправильная изначально. Вот на что надо было внимание обращать.
Нет, господа, по ночам надо спать, а не программировать:

Вместо if(!$is_auth[$forum_id]['auth_read'] && $forum_id!=666)
Следовало if(!$is_auth[$forum_id]['auth_read'] or $forum_id==666)
соответственно:
if(!$is_auth[$forum_id]['auth_read'] || $forum_id==666 || $forum_id==777)

Ну, или в продвинутой версии:
if(!$is_auth[$forum_id]['auth_read'] or in_array($forum_id,explode(",",$unauthed)))
Аватара пользователя
avm
Former team member
Сообщения: 582
Стаж: 19 лет 3 месяца
Откуда: Москва

Сообщение avm »

Егор Наклоняев писал(а):А поподробнее про функцию in_list расскажите нашим читателям?
Может лучше in_array? :lol:
извиняюсь... in_array несомненно лучше :D
Главное сподвиг к красоте кода! а то rss.php вещь замечатьная, и такая кривизна (a==1 || a==2 || a==3) только портила бы имидж автора. ;)
выделенный сервер по цене обычного хостинга - менее 150 рублей в месяц
Благодарности принимаются в Яндекс.Деньгах на счет 4100143316948
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

Я бы не сказал, что это кривизна. Это дань тому, что phpBB должен быть совместим с php версии 3. А функция in_array доступна нам илшь с версии 4.
Последний раз редактировалось Xpert 23.01.2005 19:28, всего редактировалось 1 раз.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Splurov
phpBB 1.4.4
Сообщения: 138
Стаж: 19 лет 4 месяца
Откуда: Россия, Москва

Сообщение Splurov »

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

Сообщение Xpert »

Да, была, помню. Но тем не менее, уж если не абсолютную, то достаточную совместимость поддерживать необходимо.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
avm
Former team member
Сообщения: 582
Стаж: 19 лет 3 месяца
Откуда: Москва

Сообщение avm »

Xpert писал(а):phpBB должен быть совместим с php версии 3
Исключительно из соображений совместимости с PHP3 (и увеличения скорости ;) ) вариант еще проще:

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

if(!$is_auth[$forum_id]['auth_read'] or strstr(",$unauthed," , ",$forum_id,"))
:D
выделенный сервер по цене обычного хостинга - менее 150 рублей в месяц
Благодарности принимаются в Яндекс.Деньгах на счет 4100143316948
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 19 лет 5 месяцев
Откуда: оттуда

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

Эх! Люблю поругаться с утра, чтобы кровь не застаивалась
Исключительно из соображений совместимости с PHP3 (и увеличения скорости ) вариант еще проще:
Код:

if(!$is_auth[$forum_id]['auth_read'] or strstr(",$unauthed," , ",$forum_id,"))
ЗАДАЧА (на твёрдую "тройку")
ДАНО
$unauthed='0,666,777'
$is_auth[777]['auth_read'] =true;
НАЙТИ
Сработает ли условие при $forum_id==777:
if(!$is_auth[$forum_id]['auth_read'] or strstr(",$unauthed," , ",$forum_id,")) [/quote]

Да. Правильный ответ - сработает.
А вот теперь вопрос на "четыре", а оправдано ли strstr в данном случае?
Последний раз редактировалось Егор Наклоняев 17.01.2005 13:38, всего редактировалось 1 раз.
Wizzz_art
phpBB 1.2.0
Сообщения: 11
Стаж: 19 лет 3 месяца

Сообщение Wizzz_art »

Появилась еще одна проблемка. Юзер создал сообщение в которое поместил содержание вот этой страницы: http://mymail-2002.hotbox.ru/30%20Days% ... 0Opera.chm

Вот оно: ITSF

После этого получаем ошибку: http://feedvalidator.org/check.cgi?url= ... p%3Ff%3D15
Аватара пользователя
The-eBook
phpBB 2.0.0
Сообщения: 230
Стаж: 19 лет 4 месяца
Откуда: Москва

Сообщение The-eBook »

А кодировка русского языка, является тоже нарушением, вот результат.
The-eBook
Проект электронных книг
www.the-ebook.org
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 19 лет 5 месяцев
Откуда: оттуда

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

кодировка русского языка, является тоже нарушением
Батенька, это не мой RSS. Вопросы - к автору.

Кстати, ошибка связана с некорректным формированием заголовка XML.

Добавлено спустя 3 минуты:
Появилась еще одна проблемка. Юзер создал сообщение в которое поместил содержание вот этой страницы
Идею понял. Виноват символ, который изображается этим квадратиком.
Взял на карандаш.

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

The-eBook
Вот цитатка от валидатора.
Warning
This feed is valid, but may cause problems for some users. We recommend fixing these problems.

Your feed appears to be encoded as "windows-1251", but your server is reporting "US-ASCII"
А вот результаты моей русской ленты в кодировке 1251
http://feedvalidator.org/check.cgi?url= ... Fforum.php

Дело в том, что МОД, который стоит у Вас был взят изначально мною за основу, о чём я честно и писал в версии 1.х, но, впоследствии, он был переписан практически с нуля. Там еще много подобных шероховатостей.
Аватара пользователя
The-eBook
phpBB 2.0.0
Сообщения: 230
Стаж: 19 лет 4 месяца
Откуда: Москва

Сообщение The-eBook »

Егор Наклоняев
Батенька, это не мой RSS. Вопросы - к автору.
Нет конечно, но вопрос к валидаторам. Почему? Я например не считаю это ошибкой, было бы ошибкой не иметь возможности чтения через RSS.
The-eBook
Проект электронных книг
www.the-ebook.org
Аватара пользователя
avm
Former team member
Сообщения: 582
Стаж: 19 лет 3 месяца
Откуда: Москва

Сообщение avm »

Warning
This feed is valid, but may cause problems for some users. We recommend fixing these problems.

Your feed appears to be encoded as "windows-1251", but your server is reporting "US-ASCII"
эта цитатка намекает на желательность
AddDefaultCharset windows-1251
в файле .htaccess

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

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

Заголовок XML тут ни при чем.
(скромно так) У меня сделано так:
header ('Content-Type: text/xml; charset='.$lang['ENCODING']);

В том RSS, если мне не изменяет память:

header ('Content-Type: text/xml');

Почувствуйте разницу.

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

P.S. The-eBook - если у себя исправите, то ошибка пропадёт.
Я например не считаю это ошибкой
Самое смешное, что Валидатор тоже не считает. Он просто делает замечание о неосоответствии кодировок.

Если дочитать сраницу до конца, там же написано:

Congratulations!
This is a valid RSS feed.
Аватара пользователя
avm
Former team member
Сообщения: 582
Стаж: 19 лет 3 месяца
Откуда: Москва

Сообщение avm »

Егор Наклоняев писал(а):
Заголовок XML тут ни при чем.
header ('Content-Type: text/xml; charset='.$lang['ENCODING']);
В том RSS, если мне не изменяет память:
header ('Content-Type: text/xml');
Почувствуйте разницу.
Ну дак это заголовок http, а не XML. Так ведь?
Загловок XML там нормальный:
<?xml version="1.0" encoding="windows-1251" ?>
<rss version="0.92">
А вот весь http-заголовок ответа от сервера http://www.the-ebook.org/forum/rss.php

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

HTTP/1.1 200 OK
Date: Mon, 17 Jan 2005 11:40:02 GMT
Server: Apache/1.3.31 (Unix) mod_fastcgi/2.4.2 PHP/4.3.8 mod_ssl/2.8.19 OpenSSL/0.9.7d
Cache-Control: private, pre-check=0, post-check=0, max-age=0
Expires: Mon, 17 Jan 2005 11:40:05 GMT
X-Powered-By: PHP/4.3.8
Set-Cookie: phpbb2mysql_data=a%3A0%3A%7B%7D; expires=Tue, 17-Jan-2006 11:40:03 GMT; path=/
Set-Cookie: phpbb2mysql_sid=e65ce289f3c96e236a7bcb109fde5206; path=/
Last-Modified: Mon, 17 Jan 2005 11:40:05 GMT
Connection: close
Content-Type: text/xml
Указание header() ровно как и мой рецепт - вылечит.
выделенный сервер по цене обычного хостинга - менее 150 рублей в месяц
Благодарности принимаются в Яндекс.Деньгах на счет 4100143316948

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