Перед тем, как предпринимать какие-либо шаги создайте резервные копии файлов и базы данных. Плагин интеграции с 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-запись из личного кабинета, вместо вашего доменного имени.