Форум
[Все сообщения]
Тема : RSS для вебмастераИмя : Алексей Город : Москва 03/03/2007 01:07 Сообщение: Коллеги, а может кто-нибудь подсказать, как настроить уже существующую в CME ленту RSS? Уже месяц ничего не получается, одни крякозябры на выходе...
Помогите!
Тема : RSS для вебмастераИмя : Сергей Трофимов 03/03/2007 10:08 Сообщение: А что такое СМЕ? В любом случае должна устанавливаться кодировка, чтобы в выходном XML файле присутствовала строка с кодировкой <?xml version="1.0" encoding="windows-1251" ?>
Тема : RSS для вебмастераИмя : Алексей Город : Москва 04/03/2007 13:37 Сообщение: CME - это я ошибся, CMS (content management system). Я и не скрываю, что безграмотный в этом деле, знал бы - не спрашивал:-)))
Это скрипт articlelive, кажется. Вот эта ссылка: http://www.inmast.ru/izdat/articlerss.php
Насколько я понимаю, там всего два файла, которые этой штукой управляют:
http://www.inmast.ru/izdat/templates...ssDisplay.xslt
где я даже пробовал utf-8 поменять на windows-1251 - ноль результата.
и файл выдачи ленты, который я упомянул:
http://www.inmast.ru/izdat/articlerss.php
может, что не так с .htaccess раздела? В другом разделе, в другом скрипте все работает - только лента оттуда никому не нужна... А здесь я как журналист материалы размещаю - но, видно, если дано писать статьи, то не дано настраивать RSS... Тема : RSS для вебмастераИмя : Сергей Трофимов 04/03/2007 14:33 Сообщение: Похоже проблема не в отображении, а в создании файла в неверной кодировке. Что-то в Вашей системе, которая создает файл xml настроено не правильно. Файл выдается в кодировке UTF-8, но символы не соответствуют нужным. Попробуйте настроить Ваш CMS так, чтобы выдавал данные напрямую в кодировке 1251. Или из базы выдается текст в неверной кодировке, проверьте COLLATION в колонках.
Тема : RSS для вебмастераИмя : Алексей Город : Москва 04/03/2007 19:16 Сообщение: Сама система в админке настроена так, чтобы выдавать в кодировке windows-1251, это предусмотрено самим скриптом прямо в дроп-листе в админке. Хотя, как я где-то читал, rss обрабатывается отдельно, по своим правилам. Сами статьи на сайте нормально видны, нормально читаются. Вся проблема именно в выдаче rss.
Объясните, плиз, непросвещенному, как проверить collations. Я порылся в SQL через phpMyadmin - ничего там не нашел... И в дампе ничего подобного нет - простите за темноту, там ли я искал?
В мануале по SQL сказано, что надо поставить строку $dbh->do("SET character_set_results="utf8"' - а вот куда ее ставить?
Алексей Тема : RSS для вебмастераИмя : Сергей Трофимов 04/03/2007 20:14 Сообщение: Посмотрите в htaccess строчку AddDefaultCharset UTF-8 или AddDefaultCharset windows-1251
Можно на уровне таблицы поменять кодировку, например выдать SQL команду через phpmyadmin
ALTER TABLE `таблица` CHANGE `колонка` `колонка` VARCHAR( 50 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NULL DEFAULT NULL
Если в одних запросах выдается в русской кодировке, а в других нет-то дело в самих запросах. Смотрите скрипт rss, что там с кодировкой
SET character_set_results='utf8' - можно в соединении поставить в самом скрипте, но обычно все-таки 1251 кодировка в базе. Посмотрите, например, здесь как настроить Mysql и поставить кодировки в запросах http://www.dedic.ru/node/213
Тема : RSS для вебмастераИмя : Алексей Город : Москва 05/03/2007 15:04 Сообщение: Ничего не выходит. Первая попытка. В файле .htaccess дописываю до следующего вида : AddType "text/xml; charset=windows-1251" .xslt Крякозябры. Файл RssDisplay.xslt правлю и получаю в результате его начало таким: <?xml version="1.0" encoding="windows-1251" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <head> <title><xsl:value-of select="rss/channel/title"/></title> </head> <body>
Крякозябры.
Звоню провайдеру хостинга, чтобы спросить, как настроить выдачу sql Получаю в ответ: база настроена вообще только на windows-1251 по умолнчанию, и как раз другие кодировки не предусмотрены.
Еще один момент. В этом разделе, у этого скрипта и именно с этой базой такая проблема. У всех лент RSS именно отсюда и из этой базы. На этом же сервере, но в другом разделе, у другого скрипта, со второй базой sql все ОК
Ну что же делать? Тема : RSS для вебмастераИмя : Сергей Трофимов 05/03/2007 18:42 Сообщение: Значит проблема в самом скрипте. аrticlerss.php выводит вот такой файл <?xml version="1.0" encoding="UTF-8"?> <rss version="2.0"> <channel> <title>Èçäàò ....
смотрите в коде, почему он делает UTF-8, а не 1251
Тема : RSS для вебмастераИмя : Алексей Город : Москва 05/03/2007 21:14 Сообщение: Так везде, кажется, код исправлен на 1251: В RssDisplay.xslt, в .htaccess, в общей настройке скрипта в админке...
А можно как-то прописать в файле выдачи, добавив какой-то скрипт, чтобы он перекодировался на выходе? Тема : RSS для вебмастераИмя : Сергей Трофимов 06/03/2007 08:22 Сообщение: А у Вас доступа к исходному коду аrticlerss.php нет? Он и создает файл xml. Перекодировать - это работа намного большая чем сразу сделать в нужной кодировке.
Тема : RSS для вебмастераИмя : Алексей Город : Москва 06/03/2007 19:20 Сообщение: Сергей, а исходный код - это не вот это файл? Разве не отсюда берется лента? http://www.inmast.ru/izdat/templates/Directory/RssDisplay.xslt
Вообще-то в config.php тоже четко указано:
$GLOBALS["AL_CFG"]["charset"] = "windows-1251";
И вот здесь я пробовал windows-1251 вместо UTF-8 ставить: www.inmast.ru/izdat/includes/classes/class.article.php
Сергей, если найдете время, Вы могли бы написать мне на е-мейл (info %40inmast.ru)? Я подозреваю, что просто начинаю всех доставать на этом форуме... Только вот что делать не знаю... Тема : RSS для вебмастераИмя : Сергей Трофимов 11/03/2007 10:56 Сообщение: ArticleLive формирует ленту RSS в кодировке UTF-8. Можно поменять кодировку непосредственно в коде класса class.article.php, тогда все будет работать.
|
|