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

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: 1 2 [Все]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Кодировка RSS  (Прочитано 32663 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
DIvan
Гость
« : 28.06.2006, 17:04:46 »

Народ, помогите начинающему!
Имеется:
Joomla! 1.0.8.02 RUS Paranoia! MCE
Apache/2.0.47 (Win32)
MySQL 4.0.18-nt
PhP 5.1.2
Все работает на локальном хосте, проблем нет.
Хочу сделать ленту RSS на главной странице. Завожу newsfeed от http://news.finance.ua/ru/rss, затем делаю новый пункт главного меню как "Ссылка - RSS-лента" на созданный newsfeed. При выборе этого пункта на фронт-энде все просто отлично.
Если же я пытаюсь создать новый модуль, прописать ему RSS URL и опубликовать на главной странице (top), то вместо русских букв вижу знаки вопроса Sad
В теле RSS кодировка Win-1251 прописана в явном виде.

Читал доку, ее крайне мало, даже на английском. Мне так и не удалось до конца понять, как же нужно правильно публиковать newsfeed'ы. Факт публикации в менеджере RSS - экспорта еще не делает ленту новостей видимой где-либо на сайте. Каков "канонический" подход в этом случае?
Заранее спасибо!
Записан
Old_Fixer
Гость
« Ответ #1 : 02.07.2006, 22:55:23 »

Та же проблема! Проверил на Joomla v1.0.10 - сплошные вопросики! Где копать?
PHP 5.1.1 Apache 2.0.55
« Последнее редактирование: 05.07.2006, 17:09:55 от Old_Fixer » Записан
alladin111
Захожу иногда
**

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

Сообщений: 5


« Ответ #2 : 05.08.2006, 10:37:14 »

И у меня тоже вопросы, даже на офицальной английской версии.
Записан
smart
Администратор
*******

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

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


тружусь даже во сне...


« Ответ #3 : 07.08.2006, 18:17:11 »

И у меня тоже вопросы, даже на офицальной английской версии.
на оригинальной это нормально — ставь Joomla Paranoia
Записан
Nicolas
Гость
« Ответ #4 : 23.12.2006, 01:22:55 »

Таже причина замечена....
как я догадываюсь это PHP 5 линейки
Записан
Garun
Давно я тут
****

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

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



« Ответ #5 : 23.12.2006, 13:10:20 »

    Я уже пытался дать ответ на этот вопрос. То ли был глюк и мой пост не сохранился, то ли его почему то удалили Sad... но на форуме
Joomla(Re) есть такой хак... я не знаю подойдет ли это решение для Paranoia, но может кто то сделает хак для неё:
Какое-то решение проблем с парсером, который не умеет читать русские буквы для php5 и кодировки windows-1251.
Итак. Имеем исходную тему - если мы создаем модуль и в нем указываем url rss-фида написанного в кодировке windows-1251, то на выходе имеем неприятный баг - знаки вопроса вместо буковок. Для решения этого можно попробовать применить следующий патч. Патч будет работать только для php5 с поддержкой iconv.

Прежде всего далем бэкап всех изменяемых файлов. Не факт что это сработает.

Идем в \includes\domit\xml_domit_rss_shared.php и ищем функцию function getTextFromFile() в ее конец вставляем вот что
Цитировать
         if ($fileContents == '') {
            $this->establishConnection($filename);
            $response =& $this->httpConnection->get($filename);

            if ($response != null) {
               $fileContents = $response->getResponse();
            }
         }
      }

      preg_match("|<?xml.*encoding=\"(.*)\".*>|Umsi",$fileContents,$m);
      $fileContents = iconv($m[1],'utf-8',$fileContents);
      $fileContents = str_replace($m[1],'utf-8',$fileContents);

      return $fileContents;
   } //getTextFromFile

Далее в этом же файле ищем функцию function getElementText($elementName) и пишем
Цитировать
   function getElementText($elementName) {
      $elementName = strtolower($elementName);
      return iconv('utf-8','windows-1251',$this->_getElementText($elementName, $this->DOMIT_RSS_indexer));
       return $this->_getElementText($elementName, $this->DOMIT_RSS_indexer);
   } //getElementText

Теперь открываем /includes/frontend.html.php и функцию function modoutput_feed() в ней надо удалить все вхождения
$что_то_там = mosCommonHTML::newsfeedEncoding( $rssDoc, $что_то_там );
Я удалил их для переменных (в скобочках указана приблизительная строка): $feed_title(173), $feed_descrip(189), $item_title(226), $text (253)[/list]

Тоже самое решение для компонента com_newsfeeds (и снова для пхп5)
Нужено сделать тот же саый хак rss-xml парсера (\includes\domit\xml_domit_rss_shared.php) и удалить строчки (всего их четыре) в файле /components/com_newsfeeds/newsfeeds.html.php в функции function showNewsfeeds()
$feed_title = mosCommonHTML::newsfeedEncoding( $rssDoc, $feed_title );
+ для переменных $feed_descrip, $item_title, $text.


У меня всё сработало!
Записан
Aysek
Гость
« Ответ #6 : 02.04.2007, 18:46:25 »

На странице было 2 модуля. Один с новостями с сайта, другой с внешнего ресурса.
После изменений вопросы исчезли остался только текст, но исчез и второй модуль с новостями с сайта.

В чём может быть причина и как исправить?
Записан
Aysek
Гость
« Ответ #7 : 02.04.2007, 19:46:56 »

В каких файлах(ле) нужно добавить эти вставки? (если можно полный путь до файла):
"echo $utf8_content;  // вывод контента в utf8 - формате
echo normal($utf8_content);  // вывод контента utf8 в 1251 формате"

Где взять файл andyr_lib.php?



Записан
Aysek
Гость
« Ответ #8 : 02.04.2007, 20:09:40 »

Я плохо разираюсь в коде

Хе... в сборке вроде все уже пропатчено...
Это значит, что вставки уже сделаны в примере  Garun?
"echo $utf8_content;  // вывод контента в utf8 - формате
echo normal($utf8_content);  // вывод контента utf8 в 1251 формате"


Он идет как составная часть сборки, путь: /administrator/includes/andyr_lib.php

То есть andyr_lib.php уже есть в сборки Joomla 1.0.12 LE 2007, так? 
Как подключить этот файл?
Записан
Aysek
Гость
« Ответ #9 : 02.04.2007, 22:37:15 »

include_once ($GLOBALS['mosConfig_absolute_path'] .'/administrator/includes/andyr_lib.php');

Куда это надо вставить?  :-)
Записан
SergejP
Гость
« Ответ #10 : 21.06.2007, 14:50:45 »

Есть еще один встроенный перекодировщик для RSS новостей... И внем ошибка, в результате чего он неправильно работает, т.е. декодирует тогда когда не надо

Чтобы это исправить открываем файл хост/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 {

Это для 5-го PHP для 4 возможно то же что-то придется поменять... Там ниже для этого свой кусочек...
Записан
EaglE63
Гость
« Ответ #11 : 23.07.2007, 02:57:45 »

Получилось!

А как теперь исправить, что вместо «кавычек» стали отображаться [кавычкиk ?
Записан
Swoper
Гость
« Ответ #12 : 13.09.2007, 11:11:54 »

Есть еще один встроенный перекодировщик для RSS новостей... И внем ошибка, в результате чего он неправильно работает, т.е. декодирует тогда когда не надо

Чтобы это исправить открываем файл хост/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 {



Спасибо. этот вариант помог с решением проблемы .. сборка Lavr Edition
Записан
xshish
Гость
« Ответ #13 : 06.11.2007, 14:39:38 »

Добрый день!
На мастерхосте поставил Joomla! 1.0.12 Lavra Edition 2007
Пытаюсь импортирвать новости отсюда http://www.rasc.ru/rss/
У меня сайт в win 1251, а ту часть страницы которая из RSS  джумла выдает в KOI-8. Подскажите  пожалуйста, где проблема  Huh?


« Последнее редактирование: 06.11.2007, 14:46:41 от xshish » Записан
Death
Осваиваюсь на форуме
***

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

Сообщений: 53


НЕТ разрывам!!!


« Ответ #14 : 22.01.2008, 01:47:33 »

Добрый день!
На мастерхосте поставил Joomla! 1.0.12 Lavra Edition 2007
Пытаюсь импортирвать новости отсюда http://www.rasc.ru/rss/
У меня сайт в win 1251, а ту часть страницы которая из RSS  джумла выдает в KOI-8. Подскажите  пожалуйста, где проблема  Huh?
точно такая-же проблема.
Помогите исправить.
Только у меня при получении до 12 новостей все нормально , но как только я поставлю 13 и более получаются каракули в KOI-8.
Сборка таже Лавра 1.0.12.   RSS модуль встроенный.
« Последнее редактирование: 27.01.2008, 04:19:10 от Death » Записан
c0yc
Гость
« Ответ #15 : 15.02.2008, 14:38:13 »

Спасибо. этот вариант помог с решением проблемы .. сборка Lavr Edition
у меня выдает везде ошибку:
Parse error: syntax error, unexpected T_IF, expecting T_FUNCTION in /home/user_m_11_44/public_html/security/includes/joomla.php on line 5583
Записан
6anzay
Гость
« Ответ #16 : 28.03.2008, 18:14:44 »

Я уже пытался дать ответ на этот вопрос. То ли был глюк и мой пост не сохранился, то ли его почему то удалили Sad... но на форуме Joomla(Re) есть такой хак... я не знаю подойдет ли это решение для Paranoia, но может кто то сделает хак для неё:
Какое-то решение проблем с парсером, который не умеет читать русские буквы для php5 и кодировки windows-1251.
Итак. Имеем исходную тему - если мы создаем модуль и в нем указываем url rss-фида написанного в кодировке windows-1251, то на выходе имеем неприятный баг - знаки вопроса вместо буковок. Для решения этого можно попробовать применить следующий патч. Патч будет работать только для php5 с поддержкой iconv.

Прежде всего далем бэкап всех изменяемых файлов. Не факт что это сработает.

Идем в \includes\domit\xml_domit_rss_shared.php и ищем функцию function getTextFromFile() в ее конец вставляем вот что...
Добрый день!
Я в пхп совсем не разбираюсь, объясните популярно.
Вы пишете

Цитировать
Идем в \includes\domit\xml_domit_rss_shared.php и ищем функцию function getTextFromFile() в ее конец вставляем вот что
Код:
         if ($fileContents == '') {
            $this->establishConnection($filename);
            $response =& $this->httpConnection->get($filename);

            if ($response != null) {
               $fileContents = $response->getResponse();
            }
         }
      }

      preg_match("|<?xml.*encoding=\"(.*)\".*>|Umsi",$fileContents,$m);
      $fileContents = iconv($m[1],'utf-8',$fileContents);
      $fileContents = str_replace($m[1],'utf-8',$fileContents);

      return $fileContents;
   } //getTextFromFile
У меня в коде вот что
Код:

function getTextFromFile($filename) {
$fileContents = '';

if ($this->doUseHTTPClient) {
$this->establishConnection($filename);
$response =& $this->httpConnection->get($filename);

if ($response != null) {
$fileContents = $response->getResponse();
}
}
else {
if (function_exists('file_get_contents')) {
$fileContents = @file_get_contents($filename);
}
else {
require_once(DOMIT_RSS_INCLUDE_PATH . 'php_file_utilities.php');
$fileContents =& php_file_utilities::getDataFromFile($filename, 'r');
}

if ($fileContents == '') {
$this->establishConnection($filename);
$response =& $this->httpConnection->get($filename);

if ($response != null) {
$fileContents = $response->getResponse();
}
}
}

return $fileContents;
} //getTextFromFile
В каком месте в нем вставлять код?
Записан
tsesl
Завсегдатай
*****

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

Сообщений: 409


Терпение и труд всё перетрут?


« Ответ #17 : 03.05.2008, 14:56:48 »

Есть еще один встроенный перекодировщик для RSS новостей... И внем ошибка, в результате чего он неправильно работает, т.е. декодирует тогда когда не надо

Чтобы это исправить открываем файл хост/includes/joomla.php и ищем там функцию newsfeedEncoding( $rssDoc, $text )

После чего находим в этой функции следующий текст:
...покусано...
 и меняем выделенные строки местами...
В итоге должно получиться следующее
...покусано...
Это для 5-го PHP для 4 возможно то же что-то придется поменять... Там ниже для этого свой кусочек...

Гораздо проще в языковом файле поиграться(true|false) с глобальной переменной "_JOS_SITE_ENCODING"...

Для этого правим language/russian.php. В самый конец добавляем
DEFINE('_JOS_SITE_ENCODING'1);
Записан
wwwsla
Захожу иногда
**

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

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


Не я такой... жизнь такая...


« Ответ #18 : 15.05.2008, 00:07:34 »

тоже имею проблему с кодировкой RSS. Попробовал все предложенные варианты  на php 5.2.2
Получилось вместо знаков "???????..... " или пусто или что-то типа
"РђРЅСЋРєРѕРІ, Р?РіРѕСЂСЊ Денисов, Анатолий Тимощук. Р’ запасе Чонтофальскии, Радимов, РљРёРј Дон Р§Р¶РёРЅ, Домингес, Риксен, Р?РѕРЅРѕРІ, ГорС?РєРѕРІ." 8-(
Может будут еще предложения.
Записан
fianit
Захожу иногда
**

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

Сообщений: 9

Даем самые большие бонусы на Titan Poker


« Ответ #19 : 15.05.2008, 01:20:49 »

еще раз сделать то, что предлагется Azn, у меня тож php 5.2.2, помогли манипуляции с  joomla.php
Записан
wwwsla
Захожу иногда
**

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

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


Не я такой... жизнь такая...


« Ответ #20 : 15.05.2008, 10:06:29 »

а у меня после манипуляций с  joomla.php "?????????????????????..." исчезли и появилось
 такое:"РђРЅСЋРєРѕРІ, Р?РіРѕСЂСЊ Денисов, РђРЅР......." :-(
Записан
fianit
Захожу иногда
**

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

Сообщений: 9

Даем самые большие бонусы на Titan Poker


« Ответ #21 : 06.06.2008, 23:06:54 »

попробуй еще строчки такие же, но тока ниже тоже поменять местами
Записан
sarportal
Захожу иногда
**

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

Сообщений: 9


« Ответ #22 : 11.06.2008, 23:48:41 »

а у меня после манипуляций с  joomla.php "?????????????????????..." исчезли и появилось
 такое:"РђРЅСЋРєРѕРІ, Р?РіРѕСЂСЊ Денисов, РђРЅР......." :-(

Сначала нужно провести вышеуказанные манипуляции с Joola.php

Потом делаем вот что :

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";

У меня все заработало! Joomla Lavra 1.0.15
« Последнее редактирование: 12.06.2008, 00:07:36 от sarportal » Записан
sarportal
Захожу иногда
**

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

Сообщений: 9


« Ответ #23 : 11.06.2008, 23:58:39 »

попробуй еще строчки такие же, но тока ниже тоже поменять местами

Ниже строчки поменять - это для PHP 4. Если бы на сервере стояло PHP 4 то изменения произведенные для PHP5 никак на отражение букв не повлияли.
А в данном случае вместо "?????????????????????..." стало "РђРЅСЋРєРѕРІ, Р?РіРѕСЂСЊ Денисов, РђРЅР......." , значит на сервере стоит PHP5 и проблема в двух вышеуказанных файлах.
« Последнее редактирование: 12.06.2008, 00:05:04 от sarportal » Записан
Goldie
Осваиваюсь на форуме
***

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

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



« Ответ #24 : 11.10.2008, 04:26:34 »

Балы аналогичная проблема в Joomla! 1.0.13 Stable
Решил так:
в /includes/feedcreator.class.php

поменял
   var $encoding = "ISO-8859-1";   
на
   var $encoding = "windows-1251"; 
Записан
ulpe
Гость
« Ответ #25 : 21.11.2008, 16:48:55 »

Сделал все по пунктам. Сначала знаки вопросов заменились на Р РѕСЃСЃРёР№СЃРєРёРµ РЅРѕРІРѕ, но поправил и это. Все заработало. Был доволен минут 20. Потом опять стало Р РѕСЃСЃРёР№СЃРєРёРµ РЅРѕРІРѕ. Восстановил измененые файлы, проделал операция заново. Эффект тот же. Вопщем в rss стоит юникод на остальном контенте вин1251. Помогите, пожалуйста)  Huh
« Последнее редактирование: 22.11.2008, 12:46:46 от ulpe » Записан
user175
Гость
« Ответ #26 : 15.12.2008, 19:50:29 »

Вышеперечисленные манипуляции а также танцы с бубном не помогли с кодировкой  - новости импортируются NewsGrabberJC - при граббинге отсуда http://www.garant.ru/rss/news/ импортируются с кракозябрами зПУХДБТУФЧЕООПЗП РБФТЙПФЙЮЕУЛПЗП ЛМХВБ РБТФЙЙ"еДЙОБС
На сервере PHP 4 версии
Joomla! 1.0.15 Lavra Edition 2008

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

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

Сообщений: 147


« Ответ #27 : 29.12.2008, 03:44:43 »

Гораздо проще в языковом файле поиграться(true|false) с глобальной переменной "_JOS_SITE_ENCODING"...

Для этого правим language/russian.php. В самый конец добавляем
DEFINE('_JOS_SITE_ENCODING'1);
Не помогает (на Joomla! 1.0.15 RE)
После вставки получаем вот это:

Новости Би-Р±Рё-СЃРё - это самая свежая информация, срочные новости, видео, аудио, аналитические матеС

А без вставки:

??????? ??-??-?? - ??? ????? ?????? ??????????, ??????? ???????, ?????, ?????, ????????????? ?????????. ??????? ??-??-?? - ??? ?

В общем, хрен редьки не слаще.
Записан
alexecon
Осваиваюсь на форуме
***

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

Сообщений: 147


« Ответ #28 : 29.12.2008, 04:55:41 »

    Я уже пытался дать ответ на этот вопрос. То ли был глюк и мой пост не сохранился, то ли его почему то удалили Sad... но на форуме
Joomla(Re) есть такой хак... я не знаю подойдет ли это решение для Paranoia, но может кто то сделает хак для неё:
Какое-то решение проблем с парсером, который не умеет читать русские буквы для php5 и кодировки windows-1251.
Итак. Имеем исходную тему - если мы создаем модуль и в нем указываем url rss-фида написанного в кодировке windows-1251, то на выходе имеем неприятный баг - знаки вопроса вместо буковок. Для решения этого можно попробовать применить следующий патч. Патч будет работать только для php5 с поддержкой iconv.

Прежде всего далем бэкап всех изменяемых файлов. Не факт что это сработает.

Идем в \includes\domit\xml_domit_rss_shared.php и ищем функцию function getTextFromFile() в ее конец вставляем вот что
Цитировать
         if ($fileContents == '') {
            $this->establishConnection($filename);
            $response =& $this->httpConnection->get($filename);

            if ($response != null) {
               $fileContents = $response->getResponse();
            }
         }
      }

      preg_match("|<?xml.*encoding=\"(.*)\".*>|Umsi",$fileContents,$m);
      $fileContents = iconv($m[1],'utf-8',$fileContents);
      $fileContents = str_replace($m[1],'utf-8',$fileContents);

      return $fileContents;
   } //getTextFromFile

Далее в этом же файле ищем функцию function getElementText($elementName) и пишем
Цитировать
   function getElementText($elementName) {
      $elementName = strtolower($elementName);
      return iconv('utf-8','windows-1251',$this->_getElementText($elementName, $this->DOMIT_RSS_indexer));
       return $this->_getElementText($elementName, $this->DOMIT_RSS_indexer);
   } //getElementText

Теперь открываем /includes/frontend.html.php и функцию function modoutput_feed() в ней надо удалить все вхождения
$что_то_там = mosCommonHTML::newsfeedEncoding( $rssDoc, $что_то_там );
Я удалил их для переменных (в скобочках указана приблизительная строка): $feed_title(173), $feed_descrip(189), $item_title(226), $text (253)[/list]

Тоже самое решение для компонента com_newsfeeds (и снова для пхп5)
Нужено сделать тот же саый хак rss-xml парсера (\includes\domit\xml_domit_rss_shared.php) и удалить строчки (всего их четыре) в файле /components/com_newsfeeds/newsfeeds.html.php в функции function showNewsfeeds()
$feed_title = mosCommonHTML::newsfeedEncoding( $rssDoc, $feed_title );
+ для переменных $feed_descrip, $item_title, $text.[/b]

У меня всё сработало!

О, у меня тоже все сработало! Подтверждаю.
Joomla! 1.0.15 RE.

Если кому системные потроха более детально важно знать, то:

Версия базы данных:
5.0.24-standard

Версия PHP:
5.2.3

Веб-сервер:
Apache/1.3.37 (Unix) mod_perl/1.29 PHP/5.2.3 mod_ssl/2.8.28 OpenSSL/0.9.7d

Интерфейс между веб-сервером и PHP:
apache

Версия Joomla!:
Joomla! 1.0.15Стабильная версия [ Daytime ] 22 February 2008 23:00 UTC
Записан
eavasi™
Гость
« Ответ #29 : 19.01.2009, 10:06:58 »

нет у меня к сожалению это не сработало
Записан
XAND
Новичок
*

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

Сообщений: 4


« Ответ #30 : 26.01.2009, 17:01:10 »

С импортом все заработало Azn Зато экспорт превратился в кубики Sad Замкнутый круг однако
Записан
scorp66
Осваиваюсь на форуме
***

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

Сообщений: 32


« Ответ #31 : 30.01.2009, 20:08:16 »

Просьба к тем, у кого всё получилось с кодировкой - а не могли бы вы прикрепить к своим сообщениям правленные файлы? А то ведь так и будет каждый, у кого проблема, один и тот же код править. Помогите другим съэкономить время.
Записан
alexecon
Осваиваюсь на форуме
***

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

Сообщений: 147


« Ответ #32 : 02.02.2009, 03:58:11 »

Просьба к тем, у кого всё получилось с кодировкой - а не могли бы вы прикрепить к своим сообщениям правленные файлы? А то ведь так и будет каждый, у кого проблема, один и тот же код править. Помогите другим съэкономить время.
А Вы уже подправили или ждете у моря погоды? Wink
Записан
scorp66
Осваиваюсь на форуме
***

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

Сообщений: 32


« Ответ #33 : 04.02.2009, 01:55:06 »

А Вы уже подправили или ждете у моря погоды? Wink
Я пытаюсь сам править, но положительных результатов пока нет. Может руки кривые, а может не для всех версий подходит.
У меня:
Joomla 1.0.15 RE
Версия Apache 2.0.63
Версия PHP 5.2.8
Версия MySQL 5.0.67-community-log
Записан
XAND
Новичок
*

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

Сообщений: 4


« Ответ #34 : 11.02.2009, 17:35:59 »

А Вы уже подправили или ждете у моря погоды? Wink
Так то что написано выше то и правилось, что еще то приводить?
У меня все исправилось только теперь пытаясь получить ленты свои - получаю кракозябры, ранее прикручивал чужие были кракозябры а свои получал отлично. Кстати никто не пишет про свои ленты Azn
Записан
XAND
Новичок
*

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

Сообщений: 4


« Ответ #35 : 11.02.2009, 17:51:48 »

Просьба к тем, у кого всё получилось с кодировкой - а не могли бы вы прикрепить к своим сообщениям правленные файлы? А то ведь так и будет каждый, у кого проблема, один и тот же код править. Помогите другим съэкономить время.
Попробую отправить
Код:
<?php
/**
* @package domit-rss
* @version 0.51
* @copyright (C) 2004 John Heinstein. All rights reserved
* @license http://www.gnu.org/copyleft/lesser.html LGPL License
* @author John Heinstein <johnkarl@nbnet.nb.ca>
* @link http://www.engageinteractive.com/domitrss/ DOMIT! RSS Home Page
* DOMIT! RSS is Free Software
**/

/** channel constant */
define('DOMIT_RSS_ELEMENT_CHANNEL', 'channel');
/** item constant */
define('DOMIT_RSS_ELEMENT_ITEM', 'item');
/** title constant */
define('DOMIT_RSS_ELEMENT_TITLE', 'title');
/** link constant */
define('DOMIT_RSS_ELEMENT_LINK', 'link');
/** description constant */
define('DOMIT_RSS_ELEMENT_DESCRIPTION', 'description');

/** version constant */
define('DOMIT_RSS_ATTR_VERSION', 'version');

/** name of array containing list of existing RSS items */
define('DOMIT_RSS_ARRAY_ITEMS', 'item'); //formerly named 'domit_rss_items'
/** name of array containing list of existing RSS channels */
define('DOMIT_RSS_ARRAY_CHANNELS', 'channel'); //formerly named 'domit_rss_channels'
/** name of array containing list of existing RSS categories */
define('DOMIT_RSS_ARRAY_CATEGORIES', 'category'); //formerly named 'domit_rss_categories'

/** DOMIT RSS error, attempt to call an abstract method */
define('DOMIT_RSS_ABSTRACT_METHOD_INVOCATION_ERR', 101);
/** DOMIT RSS error, specified element not present */
define('DOMIT_RSS_ELEMENT_NOT_FOUND_ERR', 102);
/** DOMIT RSS error, specified attribute not present */
define('DOMIT_RSS_ATTR_NOT_FOUND_ERR', 103);
/** DOMIT RSS error, parsing failed */
define('DOMIT_RSS_PARSING_ERR', 104);

//DOMIT! RSS Error Modes
/** continue on error  */
define('DOMIT_RSS_ONERROR_CONTINUE', 1);
/** die on error  */
define('DOMIT_RSS_ONERROR_DIE', 2);
/** die on error  */
define('DOMIT_RSS_ONERROR_RETURN', 3);

/**
* The base class of all DOMIT! RSS objects
*
* @package domit-rss
* @author John Heinstein <johnkarl@nbnet.nb.ca>
*/
class xml_domit_rss_base {
    /** @var Object The underlying DOMIT! node of the element */
var $node = null;
/** @var array A list of valid RSS defined child elements */
var $rssDefinedElements = array();

/**
* Retrieves the underlying DOMIT node
* @return Object The underlying DOMIT node
*/
function getNode() {
    return $this->node;
} //getNode

/**
* Retrieves the text of the named attribute, checking first if the attribute exists
* @param string The attribute name
* @return string The attribute value, or an empty string
*/
function getAttribute($attr) {
if ($this->node->hasAttribute($attr)) {
return $this->node->getAttribute($attr);
}

return "";
} //getAttribute

/**
* Checks whether the named attribute exists
* @param string The attribute name
* @return boolean True if the attribute exists
*/
function hasAttribute($attr) {
    return (($this->node->nodeType == DOMIT_ELEMENT_NODE) && $this->node->hasAttribute($attr));
} //hasAttribute

/**
* Tests whether the named element is predefined by the RSS spec
* @param string The element name
* @return boolean True if the element is predefined by the RSS spec
*/
function isRSSDefined($elementName) {
    $isDefined = false;

    foreach ($this->rssDefinedElements as $key => $value) {
        if ($elementName == $value) {
            $isDefined = true;
            break;
        }
    }

    return $isDefined;
} //isRSSDefined

/**
* Tests whether the named element has a single child text node
* @param string The element name
* @return boolean True if the named element has a single child text node
*/
function isSimpleRSSElement($elementName) {
    $elementName = strtolower($elementName);

if (isset($this->DOMIT_RSS_indexer[$elementName])) {
    return (get_class($this->getElement($elementName)) == 'xml_domit_rss_simpleelement');
}
else {
    return false;
}
} //isSimpleRSSElement

/**
* Generates a string representation of the node and its children
* @param boolean True if HTML readable output is desired
* @param boolean True if illegal xml characters in text nodes and attributes should be converted to entities
* @return string The string representation
*/
    function get($htmlSafe = false, $subEntities = false) {
    return $this->node->toString($htmlSafe, $subEntities);
} //toString

    /**
* Generates a normalized (formatted for readability) representation of the node and its children
* @param boolean True if HTML readable output is desired
* @param boolean True if illegal xml characters in text nodes and attributes should be converted to entities
* @return string The formatted string representation
*/
function toNormalizedString($htmlSafe = false, $subEntities = false) {
    return $this->node->toNormalizedString($htmlSafe, $subEntities);
} //toNormalizedString
} //xml_domit_rss_base


/**
* Represents a collection of custom RSS elements, e.g. a set of dc:creator entries
*
* @package domit-rss
* @subpackage domit-rss-main
* @author John Heinstein <johnkarl@nbnet.nb.ca>
*/
class xml_domit_rss_collection extends xml_domit_rss_elementindexer {
    /** @var array An array holding the collection of custom elements */
var $elements = array();
/** @var int The number of custom elements in the collection */
var $elementCount = 0;

/**
* Adds a custom RSS element (DOM node) to the collection
* @param Object A DOM node representing a custom RSS element
*/
function addElement(&$node) {
$this->elements[] =& $node;
$this->elementCount++;
} //addElement

/**
* Retrieves the element at the specified index
* @param int The index of the requested custom RSS element
* @return Object The DOMIT node representing the requested element
*/
function &getElementAt($index) {
return $this->elements[$index];
} //getElementAt

/**
* Retrieves the element at the specified index (alias for getElementAt)
* @param int The index of the requested custom RSS element
* @return Object The DOMIT node representing the requested element
*/
function &getElement($index) {
return $this->getElementAt($index);
} //getElement

/**
* Returns the number of elements in the collection
* @return int The number of members in the collection
*/
function getElementCount() {
    return $this->elementCount;
} //getElementCount

/**
* Gets a text representation of the collection (applies the toString method to each member and concatenates)
* @return string The element text
*/
function getElementText() {
$total = $this->getElementCount();
  $result = '';

        for ($i = 0; $i < $total; $i++) {
            $result .= $currElement->toString();
        }

        return $result;
} //getElementText
} //xml_domit_rss_collection


/**
* Provides indexing functionality to RSS classes
*
* @package domit-rss
* @author John Heinstein <johnkarl@nbnet.nb.ca>
*/
class xml_domit_rss_elementindexer extends xml_domit_rss_base {
/** @var Array Name based index to RSS elements */
var $DOMIT_RSS_indexer = array();
/** @var Array Numerical index to RSS elements; for optimization purposes, only set if requested by getElementAt */
var $DOMIT_RSS_numericalIndexer;

/**
* Performs generic initialization of elements
*/
function _init(){
$total = $this->node->childCount;

for($i = 0; $i < $total; $i++) {
$currNode =& $this->node->childNodes[$i];
//$this->DOMIT_RSS_indexer[$currNode->nodeName] =& $currNode;
$this->addIndexedElement($currNode);
}
} //_init

/**
* Adds a custom element (one not defined by the RSS specs, e..g., dc:creator) to the indexer
* @param Object A DOMIT! node representing the custom element
*/
function addIndexedElement(&$node) {
    $tagName = strtolower($node->nodeName);

    if (isset($this->DOMIT_RSS_indexer[$tagName])) {
        if (strtolower(get_class($this->DOMIT_RSS_indexer[$tagName])) == 'domit_element') {
        $collection = new xml_domit_rss_collection();
        $collection->addElement($this->DOMIT_RSS_indexer[$tagName]);
        $collection->addElement($node);
        $this->DOMIT_RSS_indexer[$tagName] =& $collection;
        }
        else {
//Don't think I need this case???
            //$this->DOMIT_RSS_indexer[$tagName]->addElement($node);
        }
    }
    else {
        $this->DOMIT_RSS_indexer[$tagName] =& $node;
    }
} //addIndexedElement

/**
* Indicates whether the requested element is actually a collection of elements of the same type
* @param string The name of the requested element
* @return boolean True if a collection of elements exists
*/
function isCollection($elementName) {
    $elementName = strtolower($elementName);

if (isset($this->DOMIT_RSS_indexer[$elementName])) {
return (get_class($this->DOMIT_RSS_indexer[$elementName]) == 'xml_domit_rss_collection');
}
else {
return false;
}
} //isCollection

/**
* Indicates whether the requested element is a DOMIT! node
* @param string The name of the requested element
* @return boolean True if the requested element is a DOMIT! node
*/
function isNode($elementName) {
    $elementName = strtolower($elementName);

if (isset($this->DOMIT_RSS_indexer[$elementName])) {
return (strtolower(get_class($this->DOMIT_RSS_indexer[$elementName])) == 'domit_element');
}
else {
return false;
}
} //isNode

/**
* Indicates whether the requested element is a DOMIT! node (alias for isNode)
* @param string The name of the requested element
* @return boolean True if the requested element is a DOMIT! node
*/
function isCustomRSSElement($elementName) {
    return isNode($elementName);
} //isCustomRSSElement

/**
* Gets a named list of existing elements as a child of the current element
* @return array A named list of existing elements
*/
function getElementList() {
return array_keys($this->DOMIT_RSS_indexer);
} //getElementList

/**
* Indicates whether a particular element exists
* @param string The name of the requested element
* @return boolean True if an element with the specified name exists
*/
function hasElement($elementName) {
return isset($this->DOMIT_RSS_indexer[strtolower($elementName)]);
} //hasElement

/**
* Gets a reference to an element with the specified name
* @param string The name of the requested element
* @return mixed A reference to an element with the specified name, or the text of the element if it is a text node
*/
function &getElement($elementName) {
$elementName = strtolower($elementName);

if (isset($this->DOMIT_RSS_indexer[$elementName])) {
return $this->DOMIT_RSS_indexer[$elementName];
}
else {
xml_domit_rss_exception::raiseException(DOMIT_RSS_ELEMENT_NOT_FOUND_ERR,
'Element ' . $elementName . ' not present.');
}
} //getElement

/**
* Gets a reference to an element at the specified index
* @param int The index of the requested element
* @return mixed A reference to an element at the specified index, or the text of the element if it is a text node
*/
function &getElementAt($index) {
$this->indexNumerically();

    if (isset($this->DOMIT_RSS_numericalIndexer[$index])) {
return $this->DOMIT_RSS_numericalIndexer[$index];
}
else {
xml_domit_rss_exception::raiseException(DOMIT_RSS_ELEMENT_NOT_FOUND_ERR,
'Element ' . $index . ' not present.');
}
} //getElementAt

/**
* Populates an integer-based index for elements if one isn't already present.
*/
function indexNumerically() {
if (!isset($this->DOMIT_RSS_numericalIndexer)) {
$counter = 0;

            foreach ($this->DOMIT_RSS_indexer as $key => $value) {
$this->DOMIT_RSS_numericalIndexer[$counter] =& $this->DOMIT_RSS_indexer[$key];
$counter++;
    }
}
} //indexNumerically

/**
* Gets the text of the specified element
* @param string The name of the requested element
* @return string The element text, or an empty string
*/
function getElementText($elementName) {
$elementName = strtolower($elementName);
    return $this->_getElementText($elementName, $this->DOMIT_RSS_indexer);
} //getElementText

/**
* Gets the text at the specified index
* @param int The index of the requested element
* @return string The element text, or an empty string
*/
function getElementTextAt($index) {
    $this->indexNumerically();

    return $this->_getElementText($index, $this->DOMIT_RSS_numericalIndexer);
} //getElementTextAt

/**
* Gets the text at the specified index
* @param mixed The index or name of the requested element
* @param array The indexing array from which to extract data
* @return string The element text, or an empty string
*/
function _getElementText($index, &$myArray) {
    if (isset($myArray[$index])) {
$element =& $myArray[$index];
$result = '';

if (is_array($element)) {
//do nothing; data for domit_rss_channels, domit_rss_items,
//and domit_rss_categories should be extracted with their own methods
}
else {
switch (strtolower(get_class($element))) {
    case 'xml_domit_rss_simpleelement':
        $result = $element->getElementText();
        break;

    case 'xml_domit_rss_collection':
        $result = $element->getElementText();
        break;

case 'domit_element':
    $total = $element->childCount;

for ($i = 0; $i < $total; $i++) {
$currNode =& $element->childNodes[$i];

if ($currNode->nodeType == DOMIT_CDATA_SECTION_NODE) {
$result .= $currNode->nodeValue;
}
else {
$result .= $currNode->toString();
}
}
break;
}
}

return $result;
}

return '';
} //_getElementText
} //xml_domit_rss_elementindexer


/**
* A base class for DOMIT! RSS and DOMIT! RSS Lite documents
*
* @package domit-rss
* @author John Heinstein <johnkarl@nbnet.nb.ca>
*/
class xml_domit_rss_base_document extends xml_domit_rss_elementindexer {
/** @var array An array of item elements (only present in some RSS formats) */
var $domit_rss_items = array();
/** @var array An array of existing channel elements */
var $domit_rss_channels = array();
/** @var array An array of existing category elements */
var $domit_rss_categories = array();
/** @var boolean True if caching is enabled */
var $cacheEnabled = true;
/** @var Object A reference to the file caching object */
var $cache;
/** @var boolean True if PEAR:Cache_Lite is to be used instead of php_text_cache */
var $useCacheLite = false;
/** @var boolean True if php_http_client_generic is to be used instead of PHP get_file_contents */
var $doUseHTTPClient = false;
/** @var string The name of the current parser - either 'DOMIT_RSS' or 'DOMIT_RSS_LITE' */
var $parser;
/** @var object A reference to a http connection or proxy, if one is required */
var $httpConnection = null;
/** @var int The timeout value for an http connection */
var $rssTimeout = 0;

/**
* Constructor
* @param string Path to the rss file
* @param string Directory in which cache files are to be stored
* @param int Expiration time (in seconds) for the cache file
* @return mixed Null if an url was not provided, true if an url was provided and parsing was successful, false otherwise
*/
function xml_domit_rss_base_document ($url = '', $cacheDir = './', $cacheTime = 3600) {
    $success = null;
    $this->createDocument();

    if ($url != '') { //if rss data is from filesystem
if (substr($url, 0, 4) != "http") {
$rssText = $this->getTextFromFile($url);
$this->parseRSS($rssText);
}
else {
$this->createDefaultCache($cacheDir, $cacheTime);
$success = $this->loadRSS($url, $cacheDir, $cacheTime);
}
    }

    return $success;
} //xml_domit_rss_base_document

/**
* Specifies the default timeout value for connecting to a host
* @param int The number of seconds to timeout when attempting to connect to a server
*/
function setRSSTimeout($rssTimeout) {
$this->rssTimeout = $rssTimeout;

if (!$this->useCacheLite && !($this->cache == null)) {
$this->cache->setTimeout($rssTimeout);
}
} //setRSSTimeout

/**
* Specifies the parameters of the http conection used to obtain the xml data
* @param string The ip address or domain name of the connection
* @param string The path of the connection
* @param int The port that the connection is listening on
* @param int The timeout value for the connection
* @param string The user name, if authentication is required
* @param string The password, if authentication is required
*/
function setConnection($host, $path = '/', $port = 80, $timeout = 0, $user = null, $password = null) {
    require_once(DOMIT_RSS_INCLUDE_PATH . 'php_http_client_generic.php');

$this->httpConnection = new php_http_client_generic($host, $path, $port, $timeout, $user, $password);
} //setConnection

/**
* Specifies basic authentication for an http connection
* @param string The user name
* @param string The password
*/
function setAuthorization($user, $password) {
$this->httpConnection->setAuthorization($user, $password);
} //setAuthorization

/**
* Specifies that a proxy is to be used to obtain the xml data
* @param string The ip address or domain name of the proxy
* @param string The path to the proxy
* @param int The port that the proxy is listening on
* @param int The timeout value for the connection
* @param string The user name, if authentication is required
* @param string The password, if authentication is required
*/
function setProxyConnection($host, $path = '/', $port = 80, $timeout = 0, $user = null, $password = null) {
require_once(DOMIT_RSS_INCLUDE_PATH . 'php_http_proxy.php');

$this->httpConnection = new php_http_proxy($host, $path, $port, $timeout, $user, $password);
} //setProxyConnection

/**
* Specifies a user name and password for the proxy
* @param string The user name
* @param string The password
*/
function setProxyAuthorization($user, $password) {
$this->httpConnection->setProxyAuthorization($user, $password);
} //setProxyAuthorization

/**
* Specifies whether an HTTP client should be used to establish a connection
* @param boolean True if an HTTP client is to be used to establish the connection
*/
function useHTTPClient($truthVal) {
$this->doUseHTTPClient = $truthVal;
} //useHTTPClient

/**
* Returns the name of the parser
*@return string Either 'DOMIT_RSS' or 'DOMIT_RSS_LITE'
*/
function parsedBy() {
    return $this->parser;
} //parsedBy

/**
* Creates an empty DOMIT! document to contain the RSS nodes
*/
function createDocument() {
    require_once(DOMIT_RSS_INCLUDE_PATH . 'xml_domit_include.php');
$this->node = new DOMIT_Document();
$this->node->resolveErrors(true);
} //createDocument

/**
* Substitutes PEAR::Cache_Lite for the default php_text_cache
* @param boolean True if Cache Lite is to be used
* @param string Absolute or relative path to the Cache Lite library
* @param string Directory for cache files
* @param int Expiration time for a cache file
*/
function useCacheLite($doUseCacheLite, $pathToLibrary = './Lite.php', $cacheDir = './', $cacheTime = 3600) {
$this->useCacheLite = $doUseCacheLite;

if ($doUseCacheLite) {
    if (!file_exists($pathToLibrary)) {
$this->useCacheLite(false);
    }
    else {
require_once($pathToLibrary);

$cacheOptions = array('cacheDir' => $cacheDir, 'lifeTime' => $cacheTime);
$this->cache = new Cache_Lite($cacheOptions);
    }
}
else {
    $this->createDefaultCache($cacheDir, $cacheTime);
}
} //useCacheLite

/**
* Instantiates a default cache (php_text_cache)
* @param string Directory for cache files
* @param int Expiration time for a cache file
*/
function createDefaultCache($cacheDir = './', $cacheTime = 3600) {
    require_once(DOMIT_RSS_INCLUDE_PATH . 'php_text_cache.php');
$this->cache = new php_text_cache($cacheDir, $cacheTime, $this->rssTimeout);
} //initDefaultCache

/**
* Disables caching mechanism
*/
function disableCache() {
$this->cacheEnabled = false;
} //initDefaultCache

/**
* Loads and parses the RSS at the specified url
* @param string The url of the RSS feed
* @return boolean True if parsing is successful
*/
function loadRSS($url) {
if (substr($url, 0, 4) != "http") {
$rssText = $this->getTextFromFile($url);
return $this->parseRSS($rssText);
}
else {
    if ($this->cacheEnabled && !isset($this->cache)) {
$this->createDefaultCache();
$this->cache->httpConnection =& $this->httpConnection;
    }

$success = $this->loadRSSData($url);

if ($success) {
$this->_init();
}

return $success;
}
} //loadRSS

/**
* Parses the RSS text provided
* @param string The RSS text
* @return boolean True if parsing is successful
*/
function parseRSS($rssText) {
    if ($this->cacheEnabled && !isset($this->cache)) $this->createDefaultCache();
    $success = $this->parseRSSData($rssText);

if ($success) {
$this->_init();
}

return $success;
} //parseRSS

/**
* Retrieves the RSS data from the url/cache file and parses
* @param string The url for the RSS data
* @return boolean True if parsing is successful
*/
function loadRSSData($url) {
$rssText = $this->getDataFromCache($url);
return $this->parseRSSData($rssText);
} //loadRSSData

/**
* Retrieves the RSS data from the url/cache file
* @param string The url for the RSS data
* @return string The RSS data
*/
function getDataFromCache($url) {
if ($this->cacheEnabled) {
    if ($this->useCacheLite) {
        if ($rssText = $this->cache->get($url)) {
            return $rssText;
        }
        else {
            $rssText = $this->getTextFromFile($url);
if ($rssText != '') $this->cache->save($rssText, $url);
            return $rssText;
        }
    }
    else {
$this->cache->useHTTPClient($this->doUseHTTPClient);
        return $this->cache->getData($url);
    }
}
else {
return $this->getTextFromFile($url);
}
} //getDataFromCache

/**
* Parses the RSS data provided
* @param string The the RSS data
* @return boolean True if parsing is successful
*/
function parseRSSData($rssText) {
    if ($rssText != '') {
return $this->fromString($rssText);
}
else {
return false;
}
} //parseRSSData

/**
* Reads in RSS text from a file and parses it
* @param string The file path
* @return boolean True if parsing is successful
*/
function &fromFile($filename) {
$success = $this->node->loadXML($filename, false);
return $success;
} //fromFile

/**
* Reads in RSS text from a string and parses it
* @param string The RSS text
* @return boolean True if parsing is successful
*/
function &fromString($rssText) {
$success = $this->node->parseXML($rssText, true);
return $success;
} //fromString

/**
* Establishes a connection, given an url
* @param string The url of the data
*/
function establishConnection($url) {
require_once(DOMIT_RSS_INCLUDE_PATH . 'php_http_client_generic.php');

$host = php_http_connection::formatHost($url);
$host = substr($host, 0, strpos($host, '/'));

$this->setConnection($host, '/', 80, $this->rssTimeout);
} //establishConnection

/**
* Get text from an url or file
* @param string The url or file path
* @return string The text contained in the url or file, or an empty string
*/
function getTextFromFile($filename) {
$fileContents = '';

if ($this->doUseHTTPClient) {
$this->establishConnection($filename);
$response =& $this->httpConnection->get($filename);

if ($response != null) {
$fileContents = $response->getResponse();
}
}
else {
if (function_exists('file_get_contents')) {
$fileContents = @file_get_contents($filename);
}
else {
require_once(DOMIT_RSS_INCLUDE_PATH . 'php_file_utilities.php');
$fileContents =& php_file_utilities::getDataFromFile($filename, 'r');
}

if ($fileContents == '') {
$this->establishConnection($filename);
$response =& $this->httpConnection->get($filename);

if ($response != null) {
$fileContents = $response->getResponse();
}
}
}

return $fileContents;
} //getTextFromFile

/**
* Gets a reference to the underlying DOM document
* @return Object A reference to the underlying DOM document
*/
function &getDocument() {
return $this->node;
} //getDocument

/**
* Gets a reference to the root DOM element
* @return Object A reference to the root DOM element
*/
function &getNode() {
return $this->node->documentElement;
} //getNode

/**
* Forces channel elements that are external to a channel to be referenced as subelements of that channel
*/
function handleChannelElementsEmbedded() {
if (count($this->domit_rss_items) > 0) {
foreach ($this->domit_rss_channels as $key => $value) {
$this->domit_rss_channels[$key]->domit_rss_items =& $this->domit_rss_items;

if (count($this->DOMIT_RSS_indexer) > 0) {
foreach ($this->DOMIT_RSS_indexer as $ikey => $ivalue) {
if ($ikey != DOMIT_RSS_ARRAY_CHANNELS) {
$this->domit_rss_channels[$key]->DOMIT_RSS_indexer[$ikey] =& $this->DOMIT_RSS_indexer[$ikey];
unset($this->DOMIT_RSS_indexer[$ikey]);
}
}
}
}
}
} //handleChannelElementsEmbedded

/**
* Returns the version of RSS used to format the data
* @return string The version of RSS used to format the data
*/
function getRSSVersion() {
$version = $this->node->documentElement->getAttribute(DOMIT_RSS_ATTR_VERSION);

if ($version == '') {
$xmlns = $this->node->documentElement->getAttribute('xmlns');
$total = strlen($xmlns);

if (substr($xmlns, $total) == '/') {
    $total--;
}

for ($i = ($total - 1); $i > -1; $i--) {
    $currentChar = substr($xmlns, $i);

    if ($currentChar == '/') {
        break;
    }
    else {
        $version = $currentChar . $version;
    }
}

}

return $version;
} //getRSSVersion

/**
* Returns the number of channels in the document
* @return int The number of channels in the document
*/
function getChannelCount() {
return count($this->domit_rss_channels);
} //getChannelCount()

/**
* Returns a reference to the channel located at the specified index
* @return Object A reference to the channel located at the specified index
*/
function &getChannel($index) {
return $this->domit_rss_channels[$index];
} //getChannel
} //xml_domit_rss_base_document

/**
* Represents a simple RSS element, without attributes and only a single child text node
*
* @package domit-rss
* @subpackage domit-rss-main
* @author John Heinstein <johnkarl@nbnet.nb.ca>
*/
class xml_domit_rss_simpleelement extends xml_domit_rss_elementindexer {
/**
* Constructor
* @param Object A DOM node containing element data
*/
function xml_domit_rss_simpleelement(&$element) {
$this->node =& $element;
} //xml_domit_rss_simpleelement

/**
* Gets the text of the element
* @return string The element text
*/
function getElementText() {
    $element =& $this->node;
    $result = '';
    $total = $element->childCount;

for ($i = 0; $i < $total; $i++) {
$currNode =& $element->childNodes[$i];

if ($currNode->nodeType == DOMIT_CDATA_SECTION_NODE) {
$result .= $currNode->nodeValue;
}
else {
$result .= $currNode->toString();
}
    }

        return $result;
} //getElementText
} //xml_domit_rss_simpleelement

/**
* @global object Reference to custom error handler for DOMIT RSS Exception class
*/
$GLOBALS['DOMIT_RSS_Exception_errorHandler'] = null;
/**
* @global int Error mode; specifies whether to die on error or simply return
*/
//$GLOBALS['DOMIT_RSS_Exception_mode'] = DOMIT_RSS_ONERROR_RETURN;
// fixes bug identified here: sarahk.pcpropertymanager.com/blog/using-domit-rss/225/
$GLOBALS['DOMIT_RSS_Exception_mode'] = 1;

/**
* @global string Log file for errors
*/
$GLOBALS['DOMIT_RSS_Exception_log'] = null;


/**
* A DOMIT! RSS exception handling class
*
* @package domit-rss
* @author John Heinstein <johnkarl@nbnet.nb.ca>
*/
class xml_domit_rss_exception {
/**
* Raises the specified exception
* @param int The error number
* @param string A string explanation of the error
*/
function raiseException($errorNum, $errorString) {
if ($GLOBALS['DOMIT_RSS_Exception_errorHandler'] != null) {
call_user_func($GLOBALS['DOMIT_RSS_Exception_errorHandler'], $errorNum, $errorString);
}
else {
$errorMessageText = $errorNum  . ' ' . $errorString;
$errorMessage = 'Error: ' . $errorMessageText;

if ((!isset($GLOBALS['DOMIT_RSS_ERROR_FORMATTING_HTML'])) ||
($GLOBALS['DOMIT_RSS_ERROR_FORMATTING_HTML'] == true)) {
$errorMessage = "<p><pre>" . $errorMessage . "</pre></p>";
}

//log error to file
if ((isset($GLOBALS['DOMIT_RSS_Exception_log'])) &&
($GLOBALS['DOMIT_RSS_Exception_log'] != null)) {
require_once(DOMIT_RSS_INCLUDE_PATH . 'php_file_utilities.php');

$logItem = "\n" . date('Y-m-d H:i:s') . 'DOMIT! RSS Error ' . $errorMessageText;
php_file_utilities::putDataToFile($GLOBALS['DOMIT_RSS_Exception_log'], $logItem, 'a');
}

switch ($GLOBALS['DOMIT_RSS_Exception_mode']) {
case DOMIT_RSS_ONERROR_CONTINUE:
return;
break;

case DOMIT_RSS_ONERROR_DIE:
die($errorMessage);
break;
}
}
} //raiseException

/**
* custom handler for DOM RSS errors
* @param object A reference to the custom error handler
*/
function setErrorHandler($method) {
$GLOBALS['DOMIT_RSS_Exception_errorHandler'] =& $method;

require_once(DOMIT_RSS_INCLUDE_PATH . 'php_http_exceptions.php');
$GLOBALS['HTTP_Exception_errorHandler'] =& $method;

require_once(DOMIT_RSS_INCLUDE_PATH . 'xml_domit_shared.php');
$GLOBALS['HTTP_Exception_errorHandler'] =& $method;
} //setErrorHandler

/**
* Set error mode
* @param int The DOMIT RSS error mode
*/
function setErrorMode($mode) {
$GLOBALS['DOMIT_RSS_Exception_mode'] = $mode;

require_once(DOMIT_RSS_INCLUDE_PATH . 'php_http_exceptions.php');
require_once(DOMIT_RSS_INCLUDE_PATH . 'xml_domit_shared.php');

if ($mode == DOMIT_RSS_ONERROR_CONTINUE) {
$GLOBALS['HTTP_Exception_mode'] = HTTP_ONERROR_CONTINUE;
$GLOBALS['DOMIT_DOMException_mode'] = DOMIT_ONERROR_CONTINUE;
}
else {
$GLOBALS['HTTP_Exception_mode'] = HTTP_ONERROR_DIE;
$GLOBALS['DOMIT_DOMException_mode'] = DOMIT_ONERROR_DIE;
}
} //setErrorMode

/**
* Set error mode
* @param boolean True if errors should be logged
* @param string Absolute or relative path to log file
*/
function setErrorLog($doLogErrors, $logfile) {
require_once(DOMIT_RSS_INCLUDE_PATH . 'php_http_exceptions.php');

if ($doLogErrors) {
$GLOBALS['DOMIT_RSS_Exception_log'] = $logfile;
$GLOBALS['HTTP_Exception_log'] = $logfile;
$GLOBALS['DOMIT_Exception_log'] = $logfile;
}
else {
$GLOBALS['DOMIT_RSS_Exception_log'] = null;
$GLOBALS['HTTP_Exception_log'] = null;
$GLOBALS['DOMIT_Exception_log'] = null;
}
} //setErrorLog
} //xml_domit_rss_exception

?>


Второй который правил
<?php
/**
* version $Id: newsfeeds.html.php 4697 2006-08-24 00:01:32Z stingrey $
* @package Joomla RE
* @subpackage Newsfeeds
* @copyright Copyright (C) 2005 Open Source Matters. All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
*
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/

// чряЁхЄ яЁ ьюую фюёЄєяр
defined( '_VALID_MOS' ) or die( '─юёЄєя юуЁрэшўхэ' );

/**
* @package Joomla RE
* @subpackage Newsfeeds
*/
class HTML_newsfeed {

function displaylist( &$categories, &$rows, $catid, $currentcat=NULL, &$params, $tabclass ) {
global $Itemid, $mosConfig_live_site, $hide_js;
if ( $params->get( 'page_title' ) ) {
?>
<div class="componentheading<?php echo $params->get( 'pageclass_sfx' ); ?>">
<?php echo $currentcat->header; ?>
</div>
<?php
}
?>
<form action="index.php" method="post" name="adminForm">

<table width="100%" cellpadding="4" cellspacing="0" border="0" align="center" class="contentpane<?php echo $params->get( 'pageclass_sfx' ); ?>">
<tr>
<td width="60%" valign="top" class="contentdescription<?php echo $params->get( 'pageclass_sfx' ); ?>" colspan="2">
<?php
// show image
if ( $currentcat->img ) {
?>
<img src="<?php echo $currentcat->img; ?>" align="<?php echo $currentcat->align; ?>" hspace="6" alt="<?php echo _WEBLINKS_TITLE; ?>" />
<?php
}
echo $currentcat->descrip;
?>
</td>
</tr>
<tr>
<td>
<?php
if ( count( $rows ) ) {
HTML_newsfeed::showTable( $params, $rows, $catid, $tabclass );
}
?>
</td>
</tr>
<tr>
<td>&nbsp;

</td>
</tr>
<tr>
<td>
<?php
// Displays listing of Categories
if ( ( $params->get( 'type' ) == 'category' ) && $params->get( 'other_cat' ) ) {
HTML_newsfeed::showCategories( $params, $categories, $catid );
} else if ( ( $params->get( 'type' ) == 'section' ) && $params->get( 'other_cat_section' ) ) {
HTML_newsfeed::showCategories( $params, $categories, $catid );
}
?>
</td>
</tr>
</table>
</form>
<?php
// displays back button
mosHTML::BackButton ( $params, $hide_js );
}

/**
* Display Table of items
*/
function showTable( &$params, &$rows, $catid, $tabclass ) {
global $mosConfig_live_site, $Itemid;
// icon in table display
$img = mosAdminMenus::ImageCheck( 'con_info.png', '/images/M_images/', $params->get( 'icon' ) );
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
<?php
if ( $params->get( 'headings' ) ) {
?>
<tr>
<?php
if ( $params->get( 'name' ) ) {
?>
<td height="20" class="sectiontableheader<?php echo $params->get( 'pageclass_sfx' ); ?>">
<?php echo _FEED_NAME; ?>
</td>
<?php
}
?>
<?php
if ( $params->get( 'articles' ) ) {
?>
<td height="20" class="sectiontableheader<?php echo $params->get( 'pageclass_sfx' ); ?>" align="center">
<?php echo _FEED_ARTICLES; ?>
</td>
<?php
}
?>
<?php
if ( $params->get( 'link' ) ) {
?>
<td height="20" class="sectiontableheader<?php echo $params->get( 'pageclass_sfx' ); ?>">
<?php echo _FEED_LINK; ?>
</td>
<?php
}
?>
</tr>
<?php
}

$k = 0;
foreach ($rows as $row) {
$link = 'index.php?option=com_newsfeeds&amp;task=view&amp;feedid='. $row->id .'&amp;Itemid='. $Itemid;
?>
<tr>
<?php
if ( $params->get( 'name' ) ) {
?>
<td height="20" class="<?php echo $tabclass[$k]; ?>">
<a href="<?php echo sefRelToAbs( $link ); ?>" class="category<?php echo $params->get( 'pageclass_sfx' ); ?>">
<?php echo $row->name; ?>
</a>
</td>
<?php
}
?>
<?php
if ( $params->get( 'articles' ) ) {
?>
<td width="20%" class="<?php echo $tabclass[$k]; ?>" align="center">
<?php echo $row->numarticles; ?>
</td>
<?php
}
?>
<?php
if ( $params->get( 'link' ) ) {
?>
<td width="50%" class="<?php echo $tabclass[$k]; ?>">
<?php echo ampReplace( $row->link ); ?>
</td>
<?php
}
?>
</tr>
<?php
$k = 1 - $k;
}
?>
</table>
<?php
}

/**
* Display links to categories
*/
function showCategories( &$params, &$categories, $catid ) {
global $mosConfig_live_site, $Itemid;
?>
<ul>
<?php
foreach ( $categories as $cat ) {
if ( $catid == $cat->catid ) {
?>
<li>
<b>
<?php echo $cat->title;?>
</b>
&nbsp;
<span class="small">
(<?php echo $cat->numlinks;?>)
</span>
</li>
<?php
} else {
$link = 'index.php?option=com_newsfeeds&amp;catid='. $cat->catid .'&amp;Itemid='. $Itemid;
?>
<li>
<a href="<?php echo sefRelToAbs( $link ); ?>" class="category<?php echo $params->get( 'pageclass_sfx' ); ?>">
<?php echo $cat->title;?>
</a>
<?php
if ( $params->get( 'cat_items' ) ) {
?>
&nbsp;
<span class="small">
(<?php echo $cat->numlinks;?>)
</span>
<?php
}
?>
<?php
// Writes Category Description
if ( $params->get( 'cat_description' ) ) {
echo '<br />';
echo $cat->description;
}
?>
</li>
<?php
}
}
?>
</ul>
<?php
}


function showNewsfeeds( &$newsfeed, $LitePath, $cacheDir, &$params ) {
?>
<table width="100%" class="contentpane<?php echo $params->get( 'pageclass_sfx' ); ?>">
<?php
if ( $params->get( 'header' ) ) {
?>
<tr>
<td class="componentheading<?php echo $params->get( 'pageclass_sfx' ); ?>" colspan="2">
<?php echo $params->get( 'header' ); ?>
</td>
</tr>
<?php
}

// full RSS parser used to access image information
$rssDoc = new xml_domit_rss_document();
$rssDoc->setRSSTimeout(5);
$rssDoc->useCacheLite( true, $LitePath, $cacheDir, $newsfeed->cache_time );
$success = $rssDoc->loadRSS( $newsfeed->link );

if ( $success ) {
$totalChannels = $rssDoc->getChannelCount();

for ( $i = 0; $i < $totalChannels; $i++ ) {
$currChannel =& $rssDoc->getChannel($i);
$elements = $currChannel->getElementList();
$descrip = 0;
$iUrl = 0;

foreach ( $elements as $element ) {
//image handling
if ( $element == 'image' ) {
$image =& $currChannel->getElement( DOMIT_RSS_ELEMENT_IMAGE );
$iUrl = $image->getUrl();
$iTitle = $image->getTitle();
}
if ( $element == 'description' ) {
$descrip = 1;
// hide com_rss descrip in 4.5.0 feeds
if ( $currChannel->getDescription() == 'com_rss' ) {
$descrip = 0;
}
}
}
$feed_title = $currChannel->getTitle();
$feed_title = mosCommonHTML::newsfeedEncoding( $rssDoc, $feed_title );
?>
<tr>
<td class="contentheading<?php echo $params->get( 'pageclass_sfx' ); ?>">
<a href="<?php echo ampReplace( $currChannel->getLink() ); ?>" target="_blank">
<?php echo $feed_title; ?></a>
</td>
</tr>
<?php
// feed description
if ( $descrip && $params->get( 'feed_descr' ) ) {
$feed_descrip = $currChannel->getDescription();
$feed_descrip = mosCommonHTML::newsfeedEncoding( $rssDoc, $feed_descrip );
?>
<tr>
<td>
<?php echo $feed_descrip; ?>
<br />
<br />
</td>
</tr>
<?php
}
// feed image
if ( $iUrl && $params->get( 'feed_image' ) ) {
?>
<tr>
<td>
<img src="<?php echo $iUrl; ?>" alt="<?php echo $iTitle; ?>" />
</td>
</tr>
<?php
}
$actualItems = $currChannel->getItemCount();
$setItems = $newsfeed->numarticles;
if ( $setItems > $actualItems ) {
$totalItems = $actualItems;
} else {
$totalItems = $setItems;
}
?>
<tr>
<td>
<ul>
<?php
for ( $j = 0; $j < $totalItems; $j++ ) {
$currItem =& $currChannel->getItem($j);

$item_title = $currItem->getTitle();
$item_title = mosCommonHTML::newsfeedEncoding( $rssDoc, $item_title );
?>
<li>
<?php
// START fix for RSS enclosure tag url not showing
if ($currItem->getLink()) {
?>
<a href="<?php echo ampReplace( $currItem->getLink() ); ?>" target="_blank">
<?php echo $item_title; ?></a>
<?php
} else if ($currItem->getEnclosure()) {
$enclosure = $currItem->getEnclosure();
$eUrl = $enclosure->getUrl();
?>
<a href="<?php echo ampReplace( $eUrl ); ?>" target="_blank">
<?php echo $item_title; ?></a>
<?php
}  else if (($currItem->getEnclosure()) && ($currItem->getLink())) {
$enclosure = $currItem->getEnclosure();
$eUrl = $enclosure->getUrl();
?>
<a href="<?php echo ampReplace( $currItem->getLink() ); ?>" target="_blank">
<?php echo $item_title; ?></a>
<br />
╤ё√ыър:
                                       <a href="<?php echo $eUrl; ?>" target="_blank">
<?php echo ampReplace( $eUrl ); ?></a>
<?php
}
// END fix for RSS enclosure tag url not showing

// item description
if ( $params->get( 'item_descr' ) ) {
$text = $currItem->getDescription();
$text = mosCommonHTML::newsfeedEncoding( $rssDoc, $text );

$num = $params->get( 'word_count' );

// word limit check
if ( $num ) {
$texts = explode( ' ', $text );
$count = count( $texts );
if ( $count > $num ) {
$text = '';
for( $i=0; $i < $num; $i++ ) {
$text .= ' '. $texts[$i];
}
$text .= '...';
}
}
?>
<br />
<?php echo $text; ?>
<br />
<br />
<?php
}
?>
</li>
<?php
}
?>
</ul>
</td>
</tr>
<tr>
<td>
<br />
</td>
</tr>
<?php
}
}
?>
</table>
<?php
// displays back button
mosHTML::BackButton ( $params );
}
}
?>

Изменено. Причина: Не правильное оформление сообщения.
ЗЫ XAND, не забывайте использовать ВВтеги  Roll Eyes
« Последнее редактирование: 19.02.2009, 06:55:29 от MuraDweb » Записан
alexecon
Осваиваюсь на форуме
***

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

Сообщений: 147


« Ответ #36 : 19.02.2009, 06:35:28 »

Так то что написано выше то и правилось, что еще то приводить?
У меня все исправилось только теперь пытаясь получить ленты свои - получаю кракозябры, ранее прикручивал чужие были кракозябры а свои получал отлично. Кстати никто не пишет про свои ленты Azn
Посмотрите внимательно ещё раз, что тут написано и сделайте все в точности так, как написано http://joomlaforum.ru/index.php/topic,3722.msg55678.html#msg55678
С кодировками лент новостей - и своих, и чужих - все нормально. Если Вы имеете в виду, как они выглядят на сайте. А уж в каком виде мои ленты к кому-то поступают, мне неведомо. Но если что и не так, то я ничего с этим поделать не могу. Равно как и вы пытаетесь лечить свой сайт, который не "читает" нормально чужие ленты, а не предлагаете их авторам подкрутить что-нибудь в коде на своей стороне.
Записан
Gold Dragon
True Gallery Team
*

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

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



« Ответ #37 : 09.04.2009, 17:07:31 »

Други! спасибо.. помогли ваши советы! Всем по плюсу... правда гостю не могу поставить Wink

кстати.. хак сделал для Joostina 1.1.3, т.ч. это работает и на джустине
« Последнее редактирование: 09.04.2009, 17:13:14 от Gold Dragon » Записан
rocksilver
Осваиваюсь на форуме
***

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

Сообщений: 82


« Ответ #38 : 18.04.2009, 23:51:05 »

Есть еще один встроенный перекодировщик для RSS новостей... И внем ошибка, в результате чего он неправильно работает, т.е. декодирует тогда когда не надо

Чтобы это исправить открываем файл хост/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 {

Это для 5-го PHP для 4 возможно то же что-то придется поменять... Там ниже для этого свой кусочек...

Помогло это + вот это:

Цитировать
Сначала нужно провести вышеуказанные манипуляции с Joola.php

Потом делаем вот что :

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";

У меня все заработало! Joomla Lavra 1.0.15

Огромное спасибо, а то весь инет перерыл, еле откопал!
Причем, РСС выводил с украинского сайта, после первого шага (1 цитата) ушли вопросики,
после 2 шага - "неправильный" русский превратился в украинский.
Записан
Алхимик
Захожу иногда
**

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

Сообщений: 19


« Ответ #39 : 06.05.2009, 23:44:02 »

Joomla 1.5.10. Юзал разные компоненты и везде RSS экспортируется в utf-8, а у меня уже два сайта новости мои просят, но у них windows-1251 в итоге там не русский язык, а сами знаете что. Может кто посоветует какой компонент, где можно кодировки экспорта выбирать (или тот что экспортирует в windows-1251), или как существующие поправить. Вот на данный момент у меня BCA RSS Syndicator и танцы с бубном вокруг него не помогают.
Записан
tonik
Захожу иногда
**

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

Сообщений: 23


« Ответ #40 : 13.05.2009, 22:25:33 »

Цитировать
Re: Кодировка RSS
« Ответ #16 : 23.07.2007, 03:57:45 »
Получилось!

А как теперь исправить, что вместо «кавычек» стали отображаться [кавычкиk ?


Такая же проблема..
Кто-нибудь решил?
Записан
Valery
Захожу иногда
**

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

Сообщений: 6


« Ответ #41 : 23.05.2009, 08:40:10 »

Народ помогите у меня такая же проблема на Joomla 1.5.9
Такая же проблема при получении RSS новостей в кодировке 1251
Тоже вместо букв на русском идут кубики или знаки вопросов
Что делать подскажите?
Записан
alexecon
Осваиваюсь на форуме
***

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

Сообщений: 147


« Ответ #42 : 25.05.2009, 19:50:36 »

Народ помогите у меня такая же проблема на Joomla 1.5.9
Такая же проблема при получении RSS новостей в кодировке 1251
Тоже вместо букв на русском идут кубики или знаки вопросов
Что делать подскажите?


to Алхимик also:

Народ, тут пишут про решение данной проблемы на Joomla 1.0.x
А Вы народу "полуторку" подсовываете...
Записан
Adam.K
Осваиваюсь на форуме
***

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

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


Чтож со зрением то делать? Совсем испортилось.


« Ответ #43 : 09.08.2009, 09:11:22 »

rocksilver Точно получилось! Молодца!
Записан
alex75300
Осваиваюсь на форуме
***

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

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


Кому щас легко...


« Ответ #44 : 28.03.2010, 14:26:12 »

Сначала нужно провести вышеуказанные манипуляции с Joola.php

Потом делаем вот что :

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";

У меня все заработало! Joomla Lavra 1.0.15

Реально заработало Joomla Lavra 1.0.15 и Joomla 1.0.15 RE
Спасибо за пост и естественно + автору поста
Записан
jwzwdr
Гость
« Ответ #45 : 22.08.2010, 00:54:02 »

Для Joostina 1.2:
Редактируем /includes/joomla.php
Находим функцию    function newsfeedEncoding($rssDoc,$text,$utf8enc=null) {
в ней находим фрагмент
      if($encoding && !$utf8enc) {
         $text = $encoding($text);
заменяем на:
      if($encoding && !$utf8enc) {
         $text = iconv("UTF-8", "cp1251", $text);

и будет вам счастье. проверено 100%
Записан
old_style
Осваиваюсь на форуме
***

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

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



« Ответ #46 : 21.01.2011, 00:36:03 »

Да, все работает (1.0 Лавра). Изменила файлы /includes/frontend.html.php, /includes/joomla.php и /includes/feedcreator.class.php. То, что в папке /includes/domit, не трогала (точнее попыталась, но лента новостей исчезла). Спасибо sarportal !
Записан
otshelnik
Осваиваюсь на форуме
***

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

Сообщений: 142


« Ответ #47 : 08.02.2011, 05:54:24 »

Да, все работает (1.0 Лавра). Изменила файлы /includes/frontend.html.php, /includes/joomla.php и /includes/feedcreator.class.php. То, что в папке /includes/domit, не трогала (точнее попыталась, но лента новостей исчезла). Спасибо sarportal !
Да этот вариант сработал.
Записан
Страниц: 1 2 [Все]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@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