Здравствуйте!
В старых версиях Maxsite сайт выдает фид в таком виде, что Google Chrome не может его нормально отобразить. На прикрепленной картинке видно, что хром не распознает тип данных и неправильно отображает кодировку. Можете сами открыть и убедиться по ссылке: http://it-dude.ru/feed
Для сравнения откройте вот этот фид: https://habrahabr.ru/rss/best/
Так должен отображаться корректный фид.
Я никак не могу понять чем отличаются эти два фида и почему хром не может правильно отобразить фид от Макссайта.
Версия Maxsite CMS 0.861
PS: Если сохранить фид макссайта как файл и открыть его в Notepad++, то этот текстовый редактор отображает содержимое корректно. Если файл файл сохранить из редактора, удалив расширение файла, то и хром начинает отображать его правильно. Подозреваю, что проблема в кодировке. Но куда копать дальше не понимаю, прошу вашей помощи.
- В чём ошибка обработчика формы загрузки файла?
- Как вывести название рубрики в мета тег description?
- Version 100 - в системе зашита Яндекс метрика - как убрать этот код?
- Не высылается код авторизации
- Трансляция RSS с картинками на внешний сайт
- Многоязычный сайт. Возможно ли?
- Как уменьшить размер в мегабайтах загружаемого изображения?
Андрей, а попробуй изучить http-заголовки - возможно там передаётся неправильная кодировка. А потом решим, что с этим делать.
Илья, спасибо за ответ!
Посмотрел заголовки. Очень похоже, что проблема может быть в заголовке "Content-Type"
На хабре:
Content-Type: text/xml; charset=utf-8
На макссайт:
Content-Type: application/rss+xml
Сейчас пытаюсь понять где и как можно изменить этот заголовок.
Скрины заголовков:
https://gyazo.com/80b673d8a1e20e492e094108421b012c
https://gyazo.com/3696fd6c84c7099612648886b5a3f01a
Нашел в папке \applicatio\maxsite\shared\type\feed четыре файла:
category.php
comments.php
home.php
page.php
В них, в первых строках задаются заголовки:
Но если что-то меняю, то страница перестает грузится, либо ничего не меняется. Пока не понял, как правильно переделать.
И непонятно, почему из этих двух заголовков хром видит только второй.
Да, увидел. Очень странно. Так то это ошибка (ибо задаётся один и тот же параметр) - должен быть только один и с кодировкой. Всегда работает последнее объявление. По сути то, где нет кодировки.
Явный признак ошибки синтаксиса php - надо смотреть логи или включить вывод ошибок, чтобы проверить, что происходит.
По идее, комментирование в начале одной из строк не должно создавать ошибки и в то же время http-заголовок должен поменяться.
Так так и должно быть - виден только последний. Так устроена работа с http-заголовками в пхп.
Вроде разобрался.
Оказалось, что заголовки для фида в старой версии Maxsite задаются в файлах:
maxsite\templates\default\type\feed-category.php
maxsite\templates\default\type\feed-comments.php
maxsite\templates\default\type\feed-home.php
maxsite\templates\default\type\feed-page.php
Там есть строчки аналогичные приведенным выше в коментариях.
Я изменил их так:
Теперь Google Chrome нормально отображает фид RSS. Спасибо за подсказки!