LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
27.05.2012, 21:23:20 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Коректировка кодировки RSS для php 5  (Прочитано 11270 раз)
0 Пользователей и 1 Гость смотрят эту тему.
sarportal
Захожу иногда
**

Репутация: +6/-0
Offline Offline

Сообщений: 9


« : 03.06.2008, 13:31:12 »

 
При попытке добавить RSS поток в кодировке 1251 вместо русского текста отображаются ????????????
Встроенный парсер не умеет читать русские буквы для php5 и кодировки windows-1251.

СНАЧАЛА ДЕЛАЕМ РЕЗЕРВНУЮ КОПИЮ ИЗМЕНЯЕМЫХ ФАЙЛОВ!!!

Для правильного отображения текста при импорте RSS через встроенную читалку необходимо сделать следующее

1. идем в /includes/domit/xml_domit_rss_shared.php и строчку:
      $success = $this->node->parseXML($rssText, false);
Заменяем на
      $success = $this->node->parseXML($rssText, true);

2. в файле /includes/feedcreator.class.php если в строчке
   var $encoding = "Windows-1251";
заменяем на
   var $encoding = "UTF-8";

3. (подсказано SergejP в топике _http://joomlaforum.ru/index.php/topic,3722.0.html)
затем открываем файл /includes/joomla.php и ищем там функцию newsfeedEncoding( $rssDoc, $text )

После чего находим в этой функции следующий текст:

      if ( phpversion() >= 5 ) {
      // handling for PHP 5
         if ( _JOS_FEED_ENCODING ) {
         // handling for utf-8 feed
            if ( _JOS_SITE_ENCODING ) {
            // utf-8 page
               $encoding = 'html_entity_decode';
            } else {
            // non utf-8 page
               $encoding = 'utf8_decode';
            }
         } else {
         // handling for non utf-8 feed
            if ( _JOS_SITE_ENCODING ) {
               // utf-8 page
             
  $encoding = '';
            } else {
               // non utf-8 page
               $encoding = 'utf8_decode';
            }
         }
      } else {
   
 и меняем выделенные строки местами...
В итоге должно получиться следующее


      if ( phpversion() >= 5 ) {
      // handling for PHP 5
         if ( _JOS_FEED_ENCODING ) {
         // handling for utf-8 feed
            if ( _JOS_SITE_ENCODING ) {
            // utf-8 page
               $encoding = 'html_entity_decode';
            } else {
            // non utf-8 page
               $encoding = 'utf8_decode';
            }
         } else {
         // handling for non utf-8 feed
            if ( _JOS_SITE_ENCODING ) {
               // utf-8 page
               $encoding = 'utf8_decode';
            } else {
               // non utf-8 page
               $encoding = '';
            }
         }
      } else
 


Все. Наслаждаемся.
Проверено на Joomla Lavra Edition 1.0.15
« Последнее редактирование: 21.06.2008, 19:58:33 от sarportal » Записан
sarportal
Захожу иногда
**

Репутация: +6/-0
Offline Offline

Сообщений: 9


« Ответ #1 : 12.06.2008, 22:48:47 »

Сегодня столкнулся с такой же проблемой на Joomla 1.0.13 RE
Все заработало после вышеуказанной модификации.

Записан
maestra
Осваиваюсь на форуме
***

Репутация: +2/-1
Offline Offline

Пол: Мужской
Сообщений: 61



« Ответ #2 : 19.06.2008, 22:53:48 »

Joomla 1.0.12 LE - заработало. Автору спасибо
Записан
ziggy_marley
Гость
« Ответ #3 : 20.06.2008, 03:18:45 »

Joomla_1.0.15-Stable-Full_Package
PHP Version:    5.2.6
после всех манипуляций вместо вопросиков стала абракадабра
сам сайт в win 1251  а rss выводится в utf 8 как сделать что бы в одной кодировке выводились? =)
Записан
sarportal
Захожу иногда
**

Репутация: +6/-0
Offline Offline

Сообщений: 9


« Ответ #4 : 21.06.2008, 19:51:23 »

после всех манипуляций вместо вопросиков стала абракадабра
сам сайт в win 1251  а rss выводится в utf 8 как сделать что бы в одной кодировке выводились? =)

Насколько я понял у Вас вместо "?????????????????????..." стало "РђРЅСЋРєРѕРІ, Р�РіРѕСЂСЊ Денисов, РђРЅР......."

1. Проверьте правильность выполнения пунктов 1 и 2.

2. Проверьте пункт 3. Вы точно сделали для php 5 ? 
Нужно найти   if ( phpversion() >= 5 ) {
Там есть такие же строчки но для php4 . Они чуть ниже.
                      if ( phpversion() >= 4 ) {
Их трогать не нужно. Они для Вас роли не играют.


3. Посмотрите в шаблоне какая указана кодировка сайта. Если шаблон импортный - там в основном стоит всегда UTF8.  Замените тег на <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

Если ничего не помогло - переходите на Joomla_1.0.15 Lavra Edition.
Если не ставили расширения, которые изменяют стандартные файлы (Jack + и т.д.) - просто разархивируйте дистрибутив и замените все файлы.  Подробнее тут http://andyr.mrezha.ru/
« Последнее редактирование: 21.06.2008, 20:24:19 от sarportal » Записан
pedrosoft
Завсегдатай
*****

Репутация: +111/-7
Offline Offline

Пол: Мужской
Сообщений: 596



« Ответ #5 : 21.06.2008, 23:39:43 »

ziggy_marley, для вашей версии Жумлы достачно сделать лишь то что описано ТУТ и:

2. в файле /includes/feedcreator.class.php если в строчке
   var $encoding = "Windows-1251";
заменяем на
   var $encoding = "UTF-8";

Править  /includes/joomla.php вам не нужно!
Записан
sarportal
Захожу иногда
**

Репутация: +6/-0
Offline Offline

Сообщений: 9


« Ответ #6 : 22.06.2008, 01:44:27 »



Править  /includes/joomla.php вам не нужно!

Спасибо, буду знать. Просто никогда с этой версией Joomla не работал Azn

Мною проверено на :

Joomla Lavra Edition 1.0.15
Joomla 1.0.13 RE


Проверена maestra на :

Joomla 1.0.12 LE

У кого еще проверено на каких версиях, делитесь !
« Последнее редактирование: 25.06.2008, 01:28:43 от sarportal » Записан
maestra
Осваиваюсь на форуме
***

Репутация: +2/-1
Offline Offline

Пол: Мужской
Сообщений: 61



« Ответ #7 : 23.06.2008, 19:53:31 »

Мною версия Проверена на :
Ну, наверное не версия проверена, а хак на версиях ? Azn
Записан
sarportal
Захожу иногда
**

Репутация: +6/-0
Offline Offline

Сообщений: 9


« Ответ #8 : 25.06.2008, 01:25:19 »

Ну, наверное не версия проверена, а хак на версиях ? Azn
Azn Я имел ввиду моя версия исправлений проверена, т.е. хак.
Записан
Prediger
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 105


« Ответ #9 : 10.08.2008, 21:04:23 »

Использовал приведённые выше советы для Joostina. Некоторые ленты заработали, типа lenta.ru Но вот другие так и выдают знак вопроса. К примеру, вот эта лента http://www.km.ru/news/rss.asp
Записан
sarportal
Захожу иногда
**

Репутация: +6/-0
Offline Offline

Сообщений: 9


« Ответ #10 : 11.08.2008, 23:32:05 »

Этот хак для трансляции новостей в windows-1251 А км транслирует в utf. По этому и знаки вопроса. Выбирайте и транслируйте ленты в windows-1251
Записан
belbox
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 18


« Ответ #11 : 28.12.2008, 23:28:23 »

А как быть если стоит  Lavra Edition 2008 и используется модуль Slick RSS. При этом PHP 4.4.8, шаблон в 1251 а rss только в utf-8 можно прочесть.
Как здель что можно полечить?
Записан
Alexfox
Гость
« Ответ #12 : 03.02.2009, 03:54:55 »

Joomla 1.0.15 RE Проверено, работает
Записан
scorp66
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 32


« Ответ #13 : 04.02.2009, 01:40:18 »

У меня тоже Joomla 1.0.15 RE. После проделанных манипуляций, указанных в топе, сайт перестал грузиться. Вот что появилось:

Warning: Cannot modify header information - headers already sent by (output started at /home/ahtybapy/public_html/includes/joomla.php:12313) in /home/ahtybapy/public_html/index.php on line 255

Warning: Cannot modify header information - headers already sent by (output started at /home/ahtybapy/public_html/includes/joomla.php:12313) in /home/ahtybapy/public_html/index.php on line 256

Warning: Cannot modify header information - headers already sent by (output started at /home/ahtybapy/public_html/includes/joomla.php:12313) in /home/ahtybapy/public_html/index.php on line 257

Warning: Cannot modify header information - headers already sent by (output started at /home/ahtybapy/public_html/includes/joomla.php:12313) in /home/ahtybapy/public_html/index.php on line 258

Warning: Cannot modify header information - headers already sent by (output started at /home/ahtybapy/public_html/includes/joomla.php:12313) in /home/ahtybapy/public_html/index.php on line 259

Забыл добавить, версия PHP 5.2.8
« Последнее редактирование: 04.02.2009, 01:48:10 от scorp66 » Записан
kilt
Гость
« Ответ #14 : 19.03.2009, 16:32:58 »

Нужен специалист который поймет почему вопросы в RSS! Готов проплатить разумные дэнги
Записан
elvis
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 13



« Ответ #15 : 23.03.2009, 02:09:45 »

Афтору спасибо, очень помогло lavra 1.0.15 php5
Записан
Demon
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 15



« Ответ #16 : 15.04.2009, 14:50:17 »

Все работает великолепно! Огромное спасибо.
Проверено на версиях:
 - SEO Joomla 1.0.13
 - Joostina 1.1.3
Записан
Ptashechka
Новичок
*

Репутация: +0/-0
Offline Offline

Пол: Женский
Сообщений: 2


Наглый юзер


« Ответ #17 : 01.05.2009, 14:28:28 »

sarportal, pedrosoft, СПАСИБО!!! Joomla_1.0.13-Stable-Full_Package - заработало! Раньше были не знаки вопросов, а сразу крякозябры. Сама пробывала редактировать - так вообще рсс не загружалось (чистая страница была).

Опять проблема. В браузере (огненный лис) отображается нормально. А вот когда пробую смотреть через различные читалки на сторонних сайтах - выдает крякозябры. Причем каждый сайт выдает что-то свое. Что за трабл?  Huh
« Последнее редактирование: 03.05.2009, 05:44:27 от Ptashechka » Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet