Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

Здравствуйте. Нужно подключить сервис Seo Shield. 

Проблема в подключении к сайту. Делаю всё по инструкции не появляется комментарий <!--{seo_shield_out_buffer}-->

Может кто подсказать как правильно подключить к Simpla?

 

Инструкция:

  1. В кореневую директорию сайта (расположение главного index.php) заливаем папку seoshield-client
  2. Перейдя по URL http://<domain_name>/seoshield-client/ должны увидеть белую страницу и 200ый статус HTTP ответа (в случае если этого не произошло, возможно в .htaccess сайта необходимо добавить исключение для адреса "/seoshield-client/").
  3. Далее необходимо подключить 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}-->

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...