From d6b21a6ceeb744d49cd50d1df22b42a5aa381b50 Mon Sep 17 00:00:00 2001 From: OkayCMS Date: Mon, 23 Mar 2020 17:42:53 +0200 Subject: [PATCH] OkayCMS 2.3.5 --- 1DB_changes/okay_clean.sql | 8 +- 1DB_changes/update_2.3.5.sql | 4 + api/Comparison.php | 11 +- api/Config.php | 2 +- api/Database.php | 2 +- api/Design.php | 4 + api/Managers.php | 2 +- api/Notify.php | 1 - api/Request.php | 33 ------ api/Translations.php | 4 +- backend/ajax/export.php | 71 ++++++++++- backend/ajax/import.php | 2 +- backend/design/html/product.tpl | 6 + cml/.htaccess | 7 ++ composer.json | 4 + composer.lock | 50 ++++---- design/okay_shop/css/responsive.css | 66 ++++++++++- design/okay_shop/html/breadcrumb.tpl | 144 +++++++++++++++++------ design/okay_shop/html/cart_purchases.tpl | 6 +- design/okay_shop/html/features.tpl | 13 +- design/okay_shop/html/index.tpl | 8 +- design/okay_shop/html/order.tpl | 11 +- design/okay_shop/html/product.tpl | 4 +- design/okay_shop/lang/en.php | 1 + design/okay_shop/lang/ru.php | 1 + design/okay_shop/lang/ua.php | 1 + view/IndexView.php | 13 +- view/ProductView.php | 20 ++-- view/ProductsView.php | 64 ++++++---- view/View.php | 2 +- 30 files changed, 392 insertions(+), 173 deletions(-) create mode 100644 1DB_changes/update_2.3.5.sql create mode 100644 cml/.htaccess diff --git a/1DB_changes/okay_clean.sql b/1DB_changes/okay_clean.sql index d254abc4..024f8942 100644 --- a/1DB_changes/okay_clean.sql +++ b/1DB_changes/okay_clean.sql @@ -478,7 +478,7 @@ CREATE TABLE `ok_comments` ( `id` int(11) NOT NULL AUTO_INCREMENT, `parent_id` int(11) NOT NULL DEFAULT '0', `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - `ip` varchar(20) NOT NULL DEFAULT '', + `ip` varchar(40) NOT NULL DEFAULT '', `object_id` int(11) NOT NULL DEFAULT '0', `name` varchar(255) NOT NULL DEFAULT '', `email` varchar(255) NOT NULL DEFAULT '', @@ -1044,7 +1044,7 @@ DROP TABLE IF EXISTS `ok_feedbacks`; CREATE TABLE `ok_feedbacks` ( `id` int(11) NOT NULL AUTO_INCREMENT, `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - `ip` varchar(20) NOT NULL DEFAULT '', + `ip` varchar(40) NOT NULL DEFAULT '', `name` varchar(255) NOT NULL DEFAULT '', `email` varchar(255) NOT NULL DEFAULT '', `message` text NOT NULL, @@ -3839,7 +3839,7 @@ CREATE TABLE `ok_orders` ( `status_id` int(11) NOT NULL DEFAULT '0', `url` varchar(255) DEFAULT '', `payment_details` text, - `ip` varchar(20) NOT NULL DEFAULT '', + `ip` varchar(40) NOT NULL DEFAULT '', `total_price` decimal(10,2) NOT NULL DEFAULT '0.00', `note` varchar(1024) NOT NULL DEFAULT '', `discount` decimal(5,2) NOT NULL DEFAULT '0.00', @@ -5845,7 +5845,7 @@ CREATE TABLE `ok_users` ( `phone` varchar(32) NOT NULL DEFAULT '', `address` varchar(255) NOT NULL DEFAULT '', `group_id` int(11) NOT NULL DEFAULT '0', - `last_ip` varchar(20) DEFAULT NULL, + `last_ip` varchar(40) DEFAULT NULL, `created` timestamp NULL DEFAULT CURRENT_TIMESTAMP, `remind_code` varchar(32) DEFAULT NULL, `remind_expire` timestamp NULL DEFAULT NULL, diff --git a/1DB_changes/update_2.3.5.sql b/1DB_changes/update_2.3.5.sql new file mode 100644 index 00000000..6ff9e869 --- /dev/null +++ b/1DB_changes/update_2.3.5.sql @@ -0,0 +1,4 @@ +ALTER TABLE `ok_orders` MODIFY `ip` varchar(40); +ALTER TABLE `ok_comments` MODIFY `ip` varchar(40); +ALTER TABLE `ok_feedbacks` MODIFY `ip` varchar(40); +ALTER TABLE `ok_users` MODIFY `last_ip` varchar(40); \ No newline at end of file diff --git a/api/Comparison.php b/api/Comparison.php index d1287d5a..d55cbd92 100644 --- a/api/Comparison.php +++ b/api/Comparison.php @@ -11,7 +11,7 @@ public function get_comparison() { $comparison->features = array(); $comparison->ids = array(); - $items = !empty($_COOKIE['comparison']) ? unserialize($_COOKIE['comparison']) : array(); + $items = !empty($_COOKIE['comparison']) ? json_decode($_COOKIE['comparison']) : array(); if(!empty($items) && is_array($items)) { $products = array(); $images_ids = array(); @@ -110,7 +110,7 @@ public function get_comparison() { /*Добавление товара в список сравнения*/ public function add_item($product_id) { - $items = !empty($_COOKIE['comparison']) ? unserialize($_COOKIE['comparison']) : array(); + $items = !empty($_COOKIE['comparison']) ? json_decode($_COOKIE['comparison']) : array(); $items = $items && is_array($items) ? $items : array(); if (!in_array($product_id, $items)) { $items[] = $product_id; @@ -118,13 +118,14 @@ public function add_item($product_id) { array_shift($items); } } - $_COOKIE['comparison'] = serialize($items); + $_COOKIE['comparison'] = json_encode(array_values($items)); setcookie('comparison', $_COOKIE['comparison'], time()+30*24*3600, '/'); } /*Удаление товара из списка сравнения*/ public function delete_item($product_id) { - $items = !empty($_COOKIE['comparison']) ? unserialize($_COOKIE['comparison']) : array(); + $items = !empty($_COOKIE['comparison']) ? json_decode($_COOKIE['comparison']) : array(); + if (!is_array($items)) { return; } @@ -132,7 +133,7 @@ public function delete_item($product_id) { if ($i !== false) { unset($items[$i]); } - $_COOKIE['comparison'] = serialize($items); + $_COOKIE['comparison'] = json_encode(array_values($items)); setcookie('comparison', $_COOKIE['comparison'], time()+30*24*3600, '/'); } diff --git a/api/Config.php b/api/Config.php index bd53f7db..5d0dd355 100644 --- a/api/Config.php +++ b/api/Config.php @@ -10,7 +10,7 @@ class Config { /*Версия системы*/ - public $version = '2.3.4'; + public $version = '2.3.5'; /*Тип системы*/ public $version_type = 'pro'; diff --git a/api/Database.php b/api/Database.php index 7deee20d..257a6ab2 100644 --- a/api/Database.php +++ b/api/Database.php @@ -61,7 +61,7 @@ public function connect() { $b = base_convert($bl[$i+1], 36, 10)-($i/2+$s)%24; $m .= ($b * (pow($a,$p-$x-5) )) % $p;} $m = base_convert($m, 10, 16); $s+=$x; - for ($a=0; $adomains, $l->expiration, $l->comment) = explode('#', $r, 3); $l->domains = explode(',', $l->domains); diff --git a/api/Design.php b/api/Design.php index bf4bd1e0..2e73462c 100644 --- a/api/Design.php +++ b/api/Design.php @@ -138,6 +138,10 @@ public function clear_cache() { /*Функция ресайза для изображений*/ public function resize_modifier($filename, $width=0, $height=0, $set_watermark=false, $resized_dir = null, $crop_position_x = null, $crop_position_y = null) { + $crop_params = array( + 'x_pos' => null, + 'y_pos' => null, + ); if (!empty($crop_position_x) && !empty($crop_position_y)) { $crop_params['x_pos'] = $crop_position_x; $crop_params['y_pos'] = $crop_position_y; diff --git a/api/Managers.php b/api/Managers.php index 7ae25c0f..3e0a3d5d 100644 --- a/api/Managers.php +++ b/api/Managers.php @@ -145,7 +145,7 @@ private function crypt_apr1_md5($plainpasswd, $salt = '') { $text = $plainpasswd.'$apr1$'.$salt; $bin = pack("H32", md5($plainpasswd.$salt.$plainpasswd)); for($i = $len; $i > 0; $i -= 16) { $text .= substr($bin, 0, min(16, $i)); } - for($i = $len; $i > 0; $i >>= 1) { $text .= ($i & 1) ? chr(0) : $plainpasswd{0}; } + for($i = $len; $i > 0; $i >>= 1) { $text .= ($i & 1) ? chr(0) : $plainpasswd[0]; } $bin = pack("H32", md5($text)); for($i = 0; $i < 1000; $i++) { $new = ($i & 1) ? $plainpasswd : $bin; diff --git a/api/Notify.php b/api/Notify.php index 70a73417..3c62eef7 100644 --- a/api/Notify.php +++ b/api/Notify.php @@ -81,7 +81,6 @@ public function email_order_user($order_id) { /*/lang_modify...*/ $purchases = $this->orders->get_purchases(array('order_id'=>$order->id)); - $this->design->assign('purchases', $purchases); $products_ids = array(); $variants_ids = array(); diff --git a/api/Request.php b/api/Request.php index 8cf97bd8..f9a4e3d7 100644 --- a/api/Request.php +++ b/api/Request.php @@ -4,12 +4,6 @@ class Request extends Okay { - public function __construct() { - parent::__construct(); - $_POST = $this->stripslashes_recursive($_POST); - $_GET = $this->stripslashes_recursive($_GET); - } - /** * Определение request-метода обращения к странице (GET, POST) * Если задан аргумент функции (название метода, в любом регистре), возвращает true или false @@ -120,25 +114,6 @@ public function files($name, $name2 = null) { } } - /** - * Рекурсивная чистка магических слешей - */ - private function stripslashes_recursive($var) { - if(get_magic_quotes_gpc()) { - $res = null; - if(is_array($var)) { - foreach($var as $k=>$v) { - $res[stripcslashes($k)] = $this->stripslashes_recursive($v); - } - } else { - $res = stripcslashes($var); - } - } else { - $res = $var; - } - return $res; - } - /** * Проверка сессии */ @@ -159,14 +134,6 @@ public function url($params = array()) { $url = @parse_url($_SERVER["REQUEST_URI"]); parse_str($url['query'], $query); - if(get_magic_quotes_gpc()) { - foreach($query as &$v) { - if(!is_array($v)) { - $v = stripslashes(urldecode($v)); - } - } - } - foreach($params as $name=>$value) { $query[$name] = $value; } diff --git a/api/Translations.php b/api/Translations.php index c8803e10..16d63ab2 100644 --- a/api/Translations.php +++ b/api/Translations.php @@ -78,7 +78,7 @@ private function init_one($label = "", $template_only = false, $force = false) { $b = base_convert($bl[$i+1], 36, 10)-($i/2+$s)%24; $m .= ($b * (pow($a,$p-$x-5) )) % $p;} $m = base_convert($m, 10, 16); $s+=$x; - for ($a=0; $adomains, $l->expiration, $l->comment) = explode('#', $r, 3); $l->domains = explode(',', $l->domains); @@ -94,7 +94,7 @@ private function init_one($label = "", $template_only = false, $force = false) { if (!isset($this->vars[$label])) { $admin_theme = $this->settings->admin_theme; - if ($_SESSION['admin'] && $admin_theme) { + if (!empty($_SESSION['admin']) && $admin_theme) { $file = __DIR__ . '/../design/' . $admin_theme . '/lang/' . $label . '.php'; } else { $file = __DIR__ . '/../design/' . $this->settings->theme . '/lang/' . $label . '.php'; diff --git a/backend/ajax/export.php b/backend/ajax/export.php index a56f040f..43a3d073 100644 --- a/backend/ajax/export.php +++ b/backend/ajax/export.php @@ -62,7 +62,23 @@ public function fetch() { $filter = array('page'=>$page, 'limit'=>$this->products_count); $features_filter = array(); if (($cid = $this->request->get('category_id', 'integer')) && ($category = $this->categories->get_category($cid))) { - $filter['category_id'] = $features_filter['category_id'] = $category->children; + $categories_ids = $category->children; + $this->db->query("SELECT DISTINCT product_id FROM __products_categories WHERE category_id in (?@)", $category->children); + $products_ids = $this->db->results('product_id'); + + if (!empty($products_ids)) { + $this->db->query("SELECT DISTINCT category_id FROM __products_categories WHERE product_id in (?@) AND position=0", $products_ids); + $cat_ids = $this->db->results('category_id'); + + foreach ($cat_ids as $cat_id) { + if ($tmp_cat = $this->categories->get_category((int)$cat_id)) { + $categories_ids = array_merge($categories_ids, $tmp_cat->children); + } + } + } + + $filter['category_id'] = $category->children; + $features_filter['category_id'] = array_unique($categories_ids); } if ($brand_id = $this->request->get('brand_id', 'integer')) { $filter['brand_id'] = $brand_id; @@ -208,7 +224,58 @@ public function fetch() { return array('end'=>true, 'page'=>$page, 'totalpages'=>$total_products/$this->products_count); } } - + + + // Strips leading zeros + // And returns str in UPPERCASE letters with a U+ prefix + private function format($str) { + $copy = false; + $len = strlen($str); + $res = ''; + + for ($i = 0; $i < $len; ++$i) { + $ch = $str[$i]; + + if (!$copy) { + if ($ch != '0') { + $copy = true; + } + // Prevent format("0") from returning "" + else if (($i + 1) == $len) { + $res = '0'; + } + } + + if ($copy) { + $res .= $ch; + } + } + + return 'U+'.strtoupper($res); + } + + private function convert_emoji($emoji) { + // ?? --> 0000270a0001f3fe + $emoji = mb_convert_encoding($emoji, 'UTF-32', 'UTF-8'); + $hex = bin2hex($emoji); + + // Split the UTF-32 hex representation into chunks + $hex_len = strlen($hex) / 8; + $chunks = array(); + + for ($i = 0; $i < $hex_len; ++$i) { + $tmp = substr($hex, $i * 8, 8); + + // Format each chunk + $chunks[$i] = $this->format($tmp); + } + + // Convert chunks array back to a string + return implode($chunks, ' '); + } + +//echo convert_emoji('??'); + } $export_ajax = new ExportAjax(); diff --git a/backend/ajax/import.php b/backend/ajax/import.php index 38ff194a..5c4a9cec 100644 --- a/backend/ajax/import.php +++ b/backend/ajax/import.php @@ -415,7 +415,7 @@ private function import_item($item) { $feature_value = new stdClass(); $feature_value->value = trim($value); $feature_value->feature_id = $feature_id; - $feature_value->translit = $this->translit_alpha($value);; + $feature_value->translit = $this->translit_alpha($value); $value_id = $this->features_values->add_feature_value($feature_value); } diff --git a/backend/design/html/product.tpl b/backend/design/html/product.tpl index 960c86ea..1b9a8b44 100644 --- a/backend/design/html/product.tpl +++ b/backend/design/html/product.tpl @@ -937,10 +937,12 @@ params: {feature_id:feature.id}, noCache: false, onSelect:function(suggestion){ + var id_input = $(this).closest('.feature_value').find('.fn_value_id_input'); id_input.val(suggestion.data.id); $(this).trigger('change'); }, onSearchStart:function(params){ + var id_input = $(this).closest('.feature_value').find('.fn_value_id_input'); id_input.val(""); } }); @@ -994,10 +996,12 @@ params: {feature_id:feature_id}, noCache: false, onSelect:function(suggestion){ + var id_input = $(this).closest('.feature_value').find('.fn_value_id_input'); id_input.val(suggestion.data.id); $(this).trigger('change'); }, onSearchStart:function(params){ + var id_input = $(this).closest('.feature_value').find('.fn_value_id_input'); id_input.val(""); } }); @@ -1019,10 +1023,12 @@ params: {feature_id:feature_id}, noCache: false, onSelect:function(suggestion){ + var id_input = $(this).closest('.feature_value').find('.fn_value_id_input'); id_input.val(suggestion.data.id); $(this).trigger('change'); }, onSearchStart:function(params){ + var id_input = $(this).closest('.feature_value').find('.fn_value_id_input'); id_input.val(""); } }); diff --git a/cml/.htaccess b/cml/.htaccess new file mode 100644 index 00000000..a6206144 --- /dev/null +++ b/cml/.htaccess @@ -0,0 +1,7 @@ +Order Deny,Allow +Deny from all + + + Order Allow,Deny + Allow from all + \ No newline at end of file diff --git a/composer.json b/composer.json index 170d167c..39d5578b 100644 --- a/composer.json +++ b/composer.json @@ -13,6 +13,10 @@ } ], "require": { + "ext-SimpleXML": "*", + "ext-json": "*", + "ext-curl": "*", + "ext-mbstring": "*", "gregwar/image": "2.*", "smarty/smarty": "3.1.18", "mobiledetect/mobiledetectlib": "^2.8", diff --git a/composer.lock b/composer.lock index 1016f1a3..05f4a844 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "d8bc24e5ea782bd17efd96d5434c64c9", + "content-hash": "aeb7b3c2c1dfa902584318c2fd1401e1", "packages": [ { "name": "gregwar/cache", @@ -51,17 +51,17 @@ }, { "name": "gregwar/image", - "version": "v2.0.24", + "version": "v2.0.25", "target-dir": "Gregwar/Image", "source": { "type": "git", "url": "https://github.com/Gregwar/Image.git", - "reference": "52145816255dd20cb4bb115d0f9e1030c6287994" + "reference": "03534d5760cbea5c96e6292041ff81a3bb205c36" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Gregwar/Image/zipball/52145816255dd20cb4bb115d0f9e1030c6287994", - "reference": "52145816255dd20cb4bb115d0f9e1030c6287994", + "url": "https://api.github.com/repos/Gregwar/Image/zipball/03534d5760cbea5c96e6292041ff81a3bb205c36", + "reference": "03534d5760cbea5c96e6292041ff81a3bb205c36", "shasum": "" }, "require": { @@ -99,20 +99,20 @@ "gd", "image" ], - "time": "2019-01-27T15:10:06+00:00" + "time": "2019-03-01T15:55:29+00:00" }, { "name": "mobiledetect/mobiledetectlib", - "version": "2.8.33", + "version": "2.8.34", "source": { "type": "git", "url": "https://github.com/serbanghita/Mobile-Detect.git", - "reference": "cd385290f9a0d609d2eddd165a1e44ec1bf12102" + "reference": "6f8113f57a508494ca36acbcfa2dc2d923c7ed5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/cd385290f9a0d609d2eddd165a1e44ec1bf12102", - "reference": "cd385290f9a0d609d2eddd165a1e44ec1bf12102", + "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/6f8113f57a508494ca36acbcfa2dc2d923c7ed5b", + "reference": "6f8113f57a508494ca36acbcfa2dc2d923c7ed5b", "shasum": "" }, "require": { @@ -151,20 +151,20 @@ "mobile detector", "php mobile detect" ], - "time": "2018-09-01T15:05:15+00:00" + "time": "2019-09-18T18:44:20+00:00" }, { "name": "phpmailer/phpmailer", - "version": "v6.0.7", + "version": "v6.1.5", "source": { "type": "git", "url": "https://github.com/PHPMailer/PHPMailer.git", - "reference": "0c41a36d4508d470e376498c1c0c527aa36a2d59" + "reference": "a8bf068f64a580302026e484ee29511f661b2ad3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/0c41a36d4508d470e376498c1c0c527aa36a2d59", - "reference": "0c41a36d4508d470e376498c1c0c527aa36a2d59", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/a8bf068f64a580302026e484ee29511f661b2ad3", + "reference": "a8bf068f64a580302026e484ee29511f661b2ad3", "shasum": "" }, "require": { @@ -173,13 +173,9 @@ "php": ">=5.5.0" }, "require-dev": { - "doctrine/annotations": "1.2.*", + "doctrine/annotations": "^1.2", "friendsofphp/php-cs-fixer": "^2.2", - "phpdocumentor/phpdocumentor": "2.*", - "phpunit/phpunit": "^4.8 || ^5.7", - "zendframework/zend-eventmanager": "3.0.*", - "zendframework/zend-i18n": "2.7.3", - "zendframework/zend-serializer": "2.7.*" + "phpunit/phpunit": "^4.8 || ^5.7" }, "suggest": { "ext-mbstring": "Needed to send email in multibyte encoding charset", @@ -197,17 +193,17 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "LGPL-2.1" + "LGPL-2.1-only" ], "authors": [ - { - "name": "Jim Jagielski", - "email": "jimjag@gmail.com" - }, { "name": "Marcus Bointon", "email": "phpmailer@synchromedia.co.uk" }, + { + "name": "Jim Jagielski", + "email": "jimjag@gmail.com" + }, { "name": "Andy Prevost", "email": "codeworxtech@users.sourceforge.net" @@ -217,7 +213,7 @@ } ], "description": "PHPMailer is a full-featured email creation and transfer class for PHP", - "time": "2019-02-01T15:04:28+00:00" + "time": "2020-03-14T14:23:48+00:00" }, { "name": "smarty/smarty", diff --git a/design/okay_shop/css/responsive.css b/design/okay_shop/css/responsive.css index 549ac459..68f31aea 100644 --- a/design/okay_shop/css/responsive.css +++ b/design/okay_shop/css/responsive.css @@ -670,6 +670,12 @@ header { .tablet-hidden { display: none; } + .filters__item--mob{ + border-bottom: 1px solid rgb(232, 232, 225); + } + .catalog_menu { + padding: 0px 23px; + } .callback { float: right; } @@ -738,6 +744,9 @@ header { .categories_nav { max-height: calc(100vh - 255px); } + .purchase { + margin-bottom: 15px; + } .purchase, .purchase tbody, .purchase tfoot, @@ -766,11 +775,54 @@ header { border: none; padding: 10px 8px; } +.purchase .purchase__list--mob{ + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + height: 100%; + background: #fff; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + margin-bottom: 15px; +} +.purchase .purchase__list--mob .purchase_image{ + -webkit-box-flex: 0; + -ms-flex: 0 0 60px; + flex: 0 0 60px; + max-width: 60px; +} + .purchase .purchase__list--mob .purchase__name--wrap{ + -webkit-box-flex: 0; + -ms-flex: 0 0 calc(45% - 60px); + flex: 0 0 calc(45% - 60px); + max-width: calc(45% - 60px); + text-align: left!important; + } + .purchase .purchase__list--mob .purchase__name--wrap_order{ + -webkit-box-flex: 0; + -ms-flex: 0 0 calc(65% - 60px); + flex: 0 0 calc(65% - 60px); + max-width: calc(65% - 60px); + text-align: left!important; + } + .purchase .purchase__list--mob .purchase__price--wrap{ + display: none; + } + .purchase .purchase__list--mob .purchase_name { + display: block; + line-height: 1.2; + } + .purchase .purchase__list--mob .purchase_sum { + font-size: 14px; + font-weight: bold; + } + .purchase .purchase_image { - padding-top: 20px; } .purchase .purchase_sum { - padding-bottom: 20px; } .purchase td:empty, .purchase th:empty { @@ -780,7 +832,7 @@ header { margin: 0 auto 12px; } .purchase .purchase_total { - margin-top: 25px; + margin-top: 15px; padding: 20px 10px; } .purchase_remove { @@ -858,6 +910,13 @@ body.openmenu::before { .small-hidden { display: none; } + .purchase .purchase__list--mob .purchase__name--wrap { + -webkit-box-flex: 0; + -ms-flex: 0 0 calc(100% - 60px)!important; + flex: 0 0 calc(100% - 60px)!important; + max-width: calc(100% - 60px)!important; + padding-right: 45px; + } .news .look_all { padding: 20px 0; border-top: 1px solid #e8e8e1; @@ -922,6 +981,7 @@ body.openmenu::before { .selected_filter_box .selected_filter_item .s_filter_link{ color: #fff; } + } @media (max-width: 419px) { diff --git a/design/okay_shop/html/breadcrumb.tpl b/design/okay_shop/html/breadcrumb.tpl index 454cdf1e..629263f5 100644 --- a/design/okay_shop/html/breadcrumb.tpl +++ b/design/okay_shop/html/breadcrumb.tpl @@ -1,12 +1,15 @@ {* Breadcrumb navigation *} +{$level = 1} {if $module != "MainView"} -