takecare1 Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 (изменено) Заголовок под кнопкой купить, а сам рекомендуемый продукт под описанием товара: Знает кто, как поправить? Изменено 16 марта 2016 пользователем takecare1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
ArtemPitov Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Заголовок под кнопкой купить, а сам рекомендуемый продукт под описанием товара: Знает кто, как поправить? Вы серозной ? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Вы серозной ? не понимаю. Я изменений в код не вносил Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 не понимаю. Я изменений в код не вносил Вам по картинке никто не поможет, бросайте сайт, по другому можно только догадываться что не так Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Извините!Вот здесь можно посмотреть http://i4ai.ru/puer/dvortsoviy-puer/ Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Извините! Вот здесь можно посмотреть http://i4ai.ru/puer/dvortsoviy-puer/ у Вас там разметка по бутстрапу не правильная, пересмотрите её product.tpl Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 у Вас там разметка по бутстрапу не правильная, пересмотрите её product.tpl Я слазил туда изначально, но сам в этом слабо понимаю, если это не очень сложно, подскажите пожалуйста: Вот кусок кода: <?php if ($products) { ?> <h3><?php echo $text_related; ?></h3> <div class="row"> <?php $i = 0; ?> <?php foreach ($products as $product) { ?> <?php if ($column_left && $column_right) { ?> <?php $class = 'col-lg-6 col-md-6 col-sm-12 col-xs-12'; ?> <?php } elseif ($column_left || $column_right) { ?> <?php $class = 'col-lg-4 col-md-4 col-sm-6 col-xs-12'; ?> <?php } else { ?> <?php $class = 'col-lg-3 col-md-3 col-sm-6 col-xs-12'; ?> <?php } ?> <div class="<?php echo $class; ?>"> <div class="product-thumb transition"> <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" class="img-responsive" /></a></div> <div class="caption"> <h4><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></h4> <p><?php echo $product['description']; ?></p> <?php if ($product['rating']) { ?> <div class="rating"> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($product['rating'] < $i) { ?> <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } else { ?> <span class="fa fa-stack"><i class="fa fa-star fa-stack-1x"></i><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } ?> <?php } ?> </div> <?php } ?> <?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="button-group"> <button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span> <i class="fa fa-shopping-cart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-exchange"></i></button> </div> </div> </div> <?php if (($column_left && $column_right) && ($i % 2 == 0)) { ?> <div class="clearfix visible-md visible-sm"></div> <?php } elseif (($column_left || $column_right) && ($i % 3 == 0)) { ?> <div class="clearfix visible-md"></div> <?php } elseif ($i % 4 == 0) { ?> <div class="clearfix visible-md"></div> <?php } ?> <?php $i++; ?> <?php } ?> </div> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Кстати,забыл спросить, а выводите модуль вы то правую колонку ? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Наверное, я очень туп))Никуда не вывожу, просто задал в настройках товара - рекомендуемые к нему. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Наверное, я очень туп)) Никуда не вывожу, просто задал в настройках товара - рекомендуемые к нему. ну тогда там все правильно выводиться, он и должен выводиться внизу Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Но ведь заголовок почему-то уплывает? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... igon Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 <h3><?php echo $text_related; ?></h3> <div class="row"> Попробуйте поменять эти строчки местами Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... igon Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Закрывающий </div> перед <h3><?php echo $text_related; ?></h3> сместился вниз, проверьте парность div`ов. Временно можно попробовать еще и так </div> <h3><?php echo $text_related; ?></h3> <div class="row"> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Закрывающий </div> перед <h3><?php echo $text_related; ?></h3> сместился вниз, проверьте парность div`ов. Временно можно попробовать еще и так </div> <h3><?php echo $text_related; ?></h3> <div class="row"> не помогло( Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Но ведь заголовок почему-то уплывает? Заголовок плывет потому что у Вас не закрыт где-то </div> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Забавно - сейчас вообще удалил строчку <h3><?php echo $text_related; ?></h3> - заголовок не пропадает - wtf??? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... hoolygan Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Кеш. Большой камень раздора. Везде кеш чистить нужно. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 ctrl+f5 жму, ничего не меняется Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Заголовок плывет потому что у Вас не закрыт где-то </div> можно как-то просто определить, где? мож редактор какой-то есть с подсказками? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 (изменено) из папки system/storage/ выпилил product.tpl, стало все ок Изменено 16 марта 2016 пользователем takecare1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 может пояснить пожалуйста кто-то, в каких случай OC берет за основу файлы из system/storage/? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... hoolygan Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Во всех случаях. т.е. если они есть - то с модификаций, если нет - то с оригинальных файлов. :-D Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 17 марта 2016 Автор Поделиться Опубликовано: 17 марта 2016 (изменено) Обнаружил еще такую хрень - если добавить товару #1 в список сопутствующих товар #2, а потом товару #2 присвоить какой-либо товар, то у товара #1 пропадает из сопутствующих товар #2, а второму добавляется еще и #1 в список сопутствующих.Кто-то сталкивался или может знает в чем проблема? под спойлер запилил весь код из 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) { ?> <?php $class = 'col-sm-6'; ?> <?php } elseif ($column_left || $column_right) { ?> <?php $class = 'col-sm-9'; ?> <?php } else { ?> <?php $class = 'col-sm-12'; ?> <?php } ?> <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?> <div class="row"> <?php if ($column_left || $column_right) { ?> <?php $class = 'col-sm-6'; ?> <?php } else { ?> <?php $class = 'col-sm-8'; ?> <?php } ?> <div class="<?php echo $class; ?>"> <?php if ($thumb || $images) { ?> <ul class="thumbnails"> <?php if ($thumb) { ?> <li><a class="thumbnail" href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>"><img src="<?php echo $thumb; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></li> <?php } ?> <?php if ($images) { ?> <?php foreach ($images as $image) { ?> <li class="image-additional"><a class="thumbnail" href="<?php echo $image['popup']; ?>" title="<?php echo $heading_title; ?>"> <img src="<?php echo $image['thumb']; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></li> <?php } ?> <?php } ?> </ul> <?php } ?> <ul class="nav nav-tabs"> <li class="active"><a href="#tab-description" data-toggle="tab"><?php echo $tab_description; ?></a></li> <?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 } ?> </ul> <div class="tab-content"> <div class="tab-pane active" id="tab-description"><?php echo $description; ?></div> <?php if ($attribute_groups) { ?> <div class="tab-pane" id="tab-specification"> <table class="table table-bordered"> <?php foreach ($attribute_groups as $attribute_group) { ?> <thead> <tr> <td colspan="2"><strong><?php echo $attribute_group['name']; ?></strong></td> </tr> </thead> <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 } ?> <?php if ($review_status) { ?> <div class="tab-pane" id="tab-review"> <form class="form-horizontal" id="form-review"> <div id="review"></div> <h2><?php echo $text_write; ?></h2> <?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" class="form-control"></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> <?php echo $entry_bad; ?> <input type="radio" name="rating" value="1" /> <input type="radio" name="rating" value="2" /> <input type="radio" name="rating" value="3" /> <input type="radio" name="rating" value="4" /> <input type="radio" name="rating" value="5" /> <?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 } ?> </form> </div> <?php } ?> </div> </div> <?php if ($column_left || $column_right) { ?> <?php $class = 'col-sm-6'; ?> <?php } else { ?> <?php $class = 'col-sm-4'; ?> <?php } ?> <div class="<?php echo $class; ?>"> <div class="btn-group"> <button type="button" data-toggle="tooltip" class="btn btn-default" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product_id; ?>');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" class="btn btn-default" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product_id; ?>');"><i class="fa fa-exchange"></i></button> </div> <h1><?php echo $heading_title; ?></h1> <ul class="list-unstyled"> <?php if ($manufacturer) { ?> <li><?php echo $text_manufacturer; ?> <a href="<?php echo $manufacturers; ?>"><?php echo $manufacturer; ?></a></li> <?php } ?> <li><?php echo $text_model; ?> <?php echo $model; ?></li> <?php if ($reward) { ?> <li><?php echo $text_reward; ?> <?php echo $reward; ?></li> <?php } ?> <li><?php echo $text_stock; ?> <?php echo $stock; ?></li> </ul> <?php if ($price) { ?> <ul class="list-unstyled"> <?php if (!$special) { ?> <li> <h2><span id="formated_price" price="<?php echo $price_value; ?>"><?php echo $price; ?></span></h2> </li> <?php } else { ?> <li><span style="text-decoration: line-through;"><span id="formated_price" price="<?php echo $price_value; ?>"><?php echo $price; ?></span></span></li> <li> <h2><span id="formated_special" price="<?php echo $special_value; ?>"><?php echo $special; /**/ ?></span></h2> </li> <?php } ?> <?php if ($tax) { ?> <li><?php echo $text_tax; ?> <span id="formated_tax" price="<?php echo $tax_value; ?>"><?php echo $tax; ?></span></li> <?php } ?> <?php if ($points) { ?> <li><?php echo $text_points; ?> <span id="formated_points" points="<?php echo $points; /**/ ?>"><?php echo $points; /**/ ?></span></li> <?php } ?> <?php if ($discounts) { ?> <li> <hr> </li> <?php foreach ($discounts as $discount) { ?> <li><?php echo $discount['quantity']; ?><?php echo $text_discount; ?><?php echo $discount['price']; ?></li> <?php } ?> <?php } ?> </ul> <?php } ?> <div id="product"> <?php if ($options) { ?> <hr> <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" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <select name="option[<?php echo $option['product_option_id']; ?>]" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control"> <?php foreach ($option['product_option_value'] as $option_value) { ?> <option value="<?php echo $option_value['product_option_value_id']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>"><?php echo $option_value['name']; ?> </option> <?php } ?> </select> </div> <?php } ?> <?php if ($option['type'] == 'radio') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <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']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" /> <?php echo $option_value['name']; ?> </label> </div> <?php } ?> </div> </div> <?php } ?> <?php if ($option['type'] == 'checkbox') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <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']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" /> <?php echo $option_value['name']; ?> </label> </div> <?php } ?> </div> </div> <?php } ?> <?php if ($option['type'] == 'image') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <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']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" /> <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']; ?> </label> </div> <?php } ?> </div> </div> <?php } ?> <?php if ($option['type'] == 'text') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php if ($option['type'] == 'textarea') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php if ($option['type'] == 'file') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <button type="button" id="button-upload<?php echo $option['product_option_id']; ?>" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-default btn-block"><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> <?php } ?> <?php if ($option['type'] == 'date') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php if ($option['type'] == 'datetime') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php if ($option['type'] == 'time') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php } ?> <?php } ?> <?php if ($recurrings) { ?> <hr> <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 class="form-group"> <label class="control-label" for="input-quantity"><?php echo $entry_qty; ?></label> <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; ?>" /> <br /> <button type="button" id="button-cart" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-primary btn-lg btn-block"><?php echo $button_cart; ?></button> </div> <?php if ($minimum > 1) { ?> <div class="alert alert-info"><i class="fa fa-info-circle"></i> <?php echo $text_minimum; ?></div> <?php } ?> </div> <?php if ($review_status) { ?> <div class="rating"> <p> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($rating < $i) { ?> <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } else { ?> <span class="fa fa-stack"><i class="fa fa-star fa-stack-1x"></i><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } ?> <?php } ?> <a href="" onclick="$('a[href=\'#tab-review\']').trigger('click'); return false;"><?php echo $reviews; ?></a> / <a href="" onclick="$('a[href=\'#tab-review\']').trigger('click'); return false;"><?php echo $text_write; ?></a></p> <hr> <script type="text/javascript" src="//yastatic.net/es5-shims/0.0.2/es5-shims.min.js" charset="utf-8"></script> <script type="text/javascript" src="//yastatic.net/share2/share.js" charset="utf-8"></script> <div class="ya-share2" data-services="vkontakte,facebook,odnoklassniki,moimir,gplus,twitter,lj"></div><br /> <?php } ?> </div> </div> <?php if ($products) { ?> <h3><?php echo $text_related; ?></h3> <div class="row"> <?php $i = 0; ?> <?php foreach ($products as $product) { ?> <?php if ($column_left && $column_right) { ?> <?php $class = 'col-lg-6 col-md-6 col-sm-12 col-xs-12'; ?> <?php } elseif ($column_left || $column_right) { ?> <?php $class = 'col-lg-4 col-md-4 col-sm-6 col-xs-12'; ?> <?php } else { ?> <?php $class = 'col-lg-3 col-md-3 col-sm-6 col-xs-12'; ?> <?php } ?> <div class="<?php echo $class; ?>"> <div class="product-thumb transition"> <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" class="img-responsive" /></a></div> <div class="caption"> <h4><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></h4> <p><?php echo $product['description']; ?></p> <?php if ($product['rating']) { ?> <div class="rating"> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($product['rating'] < $i) { ?> <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } else { ?> <span class="fa fa-stack"><i class="fa fa-star fa-stack-1x"></i><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } ?> <?php } ?> </div> <?php } ?> <?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="button-group"> <button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span> <i class="fa fa-shopping-cart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-exchange"></i></button> </div> </div> </div> <?php if (($column_left && $column_right) && ($i % 2 == 0)) { ?> <div class="clearfix visible-md visible-sm"></div> <?php } elseif (($column_left || $column_right) && ($i % 3 == 0)) { ?> <div class="clearfix visible-md"></div> <?php } elseif ($i % 4 == 0) { ?> <div class="clearfix visible-md"></div> <?php } ?> <?php $i++; ?> <?php } ?> </div> <?php } ?> <?php if ($tags) { ?> <p><?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 } ?> </p> <?php } ?> <?php echo $content_bottom; ?></div> <?php echo $column_right; ?></div> </div> <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) { $('.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'][i] + '</div>'); } else { element.after('<div class="text-danger">' + json['error']['option'][i] + '</div>'); } } } if (json['error']['recurring']) { $('select[name=\'recurring_id\']').after('<div class="text-danger">' + json['error']['recurring'] + '</div>'); } // Highlight any found errors $('.text-danger').parent().addClass('has-error'); } if (json['success']) { $('.breadcrumb').after('<div class="alert alert-success">' + json['success'] + '<button type="button" class="close" data-dismiss="alert">×</button></div>'); $('#cart > button').html('<i class="fa fa-shopping-cart"></i> ' + json['total']); $('html, body').animate({ scrollTop: 0 }, 'slow'); $('#cart > ul').load('index.php?route=common/cart/info ul li'); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); }); //--></script> <script type="text/javascript"><!-- $('.date').datetimepicker({ pickTime: false }); $('.datetime').datetimepicker({ pickDate: true, pickTime: true }); $('.time').datetimepicker({ pickDate: false }); $('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'); if (typeof timer != 'undefined') { clearInterval(timer); } timer = setInterval(function() { if ($('#form-upload input[name=\'file\']').val() != '') { clearInterval(timer); $.ajax({ url: 'index.php?route=tool/upload', type: 'post', dataType: 'json', data: new FormData($('#form-upload')[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); } }); } }, 500); }); //--></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="fa fa-exclamation-circle"></i> ' + json['error'] + '</div>'); } if (json['success']) { $('#review').after('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + '</div>'); $('input[name=\'name\']').val(''); $('textarea[name=\'text\']').val(''); $('input[name=\'rating\']:checked').prop('checked', false); } } }); }); $(document).ready(function() { $('.thumbnails').magnificPopup({ type:'image', delegate: 'a', gallery: { enabled:true } }); }); //--></script> <script type="text/javascript"><!-- function price_format(n) { c = <?php echo (empty($currency['decimals']) ? "0" : $currency['decimals'] ); ?>; d = '<?php echo $currency['decimal_point']; ?>'; // decimal separator t = '<?php echo $currency['thousand_point']; ?>'; // thousands separator s_left = '<?php echo $currency['symbol_left']; ?>'; s_right = '<?php echo $currency['symbol_right']; ?>'; n = n * <?php echo $currency['value']; ?>; //sign = (n < 0) ? '-' : ''; //extracting the absolute value of the integer part of the number and converting to string i = parseInt(n = Math.abs(n).toFixed(c)) + ''; j = ((j = i.length) > 3) ? j % 3 : 0; return s_left + (j ? i.substr(0, j) + t : '') + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : '') + s_right; } function calculate_tax(price) { <?php // Process Tax Rates if (isset($tax_rates) && $tax) { foreach ($tax_rates as $tax_rate) { if ($tax_rate['type'] == 'F') { echo 'price += '.$tax_rate['rate'].';'; } elseif ($tax_rate['type'] == 'P') { echo 'price += (price * '.$tax_rate['rate'].') / 100.0;'; } } } ?> return price; } function process_discounts(price, quantity) { <?php foreach ($dicounts_unf as $discount) { echo 'if ((quantity >= '.$discount['quantity'].') && ('.$discount['price'].' < price)) price = '.$discount['price'].';'."\n"; } ?> return price; } animate_delay = 20; main_price_final = calculate_tax(Number($('#formated_price').attr('price'))); main_price_start = calculate_tax(Number($('#formated_price').attr('price'))); main_step = 0; main_timeout_id = 0; function animateMainPrice_callback() { main_price_start += main_step; if ((main_step > 0) && (main_price_start > main_price_final)){ main_price_start = main_price_final; } else if ((main_step < 0) && (main_price_start < main_price_final)) { main_price_start = main_price_final; } else if (main_step == 0) { main_price_start = main_price_final; } $('#formated_price').html( price_format(main_price_start) ); if (main_price_start != main_price_final) { main_timeout_id = setTimeout(animateMainPrice_callback, animate_delay); } } function animateMainPrice(price) { main_price_start = main_price_final; main_price_final = price; main_step = (main_price_final - main_price_start) / 10; clearTimeout(main_timeout_id); main_timeout_id = setTimeout(animateMainPrice_callback, animate_delay); } <?php if ($special) { ?> special_price_final = calculate_tax(Number($('#formated_special').attr('price'))); special_price_start = calculate_tax(Number($('#formated_special').attr('price'))); special_step = 0; special_timeout_id = 0; function animateSpecialPrice_callback() { special_price_start += special_step; if ((special_step > 0) && (special_price_start > special_price_final)){ special_price_start = special_price_final; } else if ((special_step < 0) && (special_price_start < special_price_final)) { special_price_start = special_price_final; } else if (special_step == 0) { special_price_start = special_price_final; } $('#formated_special').html( price_format(special_price_start) ); if (special_price_start != special_price_final) { special_timeout_id = setTimeout(animateSpecialPrice_callback, animate_delay); } } function animateSpecialPrice(price) { special_price_start = special_price_final; special_price_final = price; special_step = (special_price_final - special_price_start) / 10; clearTimeout(special_timeout_id); special_timeout_id = setTimeout(animateSpecialPrice_callback, animate_delay); } <?php } ?> function recalculateprice() { var main_price = Number($('#formated_price').attr('price')); var input_quantity = Number($('input[name="quantity"]').val()); var special = Number($('#formated_special').attr('price')); var tax = 0; if (isNaN(input_quantity)) input_quantity = 0; // Process Discounts. <?php if ($special) { ?> special = process_discounts(special, input_quantity); <?php } else { ?> main_price = process_discounts(main_price, input_quantity); <?php } ?> tax = process_discounts(tax, input_quantity); <?php if ($points) { ?> var points = Number($('#formated_points').attr('points')); $('input:checked,option:selected').each(function() { if ($(this).attr('points')) points += Number($(this).attr('points')); }); $('#formated_points').html(Number(points)); <?php } ?> var option_price = 0; $('input:checked,option:selected').each(function() { if ($(this).attr('price_prefix') == '=') { option_price += Number($(this).attr('price')); main_price = 0; special = 0; } }); $('input:checked,option:selected').each(function() { if ($(this).attr('price_prefix') == '+') { option_price += Number($(this).attr('price')); } if ($(this).attr('price_prefix') == '-') { option_price -= Number($(this).attr('price')); } if ($(this).attr('price_prefix') == 'u') { pcnt = 1.0 + (Number($(this).attr('price')) / 100.0); option_price *= pcnt; main_price *= pcnt; special *= pcnt; } if ($(this).attr('price_prefix') == '*') { option_price *= Number($(this).attr('price')); main_price *= Number($(this).attr('price')); special *= Number($(this).attr('price')); } }); special += option_price; main_price += option_price; <?php if ($special) { ?> tax = special; <?php } else { ?> tax = main_price; <?php } ?> // Process TAX. main_price = calculate_tax(main_price); special = calculate_tax(special); // Раскомментировать, если нужен вывод цены с умножением на количество //main_price *= input_quantity; //special *= input_quantity; //tax *= input_quantity; // Display Main Price //$('#formated_price').html( price_format(main_price) ); animateMainPrice(main_price); <?php if ($special) { ?> //$('#formated_special').html( price_format(special) ); animateSpecialPrice(special); <?php } ?> <?php if ($tax) { ?> $('#formated_tax').html( price_format(tax) ); <?php } ?> } $(document).ready(function() { $('input[type="checkbox"]').bind('change', function() { recalculateprice(); }); $('input[type="radio"]').bind('change', function() { recalculateprice(); }); $('select').bind('change', function() { recalculateprice(); }); $quantity = $('input[name="quantity"]'); $quantity.data('val', $quantity.val()); (function() { if ($quantity.val() != $quantity.data('val')){ $quantity.data('val',$quantity.val()); recalculateprice(); } setTimeout(arguments.callee, 250); })(); recalculateprice(); }); //--></script> <?php echo $footer; ?> Изменено 17 марта 2016 пользователем takecare1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Opencart 2.x Opencart 2.x: Песочница Рекомендуемые товары уехали Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Вы серозной ? не понимаю. Я изменений в код не вносил Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
ArtemPitov Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 не понимаю. Я изменений в код не вносил Вам по картинке никто не поможет, бросайте сайт, по другому можно только догадываться что не так Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Извините!Вот здесь можно посмотреть http://i4ai.ru/puer/dvortsoviy-puer/ Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Извините! Вот здесь можно посмотреть http://i4ai.ru/puer/dvortsoviy-puer/ у Вас там разметка по бутстрапу не правильная, пересмотрите её product.tpl Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 у Вас там разметка по бутстрапу не правильная, пересмотрите её product.tpl Я слазил туда изначально, но сам в этом слабо понимаю, если это не очень сложно, подскажите пожалуйста: Вот кусок кода: <?php if ($products) { ?> <h3><?php echo $text_related; ?></h3> <div class="row"> <?php $i = 0; ?> <?php foreach ($products as $product) { ?> <?php if ($column_left && $column_right) { ?> <?php $class = 'col-lg-6 col-md-6 col-sm-12 col-xs-12'; ?> <?php } elseif ($column_left || $column_right) { ?> <?php $class = 'col-lg-4 col-md-4 col-sm-6 col-xs-12'; ?> <?php } else { ?> <?php $class = 'col-lg-3 col-md-3 col-sm-6 col-xs-12'; ?> <?php } ?> <div class="<?php echo $class; ?>"> <div class="product-thumb transition"> <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" class="img-responsive" /></a></div> <div class="caption"> <h4><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></h4> <p><?php echo $product['description']; ?></p> <?php if ($product['rating']) { ?> <div class="rating"> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($product['rating'] < $i) { ?> <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } else { ?> <span class="fa fa-stack"><i class="fa fa-star fa-stack-1x"></i><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } ?> <?php } ?> </div> <?php } ?> <?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="button-group"> <button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span> <i class="fa fa-shopping-cart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-exchange"></i></button> </div> </div> </div> <?php if (($column_left && $column_right) && ($i % 2 == 0)) { ?> <div class="clearfix visible-md visible-sm"></div> <?php } elseif (($column_left || $column_right) && ($i % 3 == 0)) { ?> <div class="clearfix visible-md"></div> <?php } elseif ($i % 4 == 0) { ?> <div class="clearfix visible-md"></div> <?php } ?> <?php $i++; ?> <?php } ?> </div> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Кстати,забыл спросить, а выводите модуль вы то правую колонку ? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Наверное, я очень туп))Никуда не вывожу, просто задал в настройках товара - рекомендуемые к нему. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Наверное, я очень туп)) Никуда не вывожу, просто задал в настройках товара - рекомендуемые к нему. ну тогда там все правильно выводиться, он и должен выводиться внизу Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Но ведь заголовок почему-то уплывает? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... igon Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 <h3><?php echo $text_related; ?></h3> <div class="row"> Попробуйте поменять эти строчки местами Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... igon Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Закрывающий </div> перед <h3><?php echo $text_related; ?></h3> сместился вниз, проверьте парность div`ов. Временно можно попробовать еще и так </div> <h3><?php echo $text_related; ?></h3> <div class="row"> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Закрывающий </div> перед <h3><?php echo $text_related; ?></h3> сместился вниз, проверьте парность div`ов. Временно можно попробовать еще и так </div> <h3><?php echo $text_related; ?></h3> <div class="row"> не помогло( Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Но ведь заголовок почему-то уплывает? Заголовок плывет потому что у Вас не закрыт где-то </div> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Забавно - сейчас вообще удалил строчку <h3><?php echo $text_related; ?></h3> - заголовок не пропадает - wtf??? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... hoolygan Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Кеш. Большой камень раздора. Везде кеш чистить нужно. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 ctrl+f5 жму, ничего не меняется Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Заголовок плывет потому что у Вас не закрыт где-то </div> можно как-то просто определить, где? мож редактор какой-то есть с подсказками? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 (изменено) из папки system/storage/ выпилил product.tpl, стало все ок Изменено 16 марта 2016 пользователем takecare1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 может пояснить пожалуйста кто-то, в каких случай OC берет за основу файлы из system/storage/? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... hoolygan Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Во всех случаях. т.е. если они есть - то с модификаций, если нет - то с оригинальных файлов. :-D Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 17 марта 2016 Автор Поделиться Опубликовано: 17 марта 2016 (изменено) Обнаружил еще такую хрень - если добавить товару #1 в список сопутствующих товар #2, а потом товару #2 присвоить какой-либо товар, то у товара #1 пропадает из сопутствующих товар #2, а второму добавляется еще и #1 в список сопутствующих.Кто-то сталкивался или может знает в чем проблема? под спойлер запилил весь код из 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) { ?> <?php $class = 'col-sm-6'; ?> <?php } elseif ($column_left || $column_right) { ?> <?php $class = 'col-sm-9'; ?> <?php } else { ?> <?php $class = 'col-sm-12'; ?> <?php } ?> <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?> <div class="row"> <?php if ($column_left || $column_right) { ?> <?php $class = 'col-sm-6'; ?> <?php } else { ?> <?php $class = 'col-sm-8'; ?> <?php } ?> <div class="<?php echo $class; ?>"> <?php if ($thumb || $images) { ?> <ul class="thumbnails"> <?php if ($thumb) { ?> <li><a class="thumbnail" href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>"><img src="<?php echo $thumb; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></li> <?php } ?> <?php if ($images) { ?> <?php foreach ($images as $image) { ?> <li class="image-additional"><a class="thumbnail" href="<?php echo $image['popup']; ?>" title="<?php echo $heading_title; ?>"> <img src="<?php echo $image['thumb']; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></li> <?php } ?> <?php } ?> </ul> <?php } ?> <ul class="nav nav-tabs"> <li class="active"><a href="#tab-description" data-toggle="tab"><?php echo $tab_description; ?></a></li> <?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 } ?> </ul> <div class="tab-content"> <div class="tab-pane active" id="tab-description"><?php echo $description; ?></div> <?php if ($attribute_groups) { ?> <div class="tab-pane" id="tab-specification"> <table class="table table-bordered"> <?php foreach ($attribute_groups as $attribute_group) { ?> <thead> <tr> <td colspan="2"><strong><?php echo $attribute_group['name']; ?></strong></td> </tr> </thead> <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 } ?> <?php if ($review_status) { ?> <div class="tab-pane" id="tab-review"> <form class="form-horizontal" id="form-review"> <div id="review"></div> <h2><?php echo $text_write; ?></h2> <?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" class="form-control"></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> <?php echo $entry_bad; ?> <input type="radio" name="rating" value="1" /> <input type="radio" name="rating" value="2" /> <input type="radio" name="rating" value="3" /> <input type="radio" name="rating" value="4" /> <input type="radio" name="rating" value="5" /> <?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 } ?> </form> </div> <?php } ?> </div> </div> <?php if ($column_left || $column_right) { ?> <?php $class = 'col-sm-6'; ?> <?php } else { ?> <?php $class = 'col-sm-4'; ?> <?php } ?> <div class="<?php echo $class; ?>"> <div class="btn-group"> <button type="button" data-toggle="tooltip" class="btn btn-default" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product_id; ?>');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" class="btn btn-default" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product_id; ?>');"><i class="fa fa-exchange"></i></button> </div> <h1><?php echo $heading_title; ?></h1> <ul class="list-unstyled"> <?php if ($manufacturer) { ?> <li><?php echo $text_manufacturer; ?> <a href="<?php echo $manufacturers; ?>"><?php echo $manufacturer; ?></a></li> <?php } ?> <li><?php echo $text_model; ?> <?php echo $model; ?></li> <?php if ($reward) { ?> <li><?php echo $text_reward; ?> <?php echo $reward; ?></li> <?php } ?> <li><?php echo $text_stock; ?> <?php echo $stock; ?></li> </ul> <?php if ($price) { ?> <ul class="list-unstyled"> <?php if (!$special) { ?> <li> <h2><span id="formated_price" price="<?php echo $price_value; ?>"><?php echo $price; ?></span></h2> </li> <?php } else { ?> <li><span style="text-decoration: line-through;"><span id="formated_price" price="<?php echo $price_value; ?>"><?php echo $price; ?></span></span></li> <li> <h2><span id="formated_special" price="<?php echo $special_value; ?>"><?php echo $special; /**/ ?></span></h2> </li> <?php } ?> <?php if ($tax) { ?> <li><?php echo $text_tax; ?> <span id="formated_tax" price="<?php echo $tax_value; ?>"><?php echo $tax; ?></span></li> <?php } ?> <?php if ($points) { ?> <li><?php echo $text_points; ?> <span id="formated_points" points="<?php echo $points; /**/ ?>"><?php echo $points; /**/ ?></span></li> <?php } ?> <?php if ($discounts) { ?> <li> <hr> </li> <?php foreach ($discounts as $discount) { ?> <li><?php echo $discount['quantity']; ?><?php echo $text_discount; ?><?php echo $discount['price']; ?></li> <?php } ?> <?php } ?> </ul> <?php } ?> <div id="product"> <?php if ($options) { ?> <hr> <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" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <select name="option[<?php echo $option['product_option_id']; ?>]" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control"> <?php foreach ($option['product_option_value'] as $option_value) { ?> <option value="<?php echo $option_value['product_option_value_id']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>"><?php echo $option_value['name']; ?> </option> <?php } ?> </select> </div> <?php } ?> <?php if ($option['type'] == 'radio') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <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']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" /> <?php echo $option_value['name']; ?> </label> </div> <?php } ?> </div> </div> <?php } ?> <?php if ($option['type'] == 'checkbox') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <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']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" /> <?php echo $option_value['name']; ?> </label> </div> <?php } ?> </div> </div> <?php } ?> <?php if ($option['type'] == 'image') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <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']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" /> <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']; ?> </label> </div> <?php } ?> </div> </div> <?php } ?> <?php if ($option['type'] == 'text') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php if ($option['type'] == 'textarea') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php if ($option['type'] == 'file') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <button type="button" id="button-upload<?php echo $option['product_option_id']; ?>" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-default btn-block"><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> <?php } ?> <?php if ($option['type'] == 'date') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php if ($option['type'] == 'datetime') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php if ($option['type'] == 'time') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php } ?> <?php } ?> <?php if ($recurrings) { ?> <hr> <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 class="form-group"> <label class="control-label" for="input-quantity"><?php echo $entry_qty; ?></label> <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; ?>" /> <br /> <button type="button" id="button-cart" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-primary btn-lg btn-block"><?php echo $button_cart; ?></button> </div> <?php if ($minimum > 1) { ?> <div class="alert alert-info"><i class="fa fa-info-circle"></i> <?php echo $text_minimum; ?></div> <?php } ?> </div> <?php if ($review_status) { ?> <div class="rating"> <p> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($rating < $i) { ?> <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } else { ?> <span class="fa fa-stack"><i class="fa fa-star fa-stack-1x"></i><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } ?> <?php } ?> <a href="" onclick="$('a[href=\'#tab-review\']').trigger('click'); return false;"><?php echo $reviews; ?></a> / <a href="" onclick="$('a[href=\'#tab-review\']').trigger('click'); return false;"><?php echo $text_write; ?></a></p> <hr> <script type="text/javascript" src="//yastatic.net/es5-shims/0.0.2/es5-shims.min.js" charset="utf-8"></script> <script type="text/javascript" src="//yastatic.net/share2/share.js" charset="utf-8"></script> <div class="ya-share2" data-services="vkontakte,facebook,odnoklassniki,moimir,gplus,twitter,lj"></div><br /> <?php } ?> </div> </div> <?php if ($products) { ?> <h3><?php echo $text_related; ?></h3> <div class="row"> <?php $i = 0; ?> <?php foreach ($products as $product) { ?> <?php if ($column_left && $column_right) { ?> <?php $class = 'col-lg-6 col-md-6 col-sm-12 col-xs-12'; ?> <?php } elseif ($column_left || $column_right) { ?> <?php $class = 'col-lg-4 col-md-4 col-sm-6 col-xs-12'; ?> <?php } else { ?> <?php $class = 'col-lg-3 col-md-3 col-sm-6 col-xs-12'; ?> <?php } ?> <div class="<?php echo $class; ?>"> <div class="product-thumb transition"> <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" class="img-responsive" /></a></div> <div class="caption"> <h4><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></h4> <p><?php echo $product['description']; ?></p> <?php if ($product['rating']) { ?> <div class="rating"> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($product['rating'] < $i) { ?> <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } else { ?> <span class="fa fa-stack"><i class="fa fa-star fa-stack-1x"></i><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } ?> <?php } ?> </div> <?php } ?> <?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="button-group"> <button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span> <i class="fa fa-shopping-cart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-exchange"></i></button> </div> </div> </div> <?php if (($column_left && $column_right) && ($i % 2 == 0)) { ?> <div class="clearfix visible-md visible-sm"></div> <?php } elseif (($column_left || $column_right) && ($i % 3 == 0)) { ?> <div class="clearfix visible-md"></div> <?php } elseif ($i % 4 == 0) { ?> <div class="clearfix visible-md"></div> <?php } ?> <?php $i++; ?> <?php } ?> </div> <?php } ?> <?php if ($tags) { ?> <p><?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 } ?> </p> <?php } ?> <?php echo $content_bottom; ?></div> <?php echo $column_right; ?></div> </div> <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) { $('.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'][i] + '</div>'); } else { element.after('<div class="text-danger">' + json['error']['option'][i] + '</div>'); } } } if (json['error']['recurring']) { $('select[name=\'recurring_id\']').after('<div class="text-danger">' + json['error']['recurring'] + '</div>'); } // Highlight any found errors $('.text-danger').parent().addClass('has-error'); } if (json['success']) { $('.breadcrumb').after('<div class="alert alert-success">' + json['success'] + '<button type="button" class="close" data-dismiss="alert">×</button></div>'); $('#cart > button').html('<i class="fa fa-shopping-cart"></i> ' + json['total']); $('html, body').animate({ scrollTop: 0 }, 'slow'); $('#cart > ul').load('index.php?route=common/cart/info ul li'); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); }); //--></script> <script type="text/javascript"><!-- $('.date').datetimepicker({ pickTime: false }); $('.datetime').datetimepicker({ pickDate: true, pickTime: true }); $('.time').datetimepicker({ pickDate: false }); $('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'); if (typeof timer != 'undefined') { clearInterval(timer); } timer = setInterval(function() { if ($('#form-upload input[name=\'file\']').val() != '') { clearInterval(timer); $.ajax({ url: 'index.php?route=tool/upload', type: 'post', dataType: 'json', data: new FormData($('#form-upload')[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); } }); } }, 500); }); //--></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="fa fa-exclamation-circle"></i> ' + json['error'] + '</div>'); } if (json['success']) { $('#review').after('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + '</div>'); $('input[name=\'name\']').val(''); $('textarea[name=\'text\']').val(''); $('input[name=\'rating\']:checked').prop('checked', false); } } }); }); $(document).ready(function() { $('.thumbnails').magnificPopup({ type:'image', delegate: 'a', gallery: { enabled:true } }); }); //--></script> <script type="text/javascript"><!-- function price_format(n) { c = <?php echo (empty($currency['decimals']) ? "0" : $currency['decimals'] ); ?>; d = '<?php echo $currency['decimal_point']; ?>'; // decimal separator t = '<?php echo $currency['thousand_point']; ?>'; // thousands separator s_left = '<?php echo $currency['symbol_left']; ?>'; s_right = '<?php echo $currency['symbol_right']; ?>'; n = n * <?php echo $currency['value']; ?>; //sign = (n < 0) ? '-' : ''; //extracting the absolute value of the integer part of the number and converting to string i = parseInt(n = Math.abs(n).toFixed(c)) + ''; j = ((j = i.length) > 3) ? j % 3 : 0; return s_left + (j ? i.substr(0, j) + t : '') + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : '') + s_right; } function calculate_tax(price) { <?php // Process Tax Rates if (isset($tax_rates) && $tax) { foreach ($tax_rates as $tax_rate) { if ($tax_rate['type'] == 'F') { echo 'price += '.$tax_rate['rate'].';'; } elseif ($tax_rate['type'] == 'P') { echo 'price += (price * '.$tax_rate['rate'].') / 100.0;'; } } } ?> return price; } function process_discounts(price, quantity) { <?php foreach ($dicounts_unf as $discount) { echo 'if ((quantity >= '.$discount['quantity'].') && ('.$discount['price'].' < price)) price = '.$discount['price'].';'."\n"; } ?> return price; } animate_delay = 20; main_price_final = calculate_tax(Number($('#formated_price').attr('price'))); main_price_start = calculate_tax(Number($('#formated_price').attr('price'))); main_step = 0; main_timeout_id = 0; function animateMainPrice_callback() { main_price_start += main_step; if ((main_step > 0) && (main_price_start > main_price_final)){ main_price_start = main_price_final; } else if ((main_step < 0) && (main_price_start < main_price_final)) { main_price_start = main_price_final; } else if (main_step == 0) { main_price_start = main_price_final; } $('#formated_price').html( price_format(main_price_start) ); if (main_price_start != main_price_final) { main_timeout_id = setTimeout(animateMainPrice_callback, animate_delay); } } function animateMainPrice(price) { main_price_start = main_price_final; main_price_final = price; main_step = (main_price_final - main_price_start) / 10; clearTimeout(main_timeout_id); main_timeout_id = setTimeout(animateMainPrice_callback, animate_delay); } <?php if ($special) { ?> special_price_final = calculate_tax(Number($('#formated_special').attr('price'))); special_price_start = calculate_tax(Number($('#formated_special').attr('price'))); special_step = 0; special_timeout_id = 0; function animateSpecialPrice_callback() { special_price_start += special_step; if ((special_step > 0) && (special_price_start > special_price_final)){ special_price_start = special_price_final; } else if ((special_step < 0) && (special_price_start < special_price_final)) { special_price_start = special_price_final; } else if (special_step == 0) { special_price_start = special_price_final; } $('#formated_special').html( price_format(special_price_start) ); if (special_price_start != special_price_final) { special_timeout_id = setTimeout(animateSpecialPrice_callback, animate_delay); } } function animateSpecialPrice(price) { special_price_start = special_price_final; special_price_final = price; special_step = (special_price_final - special_price_start) / 10; clearTimeout(special_timeout_id); special_timeout_id = setTimeout(animateSpecialPrice_callback, animate_delay); } <?php } ?> function recalculateprice() { var main_price = Number($('#formated_price').attr('price')); var input_quantity = Number($('input[name="quantity"]').val()); var special = Number($('#formated_special').attr('price')); var tax = 0; if (isNaN(input_quantity)) input_quantity = 0; // Process Discounts. <?php if ($special) { ?> special = process_discounts(special, input_quantity); <?php } else { ?> main_price = process_discounts(main_price, input_quantity); <?php } ?> tax = process_discounts(tax, input_quantity); <?php if ($points) { ?> var points = Number($('#formated_points').attr('points')); $('input:checked,option:selected').each(function() { if ($(this).attr('points')) points += Number($(this).attr('points')); }); $('#formated_points').html(Number(points)); <?php } ?> var option_price = 0; $('input:checked,option:selected').each(function() { if ($(this).attr('price_prefix') == '=') { option_price += Number($(this).attr('price')); main_price = 0; special = 0; } }); $('input:checked,option:selected').each(function() { if ($(this).attr('price_prefix') == '+') { option_price += Number($(this).attr('price')); } if ($(this).attr('price_prefix') == '-') { option_price -= Number($(this).attr('price')); } if ($(this).attr('price_prefix') == 'u') { pcnt = 1.0 + (Number($(this).attr('price')) / 100.0); option_price *= pcnt; main_price *= pcnt; special *= pcnt; } if ($(this).attr('price_prefix') == '*') { option_price *= Number($(this).attr('price')); main_price *= Number($(this).attr('price')); special *= Number($(this).attr('price')); } }); special += option_price; main_price += option_price; <?php if ($special) { ?> tax = special; <?php } else { ?> tax = main_price; <?php } ?> // Process TAX. main_price = calculate_tax(main_price); special = calculate_tax(special); // Раскомментировать, если нужен вывод цены с умножением на количество //main_price *= input_quantity; //special *= input_quantity; //tax *= input_quantity; // Display Main Price //$('#formated_price').html( price_format(main_price) ); animateMainPrice(main_price); <?php if ($special) { ?> //$('#formated_special').html( price_format(special) ); animateSpecialPrice(special); <?php } ?> <?php if ($tax) { ?> $('#formated_tax').html( price_format(tax) ); <?php } ?> } $(document).ready(function() { $('input[type="checkbox"]').bind('change', function() { recalculateprice(); }); $('input[type="radio"]').bind('change', function() { recalculateprice(); }); $('select').bind('change', function() { recalculateprice(); }); $quantity = $('input[name="quantity"]'); $quantity.data('val', $quantity.val()); (function() { if ($quantity.val() != $quantity.data('val')){ $quantity.data('val',$quantity.val()); recalculateprice(); } setTimeout(arguments.callee, 250); })(); recalculateprice(); }); //--></script> <?php echo $footer; ?> Изменено 17 марта 2016 пользователем takecare1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Opencart 2.x Opencart 2.x: Песочница Рекомендуемые товары уехали Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Извините!Вот здесь можно посмотреть http://i4ai.ru/puer/dvortsoviy-puer/ Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
ArtemPitov Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Извините! Вот здесь можно посмотреть http://i4ai.ru/puer/dvortsoviy-puer/ у Вас там разметка по бутстрапу не правильная, пересмотрите её product.tpl Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 у Вас там разметка по бутстрапу не правильная, пересмотрите её product.tpl Я слазил туда изначально, но сам в этом слабо понимаю, если это не очень сложно, подскажите пожалуйста: Вот кусок кода: <?php if ($products) { ?> <h3><?php echo $text_related; ?></h3> <div class="row"> <?php $i = 0; ?> <?php foreach ($products as $product) { ?> <?php if ($column_left && $column_right) { ?> <?php $class = 'col-lg-6 col-md-6 col-sm-12 col-xs-12'; ?> <?php } elseif ($column_left || $column_right) { ?> <?php $class = 'col-lg-4 col-md-4 col-sm-6 col-xs-12'; ?> <?php } else { ?> <?php $class = 'col-lg-3 col-md-3 col-sm-6 col-xs-12'; ?> <?php } ?> <div class="<?php echo $class; ?>"> <div class="product-thumb transition"> <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" class="img-responsive" /></a></div> <div class="caption"> <h4><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></h4> <p><?php echo $product['description']; ?></p> <?php if ($product['rating']) { ?> <div class="rating"> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($product['rating'] < $i) { ?> <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } else { ?> <span class="fa fa-stack"><i class="fa fa-star fa-stack-1x"></i><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } ?> <?php } ?> </div> <?php } ?> <?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="button-group"> <button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span> <i class="fa fa-shopping-cart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-exchange"></i></button> </div> </div> </div> <?php if (($column_left && $column_right) && ($i % 2 == 0)) { ?> <div class="clearfix visible-md visible-sm"></div> <?php } elseif (($column_left || $column_right) && ($i % 3 == 0)) { ?> <div class="clearfix visible-md"></div> <?php } elseif ($i % 4 == 0) { ?> <div class="clearfix visible-md"></div> <?php } ?> <?php $i++; ?> <?php } ?> </div> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Кстати,забыл спросить, а выводите модуль вы то правую колонку ? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Наверное, я очень туп))Никуда не вывожу, просто задал в настройках товара - рекомендуемые к нему. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Наверное, я очень туп)) Никуда не вывожу, просто задал в настройках товара - рекомендуемые к нему. ну тогда там все правильно выводиться, он и должен выводиться внизу Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Но ведь заголовок почему-то уплывает? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... igon Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 <h3><?php echo $text_related; ?></h3> <div class="row"> Попробуйте поменять эти строчки местами Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... igon Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Закрывающий </div> перед <h3><?php echo $text_related; ?></h3> сместился вниз, проверьте парность div`ов. Временно можно попробовать еще и так </div> <h3><?php echo $text_related; ?></h3> <div class="row"> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Закрывающий </div> перед <h3><?php echo $text_related; ?></h3> сместился вниз, проверьте парность div`ов. Временно можно попробовать еще и так </div> <h3><?php echo $text_related; ?></h3> <div class="row"> не помогло( Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Но ведь заголовок почему-то уплывает? Заголовок плывет потому что у Вас не закрыт где-то </div> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Забавно - сейчас вообще удалил строчку <h3><?php echo $text_related; ?></h3> - заголовок не пропадает - wtf??? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... hoolygan Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Кеш. Большой камень раздора. Везде кеш чистить нужно. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 ctrl+f5 жму, ничего не меняется Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Заголовок плывет потому что у Вас не закрыт где-то </div> можно как-то просто определить, где? мож редактор какой-то есть с подсказками? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 (изменено) из папки system/storage/ выпилил product.tpl, стало все ок Изменено 16 марта 2016 пользователем takecare1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 может пояснить пожалуйста кто-то, в каких случай OC берет за основу файлы из system/storage/? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... hoolygan Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Во всех случаях. т.е. если они есть - то с модификаций, если нет - то с оригинальных файлов. :-D Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 17 марта 2016 Автор Поделиться Опубликовано: 17 марта 2016 (изменено) Обнаружил еще такую хрень - если добавить товару #1 в список сопутствующих товар #2, а потом товару #2 присвоить какой-либо товар, то у товара #1 пропадает из сопутствующих товар #2, а второму добавляется еще и #1 в список сопутствующих.Кто-то сталкивался или может знает в чем проблема? под спойлер запилил весь код из 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) { ?> <?php $class = 'col-sm-6'; ?> <?php } elseif ($column_left || $column_right) { ?> <?php $class = 'col-sm-9'; ?> <?php } else { ?> <?php $class = 'col-sm-12'; ?> <?php } ?> <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?> <div class="row"> <?php if ($column_left || $column_right) { ?> <?php $class = 'col-sm-6'; ?> <?php } else { ?> <?php $class = 'col-sm-8'; ?> <?php } ?> <div class="<?php echo $class; ?>"> <?php if ($thumb || $images) { ?> <ul class="thumbnails"> <?php if ($thumb) { ?> <li><a class="thumbnail" href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>"><img src="<?php echo $thumb; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></li> <?php } ?> <?php if ($images) { ?> <?php foreach ($images as $image) { ?> <li class="image-additional"><a class="thumbnail" href="<?php echo $image['popup']; ?>" title="<?php echo $heading_title; ?>"> <img src="<?php echo $image['thumb']; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></li> <?php } ?> <?php } ?> </ul> <?php } ?> <ul class="nav nav-tabs"> <li class="active"><a href="#tab-description" data-toggle="tab"><?php echo $tab_description; ?></a></li> <?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 } ?> </ul> <div class="tab-content"> <div class="tab-pane active" id="tab-description"><?php echo $description; ?></div> <?php if ($attribute_groups) { ?> <div class="tab-pane" id="tab-specification"> <table class="table table-bordered"> <?php foreach ($attribute_groups as $attribute_group) { ?> <thead> <tr> <td colspan="2"><strong><?php echo $attribute_group['name']; ?></strong></td> </tr> </thead> <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 } ?> <?php if ($review_status) { ?> <div class="tab-pane" id="tab-review"> <form class="form-horizontal" id="form-review"> <div id="review"></div> <h2><?php echo $text_write; ?></h2> <?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" class="form-control"></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> <?php echo $entry_bad; ?> <input type="radio" name="rating" value="1" /> <input type="radio" name="rating" value="2" /> <input type="radio" name="rating" value="3" /> <input type="radio" name="rating" value="4" /> <input type="radio" name="rating" value="5" /> <?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 } ?> </form> </div> <?php } ?> </div> </div> <?php if ($column_left || $column_right) { ?> <?php $class = 'col-sm-6'; ?> <?php } else { ?> <?php $class = 'col-sm-4'; ?> <?php } ?> <div class="<?php echo $class; ?>"> <div class="btn-group"> <button type="button" data-toggle="tooltip" class="btn btn-default" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product_id; ?>');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" class="btn btn-default" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product_id; ?>');"><i class="fa fa-exchange"></i></button> </div> <h1><?php echo $heading_title; ?></h1> <ul class="list-unstyled"> <?php if ($manufacturer) { ?> <li><?php echo $text_manufacturer; ?> <a href="<?php echo $manufacturers; ?>"><?php echo $manufacturer; ?></a></li> <?php } ?> <li><?php echo $text_model; ?> <?php echo $model; ?></li> <?php if ($reward) { ?> <li><?php echo $text_reward; ?> <?php echo $reward; ?></li> <?php } ?> <li><?php echo $text_stock; ?> <?php echo $stock; ?></li> </ul> <?php if ($price) { ?> <ul class="list-unstyled"> <?php if (!$special) { ?> <li> <h2><span id="formated_price" price="<?php echo $price_value; ?>"><?php echo $price; ?></span></h2> </li> <?php } else { ?> <li><span style="text-decoration: line-through;"><span id="formated_price" price="<?php echo $price_value; ?>"><?php echo $price; ?></span></span></li> <li> <h2><span id="formated_special" price="<?php echo $special_value; ?>"><?php echo $special; /**/ ?></span></h2> </li> <?php } ?> <?php if ($tax) { ?> <li><?php echo $text_tax; ?> <span id="formated_tax" price="<?php echo $tax_value; ?>"><?php echo $tax; ?></span></li> <?php } ?> <?php if ($points) { ?> <li><?php echo $text_points; ?> <span id="formated_points" points="<?php echo $points; /**/ ?>"><?php echo $points; /**/ ?></span></li> <?php } ?> <?php if ($discounts) { ?> <li> <hr> </li> <?php foreach ($discounts as $discount) { ?> <li><?php echo $discount['quantity']; ?><?php echo $text_discount; ?><?php echo $discount['price']; ?></li> <?php } ?> <?php } ?> </ul> <?php } ?> <div id="product"> <?php if ($options) { ?> <hr> <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" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <select name="option[<?php echo $option['product_option_id']; ?>]" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control"> <?php foreach ($option['product_option_value'] as $option_value) { ?> <option value="<?php echo $option_value['product_option_value_id']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>"><?php echo $option_value['name']; ?> </option> <?php } ?> </select> </div> <?php } ?> <?php if ($option['type'] == 'radio') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <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']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" /> <?php echo $option_value['name']; ?> </label> </div> <?php } ?> </div> </div> <?php } ?> <?php if ($option['type'] == 'checkbox') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <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']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" /> <?php echo $option_value['name']; ?> </label> </div> <?php } ?> </div> </div> <?php } ?> <?php if ($option['type'] == 'image') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <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']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" /> <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']; ?> </label> </div> <?php } ?> </div> </div> <?php } ?> <?php if ($option['type'] == 'text') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php if ($option['type'] == 'textarea') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php if ($option['type'] == 'file') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <button type="button" id="button-upload<?php echo $option['product_option_id']; ?>" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-default btn-block"><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> <?php } ?> <?php if ($option['type'] == 'date') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php if ($option['type'] == 'datetime') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php if ($option['type'] == 'time') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php } ?> <?php } ?> <?php if ($recurrings) { ?> <hr> <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 class="form-group"> <label class="control-label" for="input-quantity"><?php echo $entry_qty; ?></label> <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; ?>" /> <br /> <button type="button" id="button-cart" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-primary btn-lg btn-block"><?php echo $button_cart; ?></button> </div> <?php if ($minimum > 1) { ?> <div class="alert alert-info"><i class="fa fa-info-circle"></i> <?php echo $text_minimum; ?></div> <?php } ?> </div> <?php if ($review_status) { ?> <div class="rating"> <p> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($rating < $i) { ?> <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } else { ?> <span class="fa fa-stack"><i class="fa fa-star fa-stack-1x"></i><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } ?> <?php } ?> <a href="" onclick="$('a[href=\'#tab-review\']').trigger('click'); return false;"><?php echo $reviews; ?></a> / <a href="" onclick="$('a[href=\'#tab-review\']').trigger('click'); return false;"><?php echo $text_write; ?></a></p> <hr> <script type="text/javascript" src="//yastatic.net/es5-shims/0.0.2/es5-shims.min.js" charset="utf-8"></script> <script type="text/javascript" src="//yastatic.net/share2/share.js" charset="utf-8"></script> <div class="ya-share2" data-services="vkontakte,facebook,odnoklassniki,moimir,gplus,twitter,lj"></div><br /> <?php } ?> </div> </div> <?php if ($products) { ?> <h3><?php echo $text_related; ?></h3> <div class="row"> <?php $i = 0; ?> <?php foreach ($products as $product) { ?> <?php if ($column_left && $column_right) { ?> <?php $class = 'col-lg-6 col-md-6 col-sm-12 col-xs-12'; ?> <?php } elseif ($column_left || $column_right) { ?> <?php $class = 'col-lg-4 col-md-4 col-sm-6 col-xs-12'; ?> <?php } else { ?> <?php $class = 'col-lg-3 col-md-3 col-sm-6 col-xs-12'; ?> <?php } ?> <div class="<?php echo $class; ?>"> <div class="product-thumb transition"> <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" class="img-responsive" /></a></div> <div class="caption"> <h4><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></h4> <p><?php echo $product['description']; ?></p> <?php if ($product['rating']) { ?> <div class="rating"> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($product['rating'] < $i) { ?> <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } else { ?> <span class="fa fa-stack"><i class="fa fa-star fa-stack-1x"></i><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } ?> <?php } ?> </div> <?php } ?> <?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="button-group"> <button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span> <i class="fa fa-shopping-cart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-exchange"></i></button> </div> </div> </div> <?php if (($column_left && $column_right) && ($i % 2 == 0)) { ?> <div class="clearfix visible-md visible-sm"></div> <?php } elseif (($column_left || $column_right) && ($i % 3 == 0)) { ?> <div class="clearfix visible-md"></div> <?php } elseif ($i % 4 == 0) { ?> <div class="clearfix visible-md"></div> <?php } ?> <?php $i++; ?> <?php } ?> </div> <?php } ?> <?php if ($tags) { ?> <p><?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 } ?> </p> <?php } ?> <?php echo $content_bottom; ?></div> <?php echo $column_right; ?></div> </div> <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) { $('.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'][i] + '</div>'); } else { element.after('<div class="text-danger">' + json['error']['option'][i] + '</div>'); } } } if (json['error']['recurring']) { $('select[name=\'recurring_id\']').after('<div class="text-danger">' + json['error']['recurring'] + '</div>'); } // Highlight any found errors $('.text-danger').parent().addClass('has-error'); } if (json['success']) { $('.breadcrumb').after('<div class="alert alert-success">' + json['success'] + '<button type="button" class="close" data-dismiss="alert">×</button></div>'); $('#cart > button').html('<i class="fa fa-shopping-cart"></i> ' + json['total']); $('html, body').animate({ scrollTop: 0 }, 'slow'); $('#cart > ul').load('index.php?route=common/cart/info ul li'); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); }); //--></script> <script type="text/javascript"><!-- $('.date').datetimepicker({ pickTime: false }); $('.datetime').datetimepicker({ pickDate: true, pickTime: true }); $('.time').datetimepicker({ pickDate: false }); $('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'); if (typeof timer != 'undefined') { clearInterval(timer); } timer = setInterval(function() { if ($('#form-upload input[name=\'file\']').val() != '') { clearInterval(timer); $.ajax({ url: 'index.php?route=tool/upload', type: 'post', dataType: 'json', data: new FormData($('#form-upload')[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); } }); } }, 500); }); //--></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="fa fa-exclamation-circle"></i> ' + json['error'] + '</div>'); } if (json['success']) { $('#review').after('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + '</div>'); $('input[name=\'name\']').val(''); $('textarea[name=\'text\']').val(''); $('input[name=\'rating\']:checked').prop('checked', false); } } }); }); $(document).ready(function() { $('.thumbnails').magnificPopup({ type:'image', delegate: 'a', gallery: { enabled:true } }); }); //--></script> <script type="text/javascript"><!-- function price_format(n) { c = <?php echo (empty($currency['decimals']) ? "0" : $currency['decimals'] ); ?>; d = '<?php echo $currency['decimal_point']; ?>'; // decimal separator t = '<?php echo $currency['thousand_point']; ?>'; // thousands separator s_left = '<?php echo $currency['symbol_left']; ?>'; s_right = '<?php echo $currency['symbol_right']; ?>'; n = n * <?php echo $currency['value']; ?>; //sign = (n < 0) ? '-' : ''; //extracting the absolute value of the integer part of the number and converting to string i = parseInt(n = Math.abs(n).toFixed(c)) + ''; j = ((j = i.length) > 3) ? j % 3 : 0; return s_left + (j ? i.substr(0, j) + t : '') + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : '') + s_right; } function calculate_tax(price) { <?php // Process Tax Rates if (isset($tax_rates) && $tax) { foreach ($tax_rates as $tax_rate) { if ($tax_rate['type'] == 'F') { echo 'price += '.$tax_rate['rate'].';'; } elseif ($tax_rate['type'] == 'P') { echo 'price += (price * '.$tax_rate['rate'].') / 100.0;'; } } } ?> return price; } function process_discounts(price, quantity) { <?php foreach ($dicounts_unf as $discount) { echo 'if ((quantity >= '.$discount['quantity'].') && ('.$discount['price'].' < price)) price = '.$discount['price'].';'."\n"; } ?> return price; } animate_delay = 20; main_price_final = calculate_tax(Number($('#formated_price').attr('price'))); main_price_start = calculate_tax(Number($('#formated_price').attr('price'))); main_step = 0; main_timeout_id = 0; function animateMainPrice_callback() { main_price_start += main_step; if ((main_step > 0) && (main_price_start > main_price_final)){ main_price_start = main_price_final; } else if ((main_step < 0) && (main_price_start < main_price_final)) { main_price_start = main_price_final; } else if (main_step == 0) { main_price_start = main_price_final; } $('#formated_price').html( price_format(main_price_start) ); if (main_price_start != main_price_final) { main_timeout_id = setTimeout(animateMainPrice_callback, animate_delay); } } function animateMainPrice(price) { main_price_start = main_price_final; main_price_final = price; main_step = (main_price_final - main_price_start) / 10; clearTimeout(main_timeout_id); main_timeout_id = setTimeout(animateMainPrice_callback, animate_delay); } <?php if ($special) { ?> special_price_final = calculate_tax(Number($('#formated_special').attr('price'))); special_price_start = calculate_tax(Number($('#formated_special').attr('price'))); special_step = 0; special_timeout_id = 0; function animateSpecialPrice_callback() { special_price_start += special_step; if ((special_step > 0) && (special_price_start > special_price_final)){ special_price_start = special_price_final; } else if ((special_step < 0) && (special_price_start < special_price_final)) { special_price_start = special_price_final; } else if (special_step == 0) { special_price_start = special_price_final; } $('#formated_special').html( price_format(special_price_start) ); if (special_price_start != special_price_final) { special_timeout_id = setTimeout(animateSpecialPrice_callback, animate_delay); } } function animateSpecialPrice(price) { special_price_start = special_price_final; special_price_final = price; special_step = (special_price_final - special_price_start) / 10; clearTimeout(special_timeout_id); special_timeout_id = setTimeout(animateSpecialPrice_callback, animate_delay); } <?php } ?> function recalculateprice() { var main_price = Number($('#formated_price').attr('price')); var input_quantity = Number($('input[name="quantity"]').val()); var special = Number($('#formated_special').attr('price')); var tax = 0; if (isNaN(input_quantity)) input_quantity = 0; // Process Discounts. <?php if ($special) { ?> special = process_discounts(special, input_quantity); <?php } else { ?> main_price = process_discounts(main_price, input_quantity); <?php } ?> tax = process_discounts(tax, input_quantity); <?php if ($points) { ?> var points = Number($('#formated_points').attr('points')); $('input:checked,option:selected').each(function() { if ($(this).attr('points')) points += Number($(this).attr('points')); }); $('#formated_points').html(Number(points)); <?php } ?> var option_price = 0; $('input:checked,option:selected').each(function() { if ($(this).attr('price_prefix') == '=') { option_price += Number($(this).attr('price')); main_price = 0; special = 0; } }); $('input:checked,option:selected').each(function() { if ($(this).attr('price_prefix') == '+') { option_price += Number($(this).attr('price')); } if ($(this).attr('price_prefix') == '-') { option_price -= Number($(this).attr('price')); } if ($(this).attr('price_prefix') == 'u') { pcnt = 1.0 + (Number($(this).attr('price')) / 100.0); option_price *= pcnt; main_price *= pcnt; special *= pcnt; } if ($(this).attr('price_prefix') == '*') { option_price *= Number($(this).attr('price')); main_price *= Number($(this).attr('price')); special *= Number($(this).attr('price')); } }); special += option_price; main_price += option_price; <?php if ($special) { ?> tax = special; <?php } else { ?> tax = main_price; <?php } ?> // Process TAX. main_price = calculate_tax(main_price); special = calculate_tax(special); // Раскомментировать, если нужен вывод цены с умножением на количество //main_price *= input_quantity; //special *= input_quantity; //tax *= input_quantity; // Display Main Price //$('#formated_price').html( price_format(main_price) ); animateMainPrice(main_price); <?php if ($special) { ?> //$('#formated_special').html( price_format(special) ); animateSpecialPrice(special); <?php } ?> <?php if ($tax) { ?> $('#formated_tax').html( price_format(tax) ); <?php } ?> } $(document).ready(function() { $('input[type="checkbox"]').bind('change', function() { recalculateprice(); }); $('input[type="radio"]').bind('change', function() { recalculateprice(); }); $('select').bind('change', function() { recalculateprice(); }); $quantity = $('input[name="quantity"]'); $quantity.data('val', $quantity.val()); (function() { if ($quantity.val() != $quantity.data('val')){ $quantity.data('val',$quantity.val()); recalculateprice(); } setTimeout(arguments.callee, 250); })(); recalculateprice(); }); //--></script> <?php echo $footer; ?> Изменено 17 марта 2016 пользователем takecare1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Opencart 2.x Opencart 2.x: Песочница Рекомендуемые товары уехали Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha
takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 у Вас там разметка по бутстрапу не правильная, пересмотрите её product.tpl Я слазил туда изначально, но сам в этом слабо понимаю, если это не очень сложно, подскажите пожалуйста: Вот кусок кода: <?php if ($products) { ?> <h3><?php echo $text_related; ?></h3> <div class="row"> <?php $i = 0; ?> <?php foreach ($products as $product) { ?> <?php if ($column_left && $column_right) { ?> <?php $class = 'col-lg-6 col-md-6 col-sm-12 col-xs-12'; ?> <?php } elseif ($column_left || $column_right) { ?> <?php $class = 'col-lg-4 col-md-4 col-sm-6 col-xs-12'; ?> <?php } else { ?> <?php $class = 'col-lg-3 col-md-3 col-sm-6 col-xs-12'; ?> <?php } ?> <div class="<?php echo $class; ?>"> <div class="product-thumb transition"> <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" class="img-responsive" /></a></div> <div class="caption"> <h4><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></h4> <p><?php echo $product['description']; ?></p> <?php if ($product['rating']) { ?> <div class="rating"> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($product['rating'] < $i) { ?> <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } else { ?> <span class="fa fa-stack"><i class="fa fa-star fa-stack-1x"></i><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } ?> <?php } ?> </div> <?php } ?> <?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="button-group"> <button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span> <i class="fa fa-shopping-cart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-exchange"></i></button> </div> </div> </div> <?php if (($column_left && $column_right) && ($i % 2 == 0)) { ?> <div class="clearfix visible-md visible-sm"></div> <?php } elseif (($column_left || $column_right) && ($i % 3 == 0)) { ?> <div class="clearfix visible-md"></div> <?php } elseif ($i % 4 == 0) { ?> <div class="clearfix visible-md"></div> <?php } ?> <?php $i++; ?> <?php } ?> </div> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
ArtemPitov Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Кстати,забыл спросить, а выводите модуль вы то правую колонку ? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Наверное, я очень туп))Никуда не вывожу, просто задал в настройках товара - рекомендуемые к нему. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Наверное, я очень туп)) Никуда не вывожу, просто задал в настройках товара - рекомендуемые к нему. ну тогда там все правильно выводиться, он и должен выводиться внизу Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Но ведь заголовок почему-то уплывает? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... igon Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 <h3><?php echo $text_related; ?></h3> <div class="row"> Попробуйте поменять эти строчки местами Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... igon Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Закрывающий </div> перед <h3><?php echo $text_related; ?></h3> сместился вниз, проверьте парность div`ов. Временно можно попробовать еще и так </div> <h3><?php echo $text_related; ?></h3> <div class="row"> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Закрывающий </div> перед <h3><?php echo $text_related; ?></h3> сместился вниз, проверьте парность div`ов. Временно можно попробовать еще и так </div> <h3><?php echo $text_related; ?></h3> <div class="row"> не помогло( Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Но ведь заголовок почему-то уплывает? Заголовок плывет потому что у Вас не закрыт где-то </div> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Забавно - сейчас вообще удалил строчку <h3><?php echo $text_related; ?></h3> - заголовок не пропадает - wtf??? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... hoolygan Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Кеш. Большой камень раздора. Везде кеш чистить нужно. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 ctrl+f5 жму, ничего не меняется Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Заголовок плывет потому что у Вас не закрыт где-то </div> можно как-то просто определить, где? мож редактор какой-то есть с подсказками? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 (изменено) из папки system/storage/ выпилил product.tpl, стало все ок Изменено 16 марта 2016 пользователем takecare1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 может пояснить пожалуйста кто-то, в каких случай OC берет за основу файлы из system/storage/? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... hoolygan Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Во всех случаях. т.е. если они есть - то с модификаций, если нет - то с оригинальных файлов. :-D Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 17 марта 2016 Автор Поделиться Опубликовано: 17 марта 2016 (изменено) Обнаружил еще такую хрень - если добавить товару #1 в список сопутствующих товар #2, а потом товару #2 присвоить какой-либо товар, то у товара #1 пропадает из сопутствующих товар #2, а второму добавляется еще и #1 в список сопутствующих.Кто-то сталкивался или может знает в чем проблема? под спойлер запилил весь код из 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) { ?> <?php $class = 'col-sm-6'; ?> <?php } elseif ($column_left || $column_right) { ?> <?php $class = 'col-sm-9'; ?> <?php } else { ?> <?php $class = 'col-sm-12'; ?> <?php } ?> <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?> <div class="row"> <?php if ($column_left || $column_right) { ?> <?php $class = 'col-sm-6'; ?> <?php } else { ?> <?php $class = 'col-sm-8'; ?> <?php } ?> <div class="<?php echo $class; ?>"> <?php if ($thumb || $images) { ?> <ul class="thumbnails"> <?php if ($thumb) { ?> <li><a class="thumbnail" href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>"><img src="<?php echo $thumb; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></li> <?php } ?> <?php if ($images) { ?> <?php foreach ($images as $image) { ?> <li class="image-additional"><a class="thumbnail" href="<?php echo $image['popup']; ?>" title="<?php echo $heading_title; ?>"> <img src="<?php echo $image['thumb']; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></li> <?php } ?> <?php } ?> </ul> <?php } ?> <ul class="nav nav-tabs"> <li class="active"><a href="#tab-description" data-toggle="tab"><?php echo $tab_description; ?></a></li> <?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 } ?> </ul> <div class="tab-content"> <div class="tab-pane active" id="tab-description"><?php echo $description; ?></div> <?php if ($attribute_groups) { ?> <div class="tab-pane" id="tab-specification"> <table class="table table-bordered"> <?php foreach ($attribute_groups as $attribute_group) { ?> <thead> <tr> <td colspan="2"><strong><?php echo $attribute_group['name']; ?></strong></td> </tr> </thead> <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 } ?> <?php if ($review_status) { ?> <div class="tab-pane" id="tab-review"> <form class="form-horizontal" id="form-review"> <div id="review"></div> <h2><?php echo $text_write; ?></h2> <?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" class="form-control"></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> <?php echo $entry_bad; ?> <input type="radio" name="rating" value="1" /> <input type="radio" name="rating" value="2" /> <input type="radio" name="rating" value="3" /> <input type="radio" name="rating" value="4" /> <input type="radio" name="rating" value="5" /> <?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 } ?> </form> </div> <?php } ?> </div> </div> <?php if ($column_left || $column_right) { ?> <?php $class = 'col-sm-6'; ?> <?php } else { ?> <?php $class = 'col-sm-4'; ?> <?php } ?> <div class="<?php echo $class; ?>"> <div class="btn-group"> <button type="button" data-toggle="tooltip" class="btn btn-default" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product_id; ?>');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" class="btn btn-default" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product_id; ?>');"><i class="fa fa-exchange"></i></button> </div> <h1><?php echo $heading_title; ?></h1> <ul class="list-unstyled"> <?php if ($manufacturer) { ?> <li><?php echo $text_manufacturer; ?> <a href="<?php echo $manufacturers; ?>"><?php echo $manufacturer; ?></a></li> <?php } ?> <li><?php echo $text_model; ?> <?php echo $model; ?></li> <?php if ($reward) { ?> <li><?php echo $text_reward; ?> <?php echo $reward; ?></li> <?php } ?> <li><?php echo $text_stock; ?> <?php echo $stock; ?></li> </ul> <?php if ($price) { ?> <ul class="list-unstyled"> <?php if (!$special) { ?> <li> <h2><span id="formated_price" price="<?php echo $price_value; ?>"><?php echo $price; ?></span></h2> </li> <?php } else { ?> <li><span style="text-decoration: line-through;"><span id="formated_price" price="<?php echo $price_value; ?>"><?php echo $price; ?></span></span></li> <li> <h2><span id="formated_special" price="<?php echo $special_value; ?>"><?php echo $special; /**/ ?></span></h2> </li> <?php } ?> <?php if ($tax) { ?> <li><?php echo $text_tax; ?> <span id="formated_tax" price="<?php echo $tax_value; ?>"><?php echo $tax; ?></span></li> <?php } ?> <?php if ($points) { ?> <li><?php echo $text_points; ?> <span id="formated_points" points="<?php echo $points; /**/ ?>"><?php echo $points; /**/ ?></span></li> <?php } ?> <?php if ($discounts) { ?> <li> <hr> </li> <?php foreach ($discounts as $discount) { ?> <li><?php echo $discount['quantity']; ?><?php echo $text_discount; ?><?php echo $discount['price']; ?></li> <?php } ?> <?php } ?> </ul> <?php } ?> <div id="product"> <?php if ($options) { ?> <hr> <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" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <select name="option[<?php echo $option['product_option_id']; ?>]" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control"> <?php foreach ($option['product_option_value'] as $option_value) { ?> <option value="<?php echo $option_value['product_option_value_id']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>"><?php echo $option_value['name']; ?> </option> <?php } ?> </select> </div> <?php } ?> <?php if ($option['type'] == 'radio') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <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']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" /> <?php echo $option_value['name']; ?> </label> </div> <?php } ?> </div> </div> <?php } ?> <?php if ($option['type'] == 'checkbox') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <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']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" /> <?php echo $option_value['name']; ?> </label> </div> <?php } ?> </div> </div> <?php } ?> <?php if ($option['type'] == 'image') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <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']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" /> <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']; ?> </label> </div> <?php } ?> </div> </div> <?php } ?> <?php if ($option['type'] == 'text') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php if ($option['type'] == 'textarea') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php if ($option['type'] == 'file') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <button type="button" id="button-upload<?php echo $option['product_option_id']; ?>" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-default btn-block"><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> <?php } ?> <?php if ($option['type'] == 'date') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php if ($option['type'] == 'datetime') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php if ($option['type'] == 'time') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php } ?> <?php } ?> <?php if ($recurrings) { ?> <hr> <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 class="form-group"> <label class="control-label" for="input-quantity"><?php echo $entry_qty; ?></label> <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; ?>" /> <br /> <button type="button" id="button-cart" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-primary btn-lg btn-block"><?php echo $button_cart; ?></button> </div> <?php if ($minimum > 1) { ?> <div class="alert alert-info"><i class="fa fa-info-circle"></i> <?php echo $text_minimum; ?></div> <?php } ?> </div> <?php if ($review_status) { ?> <div class="rating"> <p> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($rating < $i) { ?> <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } else { ?> <span class="fa fa-stack"><i class="fa fa-star fa-stack-1x"></i><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } ?> <?php } ?> <a href="" onclick="$('a[href=\'#tab-review\']').trigger('click'); return false;"><?php echo $reviews; ?></a> / <a href="" onclick="$('a[href=\'#tab-review\']').trigger('click'); return false;"><?php echo $text_write; ?></a></p> <hr> <script type="text/javascript" src="//yastatic.net/es5-shims/0.0.2/es5-shims.min.js" charset="utf-8"></script> <script type="text/javascript" src="//yastatic.net/share2/share.js" charset="utf-8"></script> <div class="ya-share2" data-services="vkontakte,facebook,odnoklassniki,moimir,gplus,twitter,lj"></div><br /> <?php } ?> </div> </div> <?php if ($products) { ?> <h3><?php echo $text_related; ?></h3> <div class="row"> <?php $i = 0; ?> <?php foreach ($products as $product) { ?> <?php if ($column_left && $column_right) { ?> <?php $class = 'col-lg-6 col-md-6 col-sm-12 col-xs-12'; ?> <?php } elseif ($column_left || $column_right) { ?> <?php $class = 'col-lg-4 col-md-4 col-sm-6 col-xs-12'; ?> <?php } else { ?> <?php $class = 'col-lg-3 col-md-3 col-sm-6 col-xs-12'; ?> <?php } ?> <div class="<?php echo $class; ?>"> <div class="product-thumb transition"> <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" class="img-responsive" /></a></div> <div class="caption"> <h4><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></h4> <p><?php echo $product['description']; ?></p> <?php if ($product['rating']) { ?> <div class="rating"> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($product['rating'] < $i) { ?> <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } else { ?> <span class="fa fa-stack"><i class="fa fa-star fa-stack-1x"></i><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } ?> <?php } ?> </div> <?php } ?> <?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="button-group"> <button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span> <i class="fa fa-shopping-cart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-exchange"></i></button> </div> </div> </div> <?php if (($column_left && $column_right) && ($i % 2 == 0)) { ?> <div class="clearfix visible-md visible-sm"></div> <?php } elseif (($column_left || $column_right) && ($i % 3 == 0)) { ?> <div class="clearfix visible-md"></div> <?php } elseif ($i % 4 == 0) { ?> <div class="clearfix visible-md"></div> <?php } ?> <?php $i++; ?> <?php } ?> </div> <?php } ?> <?php if ($tags) { ?> <p><?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 } ?> </p> <?php } ?> <?php echo $content_bottom; ?></div> <?php echo $column_right; ?></div> </div> <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) { $('.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'][i] + '</div>'); } else { element.after('<div class="text-danger">' + json['error']['option'][i] + '</div>'); } } } if (json['error']['recurring']) { $('select[name=\'recurring_id\']').after('<div class="text-danger">' + json['error']['recurring'] + '</div>'); } // Highlight any found errors $('.text-danger').parent().addClass('has-error'); } if (json['success']) { $('.breadcrumb').after('<div class="alert alert-success">' + json['success'] + '<button type="button" class="close" data-dismiss="alert">×</button></div>'); $('#cart > button').html('<i class="fa fa-shopping-cart"></i> ' + json['total']); $('html, body').animate({ scrollTop: 0 }, 'slow'); $('#cart > ul').load('index.php?route=common/cart/info ul li'); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); }); //--></script> <script type="text/javascript"><!-- $('.date').datetimepicker({ pickTime: false }); $('.datetime').datetimepicker({ pickDate: true, pickTime: true }); $('.time').datetimepicker({ pickDate: false }); $('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'); if (typeof timer != 'undefined') { clearInterval(timer); } timer = setInterval(function() { if ($('#form-upload input[name=\'file\']').val() != '') { clearInterval(timer); $.ajax({ url: 'index.php?route=tool/upload', type: 'post', dataType: 'json', data: new FormData($('#form-upload')[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); } }); } }, 500); }); //--></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="fa fa-exclamation-circle"></i> ' + json['error'] + '</div>'); } if (json['success']) { $('#review').after('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + '</div>'); $('input[name=\'name\']').val(''); $('textarea[name=\'text\']').val(''); $('input[name=\'rating\']:checked').prop('checked', false); } } }); }); $(document).ready(function() { $('.thumbnails').magnificPopup({ type:'image', delegate: 'a', gallery: { enabled:true } }); }); //--></script> <script type="text/javascript"><!-- function price_format(n) { c = <?php echo (empty($currency['decimals']) ? "0" : $currency['decimals'] ); ?>; d = '<?php echo $currency['decimal_point']; ?>'; // decimal separator t = '<?php echo $currency['thousand_point']; ?>'; // thousands separator s_left = '<?php echo $currency['symbol_left']; ?>'; s_right = '<?php echo $currency['symbol_right']; ?>'; n = n * <?php echo $currency['value']; ?>; //sign = (n < 0) ? '-' : ''; //extracting the absolute value of the integer part of the number and converting to string i = parseInt(n = Math.abs(n).toFixed(c)) + ''; j = ((j = i.length) > 3) ? j % 3 : 0; return s_left + (j ? i.substr(0, j) + t : '') + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : '') + s_right; } function calculate_tax(price) { <?php // Process Tax Rates if (isset($tax_rates) && $tax) { foreach ($tax_rates as $tax_rate) { if ($tax_rate['type'] == 'F') { echo 'price += '.$tax_rate['rate'].';'; } elseif ($tax_rate['type'] == 'P') { echo 'price += (price * '.$tax_rate['rate'].') / 100.0;'; } } } ?> return price; } function process_discounts(price, quantity) { <?php foreach ($dicounts_unf as $discount) { echo 'if ((quantity >= '.$discount['quantity'].') && ('.$discount['price'].' < price)) price = '.$discount['price'].';'."\n"; } ?> return price; } animate_delay = 20; main_price_final = calculate_tax(Number($('#formated_price').attr('price'))); main_price_start = calculate_tax(Number($('#formated_price').attr('price'))); main_step = 0; main_timeout_id = 0; function animateMainPrice_callback() { main_price_start += main_step; if ((main_step > 0) && (main_price_start > main_price_final)){ main_price_start = main_price_final; } else if ((main_step < 0) && (main_price_start < main_price_final)) { main_price_start = main_price_final; } else if (main_step == 0) { main_price_start = main_price_final; } $('#formated_price').html( price_format(main_price_start) ); if (main_price_start != main_price_final) { main_timeout_id = setTimeout(animateMainPrice_callback, animate_delay); } } function animateMainPrice(price) { main_price_start = main_price_final; main_price_final = price; main_step = (main_price_final - main_price_start) / 10; clearTimeout(main_timeout_id); main_timeout_id = setTimeout(animateMainPrice_callback, animate_delay); } <?php if ($special) { ?> special_price_final = calculate_tax(Number($('#formated_special').attr('price'))); special_price_start = calculate_tax(Number($('#formated_special').attr('price'))); special_step = 0; special_timeout_id = 0; function animateSpecialPrice_callback() { special_price_start += special_step; if ((special_step > 0) && (special_price_start > special_price_final)){ special_price_start = special_price_final; } else if ((special_step < 0) && (special_price_start < special_price_final)) { special_price_start = special_price_final; } else if (special_step == 0) { special_price_start = special_price_final; } $('#formated_special').html( price_format(special_price_start) ); if (special_price_start != special_price_final) { special_timeout_id = setTimeout(animateSpecialPrice_callback, animate_delay); } } function animateSpecialPrice(price) { special_price_start = special_price_final; special_price_final = price; special_step = (special_price_final - special_price_start) / 10; clearTimeout(special_timeout_id); special_timeout_id = setTimeout(animateSpecialPrice_callback, animate_delay); } <?php } ?> function recalculateprice() { var main_price = Number($('#formated_price').attr('price')); var input_quantity = Number($('input[name="quantity"]').val()); var special = Number($('#formated_special').attr('price')); var tax = 0; if (isNaN(input_quantity)) input_quantity = 0; // Process Discounts. <?php if ($special) { ?> special = process_discounts(special, input_quantity); <?php } else { ?> main_price = process_discounts(main_price, input_quantity); <?php } ?> tax = process_discounts(tax, input_quantity); <?php if ($points) { ?> var points = Number($('#formated_points').attr('points')); $('input:checked,option:selected').each(function() { if ($(this).attr('points')) points += Number($(this).attr('points')); }); $('#formated_points').html(Number(points)); <?php } ?> var option_price = 0; $('input:checked,option:selected').each(function() { if ($(this).attr('price_prefix') == '=') { option_price += Number($(this).attr('price')); main_price = 0; special = 0; } }); $('input:checked,option:selected').each(function() { if ($(this).attr('price_prefix') == '+') { option_price += Number($(this).attr('price')); } if ($(this).attr('price_prefix') == '-') { option_price -= Number($(this).attr('price')); } if ($(this).attr('price_prefix') == 'u') { pcnt = 1.0 + (Number($(this).attr('price')) / 100.0); option_price *= pcnt; main_price *= pcnt; special *= pcnt; } if ($(this).attr('price_prefix') == '*') { option_price *= Number($(this).attr('price')); main_price *= Number($(this).attr('price')); special *= Number($(this).attr('price')); } }); special += option_price; main_price += option_price; <?php if ($special) { ?> tax = special; <?php } else { ?> tax = main_price; <?php } ?> // Process TAX. main_price = calculate_tax(main_price); special = calculate_tax(special); // Раскомментировать, если нужен вывод цены с умножением на количество //main_price *= input_quantity; //special *= input_quantity; //tax *= input_quantity; // Display Main Price //$('#formated_price').html( price_format(main_price) ); animateMainPrice(main_price); <?php if ($special) { ?> //$('#formated_special').html( price_format(special) ); animateSpecialPrice(special); <?php } ?> <?php if ($tax) { ?> $('#formated_tax').html( price_format(tax) ); <?php } ?> } $(document).ready(function() { $('input[type="checkbox"]').bind('change', function() { recalculateprice(); }); $('input[type="radio"]').bind('change', function() { recalculateprice(); }); $('select').bind('change', function() { recalculateprice(); }); $quantity = $('input[name="quantity"]'); $quantity.data('val', $quantity.val()); (function() { if ($quantity.val() != $quantity.data('val')){ $quantity.data('val',$quantity.val()); recalculateprice(); } setTimeout(arguments.callee, 250); })(); recalculateprice(); }); //--></script> <?php echo $footer; ?> Изменено 17 марта 2016 пользователем takecare1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Opencart 2.x Opencart 2.x: Песочница Рекомендуемые товары уехали
takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Наверное, я очень туп))Никуда не вывожу, просто задал в настройках товара - рекомендуемые к нему. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
ArtemPitov Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Наверное, я очень туп)) Никуда не вывожу, просто задал в настройках товара - рекомендуемые к нему. ну тогда там все правильно выводиться, он и должен выводиться внизу Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Но ведь заголовок почему-то уплывает? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... igon Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 <h3><?php echo $text_related; ?></h3> <div class="row"> Попробуйте поменять эти строчки местами Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... igon Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Закрывающий </div> перед <h3><?php echo $text_related; ?></h3> сместился вниз, проверьте парность div`ов. Временно можно попробовать еще и так </div> <h3><?php echo $text_related; ?></h3> <div class="row"> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Закрывающий </div> перед <h3><?php echo $text_related; ?></h3> сместился вниз, проверьте парность div`ов. Временно можно попробовать еще и так </div> <h3><?php echo $text_related; ?></h3> <div class="row"> не помогло( Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Но ведь заголовок почему-то уплывает? Заголовок плывет потому что у Вас не закрыт где-то </div> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Забавно - сейчас вообще удалил строчку <h3><?php echo $text_related; ?></h3> - заголовок не пропадает - wtf??? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... hoolygan Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Кеш. Большой камень раздора. Везде кеш чистить нужно. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 ctrl+f5 жму, ничего не меняется Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Заголовок плывет потому что у Вас не закрыт где-то </div> можно как-то просто определить, где? мож редактор какой-то есть с подсказками? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 (изменено) из папки system/storage/ выпилил product.tpl, стало все ок Изменено 16 марта 2016 пользователем takecare1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 может пояснить пожалуйста кто-то, в каких случай OC берет за основу файлы из system/storage/? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... hoolygan Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Во всех случаях. т.е. если они есть - то с модификаций, если нет - то с оригинальных файлов. :-D Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 17 марта 2016 Автор Поделиться Опубликовано: 17 марта 2016 (изменено) Обнаружил еще такую хрень - если добавить товару #1 в список сопутствующих товар #2, а потом товару #2 присвоить какой-либо товар, то у товара #1 пропадает из сопутствующих товар #2, а второму добавляется еще и #1 в список сопутствующих.Кто-то сталкивался или может знает в чем проблема? под спойлер запилил весь код из 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) { ?> <?php $class = 'col-sm-6'; ?> <?php } elseif ($column_left || $column_right) { ?> <?php $class = 'col-sm-9'; ?> <?php } else { ?> <?php $class = 'col-sm-12'; ?> <?php } ?> <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?> <div class="row"> <?php if ($column_left || $column_right) { ?> <?php $class = 'col-sm-6'; ?> <?php } else { ?> <?php $class = 'col-sm-8'; ?> <?php } ?> <div class="<?php echo $class; ?>"> <?php if ($thumb || $images) { ?> <ul class="thumbnails"> <?php if ($thumb) { ?> <li><a class="thumbnail" href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>"><img src="<?php echo $thumb; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></li> <?php } ?> <?php if ($images) { ?> <?php foreach ($images as $image) { ?> <li class="image-additional"><a class="thumbnail" href="<?php echo $image['popup']; ?>" title="<?php echo $heading_title; ?>"> <img src="<?php echo $image['thumb']; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></li> <?php } ?> <?php } ?> </ul> <?php } ?> <ul class="nav nav-tabs"> <li class="active"><a href="#tab-description" data-toggle="tab"><?php echo $tab_description; ?></a></li> <?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 } ?> </ul> <div class="tab-content"> <div class="tab-pane active" id="tab-description"><?php echo $description; ?></div> <?php if ($attribute_groups) { ?> <div class="tab-pane" id="tab-specification"> <table class="table table-bordered"> <?php foreach ($attribute_groups as $attribute_group) { ?> <thead> <tr> <td colspan="2"><strong><?php echo $attribute_group['name']; ?></strong></td> </tr> </thead> <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 } ?> <?php if ($review_status) { ?> <div class="tab-pane" id="tab-review"> <form class="form-horizontal" id="form-review"> <div id="review"></div> <h2><?php echo $text_write; ?></h2> <?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" class="form-control"></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> <?php echo $entry_bad; ?> <input type="radio" name="rating" value="1" /> <input type="radio" name="rating" value="2" /> <input type="radio" name="rating" value="3" /> <input type="radio" name="rating" value="4" /> <input type="radio" name="rating" value="5" /> <?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 } ?> </form> </div> <?php } ?> </div> </div> <?php if ($column_left || $column_right) { ?> <?php $class = 'col-sm-6'; ?> <?php } else { ?> <?php $class = 'col-sm-4'; ?> <?php } ?> <div class="<?php echo $class; ?>"> <div class="btn-group"> <button type="button" data-toggle="tooltip" class="btn btn-default" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product_id; ?>');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" class="btn btn-default" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product_id; ?>');"><i class="fa fa-exchange"></i></button> </div> <h1><?php echo $heading_title; ?></h1> <ul class="list-unstyled"> <?php if ($manufacturer) { ?> <li><?php echo $text_manufacturer; ?> <a href="<?php echo $manufacturers; ?>"><?php echo $manufacturer; ?></a></li> <?php } ?> <li><?php echo $text_model; ?> <?php echo $model; ?></li> <?php if ($reward) { ?> <li><?php echo $text_reward; ?> <?php echo $reward; ?></li> <?php } ?> <li><?php echo $text_stock; ?> <?php echo $stock; ?></li> </ul> <?php if ($price) { ?> <ul class="list-unstyled"> <?php if (!$special) { ?> <li> <h2><span id="formated_price" price="<?php echo $price_value; ?>"><?php echo $price; ?></span></h2> </li> <?php } else { ?> <li><span style="text-decoration: line-through;"><span id="formated_price" price="<?php echo $price_value; ?>"><?php echo $price; ?></span></span></li> <li> <h2><span id="formated_special" price="<?php echo $special_value; ?>"><?php echo $special; /**/ ?></span></h2> </li> <?php } ?> <?php if ($tax) { ?> <li><?php echo $text_tax; ?> <span id="formated_tax" price="<?php echo $tax_value; ?>"><?php echo $tax; ?></span></li> <?php } ?> <?php if ($points) { ?> <li><?php echo $text_points; ?> <span id="formated_points" points="<?php echo $points; /**/ ?>"><?php echo $points; /**/ ?></span></li> <?php } ?> <?php if ($discounts) { ?> <li> <hr> </li> <?php foreach ($discounts as $discount) { ?> <li><?php echo $discount['quantity']; ?><?php echo $text_discount; ?><?php echo $discount['price']; ?></li> <?php } ?> <?php } ?> </ul> <?php } ?> <div id="product"> <?php if ($options) { ?> <hr> <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" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <select name="option[<?php echo $option['product_option_id']; ?>]" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control"> <?php foreach ($option['product_option_value'] as $option_value) { ?> <option value="<?php echo $option_value['product_option_value_id']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>"><?php echo $option_value['name']; ?> </option> <?php } ?> </select> </div> <?php } ?> <?php if ($option['type'] == 'radio') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <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']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" /> <?php echo $option_value['name']; ?> </label> </div> <?php } ?> </div> </div> <?php } ?> <?php if ($option['type'] == 'checkbox') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <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']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" /> <?php echo $option_value['name']; ?> </label> </div> <?php } ?> </div> </div> <?php } ?> <?php if ($option['type'] == 'image') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <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']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" /> <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']; ?> </label> </div> <?php } ?> </div> </div> <?php } ?> <?php if ($option['type'] == 'text') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php if ($option['type'] == 'textarea') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php if ($option['type'] == 'file') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <button type="button" id="button-upload<?php echo $option['product_option_id']; ?>" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-default btn-block"><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> <?php } ?> <?php if ($option['type'] == 'date') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php if ($option['type'] == 'datetime') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php if ($option['type'] == 'time') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php } ?> <?php } ?> <?php if ($recurrings) { ?> <hr> <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 class="form-group"> <label class="control-label" for="input-quantity"><?php echo $entry_qty; ?></label> <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; ?>" /> <br /> <button type="button" id="button-cart" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-primary btn-lg btn-block"><?php echo $button_cart; ?></button> </div> <?php if ($minimum > 1) { ?> <div class="alert alert-info"><i class="fa fa-info-circle"></i> <?php echo $text_minimum; ?></div> <?php } ?> </div> <?php if ($review_status) { ?> <div class="rating"> <p> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($rating < $i) { ?> <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } else { ?> <span class="fa fa-stack"><i class="fa fa-star fa-stack-1x"></i><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } ?> <?php } ?> <a href="" onclick="$('a[href=\'#tab-review\']').trigger('click'); return false;"><?php echo $reviews; ?></a> / <a href="" onclick="$('a[href=\'#tab-review\']').trigger('click'); return false;"><?php echo $text_write; ?></a></p> <hr> <script type="text/javascript" src="//yastatic.net/es5-shims/0.0.2/es5-shims.min.js" charset="utf-8"></script> <script type="text/javascript" src="//yastatic.net/share2/share.js" charset="utf-8"></script> <div class="ya-share2" data-services="vkontakte,facebook,odnoklassniki,moimir,gplus,twitter,lj"></div><br /> <?php } ?> </div> </div> <?php if ($products) { ?> <h3><?php echo $text_related; ?></h3> <div class="row"> <?php $i = 0; ?> <?php foreach ($products as $product) { ?> <?php if ($column_left && $column_right) { ?> <?php $class = 'col-lg-6 col-md-6 col-sm-12 col-xs-12'; ?> <?php } elseif ($column_left || $column_right) { ?> <?php $class = 'col-lg-4 col-md-4 col-sm-6 col-xs-12'; ?> <?php } else { ?> <?php $class = 'col-lg-3 col-md-3 col-sm-6 col-xs-12'; ?> <?php } ?> <div class="<?php echo $class; ?>"> <div class="product-thumb transition"> <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" class="img-responsive" /></a></div> <div class="caption"> <h4><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></h4> <p><?php echo $product['description']; ?></p> <?php if ($product['rating']) { ?> <div class="rating"> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($product['rating'] < $i) { ?> <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } else { ?> <span class="fa fa-stack"><i class="fa fa-star fa-stack-1x"></i><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } ?> <?php } ?> </div> <?php } ?> <?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="button-group"> <button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span> <i class="fa fa-shopping-cart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-exchange"></i></button> </div> </div> </div> <?php if (($column_left && $column_right) && ($i % 2 == 0)) { ?> <div class="clearfix visible-md visible-sm"></div> <?php } elseif (($column_left || $column_right) && ($i % 3 == 0)) { ?> <div class="clearfix visible-md"></div> <?php } elseif ($i % 4 == 0) { ?> <div class="clearfix visible-md"></div> <?php } ?> <?php $i++; ?> <?php } ?> </div> <?php } ?> <?php if ($tags) { ?> <p><?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 } ?> </p> <?php } ?> <?php echo $content_bottom; ?></div> <?php echo $column_right; ?></div> </div> <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) { $('.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'][i] + '</div>'); } else { element.after('<div class="text-danger">' + json['error']['option'][i] + '</div>'); } } } if (json['error']['recurring']) { $('select[name=\'recurring_id\']').after('<div class="text-danger">' + json['error']['recurring'] + '</div>'); } // Highlight any found errors $('.text-danger').parent().addClass('has-error'); } if (json['success']) { $('.breadcrumb').after('<div class="alert alert-success">' + json['success'] + '<button type="button" class="close" data-dismiss="alert">×</button></div>'); $('#cart > button').html('<i class="fa fa-shopping-cart"></i> ' + json['total']); $('html, body').animate({ scrollTop: 0 }, 'slow'); $('#cart > ul').load('index.php?route=common/cart/info ul li'); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); }); //--></script> <script type="text/javascript"><!-- $('.date').datetimepicker({ pickTime: false }); $('.datetime').datetimepicker({ pickDate: true, pickTime: true }); $('.time').datetimepicker({ pickDate: false }); $('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'); if (typeof timer != 'undefined') { clearInterval(timer); } timer = setInterval(function() { if ($('#form-upload input[name=\'file\']').val() != '') { clearInterval(timer); $.ajax({ url: 'index.php?route=tool/upload', type: 'post', dataType: 'json', data: new FormData($('#form-upload')[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); } }); } }, 500); }); //--></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="fa fa-exclamation-circle"></i> ' + json['error'] + '</div>'); } if (json['success']) { $('#review').after('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + '</div>'); $('input[name=\'name\']').val(''); $('textarea[name=\'text\']').val(''); $('input[name=\'rating\']:checked').prop('checked', false); } } }); }); $(document).ready(function() { $('.thumbnails').magnificPopup({ type:'image', delegate: 'a', gallery: { enabled:true } }); }); //--></script> <script type="text/javascript"><!-- function price_format(n) { c = <?php echo (empty($currency['decimals']) ? "0" : $currency['decimals'] ); ?>; d = '<?php echo $currency['decimal_point']; ?>'; // decimal separator t = '<?php echo $currency['thousand_point']; ?>'; // thousands separator s_left = '<?php echo $currency['symbol_left']; ?>'; s_right = '<?php echo $currency['symbol_right']; ?>'; n = n * <?php echo $currency['value']; ?>; //sign = (n < 0) ? '-' : ''; //extracting the absolute value of the integer part of the number and converting to string i = parseInt(n = Math.abs(n).toFixed(c)) + ''; j = ((j = i.length) > 3) ? j % 3 : 0; return s_left + (j ? i.substr(0, j) + t : '') + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : '') + s_right; } function calculate_tax(price) { <?php // Process Tax Rates if (isset($tax_rates) && $tax) { foreach ($tax_rates as $tax_rate) { if ($tax_rate['type'] == 'F') { echo 'price += '.$tax_rate['rate'].';'; } elseif ($tax_rate['type'] == 'P') { echo 'price += (price * '.$tax_rate['rate'].') / 100.0;'; } } } ?> return price; } function process_discounts(price, quantity) { <?php foreach ($dicounts_unf as $discount) { echo 'if ((quantity >= '.$discount['quantity'].') && ('.$discount['price'].' < price)) price = '.$discount['price'].';'."\n"; } ?> return price; } animate_delay = 20; main_price_final = calculate_tax(Number($('#formated_price').attr('price'))); main_price_start = calculate_tax(Number($('#formated_price').attr('price'))); main_step = 0; main_timeout_id = 0; function animateMainPrice_callback() { main_price_start += main_step; if ((main_step > 0) && (main_price_start > main_price_final)){ main_price_start = main_price_final; } else if ((main_step < 0) && (main_price_start < main_price_final)) { main_price_start = main_price_final; } else if (main_step == 0) { main_price_start = main_price_final; } $('#formated_price').html( price_format(main_price_start) ); if (main_price_start != main_price_final) { main_timeout_id = setTimeout(animateMainPrice_callback, animate_delay); } } function animateMainPrice(price) { main_price_start = main_price_final; main_price_final = price; main_step = (main_price_final - main_price_start) / 10; clearTimeout(main_timeout_id); main_timeout_id = setTimeout(animateMainPrice_callback, animate_delay); } <?php if ($special) { ?> special_price_final = calculate_tax(Number($('#formated_special').attr('price'))); special_price_start = calculate_tax(Number($('#formated_special').attr('price'))); special_step = 0; special_timeout_id = 0; function animateSpecialPrice_callback() { special_price_start += special_step; if ((special_step > 0) && (special_price_start > special_price_final)){ special_price_start = special_price_final; } else if ((special_step < 0) && (special_price_start < special_price_final)) { special_price_start = special_price_final; } else if (special_step == 0) { special_price_start = special_price_final; } $('#formated_special').html( price_format(special_price_start) ); if (special_price_start != special_price_final) { special_timeout_id = setTimeout(animateSpecialPrice_callback, animate_delay); } } function animateSpecialPrice(price) { special_price_start = special_price_final; special_price_final = price; special_step = (special_price_final - special_price_start) / 10; clearTimeout(special_timeout_id); special_timeout_id = setTimeout(animateSpecialPrice_callback, animate_delay); } <?php } ?> function recalculateprice() { var main_price = Number($('#formated_price').attr('price')); var input_quantity = Number($('input[name="quantity"]').val()); var special = Number($('#formated_special').attr('price')); var tax = 0; if (isNaN(input_quantity)) input_quantity = 0; // Process Discounts. <?php if ($special) { ?> special = process_discounts(special, input_quantity); <?php } else { ?> main_price = process_discounts(main_price, input_quantity); <?php } ?> tax = process_discounts(tax, input_quantity); <?php if ($points) { ?> var points = Number($('#formated_points').attr('points')); $('input:checked,option:selected').each(function() { if ($(this).attr('points')) points += Number($(this).attr('points')); }); $('#formated_points').html(Number(points)); <?php } ?> var option_price = 0; $('input:checked,option:selected').each(function() { if ($(this).attr('price_prefix') == '=') { option_price += Number($(this).attr('price')); main_price = 0; special = 0; } }); $('input:checked,option:selected').each(function() { if ($(this).attr('price_prefix') == '+') { option_price += Number($(this).attr('price')); } if ($(this).attr('price_prefix') == '-') { option_price -= Number($(this).attr('price')); } if ($(this).attr('price_prefix') == 'u') { pcnt = 1.0 + (Number($(this).attr('price')) / 100.0); option_price *= pcnt; main_price *= pcnt; special *= pcnt; } if ($(this).attr('price_prefix') == '*') { option_price *= Number($(this).attr('price')); main_price *= Number($(this).attr('price')); special *= Number($(this).attr('price')); } }); special += option_price; main_price += option_price; <?php if ($special) { ?> tax = special; <?php } else { ?> tax = main_price; <?php } ?> // Process TAX. main_price = calculate_tax(main_price); special = calculate_tax(special); // Раскомментировать, если нужен вывод цены с умножением на количество //main_price *= input_quantity; //special *= input_quantity; //tax *= input_quantity; // Display Main Price //$('#formated_price').html( price_format(main_price) ); animateMainPrice(main_price); <?php if ($special) { ?> //$('#formated_special').html( price_format(special) ); animateSpecialPrice(special); <?php } ?> <?php if ($tax) { ?> $('#formated_tax').html( price_format(tax) ); <?php } ?> } $(document).ready(function() { $('input[type="checkbox"]').bind('change', function() { recalculateprice(); }); $('input[type="radio"]').bind('change', function() { recalculateprice(); }); $('select').bind('change', function() { recalculateprice(); }); $quantity = $('input[name="quantity"]'); $quantity.data('val', $quantity.val()); (function() { if ($quantity.val() != $quantity.data('val')){ $quantity.data('val',$quantity.val()); recalculateprice(); } setTimeout(arguments.callee, 250); })(); recalculateprice(); }); //--></script> <?php echo $footer; ?> Изменено 17 марта 2016 пользователем takecare1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу.
takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Но ведь заголовок почему-то уплывает? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
igon Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 <h3><?php echo $text_related; ?></h3> <div class="row"> Попробуйте поменять эти строчки местами Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
igon Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Закрывающий </div> перед <h3><?php echo $text_related; ?></h3> сместился вниз, проверьте парность div`ов. Временно можно попробовать еще и так </div> <h3><?php echo $text_related; ?></h3> <div class="row"> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Закрывающий </div> перед <h3><?php echo $text_related; ?></h3> сместился вниз, проверьте парность div`ов. Временно можно попробовать еще и так </div> <h3><?php echo $text_related; ?></h3> <div class="row"> не помогло( Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
ArtemPitov Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Но ведь заголовок почему-то уплывает? Заголовок плывет потому что у Вас не закрыт где-то </div> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Забавно - сейчас вообще удалил строчку <h3><?php echo $text_related; ?></h3> - заголовок не пропадает - wtf??? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... hoolygan Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Кеш. Большой камень раздора. Везде кеш чистить нужно. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 ctrl+f5 жму, ничего не меняется Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Заголовок плывет потому что у Вас не закрыт где-то </div> можно как-то просто определить, где? мож редактор какой-то есть с подсказками? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 (изменено) из папки system/storage/ выпилил product.tpl, стало все ок Изменено 16 марта 2016 пользователем takecare1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 может пояснить пожалуйста кто-то, в каких случай OC берет за основу файлы из system/storage/? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... hoolygan Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Во всех случаях. т.е. если они есть - то с модификаций, если нет - то с оригинальных файлов. :-D Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... takecare1 Опубликовано: 17 марта 2016 Автор Поделиться Опубликовано: 17 марта 2016 (изменено) Обнаружил еще такую хрень - если добавить товару #1 в список сопутствующих товар #2, а потом товару #2 присвоить какой-либо товар, то у товара #1 пропадает из сопутствующих товар #2, а второму добавляется еще и #1 в список сопутствующих.Кто-то сталкивался или может знает в чем проблема? под спойлер запилил весь код из 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) { ?> <?php $class = 'col-sm-6'; ?> <?php } elseif ($column_left || $column_right) { ?> <?php $class = 'col-sm-9'; ?> <?php } else { ?> <?php $class = 'col-sm-12'; ?> <?php } ?> <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?> <div class="row"> <?php if ($column_left || $column_right) { ?> <?php $class = 'col-sm-6'; ?> <?php } else { ?> <?php $class = 'col-sm-8'; ?> <?php } ?> <div class="<?php echo $class; ?>"> <?php if ($thumb || $images) { ?> <ul class="thumbnails"> <?php if ($thumb) { ?> <li><a class="thumbnail" href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>"><img src="<?php echo $thumb; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></li> <?php } ?> <?php if ($images) { ?> <?php foreach ($images as $image) { ?> <li class="image-additional"><a class="thumbnail" href="<?php echo $image['popup']; ?>" title="<?php echo $heading_title; ?>"> <img src="<?php echo $image['thumb']; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></li> <?php } ?> <?php } ?> </ul> <?php } ?> <ul class="nav nav-tabs"> <li class="active"><a href="#tab-description" data-toggle="tab"><?php echo $tab_description; ?></a></li> <?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 } ?> </ul> <div class="tab-content"> <div class="tab-pane active" id="tab-description"><?php echo $description; ?></div> <?php if ($attribute_groups) { ?> <div class="tab-pane" id="tab-specification"> <table class="table table-bordered"> <?php foreach ($attribute_groups as $attribute_group) { ?> <thead> <tr> <td colspan="2"><strong><?php echo $attribute_group['name']; ?></strong></td> </tr> </thead> <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 } ?> <?php if ($review_status) { ?> <div class="tab-pane" id="tab-review"> <form class="form-horizontal" id="form-review"> <div id="review"></div> <h2><?php echo $text_write; ?></h2> <?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" class="form-control"></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> <?php echo $entry_bad; ?> <input type="radio" name="rating" value="1" /> <input type="radio" name="rating" value="2" /> <input type="radio" name="rating" value="3" /> <input type="radio" name="rating" value="4" /> <input type="radio" name="rating" value="5" /> <?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 } ?> </form> </div> <?php } ?> </div> </div> <?php if ($column_left || $column_right) { ?> <?php $class = 'col-sm-6'; ?> <?php } else { ?> <?php $class = 'col-sm-4'; ?> <?php } ?> <div class="<?php echo $class; ?>"> <div class="btn-group"> <button type="button" data-toggle="tooltip" class="btn btn-default" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product_id; ?>');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" class="btn btn-default" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product_id; ?>');"><i class="fa fa-exchange"></i></button> </div> <h1><?php echo $heading_title; ?></h1> <ul class="list-unstyled"> <?php if ($manufacturer) { ?> <li><?php echo $text_manufacturer; ?> <a href="<?php echo $manufacturers; ?>"><?php echo $manufacturer; ?></a></li> <?php } ?> <li><?php echo $text_model; ?> <?php echo $model; ?></li> <?php if ($reward) { ?> <li><?php echo $text_reward; ?> <?php echo $reward; ?></li> <?php } ?> <li><?php echo $text_stock; ?> <?php echo $stock; ?></li> </ul> <?php if ($price) { ?> <ul class="list-unstyled"> <?php if (!$special) { ?> <li> <h2><span id="formated_price" price="<?php echo $price_value; ?>"><?php echo $price; ?></span></h2> </li> <?php } else { ?> <li><span style="text-decoration: line-through;"><span id="formated_price" price="<?php echo $price_value; ?>"><?php echo $price; ?></span></span></li> <li> <h2><span id="formated_special" price="<?php echo $special_value; ?>"><?php echo $special; /**/ ?></span></h2> </li> <?php } ?> <?php if ($tax) { ?> <li><?php echo $text_tax; ?> <span id="formated_tax" price="<?php echo $tax_value; ?>"><?php echo $tax; ?></span></li> <?php } ?> <?php if ($points) { ?> <li><?php echo $text_points; ?> <span id="formated_points" points="<?php echo $points; /**/ ?>"><?php echo $points; /**/ ?></span></li> <?php } ?> <?php if ($discounts) { ?> <li> <hr> </li> <?php foreach ($discounts as $discount) { ?> <li><?php echo $discount['quantity']; ?><?php echo $text_discount; ?><?php echo $discount['price']; ?></li> <?php } ?> <?php } ?> </ul> <?php } ?> <div id="product"> <?php if ($options) { ?> <hr> <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" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <select name="option[<?php echo $option['product_option_id']; ?>]" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control"> <?php foreach ($option['product_option_value'] as $option_value) { ?> <option value="<?php echo $option_value['product_option_value_id']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>"><?php echo $option_value['name']; ?> </option> <?php } ?> </select> </div> <?php } ?> <?php if ($option['type'] == 'radio') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <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']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" /> <?php echo $option_value['name']; ?> </label> </div> <?php } ?> </div> </div> <?php } ?> <?php if ($option['type'] == 'checkbox') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <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']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" /> <?php echo $option_value['name']; ?> </label> </div> <?php } ?> </div> </div> <?php } ?> <?php if ($option['type'] == 'image') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <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']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" /> <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']; ?> </label> </div> <?php } ?> </div> </div> <?php } ?> <?php if ($option['type'] == 'text') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php if ($option['type'] == 'textarea') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php if ($option['type'] == 'file') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <button type="button" id="button-upload<?php echo $option['product_option_id']; ?>" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-default btn-block"><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> <?php } ?> <?php if ($option['type'] == 'date') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php if ($option['type'] == 'datetime') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php if ($option['type'] == 'time') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php } ?> <?php } ?> <?php if ($recurrings) { ?> <hr> <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 class="form-group"> <label class="control-label" for="input-quantity"><?php echo $entry_qty; ?></label> <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; ?>" /> <br /> <button type="button" id="button-cart" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-primary btn-lg btn-block"><?php echo $button_cart; ?></button> </div> <?php if ($minimum > 1) { ?> <div class="alert alert-info"><i class="fa fa-info-circle"></i> <?php echo $text_minimum; ?></div> <?php } ?> </div> <?php if ($review_status) { ?> <div class="rating"> <p> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($rating < $i) { ?> <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } else { ?> <span class="fa fa-stack"><i class="fa fa-star fa-stack-1x"></i><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } ?> <?php } ?> <a href="" onclick="$('a[href=\'#tab-review\']').trigger('click'); return false;"><?php echo $reviews; ?></a> / <a href="" onclick="$('a[href=\'#tab-review\']').trigger('click'); return false;"><?php echo $text_write; ?></a></p> <hr> <script type="text/javascript" src="//yastatic.net/es5-shims/0.0.2/es5-shims.min.js" charset="utf-8"></script> <script type="text/javascript" src="//yastatic.net/share2/share.js" charset="utf-8"></script> <div class="ya-share2" data-services="vkontakte,facebook,odnoklassniki,moimir,gplus,twitter,lj"></div><br /> <?php } ?> </div> </div> <?php if ($products) { ?> <h3><?php echo $text_related; ?></h3> <div class="row"> <?php $i = 0; ?> <?php foreach ($products as $product) { ?> <?php if ($column_left && $column_right) { ?> <?php $class = 'col-lg-6 col-md-6 col-sm-12 col-xs-12'; ?> <?php } elseif ($column_left || $column_right) { ?> <?php $class = 'col-lg-4 col-md-4 col-sm-6 col-xs-12'; ?> <?php } else { ?> <?php $class = 'col-lg-3 col-md-3 col-sm-6 col-xs-12'; ?> <?php } ?> <div class="<?php echo $class; ?>"> <div class="product-thumb transition"> <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" class="img-responsive" /></a></div> <div class="caption"> <h4><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></h4> <p><?php echo $product['description']; ?></p> <?php if ($product['rating']) { ?> <div class="rating"> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($product['rating'] < $i) { ?> <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } else { ?> <span class="fa fa-stack"><i class="fa fa-star fa-stack-1x"></i><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } ?> <?php } ?> </div> <?php } ?> <?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="button-group"> <button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span> <i class="fa fa-shopping-cart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-exchange"></i></button> </div> </div> </div> <?php if (($column_left && $column_right) && ($i % 2 == 0)) { ?> <div class="clearfix visible-md visible-sm"></div> <?php } elseif (($column_left || $column_right) && ($i % 3 == 0)) { ?> <div class="clearfix visible-md"></div> <?php } elseif ($i % 4 == 0) { ?> <div class="clearfix visible-md"></div> <?php } ?> <?php $i++; ?> <?php } ?> </div> <?php } ?> <?php if ($tags) { ?> <p><?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 } ?> </p> <?php } ?> <?php echo $content_bottom; ?></div> <?php echo $column_right; ?></div> </div> <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) { $('.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'][i] + '</div>'); } else { element.after('<div class="text-danger">' + json['error']['option'][i] + '</div>'); } } } if (json['error']['recurring']) { $('select[name=\'recurring_id\']').after('<div class="text-danger">' + json['error']['recurring'] + '</div>'); } // Highlight any found errors $('.text-danger').parent().addClass('has-error'); } if (json['success']) { $('.breadcrumb').after('<div class="alert alert-success">' + json['success'] + '<button type="button" class="close" data-dismiss="alert">×</button></div>'); $('#cart > button').html('<i class="fa fa-shopping-cart"></i> ' + json['total']); $('html, body').animate({ scrollTop: 0 }, 'slow'); $('#cart > ul').load('index.php?route=common/cart/info ul li'); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); }); //--></script> <script type="text/javascript"><!-- $('.date').datetimepicker({ pickTime: false }); $('.datetime').datetimepicker({ pickDate: true, pickTime: true }); $('.time').datetimepicker({ pickDate: false }); $('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'); if (typeof timer != 'undefined') { clearInterval(timer); } timer = setInterval(function() { if ($('#form-upload input[name=\'file\']').val() != '') { clearInterval(timer); $.ajax({ url: 'index.php?route=tool/upload', type: 'post', dataType: 'json', data: new FormData($('#form-upload')[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); } }); } }, 500); }); //--></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="fa fa-exclamation-circle"></i> ' + json['error'] + '</div>'); } if (json['success']) { $('#review').after('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + '</div>'); $('input[name=\'name\']').val(''); $('textarea[name=\'text\']').val(''); $('input[name=\'rating\']:checked').prop('checked', false); } } }); }); $(document).ready(function() { $('.thumbnails').magnificPopup({ type:'image', delegate: 'a', gallery: { enabled:true } }); }); //--></script> <script type="text/javascript"><!-- function price_format(n) { c = <?php echo (empty($currency['decimals']) ? "0" : $currency['decimals'] ); ?>; d = '<?php echo $currency['decimal_point']; ?>'; // decimal separator t = '<?php echo $currency['thousand_point']; ?>'; // thousands separator s_left = '<?php echo $currency['symbol_left']; ?>'; s_right = '<?php echo $currency['symbol_right']; ?>'; n = n * <?php echo $currency['value']; ?>; //sign = (n < 0) ? '-' : ''; //extracting the absolute value of the integer part of the number and converting to string i = parseInt(n = Math.abs(n).toFixed(c)) + ''; j = ((j = i.length) > 3) ? j % 3 : 0; return s_left + (j ? i.substr(0, j) + t : '') + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : '') + s_right; } function calculate_tax(price) { <?php // Process Tax Rates if (isset($tax_rates) && $tax) { foreach ($tax_rates as $tax_rate) { if ($tax_rate['type'] == 'F') { echo 'price += '.$tax_rate['rate'].';'; } elseif ($tax_rate['type'] == 'P') { echo 'price += (price * '.$tax_rate['rate'].') / 100.0;'; } } } ?> return price; } function process_discounts(price, quantity) { <?php foreach ($dicounts_unf as $discount) { echo 'if ((quantity >= '.$discount['quantity'].') && ('.$discount['price'].' < price)) price = '.$discount['price'].';'."\n"; } ?> return price; } animate_delay = 20; main_price_final = calculate_tax(Number($('#formated_price').attr('price'))); main_price_start = calculate_tax(Number($('#formated_price').attr('price'))); main_step = 0; main_timeout_id = 0; function animateMainPrice_callback() { main_price_start += main_step; if ((main_step > 0) && (main_price_start > main_price_final)){ main_price_start = main_price_final; } else if ((main_step < 0) && (main_price_start < main_price_final)) { main_price_start = main_price_final; } else if (main_step == 0) { main_price_start = main_price_final; } $('#formated_price').html( price_format(main_price_start) ); if (main_price_start != main_price_final) { main_timeout_id = setTimeout(animateMainPrice_callback, animate_delay); } } function animateMainPrice(price) { main_price_start = main_price_final; main_price_final = price; main_step = (main_price_final - main_price_start) / 10; clearTimeout(main_timeout_id); main_timeout_id = setTimeout(animateMainPrice_callback, animate_delay); } <?php if ($special) { ?> special_price_final = calculate_tax(Number($('#formated_special').attr('price'))); special_price_start = calculate_tax(Number($('#formated_special').attr('price'))); special_step = 0; special_timeout_id = 0; function animateSpecialPrice_callback() { special_price_start += special_step; if ((special_step > 0) && (special_price_start > special_price_final)){ special_price_start = special_price_final; } else if ((special_step < 0) && (special_price_start < special_price_final)) { special_price_start = special_price_final; } else if (special_step == 0) { special_price_start = special_price_final; } $('#formated_special').html( price_format(special_price_start) ); if (special_price_start != special_price_final) { special_timeout_id = setTimeout(animateSpecialPrice_callback, animate_delay); } } function animateSpecialPrice(price) { special_price_start = special_price_final; special_price_final = price; special_step = (special_price_final - special_price_start) / 10; clearTimeout(special_timeout_id); special_timeout_id = setTimeout(animateSpecialPrice_callback, animate_delay); } <?php } ?> function recalculateprice() { var main_price = Number($('#formated_price').attr('price')); var input_quantity = Number($('input[name="quantity"]').val()); var special = Number($('#formated_special').attr('price')); var tax = 0; if (isNaN(input_quantity)) input_quantity = 0; // Process Discounts. <?php if ($special) { ?> special = process_discounts(special, input_quantity); <?php } else { ?> main_price = process_discounts(main_price, input_quantity); <?php } ?> tax = process_discounts(tax, input_quantity); <?php if ($points) { ?> var points = Number($('#formated_points').attr('points')); $('input:checked,option:selected').each(function() { if ($(this).attr('points')) points += Number($(this).attr('points')); }); $('#formated_points').html(Number(points)); <?php } ?> var option_price = 0; $('input:checked,option:selected').each(function() { if ($(this).attr('price_prefix') == '=') { option_price += Number($(this).attr('price')); main_price = 0; special = 0; } }); $('input:checked,option:selected').each(function() { if ($(this).attr('price_prefix') == '+') { option_price += Number($(this).attr('price')); } if ($(this).attr('price_prefix') == '-') { option_price -= Number($(this).attr('price')); } if ($(this).attr('price_prefix') == 'u') { pcnt = 1.0 + (Number($(this).attr('price')) / 100.0); option_price *= pcnt; main_price *= pcnt; special *= pcnt; } if ($(this).attr('price_prefix') == '*') { option_price *= Number($(this).attr('price')); main_price *= Number($(this).attr('price')); special *= Number($(this).attr('price')); } }); special += option_price; main_price += option_price; <?php if ($special) { ?> tax = special; <?php } else { ?> tax = main_price; <?php } ?> // Process TAX. main_price = calculate_tax(main_price); special = calculate_tax(special); // Раскомментировать, если нужен вывод цены с умножением на количество //main_price *= input_quantity; //special *= input_quantity; //tax *= input_quantity; // Display Main Price //$('#formated_price').html( price_format(main_price) ); animateMainPrice(main_price); <?php if ($special) { ?> //$('#formated_special').html( price_format(special) ); animateSpecialPrice(special); <?php } ?> <?php if ($tax) { ?> $('#formated_tax').html( price_format(tax) ); <?php } ?> } $(document).ready(function() { $('input[type="checkbox"]').bind('change', function() { recalculateprice(); }); $('input[type="radio"]').bind('change', function() { recalculateprice(); }); $('select').bind('change', function() { recalculateprice(); }); $quantity = $('input[name="quantity"]'); $quantity.data('val', $quantity.val()); (function() { if ($quantity.val() != $quantity.data('val')){ $quantity.data('val',$quantity.val()); recalculateprice(); } setTimeout(arguments.callee, 250); })(); recalculateprice(); }); //--></script> <?php echo $footer; ?> Изменено 17 марта 2016 пользователем takecare1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0
takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Забавно - сейчас вообще удалил строчку <h3><?php echo $text_related; ?></h3> - заголовок не пропадает - wtf??? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
hoolygan Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Кеш. Большой камень раздора. Везде кеш чистить нужно. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 ctrl+f5 жму, ничего не меняется Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 Заголовок плывет потому что у Вас не закрыт где-то </div> можно как-то просто определить, где? мож редактор какой-то есть с подсказками? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 (изменено) из папки system/storage/ выпилил product.tpl, стало все ок Изменено 16 марта 2016 пользователем takecare1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
takecare1 Опубликовано: 16 марта 2016 Автор Поделиться Опубликовано: 16 марта 2016 может пояснить пожалуйста кто-то, в каких случай OC берет за основу файлы из system/storage/? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
hoolygan Опубликовано: 16 марта 2016 Поделиться Опубликовано: 16 марта 2016 Во всех случаях. т.е. если они есть - то с модификаций, если нет - то с оригинальных файлов. :-D Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
takecare1 Опубликовано: 17 марта 2016 Автор Поделиться Опубликовано: 17 марта 2016 (изменено) Обнаружил еще такую хрень - если добавить товару #1 в список сопутствующих товар #2, а потом товару #2 присвоить какой-либо товар, то у товара #1 пропадает из сопутствующих товар #2, а второму добавляется еще и #1 в список сопутствующих.Кто-то сталкивался или может знает в чем проблема? под спойлер запилил весь код из 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) { ?> <?php $class = 'col-sm-6'; ?> <?php } elseif ($column_left || $column_right) { ?> <?php $class = 'col-sm-9'; ?> <?php } else { ?> <?php $class = 'col-sm-12'; ?> <?php } ?> <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?> <div class="row"> <?php if ($column_left || $column_right) { ?> <?php $class = 'col-sm-6'; ?> <?php } else { ?> <?php $class = 'col-sm-8'; ?> <?php } ?> <div class="<?php echo $class; ?>"> <?php if ($thumb || $images) { ?> <ul class="thumbnails"> <?php if ($thumb) { ?> <li><a class="thumbnail" href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>"><img src="<?php echo $thumb; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></li> <?php } ?> <?php if ($images) { ?> <?php foreach ($images as $image) { ?> <li class="image-additional"><a class="thumbnail" href="<?php echo $image['popup']; ?>" title="<?php echo $heading_title; ?>"> <img src="<?php echo $image['thumb']; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></li> <?php } ?> <?php } ?> </ul> <?php } ?> <ul class="nav nav-tabs"> <li class="active"><a href="#tab-description" data-toggle="tab"><?php echo $tab_description; ?></a></li> <?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 } ?> </ul> <div class="tab-content"> <div class="tab-pane active" id="tab-description"><?php echo $description; ?></div> <?php if ($attribute_groups) { ?> <div class="tab-pane" id="tab-specification"> <table class="table table-bordered"> <?php foreach ($attribute_groups as $attribute_group) { ?> <thead> <tr> <td colspan="2"><strong><?php echo $attribute_group['name']; ?></strong></td> </tr> </thead> <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 } ?> <?php if ($review_status) { ?> <div class="tab-pane" id="tab-review"> <form class="form-horizontal" id="form-review"> <div id="review"></div> <h2><?php echo $text_write; ?></h2> <?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" class="form-control"></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> <?php echo $entry_bad; ?> <input type="radio" name="rating" value="1" /> <input type="radio" name="rating" value="2" /> <input type="radio" name="rating" value="3" /> <input type="radio" name="rating" value="4" /> <input type="radio" name="rating" value="5" /> <?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 } ?> </form> </div> <?php } ?> </div> </div> <?php if ($column_left || $column_right) { ?> <?php $class = 'col-sm-6'; ?> <?php } else { ?> <?php $class = 'col-sm-4'; ?> <?php } ?> <div class="<?php echo $class; ?>"> <div class="btn-group"> <button type="button" data-toggle="tooltip" class="btn btn-default" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product_id; ?>');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" class="btn btn-default" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product_id; ?>');"><i class="fa fa-exchange"></i></button> </div> <h1><?php echo $heading_title; ?></h1> <ul class="list-unstyled"> <?php if ($manufacturer) { ?> <li><?php echo $text_manufacturer; ?> <a href="<?php echo $manufacturers; ?>"><?php echo $manufacturer; ?></a></li> <?php } ?> <li><?php echo $text_model; ?> <?php echo $model; ?></li> <?php if ($reward) { ?> <li><?php echo $text_reward; ?> <?php echo $reward; ?></li> <?php } ?> <li><?php echo $text_stock; ?> <?php echo $stock; ?></li> </ul> <?php if ($price) { ?> <ul class="list-unstyled"> <?php if (!$special) { ?> <li> <h2><span id="formated_price" price="<?php echo $price_value; ?>"><?php echo $price; ?></span></h2> </li> <?php } else { ?> <li><span style="text-decoration: line-through;"><span id="formated_price" price="<?php echo $price_value; ?>"><?php echo $price; ?></span></span></li> <li> <h2><span id="formated_special" price="<?php echo $special_value; ?>"><?php echo $special; /**/ ?></span></h2> </li> <?php } ?> <?php if ($tax) { ?> <li><?php echo $text_tax; ?> <span id="formated_tax" price="<?php echo $tax_value; ?>"><?php echo $tax; ?></span></li> <?php } ?> <?php if ($points) { ?> <li><?php echo $text_points; ?> <span id="formated_points" points="<?php echo $points; /**/ ?>"><?php echo $points; /**/ ?></span></li> <?php } ?> <?php if ($discounts) { ?> <li> <hr> </li> <?php foreach ($discounts as $discount) { ?> <li><?php echo $discount['quantity']; ?><?php echo $text_discount; ?><?php echo $discount['price']; ?></li> <?php } ?> <?php } ?> </ul> <?php } ?> <div id="product"> <?php if ($options) { ?> <hr> <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" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <select name="option[<?php echo $option['product_option_id']; ?>]" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control"> <?php foreach ($option['product_option_value'] as $option_value) { ?> <option value="<?php echo $option_value['product_option_value_id']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>"><?php echo $option_value['name']; ?> </option> <?php } ?> </select> </div> <?php } ?> <?php if ($option['type'] == 'radio') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <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']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" /> <?php echo $option_value['name']; ?> </label> </div> <?php } ?> </div> </div> <?php } ?> <?php if ($option['type'] == 'checkbox') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <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']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" /> <?php echo $option_value['name']; ?> </label> </div> <?php } ?> </div> </div> <?php } ?> <?php if ($option['type'] == 'image') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <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']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" /> <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']; ?> </label> </div> <?php } ?> </div> </div> <?php } ?> <?php if ($option['type'] == 'text') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php if ($option['type'] == 'textarea') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php if ($option['type'] == 'file') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <button type="button" id="button-upload<?php echo $option['product_option_id']; ?>" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-default btn-block"><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> <?php } ?> <?php if ($option['type'] == 'date') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php if ($option['type'] == 'datetime') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php if ($option['type'] == 'time') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <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> <?php } ?> <?php } ?> <?php } ?> <?php if ($recurrings) { ?> <hr> <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 class="form-group"> <label class="control-label" for="input-quantity"><?php echo $entry_qty; ?></label> <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; ?>" /> <br /> <button type="button" id="button-cart" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-primary btn-lg btn-block"><?php echo $button_cart; ?></button> </div> <?php if ($minimum > 1) { ?> <div class="alert alert-info"><i class="fa fa-info-circle"></i> <?php echo $text_minimum; ?></div> <?php } ?> </div> <?php if ($review_status) { ?> <div class="rating"> <p> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($rating < $i) { ?> <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } else { ?> <span class="fa fa-stack"><i class="fa fa-star fa-stack-1x"></i><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } ?> <?php } ?> <a href="" onclick="$('a[href=\'#tab-review\']').trigger('click'); return false;"><?php echo $reviews; ?></a> / <a href="" onclick="$('a[href=\'#tab-review\']').trigger('click'); return false;"><?php echo $text_write; ?></a></p> <hr> <script type="text/javascript" src="//yastatic.net/es5-shims/0.0.2/es5-shims.min.js" charset="utf-8"></script> <script type="text/javascript" src="//yastatic.net/share2/share.js" charset="utf-8"></script> <div class="ya-share2" data-services="vkontakte,facebook,odnoklassniki,moimir,gplus,twitter,lj"></div><br /> <?php } ?> </div> </div> <?php if ($products) { ?> <h3><?php echo $text_related; ?></h3> <div class="row"> <?php $i = 0; ?> <?php foreach ($products as $product) { ?> <?php if ($column_left && $column_right) { ?> <?php $class = 'col-lg-6 col-md-6 col-sm-12 col-xs-12'; ?> <?php } elseif ($column_left || $column_right) { ?> <?php $class = 'col-lg-4 col-md-4 col-sm-6 col-xs-12'; ?> <?php } else { ?> <?php $class = 'col-lg-3 col-md-3 col-sm-6 col-xs-12'; ?> <?php } ?> <div class="<?php echo $class; ?>"> <div class="product-thumb transition"> <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" class="img-responsive" /></a></div> <div class="caption"> <h4><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></h4> <p><?php echo $product['description']; ?></p> <?php if ($product['rating']) { ?> <div class="rating"> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($product['rating'] < $i) { ?> <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } else { ?> <span class="fa fa-stack"><i class="fa fa-star fa-stack-1x"></i><i class="fa fa-star-o fa-stack-1x"></i></span> <?php } ?> <?php } ?> </div> <?php } ?> <?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="button-group"> <button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span> <i class="fa fa-shopping-cart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-exchange"></i></button> </div> </div> </div> <?php if (($column_left && $column_right) && ($i % 2 == 0)) { ?> <div class="clearfix visible-md visible-sm"></div> <?php } elseif (($column_left || $column_right) && ($i % 3 == 0)) { ?> <div class="clearfix visible-md"></div> <?php } elseif ($i % 4 == 0) { ?> <div class="clearfix visible-md"></div> <?php } ?> <?php $i++; ?> <?php } ?> </div> <?php } ?> <?php if ($tags) { ?> <p><?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 } ?> </p> <?php } ?> <?php echo $content_bottom; ?></div> <?php echo $column_right; ?></div> </div> <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) { $('.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'][i] + '</div>'); } else { element.after('<div class="text-danger">' + json['error']['option'][i] + '</div>'); } } } if (json['error']['recurring']) { $('select[name=\'recurring_id\']').after('<div class="text-danger">' + json['error']['recurring'] + '</div>'); } // Highlight any found errors $('.text-danger').parent().addClass('has-error'); } if (json['success']) { $('.breadcrumb').after('<div class="alert alert-success">' + json['success'] + '<button type="button" class="close" data-dismiss="alert">×</button></div>'); $('#cart > button').html('<i class="fa fa-shopping-cart"></i> ' + json['total']); $('html, body').animate({ scrollTop: 0 }, 'slow'); $('#cart > ul').load('index.php?route=common/cart/info ul li'); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); }); //--></script> <script type="text/javascript"><!-- $('.date').datetimepicker({ pickTime: false }); $('.datetime').datetimepicker({ pickDate: true, pickTime: true }); $('.time').datetimepicker({ pickDate: false }); $('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'); if (typeof timer != 'undefined') { clearInterval(timer); } timer = setInterval(function() { if ($('#form-upload input[name=\'file\']').val() != '') { clearInterval(timer); $.ajax({ url: 'index.php?route=tool/upload', type: 'post', dataType: 'json', data: new FormData($('#form-upload')[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); } }); } }, 500); }); //--></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="fa fa-exclamation-circle"></i> ' + json['error'] + '</div>'); } if (json['success']) { $('#review').after('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + '</div>'); $('input[name=\'name\']').val(''); $('textarea[name=\'text\']').val(''); $('input[name=\'rating\']:checked').prop('checked', false); } } }); }); $(document).ready(function() { $('.thumbnails').magnificPopup({ type:'image', delegate: 'a', gallery: { enabled:true } }); }); //--></script> <script type="text/javascript"><!-- function price_format(n) { c = <?php echo (empty($currency['decimals']) ? "0" : $currency['decimals'] ); ?>; d = '<?php echo $currency['decimal_point']; ?>'; // decimal separator t = '<?php echo $currency['thousand_point']; ?>'; // thousands separator s_left = '<?php echo $currency['symbol_left']; ?>'; s_right = '<?php echo $currency['symbol_right']; ?>'; n = n * <?php echo $currency['value']; ?>; //sign = (n < 0) ? '-' : ''; //extracting the absolute value of the integer part of the number and converting to string i = parseInt(n = Math.abs(n).toFixed(c)) + ''; j = ((j = i.length) > 3) ? j % 3 : 0; return s_left + (j ? i.substr(0, j) + t : '') + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : '') + s_right; } function calculate_tax(price) { <?php // Process Tax Rates if (isset($tax_rates) && $tax) { foreach ($tax_rates as $tax_rate) { if ($tax_rate['type'] == 'F') { echo 'price += '.$tax_rate['rate'].';'; } elseif ($tax_rate['type'] == 'P') { echo 'price += (price * '.$tax_rate['rate'].') / 100.0;'; } } } ?> return price; } function process_discounts(price, quantity) { <?php foreach ($dicounts_unf as $discount) { echo 'if ((quantity >= '.$discount['quantity'].') && ('.$discount['price'].' < price)) price = '.$discount['price'].';'."\n"; } ?> return price; } animate_delay = 20; main_price_final = calculate_tax(Number($('#formated_price').attr('price'))); main_price_start = calculate_tax(Number($('#formated_price').attr('price'))); main_step = 0; main_timeout_id = 0; function animateMainPrice_callback() { main_price_start += main_step; if ((main_step > 0) && (main_price_start > main_price_final)){ main_price_start = main_price_final; } else if ((main_step < 0) && (main_price_start < main_price_final)) { main_price_start = main_price_final; } else if (main_step == 0) { main_price_start = main_price_final; } $('#formated_price').html( price_format(main_price_start) ); if (main_price_start != main_price_final) { main_timeout_id = setTimeout(animateMainPrice_callback, animate_delay); } } function animateMainPrice(price) { main_price_start = main_price_final; main_price_final = price; main_step = (main_price_final - main_price_start) / 10; clearTimeout(main_timeout_id); main_timeout_id = setTimeout(animateMainPrice_callback, animate_delay); } <?php if ($special) { ?> special_price_final = calculate_tax(Number($('#formated_special').attr('price'))); special_price_start = calculate_tax(Number($('#formated_special').attr('price'))); special_step = 0; special_timeout_id = 0; function animateSpecialPrice_callback() { special_price_start += special_step; if ((special_step > 0) && (special_price_start > special_price_final)){ special_price_start = special_price_final; } else if ((special_step < 0) && (special_price_start < special_price_final)) { special_price_start = special_price_final; } else if (special_step == 0) { special_price_start = special_price_final; } $('#formated_special').html( price_format(special_price_start) ); if (special_price_start != special_price_final) { special_timeout_id = setTimeout(animateSpecialPrice_callback, animate_delay); } } function animateSpecialPrice(price) { special_price_start = special_price_final; special_price_final = price; special_step = (special_price_final - special_price_start) / 10; clearTimeout(special_timeout_id); special_timeout_id = setTimeout(animateSpecialPrice_callback, animate_delay); } <?php } ?> function recalculateprice() { var main_price = Number($('#formated_price').attr('price')); var input_quantity = Number($('input[name="quantity"]').val()); var special = Number($('#formated_special').attr('price')); var tax = 0; if (isNaN(input_quantity)) input_quantity = 0; // Process Discounts. <?php if ($special) { ?> special = process_discounts(special, input_quantity); <?php } else { ?> main_price = process_discounts(main_price, input_quantity); <?php } ?> tax = process_discounts(tax, input_quantity); <?php if ($points) { ?> var points = Number($('#formated_points').attr('points')); $('input:checked,option:selected').each(function() { if ($(this).attr('points')) points += Number($(this).attr('points')); }); $('#formated_points').html(Number(points)); <?php } ?> var option_price = 0; $('input:checked,option:selected').each(function() { if ($(this).attr('price_prefix') == '=') { option_price += Number($(this).attr('price')); main_price = 0; special = 0; } }); $('input:checked,option:selected').each(function() { if ($(this).attr('price_prefix') == '+') { option_price += Number($(this).attr('price')); } if ($(this).attr('price_prefix') == '-') { option_price -= Number($(this).attr('price')); } if ($(this).attr('price_prefix') == 'u') { pcnt = 1.0 + (Number($(this).attr('price')) / 100.0); option_price *= pcnt; main_price *= pcnt; special *= pcnt; } if ($(this).attr('price_prefix') == '*') { option_price *= Number($(this).attr('price')); main_price *= Number($(this).attr('price')); special *= Number($(this).attr('price')); } }); special += option_price; main_price += option_price; <?php if ($special) { ?> tax = special; <?php } else { ?> tax = main_price; <?php } ?> // Process TAX. main_price = calculate_tax(main_price); special = calculate_tax(special); // Раскомментировать, если нужен вывод цены с умножением на количество //main_price *= input_quantity; //special *= input_quantity; //tax *= input_quantity; // Display Main Price //$('#formated_price').html( price_format(main_price) ); animateMainPrice(main_price); <?php if ($special) { ?> //$('#formated_special').html( price_format(special) ); animateSpecialPrice(special); <?php } ?> <?php if ($tax) { ?> $('#formated_tax').html( price_format(tax) ); <?php } ?> } $(document).ready(function() { $('input[type="checkbox"]').bind('change', function() { recalculateprice(); }); $('input[type="radio"]').bind('change', function() { recalculateprice(); }); $('select').bind('change', function() { recalculateprice(); }); $quantity = $('input[name="quantity"]'); $quantity.data('val', $quantity.val()); (function() { if ($quantity.val() != $quantity.data('val')){ $quantity.data('val',$quantity.val()); recalculateprice(); } setTimeout(arguments.callee, 250); })(); recalculateprice(); }); //--></script> <?php echo $footer; ?> Изменено 17 марта 2016 пользователем takecare1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Рекомендованные сообщения