Решил тут проверить валидность RSS и увидел кучу ошибок: http://www.feedvalidator.org/...feed
Кто-нибудь знает как побороть сие недоразумения?
Решил тут проверить валидность RSS и увидел кучу ошибок: http://www.feedvalidator.org/...feed
Кто-нибудь знает как побороть сие недоразумения?
Комментарии
Ну что, неужели никто не знает?
Даже на англоязычном друпал-сайте никто ничего сказать не может
оно вам надо?
Если честно, то очень. Сейчас с Яндексом веду переговоры, чтобы попасть в рейтинг, а из-за этой досадной ошибки не могу пройти
На всякий случай дублирую код ошибки, а то валидатор иногда лежит.
<group domain="http://www.mysenses.ru/philosofy">Философия</group>
^
Этот item вставляется из модуля Organic Groups. Как его вырубить нахрен, чтобы не мешался? Или исправить чтобы валидный код давал?
Я не очень дружу с php, но интуиция мне подсказывает, что некорректный key можно заменить или вырезать нафиг, используя следующй код:
function format_xml_elements($array) {
foreach ($array as $key => $value) {
if (is_numeric($key)) {
if ($value['key']) {
$output .= ' <'. $value['key'];
if (isset($value['attributes']) && is_array($value['attributes'])) {
$output .= drupal_attributes($value['attributes']);
}
if ($value['value'] != '') {
$output .= '>'. (is_array($value['value']) ? format_xml_elements($value['value']) : check_plain($value['value'])) .'</'. $value['key'] .">\n";
}
else {
$output .= " />\n";
}
}
}
else {
$output .= ' <'. $key .'>'. (is_array($value) ? format_xml_elements($value) : check_plain($value)) ."</$key>\n";
}
}
return $output;
}
?>
Подмажите пратцы, как это сделать?
Проблема устраняется двумя способами:
1. Меняем в файле og.module строчку 1460 на следующую
if ($node->og_groups) {
foreach ($node->og_groups_both as $gid => $title) {
$append['og_links'] = array('title' => $title, 'href' => "node/$gid");
$ret[] = array(
'key' => 'group',
'value' => check_plain($title),
'attributes' => array(
'domain' => url("node/$gid", NULL, NULL, TRUE),
'xmlns' => 'http://drupal.org/project/og',
)
);
}
Этот вариант валидный, однако указанный неймспейс большинству ридеров не известен, и валидатор все равно дает рекомендации на этот счет. Посему можно сделать проще:
2. Меняем в файле og.module строчку 1460 на следующую (обратите внимание на значение 'key')
if ($node->og_groups) {
foreach ($node->og_groups_both as $gid => $title) {
// TODO: should be absolute link. core bug.
$append['og_links'] = array('title' => $title, 'href' => "node/$gid");
$ret[] = array(
'key' => 'category',
'value' => check_plain($title),
'attributes' => array(
'domain' => url("node/$gid", NULL, NULL, TRUE),
)
);
}
Код во втором случае полностью валидный для rss-ридеров.