RHCk

Руководство для перехода на SSL (HTTPS) v2.0

Recommended Posts

4 часа назад, WarStyle сказал:

 

Наэмите F12, вкладка консоль, там будет написано что не так, скорее всего картинки у Вас в описании по http. Если не разберетесь, то линк в студию.

 

Точно картинки, которые я добавил.... на одной странице 1, на второй 6 вот таких замечаний:

Mixed Content: The page at 'https://сайт.ru/about_us' was loaded over HTTPS, but requested an insecure image 'http://сайт.ru/image/catalog/photo%20pito/Vramke1000.png'. This content should also be served over HTTPS.

 

А можно попросить ткнуть носом, где что поправить?

 

В редакторе поменял ссылки на https. Правильно сделал? Вроде теперь все защищено )))

Поделиться сообщением


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

Добрый день. Подскажи что делать, если при добавлении сайта в Яндекс вебмасте он пишет: это неглавное зеркало сайта. Робот индексирует только главное зеркало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, once сказал:

что делать

1. Определить, какое зеркало Яндекс считает главным.

2. Определить почему он его считает главным.

3. Изменить главное зеркало.

Поделиться сообщением


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

Подскажите пожалуйста, как можно определить и перезадать.

В интернете нашёл, что можно в robot.txt задать через директиву Host свой сайт с https, но всё равно, когда пишу в Яндекс вебмастере добавить свой сайт с https, он пишет, что это не главное зеркало, предлагает главным зеркалом просто домен (без http и https), это нормально?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, once сказал:

как можно определить

В выдаче Яндекса как выглядит адрес вашего сайта?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
7 часов назад, once сказал:

Просто домен

Напишите в ТП Яндекса (domains@support.yandex.ru), спросите какое зеркало вашего сайта главное.

Поделиться сообщением


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

Все сделано по инструкции, файлы config.php редактировал на https; все нормально отображает, кроме главной  страницы, там http, при переходе на любую ссылку включается https, но на главной изначально (или на любой ссылке с поисковиков на мой сайт) показывает http, кто подскажет в чем ошибка? вот файл .htaccess

Скрытый текст

# 1.To use URL Alias you need to be running apache with mod_rewrite enabled. 

# 2. In your opencart directory rename htaccess.txt to .htaccess.

# For any support issues please visit: http://www.opencart.com

Options +FollowSymlinks

# Prevent Directoy listing 
Options -Indexes

# Prevent Direct Access to files
<FilesMatch "\.(tpl|ini|log)">
 Order deny,allow
 Deny from all
</FilesMatch>

<FilesMatch "error.(txt)$">
Order Allow,Deny
Deny from all
</FilesMatch>

# SEO URL Settings
RewriteEngine On
# If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/ 

RewriteBase /
RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteRule ^download/(.*) /index.php?route=error/not_found [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

### Additional Settings that may need to be enabled for some servers 
### Uncomment the commands by removing the # sign in front of it.
### If you get an "Internal Server Error 500" after enabling any of the following settings, restore the # as this means your host doesn't allow that.

# 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it:
# php_flag register_globals off

# 2. If your cart has magic quotes enabled, This may work to disable it:
# php_flag magic_quotes_gpc Off

# 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try
# php_value upload_max_filesize 999M

# 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value post_max_size 999M

# 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_execution_time 200

# 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_input_time 200

# 7. disable open_basedir limitations
# php_admin_value open_basedir none
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
5 минут назад, isa160 сказал:

кто подскажет в чем ошибка?

Скрытый текст

При написании сообщения об ошибке, указывайте следующую информацию:

  1. Хостинг. Shared или VDS/VPS.
  2. Какая у вас сборка (движок).
  3. Версия движка.
  4. Какой шаблон установлен. Если платный, должна быть лицензия. С варезом можно не писать.
  5. Какие модули установлены. Про варез аналогично строчке выше.
  6. Точное описание последовательности действий, чтобы получить ошибку.
  7. В особо тяжелых случаях может потребоваться адрес сайта. Однако ни что не мешает указать его сразу.

ПОЛЕЗНО! Если на ваше сообщение не обращают внимание, возможно вы указали не всю информацию, проверьте себя.

По какой инструкции вы настраивали? В нашей и слова о WordPress'e нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, RHCk сказал:
  Показать содержимое

При написании сообщения об ошибке, указывайте следующую информацию:

  1. Хостинг. Shared или VDS/VPS.
  2. Какая у вас сборка (движок).
  3. Версия движка.
  4. Какой шаблон установлен. Если платный, должна быть лицензия. С варезом можно не писать.
  5. Какие модули установлены. Про варез аналогично строчке выше.
  6. Точное описание последовательности действий, чтобы получить ошибку.
  7. В особо тяжелых случаях может потребоваться адрес сайта. Однако ни что не мешает указать его сразу.

ПОЛЕЗНО! Если на ваше сообщение не обращают внимание, возможно вы указали не всю информацию, проверьте себя.

По какой инструкции вы настраивали? В нашей и слова о WordPress'e нет.

а где взять первоначальный .htaccess? Дело в том, что сайт передан мне не так давно, и видимо wordpress и прочее, прописали до меня, я же добавил эти изменения

Скрытый текст

// HTTP делаем замену
define('HTTP_SERVER', 'http://site.ru/'); ---> define('HTTP_SERVER', 'https://site.ru/');

// HTTPS делаем замену
define('HTTPS_SERVER', 'http://site.ru/'); ---> define('HTTPS_SERVER', 'https://site.ru/');

 

Файл config.php из каталога admin

// HTTP делаем замену
define('HTTP_SERVER', 'http://site.ru/admin/'); ---> define('HTTP_SERVER', 'https://site.ru/admin/');
define('HTTP_CATALOG', 'http://site.ru/'); ---> define('HTTP_CATALOG', 'https://site.ru/');

// HTTPS делаем замену
define('HTTPS_SERVER', 'http://site.ru/admin/'); ---> define('HTTPS_SERVER', 'https://site.ru/admin/');
define('HTTPS_CATALOG', 'http://site.ru/'); ---> define('HTTPS_CATALOG', 'https://site.ru/');

 

и как итог, браузер пишет, что переадресация выполнилась слишком много раз, сайт недоступен 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, isa160 сказал:

где взять первоначальный .htaccess?

Скачайте сборку CMS, возьмите .htaccess оттуда, переименуйте его, добавьте редиректы для www и https.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
15 минут назад, RHCk сказал:

Скачайте сборку CMS, возьмите .htaccess оттуда, переименуйте его, добавьте редиректы для www и https.

Выдает ошибку - Сайт выполнил переадресацию слишком много раз.

вот .htaccess 

Скрытый текст

# 1.To use URL Alias you need to be running apache with mod_rewrite enabled.

# 2. In your opencart directory rename htaccess.txt to .htaccess.

# For any support issues please visit: http://www.opencart.com

Options +FollowSymlinks

# Prevent Directoy listing
Options -Indexes

# Prevent Direct Access to files
<FilesMatch "(?i)((\.tpl|\.ini|\.log|(?<!robots)\.txt))">
 Require all denied
## For apache 2.2 and older, replace "Require all denied" with these two lines :
# Order deny,allow
# Deny from all
</FilesMatch>

# SEO URL Settings
RewriteEngine On
# If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/

RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP:X-Forwarded-Proto} =http [OR]
RewriteCond %{HTTP:X-Forwarded-Proto} =""
RewriteCond %{HTTP:X-HTTPS} !1 [OR]
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} !robots\.txt
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteRule ^sitemap.xml$ index.php?route=extension/feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=extension/feed/google_base [L]
RewriteRule ^system/download/(.*) index.php?route=error/not_found [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

### Additional Settings that may need to be enabled for some servers
### Uncomment the commands by removing the # sign in front of it.
### If you get an "Internal Server Error 500" after enabling any of the following settings, restore the # as this means your host doesn't allow that.

# 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it:
# php_flag register_globals off

# 2. If your cart has magic quotes enabled, This may work to disable it:
# php_flag magic_quotes_gpc Off

# 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try
# php_value upload_max_filesize 999M

# 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value post_max_size 999M

# 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_execution_time 200

# 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_input_time 200

# 7. disable open_basedir limitations
# php_admin_value open_basedir none

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, isa160 сказал:

слишком много раз

Начните с прочтения правил Темы, они в первом сообщении.

А иначе получается разговор слепого с глухим.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
4 минуты назад, isa160 сказал:

Выдает ошибку - Сайт выполнил переадресацию слишком много раз.

вот .htaccess 

  Показать содержимое


# 1.To use URL Alias you need to be running apache with mod_rewrite enabled.

# 2. In your opencart directory rename htaccess.txt to .htaccess.

# For any support issues please visit: http://www.opencart.com

Options +FollowSymlinks

# Prevent Directoy listing
Options -Indexes

# Prevent Direct Access to files
<FilesMatch "(?i)((\.tpl|\.ini|\.log|(?<!robots)\.txt))">
 Require all denied
## For apache 2.2 and older, replace "Require all denied" with these two lines :
# Order deny,allow
# Deny from all
</FilesMatch>

# SEO URL Settings
RewriteEngine On
# If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/

RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP:X-Forwarded-Proto} =http [OR]
RewriteCond %{HTTP:X-Forwarded-Proto} =""
RewriteCond %{HTTP:X-HTTPS} !1 [OR]
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} !robots\.txt
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteRule ^sitemap.xml$ index.php?route=extension/feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=extension/feed/google_base [L]
RewriteRule ^system/download/(.*) index.php?route=error/not_found [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

### Additional Settings that may need to be enabled for some servers
### Uncomment the commands by removing the # sign in front of it.
### If you get an "Internal Server Error 500" after enabling any of the following settings, restore the # as this means your host doesn't allow that.

# 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it:
# php_flag register_globals off

# 2. If your cart has magic quotes enabled, This may work to disable it:
# php_flag magic_quotes_gpc Off

# 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try
# php_value upload_max_filesize 999M

# 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value post_max_size 999M

# 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_execution_time 200

# 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_input_time 200

# 7. disable open_basedir limitations
# php_admin_value open_basedir none

 

 

Всем спасибо, вопрос решился при помощи поддержки Хостинга, в код htaccess после RewriteBase/ было необходимо добавить код 

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:X-SSL} !^yes$
RewriteRule (.*) https://smarthomeforyou.ru/$1 [R=301,L]
</IfModule>

 

Поделиться сообщением


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

Добрый день!

Подскажите, как решить проблему.

Сообщение появляется при клике по кнопке "Купить" или попытке регистрации.

Скрытый текст

425345549_5.png.0810e0def37cb7eec484111251623692.png

 

Использую виртуальный хостинг Beget.

CMS Opencart 3.0.2.0.

OpenCart Theme By HarnishDesign (на дефолтной теме аналогичная проблема)

 

Данная проблема возникла после установки SSL сертификата.

 

Что было выполнено:

1. Внёс изменения в файл config

Скрытый текст

config.png.69c360b52acebe5acc602d905db0b74d.png

2. аналогично в файле admin/config

Скрытый текст

admin_config.png.603d41f4a154588b7595e64bf2214dc1.png

3. в админке сайта указал, что используется SSL

Скрытый текст

SSL_yes.png.347efa4f15399a70a1a5b81835b38359.png

4. в файле htaccess добавил код (по рекомендации техподдержки Beget в начало файла)

Скрытый текст

htaccess.png.cac32af6977f2f76a91ab613c3c6263d.png

5. в файле robots в user-agent и user-agent Yandex добавил следующий текст Sitemap: httрs://foodkomi...  (вообще нужно это было делать или нет?)

Скрытый текст

user-agent-1.png.16ded26f7cbf2b3633585ac73e4881eb.png

 

user-agent-2.png.81a8fef11fb69aa1e9e3f679a53c9cd0.png

 

250431470_user-agentYandex-1.png.c4045b21e1a1bcd4fd8833cd6839114b.png

 

422244193_user-agentYandex-2.png.10344516c24dcbcbf163c4f14873378c.png

 

 

Ps. Новичок. Учусь создавать интернет-магазин. На сайт практически ничего не устанавливал. Только подключил Я.Метрику и загрузил модуль Я.Кассы. 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, Vasava11 сказал:

в файле htaccess добавил код (по рекомендации техподдержки Beget в начало файла)

 

RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Попробуйте так и не в самом начале файла, а после строки "RewriteBase /"

 

Я не так давно переводил человека на https без проблем перевелся сайт с таким редиректом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, WarStyle сказал:

RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Спасибо за предложенный вариант, но он не помог...

Скрытый текст

IMG_20180930_202729.thumb.jpg.39e8927fdb34e598ab3e58246e777095.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
9 часов назад, Vasava11 сказал:

Подскажите

Редирект 'с www' на 'без www' где потеряли? Он должен быть до редиректа на HTTPS.

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

P.S. Подобная ошибка у вас возникает при переходе с Главной на страницу регистрации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
20 часов назад, RHCk сказал:

Редирект 'с www' на 'без www' где потеряли?

 

добавил

Скрытый текст

1378270014_wwwwww.png.83c05e16c8ea0096c2909657cb58184b.png

 

Проверил в настройках магазина ( система - настройки - редактировать...) и модули на наличие www.

Пока ничего не нашел...

Поделиться сообщением


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

Всем доброго вечера.

АдминВПС

ОС про 2.3.0.2.5

Революшн 4.1

Была такая проблема, возможно есть теперь другая ))) https://yadi.sk/i/YPj_L2KHH1JEcg

Поговорили с Никитой (pikitos) пришли к выводу что: "не работают скрипты только при заходе на сайт, при переходе на др. страницу и обратно работает. посмотрите лог ошибок сервера"

Из лога ошибок везде такое

Скрытый текст

[Fri Oct 19 17:16:24.890231 2018] [:error] [pid 10608] [client 178.218.117.13:55460] PHP Notice:  Use of undefined constant HTTPS_SERVER - assumed 'HTTPS_SERVER' in /var/www/tailshop/data/www/tailshop.ru/system/config/catalog.php on line 9
[Fri Oct 19 17:16:24.948048 2018] [:error] [pid 10608] [client 178.218.117.13:55460] PHP Notice:  Use of undefined constant HTTPS_SERVER - assumed 'HTTPS_SERVER' in /var/www/tailshop/data/www/tailshop.ru/system/storage/modification/catalog/controller/startup/startup.php on line 26

 

Ошибка говорит что не определена константа HTTPS_SERVER

Хотя вы приводите код конфига, где она определена..

Настройки конфигов по инструкции с первой страницы

Скрытый текст

 

из корня

// HTTP
define('HTTP_SERVER', 'https://tailshop.ru/');

// HTTPS
define('HTTPS_SERVER', 'https://tailshop.ru/');

 

из админки

// HTTP
define('HTTP_SERVER', 'https://tailshop.ru/123321/');
define('HTTP_CATALOG', 'https://tailshop.ru/');

// HTTPS
define('HTTPS_SERVER', 'https://tailshop.ru/123321/');
define('HTTPS_CATALOG', 'https://tailshop.ru/');

 

 

Отправил все это рукоблудие хостеру. Ищут проблему на стороне сервера, так как конфиги вроде норм прописаны.

Сижу копаюсь в конфигах и делаю замену

// HTTP
define('HTTP_SERVER', 'https://tailshop.ru/');  на // HTTP define('HTTP_SERVER', 'http://tailshop.ru/');

 

В результате теперь все работает как надо, но вот инструкция на 1й странице говорит что мне еще учиться и учиться )))

Подскажите что не так может быть. Работает то оно это хорошо, вопрос к инструкции. 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 19.10.2018 at 19:26, GreyPV сказал:

В результате

Очень похожая ситуация на шаблоне New Store... 
при заходе на главную по чистому домену s15.by попадаешь на http, при переходах по сайту, и возврате на главную все по https
и еще у яндеса дубль по статистике переходов на главную.

_______________________

П-кт 1.5 Правил темы

Поделиться сообщением


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

Здравствуйте помогите пожалуйста найти решение!
Хостинг Timeweb
Opencart 2.2.0.0
TM Jewelry Showcase OpenCart Template

Сайт: chames.spb.ru

 

Делаю перенос сайта на SSL по стандартной инструкции.
Все проходит отлично, кроме одной странной вещи. 
На страницах "product" все пути до стилей и скриптов выглядят таким образом: 

В путь по которому должен подгружаться скрипт прикрепляется активная ссылка: 
<script src="catalog/view/javascript/jquery/jquery-2.1.1.min.js" type="text/javascript"></script> 
 
То есть, этот путь: catalog/view/javascript/jquery/jquery-2.1.1.min.js становится активной ссылкой и ведет на такой путь: "https://chames.spb.ru/interier-uvelirnyi/catalog/view/javascript/jquery/jquery-2.1.1.min.js"
Как бы подставляется лишний каталог после домена.

 

Переустанавливал на https уже повторно, но все так же. При чем на всех других страницах, подгружается как должно. 
Помогите найти ошибку, возможно она в header где генерируются все стили или в htaccess есть какой-то конфликт или в самом product. На http все работает идеально, а вот при переносе вдруг включается такое, хотя мы меняем только окончание в конфигах .

 

Header.tpl

Скрытый текст

 

<!DOCTYPE html>
<!--[if IE]><![endif]-->
<!--[if IE 8 ]>
<html dir="<?php echo $direction; ?>" lang="<?php echo $lang; ?>" class="ie8"><![endif]-->
<!--[if IE 9 ]>
<html dir="<?php echo $direction; ?>" lang="<?php echo $lang; ?>" class="ie9"><![endif]-->
<!--[if (gt IE 9)|!(IE)]><!-->
<html dir="<?php echo $direction; ?>" lang="<?php echo $lang; ?>">
<!--<![endif]-->
<head>
    <meta charset="UTF-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title><?php echo $title; ?></title>
    <base href="<?php echo $base; ?>"/>
    <?php if ($description) { ?>
        <meta name="description" content="<?php echo $description; ?>"/>
    <?php } ?>
    <?php if ($keywords) { ?>
        <meta name="keywords" content="<?php echo $keywords; ?>"/>
    <?php } ?>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <script src="catalog/view/javascript/jquery/jquery-2.1.1.min.js" type="text/javascript"></script>
    <link href="catalog/view/javascript/bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen"/>
    <script src="catalog/view/javascript/bootstrap/js/bootstrap.min.js" type="text/javascript"></script>
    <script src="catalog/view/javascript/jquery/datetimepicker/moment.js" type="text/javascript"></script>
    <script src="catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.js" type="text/javascript"></script>
    <link href="catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.css" rel="stylesheet">

    <link href="catalog/view/javascript/jquery/owl-carousel/owl.carousel.css" rel="stylesheet">
    <link href="catalog/view/theme/<?php echo $theme_path; ?>/stylesheet/magnificent.css" rel="stylesheet">
    <link href="catalog/view/theme/<?php echo $theme_path; ?>/js/jquery.bxslider/jquery.bxslider.css" rel="stylesheet">
    <link href="catalog/view/theme/<?php echo $theme_path; ?>/stylesheet/photoswipe.css" rel="stylesheet">
    <link href="catalog/view/theme/<?php echo $theme_path; ?>/js/fancybox/jquery.fancybox.css" rel="stylesheet">
    <link href="catalog/view/theme/<?php echo $theme_path; ?>/stylesheet/material-design.css" rel="stylesheet">
    <?php foreach ($styles as $style) { ?>
        <link href="<?php echo $style['href']; ?>" type="text/css" rel="<?php echo $style['rel']; ?>"
              media="<?php echo $style['media']; ?>"/>
    <?php } ?>
    <script src="catalog/view/theme/<?php echo $theme_path; ?>/js/common.js" type="text/javascript"></script>
    <script src="catalog/view/javascript/jquery/owl-carousel/owl.carousel.min.js" type="text/javascript"></script>
    <?php foreach ($links as $link) { ?>
        <link href="<?php echo $link['href']; ?>" rel="<?php echo $link['rel']; ?>" />
    <?php } ?>
    <!--custom script-->
    <?php foreach ($scripts as $script) { ?>
        <?php if (strcmp($script, 'catalog/view/javascript/jquery/owl-carousel/owl.carousel.min.js') != 0) { ?>
            <script src="<?php echo $script; ?>" type="text/javascript"></script>
        <?php } ?>
    <?php } ?>
    <script src="catalog/view/theme/<?php echo $theme_path; ?>/js/device.min.js" type="text/javascript"></script>
    <!--[if lt IE 9]>
    <div style=' clear: both; text-align:center; position: relative;'>
        <a href="http://windows.microsoft.com/en-us/internet-explorer/download-ie">
            <img src="catalog/view/theme/<?php echo $theme_path; ?>/image/warning_bar_0000_us.jpg" border="0" height="42" width="820"
                 alt="You are using an outdated browser. For a faster, safer browsing experience, upgrade for free today."/>
        </a>
    </div>
    <![endif]-->
    <?php foreach ($analytics as $analytic) { ?>
        <?php echo $analytic;
</head>
<body class="<?php echo $class; ?>">
<p id="gl_path" class="hidden"><?php echo $theme_path; ?></p>
<div id="page">
    <header>
        <div class="container margin-b">
            <div class="fleft">
            <nav id="top-links" class="nav toggle-wrap">
                <a class="toggle material-design-settings49" href='#'></a>
                <ul class="toggle_cont">
                    <li class="first">
                        <a href="<?php echo $home; ?>" title="<?php echo $text_home; ?>" >
<!--                            <i class="material-design-home149"></i>-->
                            <span><?php echo $text_home; ?></span>
                        </a>
                        
                        
                        <li class="first">
                        <a href="http://chames.spb.ru/o-uvelirnoi-kompanii" title="О нас" >
<!--                            <i class="material-design-home149"></i>-->
                            <span>О нас</span>
                        </a>
                    </li>
                        
                        
                    <li class="first">
                        <a href="/index.php?route=simple_blog/article" title="Новости" >
<!--                            <i class="material-design-home149"></i>-->
                            <span>Новости</span>
                        </a>
                    </li>
                    
                    <li class="first">
                        <a href="http://chames.spb.ru/dostavka-ukrasheni" title="Доставка" >
<!--                            <i class="material-design-home149"></i>-->
                            <span>Доставка</span>
                        </a>
                    </li>
                    
                    
                    <li class="first">
                        <a href="http://chames.spb.ru/oplata-uvelirnyh-ukrasheni" title="Оплата" >
<!--                            <i class="material-design-home149"></i>-->
                            <span>Оплата</span>
                        </a>
                    </li>
                    
                    <li class="first">
                        <a href="http://chames.spb.ru/contact-us" title="Контакты" >
<!--                            <i class="material-design-home149"></i>-->
                            <span>Контакты</span>
                        </a>
                    </li>
                        
                    </li>
                    <li class="toggle-wrap">
                        <a href="<?php echo $account; ?>" title="<?php echo $text_account; ?>"
                           class="toggle">
<!--                            <i class="material-design-user157"></i>-->
                            <span><?php echo $text_account; ?></span>
                            <!--<span class="caret"></span>-->
                        </a>
                        <ul class="toggle_cont toggle_cont__right">
                            <?php if ($logged) { ?>
                                <li>
                                    <a href="<?php echo $account; ?>"><?php echo $text_account; ?></a>
                                </li>
                                <li>
                                    <a href="<?php echo $order; ?>"><?php echo $text_order; ?></a>
                                </li>
                                <li>
                                    <a href="<?php echo $transaction; ?>"><?php echo $text_transaction; ?></a>
                                </li>
                                <li>
                                    <a href="<?php echo $download; ?>"><?php echo $text_download; ?></a>
                                </li>
                                <li>
                                    <a href="<?php echo $logout; ?>"><?php echo $text_logout; ?></a>
                                </li>
                            <?php } else { ?>
                                <li>
                                    <a href="<?php echo $register; ?>"><?php echo $text_register; ?></a>
                                </li>
                                <li>
                                    <a href="<?php echo $login; ?>"><?php echo $text_login; ?></a>
                                </li>
                            <?php } ?>
                        </ul>
                    </li>
                    <?php /*<li>
                        <a href="<?php echo $shopping_cart; ?>" title="<?php echo $text_shopping_cart; ?>">
<!--                            <i class="material-design-shopping232"></i> -->
                            <span><?php echo $text_shopping_cart; ?></span>
                        </a>
                    </li>
                    <li>
                        <a href="<?php echo $checkout; ?>" title="<?php echo $text_checkout; ?>">
<!--                            <i class="material-design-forward18"></i> -->
                            <span><?php echo $text_checkout; ?></span></a>
                    </li> */?>
                </ul>
            </nav>
            </div>
            <div class="fright">
                <?php echo $language; ?>
                <?php echo $currency; ?>
            </div>
        </div>

        <div id="stuck" class="stuck-menu">
            <div class="container">
                <div class="fleft">
                    <?php echo $search; ?>
                </div>
                <div id="logo" class="logo">
                    <?php if ($logo) { ?>
                        <a href="<?php echo $home; ?>"><img src="<?php echo $logo; ?>" title="<?php echo $name; ?>"
                                                            alt="<?php echo $name; ?>" class="img-responsive"/></a>
                    <?php } else { ?>
                        <h1>
                            <a href="<?php echo $home; ?>"><?php echo $name; ?></a>
                        </h1>
                    <?php } ?>
                </div>
                <div class="fright">
                    <div class="wish_list">
                    <a href="<?php echo $wishlist; ?>"
                       title="<?php echo $text_wishlist; ?>" class="item-btn">
                        <i class="material-icons-favorite_border"></i>
                        <span id="wishlist-total"><?php echo $text_wishlist; ?></span>
                    </a>
                    </div>
                    <?php echo $cart; ?>
                </div>
            </div>
        </div>
        
        <div class="margin-t">
        <?php if ($categories) { ?>
            <div class="container">
                <div id="menu-gadget" class="menu-gadget" >
                    <?php if ($categories_tm) {
                        echo $categories_tm;
                    } ?>
                </div>
            </div>
        <?php } ?>
        <?php if ($categories) { ?>
        <div class="bg-nav">
            <div id="tm_menu" class="nav__primary">
                <div class="container">
                    <?php if ($categories_tm) {
                        echo $categories_tm;
                    } ?>
                    <div class="clear"></div>
                </div>
            </div>
        </div>    
        <?php } ?>
        </div>

        <?php if ($header_top){?>
            <div class="header_modules"><?php echo $header_top;?></div>
        <?php }?>
    </header>

 

product.tpl

Скрытый текст

<?php echo $header; ?>
<div class="container">
    <ul class="breadcrumb">
        <?php foreach ($breadcrumbs as $breadcrumb) { ?>
            <li>
                <a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a>
            </li>
        <?php } ?>
    </ul>

    <div class="row">
        <?php echo $column_left; ?>

        <?php
        if ($column_left && $column_right) {
            $content_width = 'col-sm-6';
            $content_left = 'col-sm-6';
            $content_right = 'col-sm-6';
        } elseif ($column_left || $column_right) {
            $content_width = 'col-sm-9';
            $content_left = 'col-sm-5';
            $content_right = 'col-sm-7';
        } else {
            $content_width = 'col-sm-12';
            $content_left = 'col-sm-5 col-lg-7';
            $content_right = 'col-sm-7 col-lg-5';
        } ?>

        <div id="content" class="<?php echo $content_width; ?> product_page"><?php echo $content_top; ?>
            <div class="row product-content-columns">

                <!-- Content left -->
                <div class="<?php echo $content_left; ?> product_page-left">
                    <!-- product image -->
                    <div id="default_gallery" class="product-gallery">
                        <?php if ($thumb || $images) { ?>
                            <?php if ($images || $thumb) { ?>
                                <div class="image-thumb">
                                    <ul id="image-additional" class="image-additional">

                                        <?php foreach ($images as $image) { ?>
                                            <li>
                                                <a href="#" data-image="<?php echo $image['popup']; ?>">
                                                    <img src="<?php echo $image['thumb']; ?>" alt=""/></a>
                                            </li>
                                        <?php } ?>

                                    </ul>
                                </div>
                            <?php } ?>
                            <?php if ($thumb) { ?>
                                <div id="product-image" class="product-image">

                                    <div class="magnificent-wrap">
                                        <div class="magnificent" data-magnificent="product-image">
                                            <div class="polaroid">
                                                <div class="inner">
                                                    <img src="<?php echo $popup; ?>" alt="<?php echo $heading_title; ?>"/>
                                                </div>
                                            </div>
                                        </div>
                                    </div>

                                    <div class="magnificent-viewport-wrap">
                                        <div data-magnificent-viewport="product-image">
                                            <div class="inner">
                                                <img src="<?php echo $popup; ?>" alt="<?php echo $heading_title; ?>"/>
                                            </div>
                                        </div>
                                    </div>

                                    <script class="source">
                                        $(function () {
                                            $('#product-image [data-magnificent]').magnificent();
                                        });
                                    </script>
                                </div>
                            <?php } ?>
                        <?php } ?>
                    </div>

                    <?php $i = 0;
                    if ($thumb || $images) {
                        $i++ ?>
                        <script type="text/javascript">
                            jQuery(document).ready(function () {
                                var myPhotoSwipe = $("#gallery a").photoSwipe({
                                    enableMouseWheel: false,
                                    enableKeyboard: false,
                                    captionAndToolbarAutoHideDelay: 0
                                });
                            });
                        </script>
                        <div id="full_gallery">
                            <ul id="gallery">
                                <?php if (!empty($thumb)) { ?>
                                    <li>
                                    <a href="<?php echo $popup; ?>" data-something="something"
                                       data-another-thing="anotherthing"><img src="<?php echo $popup; ?>"
                                                                              title="<?php echo $heading_title; ?>"
                                                                              alt="<?php echo $heading_title; ?>"/></a>
                                    </li><?php } ?>
                                <?php foreach ($images as $image) { ?>
                                    <li>
                                        <a href="<?php echo $image['popup']; ?>"
                                           data-something="something<?php echo $i ?>"
                                           data-another-thing="anotherthing<?php echo $i ?>"><img
                                                src="<?php echo $image['popup']; ?>"
                                                alt="<?php echo $heading_title; ?>"/></a>
                                    </li>
                                <?php } ?>
                            </ul>
                        </div>
                    <?php } ?>
                </div>

                <!-- Content right -->
                <div class="<?php echo $content_right; ?> product_page-right">
                    <div class="general_info product-info">

                        <h2 class="product-title"><?php echo $heading_title; ?></h2>

                        <!-- Prodyuct rating status -->
                        <div class="rating-section product-rating-status">
                            <?php if ($review_status) { ?>
                                <div class="rating">
                                    <?php for ($i = 1; $i <= 5; $i++) { ?>
                                        <?php if ($rating < $i) { ?>
                                            <span class="fa-stack"><i
                                                    class="material-design-bookmark45 fa-stack-1x"></i></span>
                                        <?php } else { ?>
                                            <span class="fa-stack"><i
                                                    class="material-design-bookmark45   fa-stack-1x"></i>
                                                <i class="material-design-bookmark45 star  fa-stack-1x"></i></span>
                                        <?php } ?>
                                    <?php } ?>

                                    <span class="review-link review-link-show">
                                        <a href="#"><?php echo $reviews; ?></a>
                                    </span>
                                    <span class="review-link review-link-write">
                                        <a href="#"><?php echo $text_write; ?></a>
                                    </span>
                                </div>
                            <?php } ?>
                        </div>

                        <?php if ($price) { ?>
                            <div class="price-section">
                                <?php if (!$special) { ?>
                                <span class="price-new"><?php echo $price; ?></span>
                                <?php } else { ?>
                                    <span class="price-new"><?php echo $special; ?></span>
                                    <span class="price-old"><?php echo $price; ?></span>
                                <?php } ?>
                                <?php if ($tax) { ?>
                                    <span class="tax"><?php echo $text_tax; ?> <?php echo $tax; ?></span>
                                <?php } ?>
                                <div class="reward-block">
                                    <?php if ($points) { ?>
                                        <span
                                            class="reward"><strong><?php echo $text_points; ?></strong> <?php echo $points; ?></span>
                                    <?php } ?>
                                    <?php if ($discounts) { ?>
                                        <?php foreach ($discounts as $discount) { ?>
                                            <span><strong><?php echo $discount['quantity']; ?><?php echo $text_discount; ?>
                                                    :</strong> <?php echo $discount['price']; ?></span>
                                        <?php } ?>
                                    <?php } ?>
                                </div>
                            </div>
                        <?php } ?>
                        <ul class="list-unstyled product-section">
                            <span>Categories: </span><?php foreach ($catprod as $catp) { ?> <a href="<?php echo $catp['href']; ?>"><?php echo $catp['name']; ?></a> |<?php } ?><br />
                                                        <?php if ($manufacturer) { ?>
                                <li><strong><?php echo $text_manufacturer; ?></strong>
                                    <a href="<?php echo $manufacturers; ?>"><?php echo $manufacturer; ?></a>
                                </li>
                            <?php } ?>
                          <li><strong><?php echo $text_model; ?></strong> <span><?php echo $model; ?></span></li>
                            <?php if ($reward) { ?>
                                <li><strong><?php echo $text_reward; ?> </strong><span><?php echo $reward; ?></span>
                                </li>
                            <?php } ?>
                            <li><strong><?php echo $text_stock; ?> </strong><span
                                    class="<?php echo($stock_status <= 0 ? 'out-stock' : 'stock'); ?>"><?php echo $stock; ?></span>
                            </li>
                        </ul>
                    </div>

                    <div id="product">

                        <!-- Product options -->
                        <?php if ($options) { ?>
                            <div class="product-options form-horizontal">
                                <h3><?php echo $text_option; ?></h3>
                                <?php foreach ($options as $option) { ?>
                                    <?php if ($option['type'] == 'select') { ?>
                                        <div class="form-group<?php echo($option['required'] ? ' required' : ''); ?>">
                                            <label class="control-label col-sm-12"
                                                   for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label>

                                            <div class="col-sm-12">
                                                <select name="option[<?php echo $option['product_option_id']; ?>]"
                                                        id="input-option<?php echo $option['product_option_id']; ?>"
                                                        class="form-control">
                                                    <option value=""><?php echo $text_select; ?></option>
                                                    <?php foreach ($option['product_option_value'] as $option_value) { ?>
                                                        <option
                                                            value="<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
                                                            <?php if ($option_value['price']) { ?>
                                                                (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                                                            <?php } ?>
                                                        </option>
                                                    <?php } ?>
                                                </select>
                                            </div>
                                        </div>
                                    <?php } ?>
                                    <?php if ($option['type'] == 'radio') { ?>
                                        <div class="form-group<?php echo($option['required'] ? ' required' : ''); ?>">
                                            <label
                                                class="control-label col-sm-12"><?php echo $option['name']; ?></label>

                                            <div class="col-sm-12">
                                                <div id="input-option<?php echo $option['product_option_id']; ?>">
                                                    <?php foreach ($option['product_option_value'] as $option_value) { ?>
                                                        <div class="radio">
                                                            <label>
                                                                <input type="radio"
                                                                       name="option[<?php echo $option['product_option_id']; ?>]"
                                                                       value="<?php echo $option_value['product_option_value_id']; ?>"/>
                                                                <?php echo $option_value['name']; ?>
                                                                <?php if ($option_value['price']) { ?>
                                                                    (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                                                                <?php } ?>
                                                            </label>
                                                        </div>
                                                    <?php } ?>
                                                </div>
                                            </div>
                                        </div>
                                    <?php } ?>
                                    <?php if ($option['type'] == 'checkbox') { ?>
                                        <div class="form-group<?php echo($option['required'] ? ' required' : ''); ?>">
                                            <label
                                                class="control-label col-sm-12"><?php echo $option['name']; ?></label>

                                            <div class="col-sm-12">
                                                <div id="input-option<?php echo $option['product_option_id']; ?>">
                                                    <?php foreach ($option['product_option_value'] as $option_value) { ?>
                                                        <div class="checkbox">
                                                            <label>
                                                                <input type="checkbox"
                                                                       name="option[<?php echo $option['product_option_id']; ?>][]"
                                                                       value="<?php echo $option_value['product_option_value_id']; ?>"/>
                                                                <?php echo $option_value['name']; ?>
                                                                <?php if ($option_value['price']) { ?>
                                                                    (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                                                                <?php } ?>
                                                            </label>
                                                        </div>
                                                    <?php } ?>
                                                </div>
                                            </div>
                                        </div>
                                    <?php } ?>
                                    <?php if ($option['type'] == 'image') { ?>
                                        <div class="form-group<?php echo($option['required'] ? ' required' : ''); ?>">
                                            <label
                                                class="control-label col-sm-12"><?php echo $option['name']; ?></label>

                                            <div class="col-sm-12">
                                                <div id="input-option<?php echo $option['product_option_id']; ?>">
                                                    <?php foreach ($option['product_option_value'] as $option_value) { ?>
                                                        <div class="radio">
                                                            <label>
                                                                <input type="radio"
                                                                       name="option[<?php echo $option['product_option_id']; ?>]"
                                                                       value="<?php echo $option_value['product_option_value_id']; ?>"/>
                                                                <img src="<?php echo $option_value['image']; ?>"
                                                                     alt="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>"
                                                                     class="img-thumbnail"/> <?php echo $option_value['name']; ?>
                                                                <?php if ($option_value['price']) { ?>
                                                                    (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                                                                <?php } ?>
                                                            </label>
                                                        </div>
                                                    <?php } ?>
                                                </div>
                                            </div>
                                        </div>
                                    <?php } ?>
                                    <?php if ($option['type'] == 'text') { ?>
                                        <div class="form-group<?php echo($option['required'] ? ' required' : ''); ?>">
                                            <label class="control-label col-sm-12"
                                                   for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label>

                                            <div class="col-sm-12">
                                                <input type="text"
                                                       name="option[<?php echo $option['product_option_id']; ?>]"
                                                       value="<?php echo $option['value']; ?>"
                                                       placeholder="<?php echo $option['name']; ?>"
                                                       id="input-option<?php echo $option['product_option_id']; ?>"
                                                       class="form-control"/>
                                            </div>
                                        </div>
                                    <?php } ?>
                                    <?php if ($option['type'] == 'textarea') { ?>
                                        <div class="form-group<?php echo($option['required'] ? ' required' : ''); ?>">
                                            <label class="control-label col-sm-12"
                                                   for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label>

                                            <div class="col-sm-12">
                                                <textarea name="option[<?php echo $option['product_option_id']; ?>]"
                                                          rows="5" placeholder="<?php echo $option['name']; ?>"
                                                          id="input-option<?php echo $option['product_option_id']; ?>"
                                                          class="form-control"><?php echo $option['value']; ?></textarea>
                                            </div>
                                        </div>
                                    <?php } ?>
                                    <?php if ($option['type'] == 'file') { ?>
                                        <div class="form-group<?php echo($option['required'] ? ' required' : ''); ?>">
                                            <label
                                                class="control-label col-sm-12"><?php echo $option['name']; ?></label>

                                            <div class="col-sm-12">
                                                <button type="button"
                                                        id="button-upload<?php echo $option['product_option_id']; ?>"
                                                        data-loading-text="<?php echo $text_loading; ?>"
                                                        class="btn btn-block btn-default"><i
                                                        class="fa fa-upload"></i> <?php echo $button_upload; ?></button>
                                                <input type="hidden"
                                                       name="option[<?php echo $option['product_option_id']; ?>]"
                                                       value=""
                                                       id="input-option<?php echo $option['product_option_id']; ?>"/>
                                            </div>
                                        </div>
                                    <?php } ?>
                                    <?php if ($option['type'] == 'date') { ?>
                                        <div class="form-group<?php echo($option['required'] ? ' required' : ''); ?>">
                                            <label class="control-label col-sm-12"
                                                   for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label>

                                            <div class="col-sm-12">
                                                <div class="input-group date">
                                                    <input type="text"
                                                           name="option[<?php echo $option['product_option_id']; ?>]"
                                                           value="<?php echo $option['value']; ?>"
                                                           data-date-format="YYYY-MM-DD"
                                                           id="input-option<?php echo $option['product_option_id']; ?>"
                                                           class="form-control"/>
                                            <span class="input-group-btn">
                                                <button class="btn btn-default" type="button"><i
                                                        class="fa fa-calendar"></i></button>
                                            </span>
                                                </div>
                                            </div>
                                        </div>
                                    <?php } ?>
                                    <?php if ($option['type'] == 'datetime') { ?>
                                        <div class="form-group<?php echo($option['required'] ? ' required' : ''); ?>">
                                            <label class="control-label col-sm-12"
                                                   for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label>

                                            <div class="col-sm-12">
                                                <div class="input-group datetime">
                                                    <input type="text"
                                                           name="option[<?php echo $option['product_option_id']; ?>]"
                                                           value="<?php echo $option['value']; ?>"
                                                           data-date-format="YYYY-MM-DD HH:mm"
                                                           id="input-option<?php echo $option['product_option_id']; ?>"
                                                           class="form-control"/>
                                    <span class="input-group-btn">
                                    <button type="button" class="btn btn-default"><i class="fa fa-calendar"></i>
                                    </button>
                                    </span></div>
                                            </div>
                                        </div>
                                    <?php } ?>
                                    <?php if ($option['type'] == 'time') { ?>
                                        <div class="form-group<?php echo($option['required'] ? ' required' : ''); ?>">
                                            <label class="control-label col-sm-12"
                                                   for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label>

                                            <div class="col-sm-12">
                                                <div class="input-group time">
                                                    <input type="text"
                                                           name="option[<?php echo $option['product_option_id']; ?>]"
                                                           value="<?php echo $option['value']; ?>"
                                                           data-date-format="HH:mm"
                                                           id="input-option<?php echo $option['product_option_id']; ?>"
                                                           class="form-control"/>
                                    <span class="input-group-btn">
                                    <button type="button" class="btn btn-default"><i class="fa fa-calendar"></i>
                                    </button>
                                    </span></div>
                                            </div>
                                        </div>
                                    <?php } ?>
                                <?php } ?>
                            </div>
                        <?php } ?>

                        <!-- product reccurings -->
                        <div class="product-reccurings">
                            <?php if ($recurrings) { ?>
                                <h3><?php echo $text_payment_recurring ?></h3>
                                <div class="form-group required">
                                    <select name="recurring_id" class="form-control">
                                        <option value=""><?php echo $text_select; ?></option>
                                        <?php foreach ($recurrings as $recurring) { ?>
                                            <option
                                                value="<?php echo $recurring['recurring_id'] ?>"><?php echo $recurring['name'] ?></option>
                                        <?php } ?>
                                    </select>

                                    <div class="help-block" id="recurring-description"></div>
                                </div>
                            <?php } ?>
                        </div>

                        <!-- Add to cart form -->
                        <div class="form-group form-horizontal">
                            <div class="form-group">
                                <div class="col-sm-12 quantity">
                                
                                <div class="help-block"><strong> Получите скидку 7%. Сообщите кодовое слово "web" при любом заказе.</strong></div>
                                
                                    <div style="display: none">
                                    <label class="control-label"
                                           for="input-quantity"><?php echo $entry_qty; ?></label>
                                    <a class="counter counter-minus material-design-horizontal39" href='#'></a>
                                    <input type="text" name="quantity" value="<?php echo $minimum; ?>" size="2"
                                           id="input-quantity" class="form-control"/>
                                    <input type="hidden" name="product_id" value="<?php echo $product_id; ?>"/>
                                    <a class="counter counter-plus material-design-add186" href='#'></a>
                                    </div>
                                    
                                    <button type="button" id="button-cart"
                                            data-loading-text="<?php echo $text_loading; ?>"
                                            class="product-btn-add"><?php echo $button_cart; ?></button>
                                </div>
                            </div>


                        </div>

                        <ul class="product-buttons">
                            <li>
                                <button type="button" class="product-btn"
                                        onclick="compare.add('<?php echo $product_id; ?>');"><i
                                        class="material-design-shuffle24"></i>
                                    <span><?php echo $button_compare; ?></span></button>
                            </li>
                            <li>
                                <button class="product-btn" onclick="wishlist.add('<?php echo $product_id; ?>');"><i
                                        class="material-design-favorite21"></i> <span
                                        ><?php echo $button_wishlist; ?></span></button>
                            </li>
                        </ul>

                        <?php if ($tags) { ?>
                            <!-- Product tags -->
                            <div class="product-tags">
                                <?php echo $text_tags; ?>
                                <?php for ($i = 0; $i < count($tags); $i++) { ?>
                                    <?php if ($i < (count($tags) - 1)) { ?>
                                        <a href="<?php echo $tags[$i]['href']; ?>"><?php echo $tags[$i]['tag']; ?></a>,
                                    <?php } else { ?>
                                        <a href="<?php echo $tags[$i]['href']; ?>"><?php echo $tags[$i]['tag']; ?></a>
                                    <?php } ?>
                                <?php } ?>
                            </div>
                        <?php } ?>
                        <div class="product-share">
                            <!-- AddThis Button BEGIN -->

                            <div class="addthis_sharing_toolbox"></div>


                            <!-- Go to www.addthis.com/dashboard to customize your tools -->
                            <script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-55e053ac02ebd38e" async="async"></script>

                            <!-- AddThis Button END -->
                        </div>

                        <?php if ($minimum > 1) { ?>
                            <div class="alert alert-info"><i
                                    class="material-design-round52"></i> <?php echo $text_minimum; ?>
                            </div>
                        <?php } ?>
                    </div>

                </div>
            </div>

            <div class="product_tabs">
                <ul class="nav nav-tabs">
                    <?php if (strcmp($description,'<p><br></p>') != 0) { ?>
                    <li>
                        <a href="#tab-description" data-toggle="tab"><?php echo $tab_description; ?></a>
                    </li>
                    <?php }?>
                    <?php if ($attribute_groups) { ?>
                        <li>
                            <a href="#tab-specification" data-toggle="tab"><?php echo $tab_attribute; ?></a>
                        </li>
                    <?php } ?>
                    <?php if ($review_status) { ?>
                        <li>
                            <a href="#tab-review" data-toggle="tab"><?php echo $tab_review; ?></a>
                        </li>
                    <?php } ?>
                    <?php if ($video) { ?>
                        <li>
                            <a href="#tab-video" data-toggle="tab"><?php echo $tab_video; ?></a>
                        </li>
                    <?php } ?>
                </ul>

                <div class="tab-content">
                    <?php if (strcmp($description,'<p><br></p>') != 0) { ?>
                    <!-- Product description -->
                    <div id="tab-description" class="tab-pane active product-desc product-section">
                        <?php echo $description; ?>
                        <div class="clearfix"></div>
                    </div>
                    <?php }?>

                    <?php if ($attribute_groups) { ?>
                        <!-- Product specifications -->
                        <div id="tab-specification" class="tab-pane product-spec product-section">
                            <table class="table table-bordered">
                                <?php foreach ($attribute_groups as $attribute_group) { ?>
                                    <tbody>
                                    <tr>
                                        <th colspan="2"><strong><?php echo $attribute_group['name']; ?></strong></th>
                                    </tr>
                                    </tbody>
                                    <tbody>
                                    <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
                                        <tr>
                                            <td><?php echo $attribute['name']; ?></td>
                                            <td><?php echo $attribute['text']; ?></td>
                                        </tr>
                                    <?php } ?>
                                    </tbody>
                                <?php } ?>
                            </table>
                        </div>
                    <?php } ?>

                    <!-- Product reviews -->
                    <?php if ($review_status) { ?>
                        <div id="tab-review" class="tab-pane product-reviews product-section">

                            <form class="form-horizontal" id="form-review">

                                <!-- Reviews list -->
                                <div id="review"></div>

                                <!-- Review form -->
                                <div class="review-form-title">
                                    <h3 class="product-section_title"
                                        id="reviews_form_title"><?php echo $text_write; ?></h3>
                                </div>
                                <div class="product-review-form" id="reviews_form">
                                    <?php if ($review_guest) { ?>
                                        <div class="form-group required">
                                            <div class="col-sm-12">
                                                <label class="control-label"
                                                       for="input-name"><?php echo $entry_name; ?></label>
                                                <input type="text" name="name" value="" id="input-name"
                                                       class="form-control"/>
                                            </div>
                                        </div>
                                        <div class="form-group required">
                                            <div class="col-sm-12">
                                                <label class="control-label"
                                                       for="input-review"><?php echo $entry_review; ?></label>
                                                <textarea name="text" rows="5" id="input-review"></textarea>

                                                <div class="help-block"><?php echo $text_note; ?></div>
                                            </div>
                                        </div>
                                        <div class="form-group required">
                                            <div class="col-sm-12">
                                                <label class="control-label"><?php echo $entry_rating; ?></label>
                                                &nbsp;&nbsp;&nbsp; <?php echo $entry_bad; ?>&nbsp;
                                                <input type="radio" name="rating" value="1"/>
                                                &nbsp;
                                                <input type="radio" name="rating" value="2"/>
                                                &nbsp;
                                                <input type="radio" name="rating" value="3"/>
                                                &nbsp;
                                                <input type="radio" name="rating" value="4"/>
                                                &nbsp;
                                                <input type="radio" name="rating" value="5"/>
                                                &nbsp;<?php echo $entry_good; ?></div>
                                        </div>
                                        <?php echo $captcha; ?>
                                        <div class="buttons clearfix">
                                            <div class="pull-right">
                                                <button type="button" id="button-review"
                                                        data-loading-text="<?php echo $text_loading; ?>"
                                                        class="btn btn-primary"><?php echo $button_continue; ?></button>
                                            </div>
                                        </div>
                                    <?php } else { ?>
                                        <?php echo $text_login; ?>
                                    <?php } ?>
                                </div>
                            </form>
                        </div>
                    <?php } ?>
                    <?php if ($video) { ?>
                    <div id="tab-video" class="tab-pane product-video product-section">
                        <div class="r_frame">
                            <?php echo $video; ?>
                        </div>
                        <div class="clearfix"></div>
                    </div>
                    <?php }?>
                </div>
            </div>

            <!-- Related products -->
            <?php if ($products) { ?>
                <div class="related-products product-section">
                    <h3 class="product-section_title"><?php echo $text_related; ?></h3>

                    <div class="box-carousel">
                        <?php $pr = 10000; foreach ($products as $product) { $pr++;?>

                            <div class="product-thumb transition <?php if ($product['options']) echo 'options'; ?>">
                                <?php if ($product['options']) { ?>
                                    <!-- Product options -->
                                    <div class="product-option-wrap">
                                        <div class="product-options form-horizontal">
                                            <div class="options">
                                                <a class="ajax-overlay_close" href='#'></a>
                                                <h3><?php echo $text_option; ?></h3>

                                                <div class="form-group hidden">
                                                    <div class="col-sm-8">
                                                        <input type="text"
                                                               name="product_id"
                                                               value="<?php echo $product['product_id'] ?>"
                                                               class="form-control"/>
                                                    </div>
                                                </div>

                                                <?php foreach ($product['options'] as $option) { ?>
                                                    <?php if ($option['type'] == 'select') { ?>
                                                        <div
                                                            class="form-group<?php echo($option['required'] ? ' required' : ''); ?>">
                                                            <label class="control-label col-sm-12"
                                                                   for="input-option<?php echo $option['product_option_id'] . $pr; ?>"><?php echo $option['name']; ?></label>

                                                            <div class="col-sm-12">
                                                                <select
                                                                    name="option[<?php echo $option['product_option_id']; ?>]"
                                                                    id="input-option<?php echo $option['product_option_id'] . $pr; ?>"
                                                                    class="form-control">
                                                                    <option value=""><?php echo $text_select; ?></option>
                                                                    <?php foreach ($option['product_option_value'] as $option_value) { ?>
                                                                        <option
                                                                            value="<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
                                                                            <?php if ($option_value['price']) { ?>
                                                                                (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                                                                            <?php } ?>
                                                                        </option>
                                                                    <?php } ?>
                                                                </select>
                                                            </div>
                                                        </div>
                                                    <?php } ?>
                                                    <?php if ($option['type'] == 'radio') { ?>
                                                        <div
                                                            class="form-group<?php echo($option['required'] ? ' required' : ''); ?>">
                                                            <label
                                                                class="control-label col-sm-12"

                                                                ><?php echo $option['name']; ?></label>

                                                            <div class="col-sm-12">
                                                                <div
                                                                    id="input-option<?php echo $option['product_option_id'] . $pr; ?>">
                                                                    <?php foreach ($option['product_option_value'] as $option_value) { ?>
                                                                        <div class="radio">
                                                                            <label
                                                                                for="option[<?php echo $option['product_option_id'] . $option_value['product_option_value_id'] . $pr; ?>]">
                                                                                <input type="radio" hidden
                                                                                       name="option[<?php echo $option['product_option_id']; ?>]"
                                                                                       id="option[<?php echo $option['product_option_id'] . $option_value['product_option_value_id'] . $pr; ?>]"
                                                                                       value="<?php echo $option_value['product_option_value_id']; ?>"/>
                                                                                <?php echo $option_value['name']; ?>
                                                                                <?php if ($option_value['price']) { ?>
                                                                                    (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                                                                                <?php } ?>
                                                                            </label>
                                                                        </div>
                                                                    <?php } ?>
                                                                </div>
                                                            </div>
                                                        </div>
                                                    <?php } ?>
                                                    <?php if ($option['type'] == 'checkbox') { ?>
                                                        <div
                                                            class="form-group<?php echo($option['required'] ? ' required' : ''); ?>">
                                                            <label
                                                                class="control-label col-sm-12
                                                "><?php echo $option['name']; ?></label>

                                                            <div class="col-sm-12">
                                                                <div
                                                                    id="input-option<?php echo $option['product_option_id'] . $pr; ?>">
                                                                    <?php foreach ($option['product_option_value'] as $option_value) { ?>
                                                                        <div class="checkbox">
                                                                            <label>
                                                                                <input type="checkbox"
                                                                                       name="option[<?php echo $option['product_option_id']; ?>][]"
                                                                                       value="<?php echo $option_value['product_option_value_id']; ?>"/>
                                                                                <?php echo $option_value['name']; ?>
                                                                                <?php if ($option_value['price']) { ?>
                                                                                    (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                                                                                <?php } ?>
                                                                            </label>
                                                                        </div>
                                                                    <?php } ?>
                                                                </div>
                                                            </div>
                                                        </div>
                                                    <?php } ?>
                                                    <?php if ($option['type'] == 'image') { ?>
                                                        <div
                                                            class="form-group<?php echo($option['required'] ? ' required' : ''); ?>">
                                                            <label
                                                                class="control-label col-sm-12
                                                "><?php echo $option['name']; ?></label>

                                                            <div class="col-sm-12">
                                                                <div
                                                                    id="input-option<?php echo $option['product_option_id'] . $pr; ?>">
                                                                    <?php foreach ($option['product_option_value'] as $option_value) { ?>
                                                                        <div class="radio">
                                                                            <label>
                                                                                <input type="radio"
                                                                                       name="option[<?php echo $option['product_option_id']; ?>]"
                                                                                       value="<?php echo $option_value['product_option_value_id']; ?>"/>
                                                                                <img src="<?php echo $option_value['image']; ?>"
                                                                                     alt="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>"
                                                                                     class="img-thumbnail"/> <?php echo $option_value['name']; ?>
                                                                                <?php if ($option_value['price']) { ?>
                                                                                    (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                                                                                <?php } ?>
                                                                            </label>
                                                                        </div>
                                                                    <?php } ?>
                                                                </div>
                                                            </div>
                                                        </div>
                                                    <?php } ?>
                                                    <?php if ($option['type'] == 'text') { ?>
                                                        <div
                                                            class="form-group<?php echo($option['required'] ? ' required' : ''); ?>">
                                                            <label class="control-label col-sm-12
                                            "
                                                                   for="input-option<?php echo $option['product_option_id'] . $pr; ?>"><?php echo $option['name']; ?></label>

                                                            <div class="col-sm-12">
                                                                <input type="text"
                                                                       name="option[<?php echo $option['product_option_id']; ?>]"
                                                                       value="<?php echo $option['value']; ?>"
                                                                       placeholder="<?php echo $option['name']; ?>"
                                                                       id="input-option<?php echo $option['product_option_id'] . $pr; ?>"
                                                                       class="form-control"/>
                                                            </div>
                                                        </div>
                                                    <?php } ?>
                                                    <?php if ($option['type'] == 'textarea') { ?>
                                                        <div
                                                            class="form-group<?php echo($option['required'] ? ' required' : ''); ?>">
                                                            <label class="control-label col-sm-12
                                            "
                                                                   for="input-option<?php echo $option['product_option_id'] . $pr; ?>"><?php echo $option['name']; ?></label>

                                                            <div class="col-sm-12">
                                                    <textarea name="option[<?php echo $option['product_option_id']; ?>]"
                                                              rows="5" placeholder="<?php echo $option['name']; ?>"
                                                              id="input-option<?php echo $option['product_option_id'] . $pr; ?>"
                                                              class="form-control"><?php echo $option['value']; ?></textarea>
                                                            </div>
                                                        </div>
                                                    <?php } ?>
                                                    <?php if ($option['type'] == 'file') { ?>
                                                        <div
                                                            class="form-group<?php echo($option['required'] ? ' required' : ''); ?>">
                                                            <label
                                                                class="control-label col-sm-12
                                                "><?php echo $option['name']; ?></label>

                                                            <div class="col-sm-12">
                                                                <button type="button"
                                                                        id="button-upload<?php echo $option['product_option_id'] . $pr; ?>"
                                                                        data-loading-text="<?php echo $text_loading; ?>"
                                                                        class="btn btn-block btn-default"><i
                                                                        class="fa fa-upload"></i> <?php echo $button_upload; ?>
                                                                </button>
                                                                <input type="hidden"
                                                                       name="option[<?php echo $option['product_option_id']; ?>]"
                                                                       value=""
                                                                       id="input-option<?php echo $option['product_option_id'] . $pr; ?>"/>
                                                            </div>
                                                        </div>
                                                    <?php } ?>
                                                    <?php if ($option['type'] == 'date') { ?>
                                                        <div
                                                            class="form-group<?php echo($option['required'] ? ' required' : ''); ?>">
                                                            <label class="control-label col-sm-12
                                            "
                                                                   for="input-option<?php echo $option['product_option_id'] . $pr; ?>"><?php echo $option['name']; ?></label>

                                                            <div class="col-sm-12">
                                                                <div class="input-group date">
                                                                    <input type="text"
                                                                           name="option[<?php echo $option['product_option_id']; ?>]"
                                                                           value="<?php echo $option['value']; ?>"
                                                                           data-date-format="YYYY-MM-DD"
                                                                           id="input-option<?php echo $option['product_option_id'] . $pr; ?>"
                                                                           class="form-control"/>
                                            <span class="input-group-btn">
                                                <button class="btn btn-default" type="button"><i
                                                        class="fa fa-calendar"></i></button>
                                            </span>
                                                                </div>
                                                            </div>
                                                        </div>
                                                    <?php } ?>
                                                    <?php if ($option['type'] == 'datetime') { ?>
                                                        <div
                                                            class="form-group<?php echo($option['required'] ? ' required' : ''); ?>">
                                                            <label class="control-label col-sm-12
                                            "
                                                                   for="input-option<?php echo $option['product_option_id'] . $pr; ?>"><?php echo $option['name']; ?></label>

                                                            <div class="col-sm-12">
                                                                <div class="input-group datetime">
                                                                    <input type="text"
                                                                           name="option[<?php echo $option['product_option_id']; ?>]"
                                                                           value="<?php echo $option['value']; ?>"
                                                                           data-date-format="YYYY-MM-DD HH:mm"
                                                                           id="input-option<?php echo $option['product_option_id'] . $pr; ?>"
                                                                           class="form-control"/>
                                    <span class="input-group-btn">
                                    <button type="button" class="btn btn-default"><i class="fa fa-calendar"></i>
                                    </button>
                                    </span></div>
                                                            </div>
                                                        </div>
                                                    <?php } ?>
                                                    <?php if ($option['type'] == 'time') { ?>
                                                        <div
                                                            class="form-group<?php echo($option['required'] ? ' required' : ''); ?>">
                                                            <label class="control-label col-sm-12
                                            "
                                                                   for="input-option<?php echo $option['product_option_id'] . $pr; ?>"><?php echo $option['name']; ?></label>

                                                            <div class="col-sm-12">
                                                                <div class="input-group time">
                                                                    <input type="text"
                                                                           name="option[<?php echo $option['product_option_id']; ?>]"
                                                                           value="<?php echo $option['value']; ?>"
                                                                           data-date-format="HH:mm"
                                                                           id="input-option<?php echo $option['product_option_id'] . $pr; ?>"
                                                                           class="form-control"/>
                                    <span class="input-group-btn">
                                    <button type="button" class="btn btn-default"><i class="fa fa-calendar"></i>
                                    </button>
                                    </span></div>
                                                            </div>
                                                        </div>
                                                    <?php } ?>
                                                <?php } ?>
                                                <button class="product-btn-add" type="button"
                                                        onclick="cart.addPopup($(this),'<?php echo $product['product_id']; ?>');">
                                                    <span><?php echo $button_cart; ?></span>
                                                </button>
                                            </div>
                                        </div>
                                    </div>
                                <?php } ?>
                                <div class="image">
                                    <a class="lazy"
                                       style="padding-bottom: <?php echo($product['img-height'] / $product['img-width'] * 100); ?>%"
                                       href="<?php echo $product['href']; ?>">
                                        <img alt="<?php echo $product['name']; ?>"
                                             title="<?php echo $product['name']; ?>"
                                             class="img-responsive"
                                             data-src="<?php echo $product['thumb']; ?>"
                                             src="#"/>
                                    </a>
                                </div>
                                <div class="caption">
                                    <div class="name">
                                        <a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a>
                                    </div>
                                    <div class="description"><?php echo $product['description']; ?></div>


                                    <!-- price -->
                                    <?php if ($product['price']) { ?>
                                        <p class="price">
                                            <?php if (!$product['special']) { ?>
                                                <?php echo $product['price']; ?>
                                            <?php } else { ?>
                                                <span class="price-new"><?php echo $product['special']; ?></span> <span
                                                    class="price-old"><?php echo $product['price']; ?></span>
                                            <?php } ?>
                                            <?php if ($product['tax']) { ?>
                                                <span
                                                    class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
                                            <?php } ?>
                                        </p>
                                    <?php } ?>
                                </div>
                                <div class="cart-button">
                                    <button class="product-btn-add" type="button" onclick="ajaxAdd($(this),<?php echo $product['product_id'] ?>);">
                        <i class="material-icons-add_shopping_cart"></i>
                        <span><?php echo $button_cart; ?></span>
                    </button>
                    <div class="rating">
                    <?php if ($product['rating']) { ?>
                            <?php for ($i = 1; $i <= 5; $i++) { ?>
                                <?php if ($product['rating'] < $i) { ?>
                                    <span class="fa-stack"><i
                                            class="material-icons-star fa-stack-1x"></i></span>
                                <?php } else { ?>
                                    <span class="fa-stack"><i
                                            class="material-icons-star   fa-stack-1x"></i>
                        <i class="material-icons-star star  fa-stack-1x"></i></span>
                                <?php } ?>
                            <?php } ?>
                    <?php } ?>
                    </div>
                     <button class="product-btn" type="button" onclick="compare.add('<?php echo $product['product_id']; ?>');">
                        <i class="material-icons-equalizer"></i>
                        <span><?php echo $button_compare; ?></span>                
                    </button>
                    <button class="product-btn" type="button" onclick="wishlist.add('<?php echo $product['product_id']; ?>');">
                        <i class="material-icons-favorite_border"></i>
                        <span><?php echo $button_wishlist; ?></span>
                    </button>
                   
                                </div>
                                <div class="clear"></div>
                            </div>

                        <?php } ?>
                    </div>
                </div>
            <?php } ?>
            <?php echo $content_bottom; ?></div>
        <?php echo $column_right; ?></div>
</div>

<script>
    (function ($) {
        $(document).ready(function () {
            $('.review-link a').click(function (e) {
                e.preventDefault();
                $('.product_tabs a[href="#tab-review"').tab('show');

            })
            $('.review-link-show').click(function () {
                $('html, body').animate({
                    'scrollTop': $('.product_tabs').offset().top - ($('#stuck').outerHeight() + 50)
                }, 1000);
            })
            $('.review-link-write').click(function () {
                $('html, body').animate({
                    'scrollTop': $('#reviews_form_title').offset().top - ($('#stuck').outerHeight() + 50)
                }, 1000);
                $('#reviews_form_title').addClass('close-tab').parents('#tab-review').find('#reviews_form').slideDown();
            })
            $('.product_tabs li:first-child a').tab('show');
        });
    })(jQuery);

    document.getElementById('input-quantity').onkeypress = function (e) {

        e = e || event;

        if (e.ctrlKey || e.altKey || e.metaKey) return;

        var chr = getChar(e);

        if (chr == null) return;

        if (chr < '0' || chr > '9') {
            return false;
        }

    }

    function getChar(event) {
        if (event.which == null) {
            if (event.keyCode < 32) return null;
            return String.fromCharCode(event.keyCode) // IE
        }

        if (event.which != 0 && event.charCode != 0) {
            if (event.which < 32) return null;
            return String.fromCharCode(event.which)
        }

        return null;
    }
    jQuery('#reviews_form_title').addClass('close-tab');
    jQuery('#reviews_form_title').on("click", function () {
        if (jQuery(this).hasClass('close-tab')) {
            jQuery(this).removeClass('close').parents('#tab-review').find('#reviews_form').slideToggle();
        }
        else {
            jQuery(this).addClass('close-tab').parents('#tab-review').find('#reviews_form').slideToggle();
        }
    })
</script>

<script type="text/javascript"><!--
    $('select[name=\'recurring_id\'], input[name="quantity"]').change(function () {
        $.ajax({
            url: 'index.php?route=product/product/getRecurringDescription',
            type: 'post',
            data: $('input[name=\'product_id\'], input[name=\'quantity\'], select[name=\'recurring_id\']'),
            dataType: 'json',
            beforeSend: function () {
                $('#recurring-description').html('');
            },
            success: function (json) {
                $('.alert, .text-danger').remove();

                if (json['success']) {
                    $('#recurring-description').html(json['success']);
                }
            }
        });
    });
    //-->
</script>

<script type="text/javascript"><!--
    $('#button-cart').on('click', function () {
        $.ajax({
            url: 'index.php?route=checkout/cart/add',
            type: 'post',
            data: $('#product input[type=\'text\'], #product input[type=\'hidden\'], #product input[type=\'radio\']:checked, #product input[type=\'checkbox\']:checked, #product select, #product textarea'),
            dataType: 'json',
            beforeSend: function () {
                $('#button-cart').button('loading');
            },
            complete: function () {
                $('#button-cart').button('reset');
            },
            success: function (json) {
                clearTimeout(timer);
                $('.alert, .text-danger').remove();
                $('.form-group').removeClass('has-error');

                if (json['error']) {
                    if (json['error']['option']) {
                        for (i in json['error']['option']) {
                            var element = $('#input-option' + i.replace('_', '-'));

                            if (element.parent().hasClass('input-group')) {
                                element.parent().after('<div class="text-danger">' + json['error']['option'] + '</div>');
                            } else {
                                element.after('<div class="text-danger">' + json['error']['option'] + '</div>');
                            }
                        }
                    }

                    if (json['error']['recurring']) {
                        $('select[name=\'recurring_id\']').after('<div class="text-danger">' + json['error']['recurring'] + '</div>');
                    }

                    if (json['error']['quantity']){
                        $('#content').parent().before('<div class="alert alert-danger"><i class="material-design-cancel19"></i>' + json['error']['quantity'] + ' <button type="button" class="close material-design-close47"></button> </div>');
                    }

                    // Highlight any found errors
                    $('.text-danger').parent().addClass('has-error');
                }

                if (json['success']) {
                    $('#content').parent().before('<div class="alert alert-success"><i class="material-design-verification24"></i> ' + json['success'] + '<button type="button" class="close material-design-close47"></button></div>');


                    $('#cart-total').html(json['total']);
                    $('#cart-total2').html(json['total2']);
                    $('#cart > ul').load('index.php?route=common/cart/info ul li');
                }
                timer = setTimeout(function () {
                    $('.alert').addClass('fadeOut');
                }, 4000)
            }
        });
    });
    //-->
</script>

<script type="text/javascript"><!--


    $('button[id^=\'button-upload\']').on('click', function () {
        var node = this;

        $('#form-upload').remove();

        $('body').prepend('<form enctype="multipart/form-data" id="form-upload" style="display: none;"><input type="file" name="file" /></form>');

        $('#form-upload input[name=\'file\']').trigger('click');

        $('#form-upload input[name=\'file\']').on('change', function () {
            $.ajax({
                url: 'index.php?route=tool/upload',
                type: 'post',
                dataType: 'json',
                data: new FormData($(this).parent()[0]),
                cache: false,
                contentType: false,
                processData: false,
                beforeSend: function () {
                    $(node).button('loading');
                },
                complete: function () {
                    $(node).button('reset');
                },
                success: function (json) {
                    $('.text-danger').remove();

                    if (json['error']) {
                        $(node).parent().find('input').after('<div class="text-danger">' + json['error'] + '</div>');
                    }

                    if (json['success']) {
                        alert(json['success']);

                        $(node).parent().find('input').attr('value', json['code']);
                    }
                },
                error: function (xhr, ajaxOptions, thrownError) {
                    alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
                }
            });
        });
    });
    //-->
</script>

<script type="text/javascript"><!--
    $('#review').delegate('.pagination a', 'click', function (e) {
        e.preventDefault();

        $('#review').fadeOut('slow');

        $('#review').load(this.href);

        $('#review').fadeIn('slow');
    });

    $('#review').load('index.php?route=product/product/review&product_id=<?php echo $product_id; ?>');

    $('#button-review').on('click', function () {
        $.ajax({
            url: 'index.php?route=product/product/write&product_id=<?php echo $product_id; ?>',
            type: 'post',
            dataType: 'json',
            data: $("#form-review").serialize(),
            beforeSend: function () {
                $('#button-review').button('loading');
            },
            complete: function () {
                $('#button-review').button('reset');
            },
            success: function (json) {
                $('.alert-success, .alert-danger').remove();

                if (json['error']) {
                    $('#review').after('<div class="alert alert-danger"><i class="material-design-cancel19"></i> ' + json['error'] + '</div>');
                }

                if (json['success']) {
                    $('#review').after('<div class="alert alert-success"><i class="material-design-verification24"></i> ' + json['success'] + '</div>');

                    $('input[name=\'name\']').val('');
                    $('textarea[name=\'text\']').val('');
                    $('input[name=\'rating\']:checked').prop('checked', false);
                }
            }
        });
    });
    //-->
</script>

<script type="text/javascript">
    /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
    var disqus_shortname = 'thtest123'; // required: replace example with your forum shortname

    /* * * DON'T EDIT BELOW THIS LINE * * */
    (function () {
        var s = document.createElement('script');
        s.async = true;
        s.type = 'text/javascript';
        s.src = '//' + disqus_shortname + '.disqus.com/count.js';
        (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);
    }());
</script>

<?php echo $footer; ?>

 

htaccess

Скрытый текст

# 1.To use URL Alias you need to be running apache with mod_rewrite enabled.

# 2. In your opencart directory rename htaccess.txt to .htaccess.

# For any support issues please visit: http://www.opencart.com

Options +FollowSymlinks

# Prevent Directoy listing
Options -Indexes

# Prevent Direct Access to files
<FilesMatch "(?i)((\.tpl|\.ini|\.log|(?<!robots)\.txt))">
 Order deny,allow
 Deny from all
</FilesMatch>

# SEO URL Settings
RewriteEngine On
# If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/

RewriteBase /
RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteRule ^system/download/(.*) index.php?route=error/not_found [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

### Additional Settings that may need to be enabled for some servers
### Uncomment the commands by removing the # sign in front of it.
### If you get an "Internal Server Error 500" after enabling any of the following settings, restore the # as this means your host doesn't allow that.

# 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it:
# php_flag register_globals off

# 2. If your cart has magic quotes enabled, This may work to disable it:
# php_flag magic_quotes_gpc Off

# 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try
# php_value upload_max_filesize 999M

# 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value post_max_size 999M

# 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_execution_time 200

# 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_input_time 200

# 7. disable open_basedir limitations
# php_admin_value open_basedir none

Header unset ETag
FileETag None

<IfModule mod_expires.c>
# Enable expirations
ExpiresActive On
# Default directive
ExpiresDefault "access plus 1 month"
# My favicon
ExpiresByType image/x-icon "access plus 1 year"
# Images
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
# CSS
ExpiresByType text/css "access plus 1 month"
# Javascript
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType application/x-javascript "access plus 1 year"
# Resources
ExpiresByType application/x-javascript "access plus 1 year"
ExpiresByType application/x-javascript "access plus 1 year"
ExpiresByType application/x-javascript "access plus 1 year"

</IfModule>

# -----------------------------------------------------------------------
# Defining MIME types to ensure the web server actually knows about them.
# -----------------------------------------------------------------------
<IfModule mod_mime.c>
    AddType application/javascript          js
    AddType application/vnd.ms-fontobject   eot
    AddType application/x-font-ttf          ttf ttc
    AddType font/opentype                   otf
    AddType application/x-font-woff         woff
    AddType application/x-font-woff2        woff2
    AddType image/svg+xml                   svg svgz 
    AddEncoding gzip                        svgz
</Ifmodule>

# -----------------------------------------------------------------------
# Compressing output.
# -----------------------------------------------------------------------
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
    AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml application/atom+xml
    AddOutputFilterByType DEFLATE image/x-icon image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype
</Ifmodule>

RewriteCond %{HTTP_HOST} ^www.chames.spb.ru
 
RewriteRule ^(.*)$ http://chames.spb.ru/$1 [R=301,L]
 
# Редирект для главной (с /index.php на /)
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\ HTTP/
RewriteRule ^index\.html$ / [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ / [R=301,L]
 

 

Поделиться сообщением


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

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Похожие публикации

    • Автор: RHCk
      ВАЖНО! ТЕМА ЗАКРЫТА. ОБНОВЛЕННАЯ ИНСТРУКЦИЯ ДЛЯ ПЕРЕХОДА НА HTTPS - >>>ЗДЕСЬ<<<
       
      Правила Темы:
       
      UPD24.10.2016 Данная инструкция актуальна для Opencart.PRO и Opencart.CMS версий 2.1.0.2.2 и выше!
      UPD02.11.2016 Важное дополнение по Ukraine.com.ua от @Yoda в Пункте 10.2
      UPD08.01.2017 Дополнение от @markimax в Пункте 3.4 о том, нужно ли удалять модуль HTTP FIX после склейки зеркал.
      UPD04.02.2017 Добавлен Раздел 12 - Дополнение для версий 1.5.X.
      UPD28.02.2017 Добавлена информация для настройки обмена по HTTPS с программами от 1С - ЗДЕСЬ.
      UPD16.03.2017 Обновлен список авторизационных (удостоверяющих) центров (CA).
      UPD07.03.2018 Яндекс заменит директиву HOST на 301-й редирект - больше информации ЗДЕСЬ.
       
       
      0. ВАЖНО! Перед началом любых экспериментов не забываем делать бэкап файлов и базы сайта!!!
       
      1. Для перехода на SSL (HTTPS) нужен сертификат, получить его можно здесь:
       
      2. Далее необходимо установить сертификат на сервер, либо активировать его в ПУ, либо передать его хостинг-провайдеру для установки на сервер (на котором размещен ваш сайт). Более подробно о данной процедуре можно узнать у техподдержки хостера.
       
      3. Настраиваем CMS для работы с SSL.
      3.1 В файлах /config.php и admin/config.php делаем замены:
      3.2 Устанавливаем этот модуль. Отдельно благодарим комрадов @Yoda, @savage4pro и @markimax, которыми он был написан.
      Настройка CMS на данном этапе завершена.
      3.3 Дополнительная информация от @savage4pro о работе модуля:
      3.4 Нужно ли удалять модуль после склейки зеркал?
       
      4.  Далее необходимо настроить редирект с HTTP на HTTPS.
      Ситуация здесь двоякая, если сразу настроить редирект, в большинстве случаев позиции в выдаче ПС будут потеряны. Явление временное, но неприятное.
      Посему, согласно изысканиям и рекомендациям комрадов @Yoda и @savage4pro (если о ком-то не написал, отпишитесь, исправлю), с редиректом мы повременим до момента склейки зеркал сайта поисковиками (зеркала - сайт на HTTP и на HTTPS).
      Делаем следующее в файле robots.txt:
      если sitemap вашего сайта не отдается фидом, добавляем в обе секции (User-agent: * и User-agent: Yandex) файла robots.txt следующие директивы:
      Sitemap: httрs://mysite.com/sitemap.xml в секции для Яндекса (User-agent: Yandex) добавляем директиву Host: Host: https://<ваш_сайт> если sitemap вашего сайта отдается фидом, отдаем ПСам новый фид (по HTTPS); добавляем новый сайт на HTTPS в Вебмастеры ПС; наблюдаем и ждём момента когда главным зеркалом станет сайт на HTTPS и произойдёт склейка зеркал. Вебмастеры ПС:
       
      5. Добавляем в Вебмастеры Яндекса и Гугла HTTPS-версии вашего сайта. В Вебмастере Яндекса наблюдаем и ждём момента, когда зеркала будут склеены. Для тех у кого не очень много товаров в каталоге или много свободного времени идём Инструменты -> Переобход страниц и каждый день добавляем по 10 ссылок (с HTTPS), тем самым заставляя Яшу чуть быстрее индексировать ваш сайт по HTTPS.
       
      6. Дополнительная информация:
      от Яши - здесь и здесь от Гоши - здесь и здесь.  
      7. Когда склейка зеркал произошла, остается дело за малым - настроить редирект.
      7.1 Идём "Система -> Настройки -> Редактировать -> Вкладка Сервер -> Использовать SSL: выбираем Да. ДО склейки зеркал НЕ включаем.
      7.2 И тут, на мой взгляд, основные танцы с бубном. Обновленный seo_pro (с версии 2.1.0.2.2) позволяет избавиться от танцев с бубном вокруг .htaccess, делая внесение изменений в него не обязательными.
       
      Написать о результатах и задать вопрос можно в теме поддержки модуля.
       
      Если вы всё же приняли решение настроить редирект в .htaccess, для вас информация далее.
      В виду того, что у разных хостинг-провайдеров разные настройки серверов, необходимо выбрать тот вариант редиректа, который будет работать. Как проверить напишу чуть ниже.
      Важный момент! Подразумевается, что редирект с "с www" на "без www", или наоборот, у вас уже настроен. Если нет, смотрите здесь.
      ВАЖНО! Изменения вносятся в файл .htaccess в корневом каталоге сайта.
      ВАЖНО! Редиректы в файле .htaccess необходимо добавлять сразу после строки с 'RewriteBase /'. Если не работает, попробуйте поставить выше, сразу после строки с  'RewriteEngine On'. О результатах экспериментов пишите в этой теме.
      7.3 Варианты редиректов:
      7.3.1 Редиректы от @Yoda:
      7.3.2 Редиректы от @savage4pro:
      7.3.3 Редирект от Timeweb.ru:
      7.3.4 Редирект для Ukraine.com.ua:
      7.3.5 Редирект для Masterhost.ru (говорим спасибо @Yoda здесь?
      7.3.6 Редирект для webhost1.ru:
      7.3.7 Редирект для связки nginx и Apache:
      7.3.8 Редирект для jino.ru от @markimax:
       
      8. Проверка. Чтобы проверить корректность работы произведенных изменений необходимо сделать следующее:
      8.1 Если у вас настроен редирект с "с www" на "без www"
      идём на сайт по HTTP с WWW, должны получить HTTPS без WWW; идём на сайт по HTTP без WWW, должны получить HTTPS без WWW; идём на сайт по HTTPS с WWW, должны получить HTTPS без WWW. 8.2 Если у вас настроен редирект с "без www" на "с www"
      идём на сайт по HTTP с WWW, должны получить HTTPS с WWW; идём на сайт по HTTP без WWW, должны получить HTTPS с WWW; идём на сайт по HTTPS без WWW, должны получить HTTPS с WWW. 8.3 Отдельно можно проверить как после всех изменений ваш сервер отдает статические файлы, например, фото товаров.
      Зайдите на страницу товара, скопируйте ссылку на фото товара, вставьте её в строку браузера и поэкспериментируйте согласно пунктам 8.1 - 8.2, и посмотрите по какому протоколу будет отдаваться статика. 
      8.4 У некоторых хостинг-провайдеров есть возможность включить редирект в ПУ. Тут следует обратить внимание на то, каким редиректом будет осуществляться переадресация - 301-м или 302-м. Нужен 301-й. Как посмотреть? Можно здесь. Также показывает редирект Screaming Frog SEO Spider, браузер тоже показывает. Пробуйте.
      8.5 Проверьте сайт на наличие ссылок по HTTP. Это могут быть ссылки в статьях или описаниях товаров. Необходимо изменить в них HTTP на HTTPS или сделать их относительными, т.е. без доменного имени сайта.
       
      9. ВАЖНО! Все внешние скрипты, стили, шрифты и прочие iframe должны подключаться строго по HTTPS и никак иначе! В противном случае получим кучу ошибок в консоли браузера и корявости на сайте. 
       
      10. Решения для хостинг-провайдеров:
      10.1 Хостинг-провайдер Timeweb.ru:
      10.2 Хостинг-провайдер Ukraine.com.ua:
       
      ПОЛЕЗНО! Сервис для тестирования установленного сертификата QUALYS SSL LABS
       
      11. Небольшой эксперимент с инструментом "Переобход страниц":
      11.1 Сайт, около 600 товаров, переставил на HTTPS.
      11.2 В вебмастере Яндекса сделал "переезд на https" получил ответ, что скоро всё произойдёт. До сих пор жду.
      11.3 Добавил отдельно тот же сайт, но по HTTPS, так "Переобход" работает.
      11.4 Добавляю каждый день по 10 страниц (без повторений) в "Переобход страниц".
      11.5 Результат (И - страниц в индексе, П - страниц в поиске):
      11.6 Вывод - профит от инструмента ясен и понятен.
      P.S. Ну а если вы всё ещё ждёте Яшу в гости, ну что ж ждите
       
      12. Переход на HTTPS для OC версий 1.5.X
      12.0 См. Пункт 0 настоящей Инструкции.
      12.1 Устанавливаем сертификат (Пункт 1 настоящей Инструкции). На shared хостингах в ПУ хостинга все редиректы должны быть выключены.
      12.2 В файлах /config.php и admin/config.php делаем замены:
      12.3 Делаем следующее в файле robots.txt:
      если sitemap вашего сайта не отдается фидом, добавляем в обе секции (User-agent: * и User-agent: Yandex) файла robots.txt следующие директивы:
      Sitemap: httрs://mysite.com/sitemap.xml в секции для Яндекса (User-agent: Yandex) добавляем директиву Host: Host: https://<ваш_сайт> если sitemap вашего сайта отдается фидом, отдаем ПСам новый фид (по HTTPS); добавляем новый сайт на HTTPS в Вебмастеры ПС; наблюдаем и ждём момента когда главным зеркалом станет сайт на HTTPS и произойдёт склейка зеркал. 12.4 В .htaccess добавляем один из редиректов (обращаем внимание на комментарии):
      Редирект ставим между директивами RewriteEngine On и RewriteBase /
      Первая строка и нижние строки добавлены для ориентира.
      12.5 Идём Система -> Настройки -> Нажать 'Изменить' -> Вкладка 'Сервер' -> Использовать SSL выбираем ДА.
      12.6 Производим проверку согласно Раздела 8 настоящей инструкции.
       
      P.S. На некоторых хостингах (из-за настроек серверов) не работают, либо работают некорректно, редиректы в .htaccess. Можно поэкспериментировать с редиректами из Пунктов 7.3.1 и 7.3.3 настоящей Инструкции, попытаться запросить правильный редирект у хостинг-провайдера, или включить редиректы в ПУ хостинга (предварительно откатив все изменения касающиеся редиректов в .htaccess).
    • Автор: RHCk
      UPD ПРАВИЛА ТЕМЫ:
       
      Тема создана для описания основ безопасности CMS Opencart.
      Если что-то упустил, пишите.
       
      0. ВАЖНО! Перед началом любых экспериментов делаем бэкап файлов и базы сайта!!!
      1. Установка
      1.1 При установке меняем префикс базы данных на другой - например "ос_" на "sn_" (и помним об этом).
      1.2 Логин для админки НЕ должен быть admin! Пароль админки должен быть сложным, который содержит как минимум заглавные, строчные символы и цифры. Для этого пользуем генераторы паролей (они есть практически в любом менеджере паролей, также бывают отдельными программами). Онлайн генераторы от @savage4pro - тут и здесь.
      1.3 После установки или обновления CMS обязательно удаляем каталог install.
      1.4 Очень часто взлом и заражение ИМ происходит через соседей (устаревшие или не обновленные CMS в одном аккаунте с ИМ). Важно помнить - в одном аккаунте один магазин.
       
      2. Настройка CMS
      2.1 После установки отключаем вывод ошибок на "морду" магазина (Система -> Настройки -> Редактировать -> Вкладка Сервер -> Раздел Безопасность -> Ключ шифрования -> С помощью генераторов из п-та 1.2 генерируем новый (длина 1024).
      2.2 Там же отключаем вывод ошибок на "морду" магазина (Система -> Настройки -> Редактировать -> Вкладка Сервер -> Раздел Обработка ошибок -> Показывать ошибки -> НЕТ). Включать вывод ошибок нужно по необходимости - установка нового модуля, изменение функционала и т.д. (помним про п-кт 0).
      2.3 Часто, перед покупкой или установкой модулей, разработчики предлагают проверить соответствие вашего хостинга требованиям модуля. В корневой каталог сайта копируется info.php, заходим по адресу <сайт>/info.php видим инфу, определяемся с модулем и удаляем файл info.php, дабы не оставлять подсказку разным негодяям.
      2.4 Пользователям, на сайтах которых настроен обмен, следует проверить недоступность снаружи следующих адресов:
      domain.com/system/storage/cache/exchange1c/import.xml domain.com/system/storage/cache/exchange1c/offers.xml domain.com/system/storage/cache/exchange1c/orders.xml 2.5 ВАЖНО! Присутствующие на сайте тяжелые скрипты (если имеются), такие как парсеры, генераторы карт и прайс-листов, и т.д., не должны быть доступны всем подряд извне.
       
      3. Настройка хостинга
      3.1 Средствами .htaccess можно ограничить доступ в админку вводом дополнительных логина и пароля (.htpasswd) и возможностью входа только с определенного IP-адреса. Перед этим важно не забыть получить статический IP-адрес у своего интернет-провайдера. Если будет интерес, можно сделать подробное описание этого метода.
      Видел модуль, добавляющий капчу от Гоши в форму авторизации админки. Штука полезная, ибо усложняет процесс сбручивания пароля разными кулхацкерами.
      3.2 При установке CMS, добавлении функционала, установке модулей (предоставления доступа к файлам CMS разработчикам модулей и т.д.) требуется доступ к хостингу по FTP (SFTP). Для таких случаев создаем отдельные учётные записи на хостинге, с доступом только к необходимым ресурсам. Требования к учётной записи те же, что и в пункте 1.2.
      ВАЖНО! После проведения работ обязательно отключаем доступ по FTP. Об этом забывают 90% будущих Рокфеллеров.
      3.3 В .htaccess должен присутствовать запрет на чтение файлов/каталогов(папок) с "." (точкой) в начале имени:
      RedirectMatch 403 /\..*$  
      4. Периодические мероприятия
      4.1 ВАЖНО! Необходимо регулярно делать бэкапы. Чем чаще делаются бэкапы, тем меньши информации будет потеряно в случае форс-мажора. Есть шутка "Админы делятся на две группы - на тех, кто не делает бэкапы и тех, кто уже делает".
      Бэкап файлов делаем с помощью FileZilla (или архивируем хостингом, а забираем ей же). Бэкап базы делаем с помощью Sypex Dumper 2.
      4.2 ВАЖНО! Категорически нельзя складывать бэкапы в каталог (папку) сайта! Поэтому все бэкапы (архивы бэкапов) забираем с хостинга. Место для хранения бэкапов подбирается из расчета хранения 10 архивов: 1 ежемесячный, 3 еженедельных, 6 ежедневных.
      4.3 ВАЖНО! Регулярно меняйте пароли (не реже раза в три месяца) ко всем учётным записям (админка, ftp и т.д.) и базам данных! Пароль к базе данных хранится в двух файлах config.php (из корня и в папке admin) в следующей записи:
      define('DB_PASSWORD', '7EJCE9vIAEfGExueZ3vn'); где 7EJCE9vIAEfGExueZ3vn - есть пароль. 4.4 ВАЖНО! Регулярно проверяем кроневой каталог и папки cache и download на предмет посторонних файлов. Особое внимание уделяем файлам, в которых присутствуют закодированные base64 элементы.
      В коренвом каталоге сайта должны быть только следующие файлы:
       
      В планах:
       
      P.S. Данная инструкция была написана при поддержке @savage4pro и @Yoda.
      P.P.S. #opencartsecurity #безопасностьвопенкарт #хуйнаныр
       
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу