Клуб разработчиков программных систем

Истории Про Сервис

Темы | Статьи | Рейтинги |

Форум

[Все сообщения]

Тема : 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, тогда все будет работать.


Комментарии к статьям закрыты.

© Trofimov Sergey   http://www.caseclub.ru при цитировании ссылка обязательна.