Antonios Опубликовано 5 августа, 2017 Жалоба Поделиться Опубликовано 5 августа, 2017 Здравствуйте. Нужно подключить сервис Seo Shield. Проблема в подключении к сайту. Делаю всё по инструкции не появляется комментарий <!--{seo_shield_out_buffer}-->Может кто подсказать как правильно подключить к Simpla? Инструкция:В кореневую директорию сайта (расположение главного index.php) заливаем папку seoshield-client Перейдя по URL http://<domain_name>/seoshield-client/ должны увидеть белую страницу и 200ый статус HTTP ответа (в случае если этого не произошло, возможно в .htaccess сайта необходимо добавить исключение для адреса "/seoshield-client/"). Далее необходимо подключить SeoShield Client к сайту. Для этого выполните следующие действия в главном исполняемом php-файле, обычно - index.php Подключить файл seoshield-client/main.php Вызвать функцию seo_shield_start_cms Пропустить сформированный HTML-код через функцию seo_shield_out_buffer с помощью функции ob_start или напрямую передав его в функцию Примеры подключения: if(file_exists('seoshield-client/main.php')) { include_once('seoshield-client/main.php'); if(function_exists('seo_shield_start_cms')) seo_shield_start_cms(); if(function_exists('seo_shield_out_buffer')) ob_start('seo_shield_out_buffer'); } $html = ... if(file_exists('seoshield-client/main.php')) { include_once('seoshield-client/main.php'); if(function_exists('seo_shield_start_cms')) seo_shield_start_cms(); if(function_exists('seo_shield_out_buffer')) $html = seo_shield_out_buffer($html); } echo $html; Также рекомендуется добавить исключения, при которых SeoShield Client не должен срабатывать. Например, страницы админ-панели сайта либо POST-запросы.Предположим, что у Вас URL админ-панели такой: http://example.com/admin/...В таком случае исключение будет иметь вид: if(isset($_SERVER['REQUEST_URI']) && strpos($_SERVER['REQUEST_URI'], '/admin') === false && $_SERVER['REQUEST_METHOD'] === 'GET') { if(file_exists('current/seoshield-client/main.php')) { ...подключение SeoShield Client... } } Фреймворки Yii, ZF2Вызов кода нужно делать до строчек Zend\Mvc\Application::init($config)->run(); либо (new yii\web\Application($config))->run(); WordPressСоветуем вносить код подключения в файл wp-config.php OpenCart и схожие CMSВ некоторых CMS вывод контента осуществляется методами самой CMS. Например вы можете увидеть в index.php следующее $response->output();В таком случае:Вариат №1. Получить контент такми образом: ob_start(); $response->output(); $html = ob_get_contents(); И далее "пропустить" его через модифицирующую функцию SeoShield Client: $html = seo_shield_out_buffer($html); В результате подключение будет выглядеть следующим образом: ob_start(); $response->output(); $html = ob_get_contents(); if(file_exists('seoshield-client/main.php')) { include_once('seoshield-client/main.php'); if(function_exists('seo_shield_start_cms')) seo_shield_start_cms(); if(function_exists('seo_shield_out_buffer')) $html = seo_shield_out_buffer($html); } echo $html; Внимание! Этот вариант не сработает, если на сайте включен метод который сжимает контент перед тем как отдать его браузеру.Вариант №2. Найти в исходниках класс Response, стандартный путь к нему: system/library/response.php. В этом файле должен быть метод output с примерно таким содержимым: if ($this->output) { if ($this->level) { $output = $this->compress($this->output, $this->level); } else { $output = $this->output; } if (!headers_sent()) { foreach ($this->headers as $header) { header($header, true); } } echo $output; } Тогда этот метод можно переписать следующим образом: if ($this->output) { if(file_exists('seoshield-client/main.php')) { include_once('seoshield-client/main.php'); if(function_exists('seo_shield_start_cms')) seo_shield_start_cms(); if(function_exists('seo_shield_out_buffer')) $this->output = seo_shield_out_buffer($this->output); } if ($this->level) { $output = $this->compress($this->output, $this->level); } else { $output = $this->output; } if (!headers_sent()) { foreach ($this->headers as $header) { header($header, true); } } echo $output; } При правильном подключении, перед закрывающим тегом body должен появится проверочный комментарий: <!--{seo_shield_out_buffer}--> Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.