вторник, 11 августа 2009 г.

SEF Service Map & UTF-8 encoded URLs

SEF Service Map это компонент, перед которым стоит задача создания полной карты сайта.
Кроме того компонент совместим со всеми стандартными расширениями Joomla! (статьи, RSS ленты, ссылки, контакты и т.д.),
SEF Service Map является открытым компонентом - это позволяет интегрировать его с другими компонентами,
такими как галереи, форумы, каталоги и другие, благодаря встроенным механизмам интеграции!

SEF Service Map создает не только карту сайта, но и карту совместимую со стандартом sitemaps.org :
- XML карта (например: для Google)
- TXT карта (например: для Yahoo)

Но эта зараза на отрез отказывается работать совместно с русскоязычными UTF-8 урликами вида: http://some.site/Новости/Новости-сайта/Превеееед-медвед.html
Точнее работать то она с ними работает и даже HTML-карту генерирует валидную, а вот с XML- и TXT- картами проблема. Все красивые русские урлики в них выглядят примерно так: http://some.site/Ð�овоÑ�ти/Ð�овоÑ�ти-Ñ�айта/

Порывшись в коде нашёл проблему. Разработчики при генерации XML- и TXT- карт выполняют перекодировку линка на статью в UTF-8. Вобщем проблема решается таким образом:
  1. Открываем файлик /components/com_sefservicemap/sefservicemap.html.php
  2. Закомменчиваем или удаляем все вхождения строки "$link = utf8_encode($link);" (их 2)
  3. Радуемся жизни... ;)

Комментариев нет:

Отправить комментарий