← Помощь

Интеграция сайта на Opencart с CDN

opencart and CDN

Важно! Интеграция с нашим сервисом CDN в Opencart производится не с помощью модулей или плагинов, а путем изменения трех файлов по FTP/SSH. Вначале убедитесь, что у вас есть возможность подключиться к вашему сайту через FTP или SSH (туда, где лежат файлы сайта).

Оставьте заявку на подключение CDN или напишите нам в чате, указав ваш email, сайт и CMS. Наш менеджер создаст для вас учетную запись в личном кабинете cdnnow и настроит проект. Вы получите письмо с инструкцией и адресом вашего проекта в сети cdnnow!

Вы получили адрес проекта в CDN в виде userXXXXX.clients-cdnnow.ru.

Подключение CDN к Opencart версии 2.x

Подключение CDN к Opencart версии 3.x



Подключение CDN к Opencart версии 2.x

  1. Обязательно сохраните резервную копию этих файлов вашего сайта:
    /config.php
    /catalog/model/tool/image.php
    /catalog/view/theme/default/template/common/header.tpl
  2. Редактируем файл /config.php, который находится в корне сайта. Здесь мы укажем адрес CDN.

    Добавьте в любом месте файла строку:

    define('CDN_HTTPS_SERVER', 'https://userXXXXX.clients-cdnnow.ru/');

    Подставьте вместо userXXXX адрес вашего проекта. Слэш в конце обязателен. Протокол https можно заменить на http в URL, если ваш сайт работает только по http.

  3. Редактируем файл /catalog/model/tool/image.php (здесь мы будем задавать путь до изображений на сайте).

    Найдите в коде файла следующий фрагмент:

    if ($this->request->server['HTTPS']) {
        return $this->config->get('config_ssl') . 'image/' . $new_image;
    } else {
        return $this->config->get('config_url') . 'image/' . $new_image;
    } 

    Замените его на этот фрагмент кода:

    if (defined('CDN_HTTPS_SERVER') and ! empty(CDN_HTTPS_SERVER)) {
        return CDN_HTTPS_SERVER . 'image/' . $new_image;
    } else {
        if ($this->request->server['HTTPS']) {
            return $this->config->get('config_ssl') . 'image/' . $new_image;
        } else {
            return $this->config->get('config_url') . 'image/' . $new_image;
        }
    } 
  4. Редактируем файл /catalog/view/theme/default/template/common/header.tpl. Здесь определяются пути до стилей и скриптов. По умолчанию в этом файле прописаны относительные пути до этих файлов, начинающиеся с директории catalog. Пример кода сайта до подключения CDN:
    Адреса файлов в Opencart без CDN

    Вставьте перед словом catalog код:

    <?php if (defined('CDN_HTTPS_SERVER') and ! empty(CDN_HTTPS_SERVER)) { echo CDN_HTTPS_SERVER; } ?>

    Получится строка вида (скрипт подключен через CDN):

    <script src="<?php if (defined('CDN_HTTPS_SERVER') and ! empty(CDN_HTTPS_SERVER)) { echo CDN_HTTPS_SERVER; } ?>catalog/view/javascript/jquery/jquery-2.1.1.min.js" type="text/javascript"></script>

    Также поступите с остальными скриптами js и стилями css в этом файле.

  5. Загрузите измененные файлы по FTP и обновите страницу вашего сайта. Проверьте, что сайт отображается корректно.
  6. Удостоверьтесь, что в HTML-коде сайта URL адреса до скриптов, стилей и изображений содержат адрес CDN.
    Адреса файлов через CDN

На этом настройка Opencart 2.x завершена и CDN готов к использованию.




Подключение CDN к Opencart версии 3.x

  1. Обязательно сохраните резервную копию этих файлов вашего сайта:
    /config.php
    /catalog/model/tool/image.php
    /catalog/view/theme/default/template/common/header.twig
  2. Редактируем файл /config.php, который находится в корне сайта. Здесь мы укажем адрес CDN.

    Добавьте в любом месте файла строку:

    define('CDN_HTTPS_SERVER', 'https://userXXXXX.clients-cdnnow.ru/');

    Подставьте вместо userXXXX адрес вашего проекта. Слэш в конце обязателен. Протокол https можно заменить на http, если ваш сайт работает только по http.

  3. Редактируем файл /catalog/model/tool/image.php (здесь мы будем задавать путь до изображений на сайте)

    Найдите в коде файла следующий фрагмент:

    if ($this->request->server['HTTPS']) {
        return $this->config->get('config_ssl') . 'image/' . $image_new;
    } else {
        return $this->config->get('config_url') . 'image/' . $image_new;
    } 

    Замените его на этот фрагмент кода:

    if (defined('CDN_HTTPS_SERVER') and ! empty(CDN_HTTPS_SERVER)) {
        return CDN_HTTPS_SERVER . 'image/' . $image_new;
    } else {
        if ($this->request->server['HTTPS']) {
            return $this->config->get('config_ssl') . 'image/' . $image_new;
        } else {
            return $this->config->get('config_url') . 'image/' . $image_new;
        }
    } 

    Обратите внимание, если вы переходили с версии Opencart 2.x на 3.x, в этом файле поменялось написание переменной $image_new (в версии 2.x она называлась $new_image).

  4. Редактируем файл /catalog/view/theme/default/template/common/header.twig (здесь определяются пути до стилей и скриптов).

    Обратите внимание, если вы переходили с версии Opencart 2.x на 3.x: в версии 3.х Opencart перешли с шаблонов tpl на twig, поэтому синтаксис относительно второй версии CMS изменится.

    По умолчанию в этом файле прописаны относительные пути до js и css, начинающиеся с директории catalog.

    Пример кода сайта до подключения CDN:

    Адреса файлов в Opencart без CDN

    Вставьте перед словом catalog код:

    {{ constant('CDN_HTTPS_SERVER') }}

    Получится строка вида (скрипт подключен через CDN):

    <script src="{{ constant('CDN_HTTPS_SERVER') }}catalog/view/javascript/jquery/jquery-2.1.1.min.js" type="text/javascript"></script>

    Также поступите с остальными скриптами js и стилями css в этом файле.

  5. Загрузите измененные файлы по FTP и обновите страницу вашего сайта. Проверьте, что сайт отображается корректно.
  6. Удостоверьтесь, что в HTML-коде сайта URL адреса до скриптов, стилей и изображений содержат адрес CDN.
    Адреса файлов через CDN

На этом настройка Opencart 3.x завершена и CDN готов к использованию.


Если вы хотите использовать свой домен для подключения CDN вместо userXXXXX.clients-cdnnow.ru, то следуйте инструкции по подключению вашего домена. В этом случае в файле /config.php вместо строки:

define('CDN_HTTPS_SERVER', 'https://userXXXXX.clients-cdnnow.ru/');

втавьте строку:

define('CDN_HTTPS_SERVER', 'https://cdn.example-domain.ru/');

где cdn.example-domain.ru — ваш домен для CDN.


← Назад в раздел