CMS. Интеграция CDN с X-Cart

Перед тем, как предпринимать какие-либо шаги создайте резервные копии файлов и базы данных. Плагин интеграции с CDN предназначен только для сайтов работающих по стандартным шаблонам CMS. Если вы вносили изменения в логику работы CMS, плагин может не cработать.

Используйте CNAME, которую задали в личном кабинете при настройке ресурса. Предположим, ваш CNAME: cdn.example.com. Проверьте работает ли ваш домен, прежде чем использовать ее для интеграции. 

X-Cart 4.4.x и позднее - постоянный путь к контенту (статике)

Откройте файл smarty.php в корневом каталоге X-Cart

Замените строки:

$smarty->assign('ImagesDir', $xcart_web_dir . $smarty_skin_dir . '/images');                       $smarty->assign('SkinDir', $xcart_web_dir . $smarty_skin_dir);

На следующие строки:

if ($_SERVER['HTTPS'] != 'on')                                                                                                 {                                                                                                                                                   $smarty->assign("SkinDir","http://cdn.example.com/skin/ideal_comfort");                      $smarty->assign("ImagesDir","http://cdn.example.com/skin/ideal_comfort/images");            }                                                                                                                                                   else                                                                                                                                             {                                                                                                                                                 $smarty->assign("SkinDir","https://cdn.example.com/skin/ideal_comfort");                      $smarty->assign("ImagesDir","https://cdn.example.com/skin/ideal_comfort/images");         }

X-Cart 4.4.x и позднее - динамический путь к контенту (статике)

Откройте файл smarty.php в корневом каталоге X-Cart

Замените строки:

$smarty->assign('ImagesDir', $xcart_web_dir . $smarty_skin_dir . '/images');                      $smarty->assign('SkinDir', $xcart_web_dir . $smarty_skin_dir);

На следующие строки:

if ($_SERVER['HTTPS'] != 'on')
{
$smarty->assign('ImagesDir', "http://cdn.example.com" .
$smarty_skin_dir . '/images'); $smarty->assign('SkinDir', "http://cdn.example.com" . $smarty_skin_dir);
}
else
{
$smarty->assign('ImagesDir', "https://cdn.example.com" . $smarty_skin_dir . '/images');
$smarty->assign('SkinDir', "https://cdn.example.com" . $smarty_skin_dir);
}


Откройте файл /include/templater/plugins/function.load_defer_code.php.

Замените строку:

$cacheWebFile = $var_dirs_web['cache'] . '/' . $label . '.' . $md5Suffix . '.' . $type;

 На следующие строки:

if ($_SERVER['HTTPS'] != 'on')
{
$cacheWebFile = "http://cdn.example.com/var/cache" . '/' . $label . '.' . $md5Suffix . '.' . $type;
}
else
{
$cacheWebFile = "https://cdn.example.com/var/cache" . '/' . $label . '.' . $md5Suffix . '.' . $type;
}


Откройте файл /include/func/func.files.php.

Найдите (не заменяйтe) строку:

global $config, $sql_tbl, $xcart_dir, $current_location;

И добавьте (не заменяйте) следующие строки:

if ($HTTPS)
$current_location = 'https://cdn.example.com';
else
$current_location = 'http://cdn.example.com';


Откройте файл /include/templater/plugins/function.get_category_image_url.php.

Замените строку:

return func_convert_amp(func_get_image_url($category['categoryid'], 'C', $category['image_path']));

На следующую строку:

return return str_replace("domain.com","cdn.example.com",func_convert_amp(func_get_image_url($category['categoryid'], 'C', $category['image_path'])));


Откройте файл /skin/common_files/modules/Banner_System/banner_rotator.tpl.

Замените строку:

src="{$content.image_path|amp}"

На следующую строку:

src="{$content.image_path|amp|replace:'domain.com':'cdn.example.com'}"


Интеграция с CDN завершена! Рекомендуем проверить html-код сайта, чтобы убедиться, что URL-адреса были верно изменены.

Для этого нажмите F12 или откройте «Инструменты разработчика», перейдите на вкладку Network, обновите страницу. В ссылках на статические файлы, вы должны увидеть CNAME-запись из личного кабинета, вместо вашего доменного имени.

Была ли статья полезна?
Недавно просмотренные статьи