Возникла проблема, в определённый момент, друпал 6.2 стал выдавать неверный фид для моего блога: http://gogolev.net/rss.xml
Ломаю голову что могло случиться, так как я почти ничего не менял, ни в настройка друпала, ни в настройках хостинга.
Буду рад любым комментариям и идеям, которые помогут решить проблему.
Бонус: если кто-то поставит точный диагноз, скину 10 wmz на пиво/кефир/сок.
Сейчас всё бэкапю, хочу до 6.4 проапдейтиться.
Комментарии
0="xmlns:media="http://search.yahoo.com/mrss/"">
А откуда это берется? 0= там не нужен, я думаю.
в моем комментарии кавычки пропарсились..
Должно быть вот так:
Код составляет функция node_feed()
Строчки
."\" xml:base=\"". $base_url ."\" "
. drupal_attributes($namespaces) .">\n";
$output .= format_rss_channel($channel['title'], $channel['link'],
$channel['description'], $items,
$channel['language']);
$output .= "</rss>\n";
Аттрибуты rss-канала получаются из переменной $namespaces
И далее:
$extra = node_invoke_nodeapi($item, 'rss item');
$extra = array_merge($extra,
array(array('key' => 'pubDate', 'value' => gmdate('r', $item->created)),
array('key' => 'dc:creator', 'value' => $item->name),
array('key' => 'guid', 'value' => $item->nid .' at '. $base_url,
'attributes' => array('isPermaLink' => 'false'))));
foreach ($extra as $element) {
if (isset($element['namespace'])) {
$namespaces = array_merge($namespaces, $element['namespace']);
}
Вот здесь к rss добавляются поля CCK. Какой-то модуль (CCK) у тебя сует неправильные аттрибуты. Ничего не ставил в последнее время?
Причина найдена. Пара модулей, которые я тестил, когда хотел прикрутить подкасты
Проапдетился до 6.4, не помогло, удалили эти модули - всё заработало.
eagle спасибо за помощь, тоже голову ломал, просто на других сайтах дру6 такого тега не было, не мог понять от куда он берётся.
direqtor, да, вы абсолютно правы!
Жаль что только сейчас увидел Ваш комментарий. Для честности - скиньте WMZ кошелёк в личку
Ну, если так:
Яндекс.Деньги: 41001152760065
Перевести можно через roboxchange.com
Чего-то я личных сообщений найти не могу на этом сайте?
У меня вроде хобби копаться в чужом коде. В друпале это приятнее всего (от джумлы у меня волосы дыбом стояли).
Посмотрел модуль emfield.
Файл emfield.rss.inc(строка 123):
В результате получается:
namespace = Array (
0 = xmlns:media="http://search.yahoo.com/mrss/"
)
)
А функция drupal_attributes(), по всей видимости ожидает:
namespace = Array (
xmlns:media = http://search.yahoo.com/mrss/
)
)
Поменяй этот код на:
И все будет работать.
Баг уже словили (http://drupal.org/node/273649) и пофиксили в dev версии.