Вот уже не нескольких проектах я встречаю проблему не работающего вебвизора яндекса на сайте под управлением CMS Диафан. Выражается это так, что при просмотре вебвизора отображается сообщение, что код счетчика не установлен или запрещен показ во фреймах. И вроде бы в настройках админки Диафана есть такая опция, но почему-то этой опции не достаточно.
Решение проблемы оказалось очень простым с технической стороны, нужно было лишь покопаться в файлах ядра Диафана и найти нужную строку кода. Все дело в одном заголовке Content-Security-Policy: frame-ancestors ‘self’, который отрправляется браузеру. Этот заголовок блокирует возможность встраивать сайт во фрейм вебвизора. Можно просто закоменнтировать в файле /includes/init.php строку кода
header("Content-Security-Policy: frame-ancestors 'self'");
Или можно сделать вариант с управлением данной строкой. Для этого в файле /config.php добавляем строку:
define("NO_CSP", true);
И в файле /includes/init.php добавляем условие if(!NO_CSP) перед нужной строкой, чтобы получилось вот так:
if(!NO_CSP)
header("Content-Security-Policy: frame-ancestors 'self'");
Теперь можно будет управлять выводмо заголовка через изменение опции в файле конфигурации.
Важно!
1. Обязательно сделайте резервную копию сайта, или хотябы файла который собираетесь редакритровать, чтобы была возможность вернуть все на место, если возникнет нештатная ситуация.
2. Так как мы редактируем файл ядра движка, то нужно быть готовым к тому, что при установке обновлений движка Диафан данная правка может быть утеряна и данную процедуру придется повтороить.
Если вы считаете, что есть смысл сделать плагин для управления выводом данного заголовка без редактирования кода – поставье пожалуйста лайк под этоим постом. Так я смогу понять насколько актуальна данная проблема, и сделаю нужный плагин ))
Если вам нужна помощь с внедрением данной правки, или других правок - обращайтесь в личку, я готов помочь. Мой сайт-визитка с котактами и портфолио - https://aleksandrpanin.ru/