winston14 Опубліковано: 23 листопада 2015 Share Опубліковано: 23 листопада 2015 (змінено) Здравствуйте. Столкнулся с такой проблемой как вывод опций в категорию. То есть надо сделать так что бы опции отображались под каждым товаром в категории. Частично я эту проблему решил, опции выводятся но проблема в том, что если задать какой-то фильтр то товары в категории подгружаются с помощью JS кода который выводит только имя и цену товара а опции уже не отображаются. Может кто-то сталкивался с такой проблемой, помогите кто знает. Вот код category.tpl (часть1) <?php echo $header; ?> <div class="breadcrumb"> <?php foreach ($breadcrumbs as $breadcrumb) { ?> <?php echo $breadcrumb['separator']; ?><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a> <?php } ?> </div> <?php echo $column_left; ?><?php echo $column_right; ?> <div id="content"><h1 class="heading-title"><?php echo $heading_title; ?></h1><?php echo $content_top; ?> <?php if ($thumb || $description) { ?> <div class="category-info"> <?php if ($thumb) { ?> <div class="image"><img width="<?php echo $this->journal2->settings->get('config_image_width'); ?>" height="<?php echo $this->journal2->settings->get('config_image_height'); ?>" src="<?php echo $thumb; ?>" alt="<?php echo $heading_title; ?>" /></div> <?php } ?> <?php if ($description) { ?> <?php echo $description; ?> <?php } ?> </div> <?php } ?> <?php if($this->journal2->settings->get('refine_category') === 'grid'): ?> <div class="refine-images"> <?php foreach ($this->journal2->settings->get('refine_category_images', array()) as $category): ?> <div class="refine-image <?php echo Journal2Utils::getProductGridClasses($this->journal2->settings->get('refine_category_images_per_row'), $this->journal2->settings->get('site_width', 1024), $this->journal2->settings->get('config_columns_count')); ?>"> <a href="<?php echo $category['href']; ?>"><img style="display: block" width="<?php echo $this->journal2->settings->get('refine_image_width', 175); ?>" height="<?php echo $this->journal2->settings->get('refine_image_height', 175); ?>" src="<?php echo $category['thumb']; ?>" alt="<?php echo $category['name']; ?>"/><span class="refine-category-name"><?php echo $category['name']; ?></span></a> </div> <?php endforeach; ?> <script> Journal.equalHeight($(".refine-images .refine-image"), '.refine-category-name'); </script> </div> <?php endif; ?> <?php if($this->journal2->settings->get('refine_category') === 'carousel'): ?> <div id="refine-images" class="owl-carousel"> <?php foreach ($this->journal2->settings->get('refine_category_images', array()) as $category): ?> <div class="refine-image"> <a href="<?php echo $category['href']; ?>"><img style="display: block" width="<?php echo $this->journal2->settings->get('refine_image_width', 175); ?>" height="<?php echo $this->journal2->settings->get('refine_image_height', 175); ?>" src="<?php echo $category['thumb']; ?>" alt="<?php echo $category['name']; ?>"/><span class="refine-category-name"><?php echo $category['name']; ?></span></a> </div> <?php endforeach; ?> </div> <?php $grid = Journal2Utils::getItemGrid($this->journal2->settings->get('refine_category_images_per_row'), $this->journal2->settings->get('site_width', 1024), $this->journal2->settings->get('config_columns_count')); $grid = array( array(0, (int)$grid['xs']), array(470, (int)$grid['sm']), array(760, (int)$grid['md']), array(980, (int)$grid['lg']), array(1100, (int)$grid['xl']) ); ?> <script> (function () { var opts = $.parseJSON('<?php echo json_encode($grid); ?>'); jQuery("#refine-images").owlCarousel({ itemsCustom:opts, autoPlay: <?php echo $this->journal2->settings->get('refine_carousel_autoplay') ? '4000' : 'false' ; ?>, touchDrag: <?php echo $this->journal2->settings->get('refine_carousel_touchdrag') ? 'true' : 'false' ; ?>, stopOnHover: <?php echo $this->journal2->settings->get('refine_carousel_pause_on_hover') ? 'true' : 'false'; ?>, navigation:true, scrollPerPage:true, navigationText : false, paginationSpeed:400, margin:13 }); Journal.equalHeight($("#refine-images .refine-image"), '.refine-category-name'); })(); </script> <?php endif; ?> <?php if($this->journal2->settings->get('refine_category') === 'text'): ?> <?php if ($categories) { ?> <h2 class="refine"><?php echo $text_refine; ?></h2> <div class="category-list"> <ul> <?php foreach ($categories as $category) { ?> <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li> <?php } ?> </ul> </div> <?php } ?> <?php endif; ?> <?php if ($products) { ?> <div class="product-filter"> <div class="display"><a onclick="display('grid');" class="grid-view"><?php echo $this->journal2->settings->get("category_grid_view_icon", $text_grid); ?></a><a onclick="display('list');" class="list-view"><?php echo $this->journal2->settings->get("category_list_view_icon", $text_list); ?></a></div> <div class="product-compare"><a href="<?php echo $compare; ?>" id="compare-total"><?php echo $text_compare; ?></a></div> <div class="limit"><b><?php echo $text_limit; ?></b> <select onchange="location = this.value;"> <?php foreach ($limits as $limits) { ?> <?php if ($limits['value'] == $limit) { ?> <option value="<?php echo $limits['href']; ?>" selected="selected"><?php echo $limits['text']; ?></option> <?php } else { ?> <option value="<?php echo $limits['href']; ?>"><?php echo $limits['text']; ?></option> <?php } ?> <?php } ?> </select> </div> <div class="sort"><b><?php echo $text_sort; ?></b> <select onchange="location = this.value;"> <?php foreach ($sorts as $sorts) { ?> <?php if ($sorts['value'] == $sort . '-' . $order) { ?> <option value="<?php echo $sorts['href']; ?>" selected="selected"><?php echo $sorts['text']; ?></option> <?php } else { ?> <option value="<?php echo $sorts['href']; ?>"><?php echo $sorts['text']; ?></option> <?php } ?> <?php } ?> </select> </div> </div> <div class="main-products product-list"> <?php foreach ($products as $product) { ?> <div class=" <?php echo isset($product['labels']) && is_array($product['labels']) && isset($product['labels']['outofstock']) ? 'outofstock' : ''; ?>"> <?php if ($product['thumb']) { ?> <div class="image"> <a href="<?php echo $product['href']; ?>" <?php if(isset($product['thumb2']) && $product['thumb2']): ?> class="has-second-image" style="background: url('<?php echo $product['thumb2']; ?>') no-repeat;" <?php endif; ?>> <img class="lazy first-image" width="<?php echo $this->journal2->settings->get('config_image_width'); ?>" height="<?php echo $this->journal2->settings->get('config_image_height'); ?>" src="<?php echo $this->journal2->settings->get('product_dummy_image'); ?>" data-src="<?php echo $product['thumb']; ?>" title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" /> </a> <?php if (isset($product['labels']) && is_array($product['labels'])): ?> <?php foreach ($product['labels'] as $label => $name): ?> <?php if ($label === 'outofstock'): ?> <img class="outofstock" <?php echo Journal2Utils::getRibbonSize($this->journal2->settings->get('out_of_stock_ribbon_size')); ?> style="position: absolute; top: 0; left: 0" src="<?php echo Journal2Utils::generateRibbon($name, $this->journal2->settings->get('out_of_stock_ribbon_size'), $this->journal2->settings->get('out_of_stock_font_color'), $this->journal2->settings->get('out_of_stock_bg')); ?>" alt="" /> <?php else: ?> <span class="label-<?php echo $label; ?>"><b><?php echo $name; ?></b></span> <?php endif; ?> <?php endforeach; ?> <?php endif; ?> <?php if($this->journal2->settings->get('product_grid_wishlist_icon_position') === 'image' && $this->journal2->settings->get('product_grid_wishlist_icon_display', '') === 'icon'): ?> <div class="wishlist"><a onclick="addToWishList('<?php echo $product['product_id']; ?>');" class="hint--top" data-hint="<?php echo $button_wishlist; ?>"><i class="wishlist-icon"></i><span class="button-wishlist-text"><?php echo $button_wishlist;?></span></a></div> <div class="compare"><a onclick="addToCompare('<?php echo $product['product_id']; ?>');" class="hint--top" data-hint="<?php echo $button_compare; ?>"><i class="compare-icon"></i><span class="button-compare-text"><?php echo $button_compare;?></span></a></div> <?php endif; ?> </div> <?php } else { ?> <div class="image"> <a href="<?php echo $product['href']; ?>"> <img class="first-image" width="<?php echo $this->journal2->settings->get('config_image_width'); ?>" height="<?php echo $this->journal2->settings->get('config_image_height'); ?>" src="<?php echo $this->journal2->settings->get('product_no_image'); ?>" title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" /> </a> <?php if (isset($product['labels']) && is_array($product['labels'])): ?> <?php foreach ($product['labels'] as $label => $name): ?> <?php if ($label === 'outofstock'): ?> <img class="outofstock" <?php echo Journal2Utils::getRibbonSize($this->journal2->settings->get('out_of_stock_ribbon_size')); ?> style="position: absolute; top: 0; left: 0" src="<?php echo Journal2Utils::generateRibbon($name, $this->journal2->settings->get('out_of_stock_ribbon_size'), $this->journal2->settings->get('out_of_stock_font_color'), $this->journal2->settings->get('out_of_stock_bg')); ?>" alt="" /> <?php else: ?> <span class="label-<?php echo $label; ?>"><b><?php echo $name; ?></b></span> <?php endif; ?> <?php endforeach; ?> <?php endif; ?> <?php if($this->journal2->settings->get('product_grid_wishlist_icon_position') === 'image' && $this->journal2->settings->get('product_grid_wishlist_icon_display', '') === 'icon'): ?> <div class="wishlist"><a onclick="addToWishList('<?php echo $product['product_id']; ?>');" class="hint--top" data-hint="<?php echo $button_wishlist; ?>"><i class="wishlist-icon"></i><span class="button-wishlist-text"><?php echo $button_wishlist;?></span></a></div> <div class="compare"><a onclick="addToCompare('<?php echo $product['product_id']; ?>');" class="hint--top" data-hint="<?php echo $button_compare; ?>"><i class="compare-icon"></i><span class="button-compare-text"><?php echo $button_compare;?></span></a></div> <?php endif; ?> </div> <?php } ?> <div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div> <div class="description"><?php echo $product['description']; ?></div> <?php if ($product['price']) { ?> <div class="price"> <?php if (!$product['special']) { ?> <?php echo $product['price']; ?> <?php if ($product['options']) { ?> <div class="options"> <h2><?php echo $text_option; ?></h2> <br /> <?php foreach ($product['options'] as $option) { ?> <?php if ($option['type'] == 'select') { ?> <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> <?php if ($option['required']) { ?> <span class="required">*</span> <?php } ?> <b><?php echo $option['name']; ?>:</b><br /> <select name="option[<?php echo $option['product_option_id']; ?>]"> <option value=""><?php echo $text_select; ?></option> <?php foreach ($option['option_value'] as $option_value) { ?> <option value="<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?> <?php if ($option_value['price']) { ?> (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>) <?php } ?> </option> <?php } ?> </select> </div> <br /> <?php } ?> <?php if ($option['type'] == 'radio') { ?> <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> <?php if ($option['required']) { ?> <span class="required">*</span> <?php } ?> <b><?php echo $option['name']; ?>:</b><br /> <?php foreach ($option['option_value'] as $option_value) { ?> <input type="radio" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" /> <label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?> <?php if ($option_value['price']) { ?> (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>) <?php } ?> </label> <br /> <?php } ?> </div> <br /> <?php } ?> <?php if ($option['type'] == 'checkbox') { ?> <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> <?php if ($option['required']) { ?> <span class="required">*</span> <?php } ?> <b><?php echo $option['name']; ?>:</b><br /> <?php foreach ($option['option_value'] as $option_value) { ?> <input type="checkbox" name="option[<?php echo $option['product_option_id']; ?>][]" value="<?php echo $option_value['product_option_value_id']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" /> <label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?> <?php if ($option_value['price']) { ?> (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>) <?php } ?> </label> <br /> <?php } ?> </div> <br /> <?php } ?> <?php if ($option['type'] == 'image') { ?> <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> <?php if ($option['required']) { ?> <span class="required">*</span> <?php } ?> <b><?php echo $option['name']; ?>:</b><br /> <table class="option-image"> <?php foreach ($option['option_value'] as $option_value) { ?> <tr> <td style="width: 1px;"><input type="radio" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" /></td> <td><label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"><img src="<?php echo $option_value['image']; ?>" alt="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>" /></label></td> <td><label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?> <?php if ($option_value['price']) { ?> (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>) <?php } ?> </label></td> </tr> <?php } ?> </table> </div> <br /> <?php } ?> <?php if ($option['type'] == 'text') { ?> <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> <?php if ($option['required']) { ?> <span class="required">*</span> <?php } ?> <b><?php echo $option['name']; ?>:</b><br /> <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" /> </div> <br /> <?php } ?> <?php if ($option['type'] == 'textarea') { ?> <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> <?php if ($option['required']) { ?> <span class="required">*</span> <?php } ?> <b><?php echo $option['name']; ?>:</b><br /> <textarea name="option[<?php echo $option['product_option_id']; ?>]" cols="40" rows="5"><?php echo $option['option_value']; ?></textarea> </div> <br /> <?php } ?> <?php if ($option['type'] == 'file') { ?> <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> <?php if ($option['required']) { ?> <span class="required">*</span> <?php } ?> <b><?php echo $option['name']; ?>:</b><br /> <a id="button-option-<?php echo $option['product_option_id']; ?>" class="button"><span><?php echo $button_upload; ?></span></a> <input type="hidden" name="option[<?php echo $option['product_option_id']; ?>]" value="" /> </div> <br /> <?php } ?> <?php if ($option['type'] == 'date') { ?> <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> <?php if ($option['required']) { ?> <span class="required">*</span> <?php } ?> <b><?php echo $option['name']; ?>:</b><br /> <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="date" /> </div> <br /> <?php } ?> <?php if ($option['type'] == 'datetime') { ?> <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> <?php if ($option['required']) { ?> <span class="required">*</span> <?php } ?> <b><?php echo $option['name']; ?>:</b><br /> <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="datetime" /> </div> <br /> <?php } ?> <?php if ($option['type'] == 'time') { ?> <div id="option-<?php echo $option['product_option_id']; ?>" class="option"> <?php if ($option['required']) { ?> <span class="required">*</span> <?php } ?> <b><?php echo $option['name']; ?>:</b><br /> <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="time" /> </div> <br /> <?php } ?> <?php } ?> </div> <?php } ?> код category.tpl (часть2) <?php } else { ?> <span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new" <?php echo isset($product['date_end']) && $product['date_end'] ? "data-end-date='{$product['date_end']}'" : ""; ?>><?php echo $product['special']; ?></span> <?php } ?> <?php if ($product['tax']) { ?> <span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span> <?php } ?> </div> <?php } ?> <?php if ($product['rating']) { ?> <div class="rating"><img width="83" height="15" src="<?php echo Journal2Utils::staticAsset("catalog/view/theme/default/image/stars-{$product['rating']}.png"); ?>" alt="<?php echo $product['reviews']; ?>" /></div> <?php } ?> <?php if (Journal2Utils::isEnquiryProduct($this, $product['product_id'])): ?> <div class="cart enquiry-button"> <a href="javascript:Journal.openPopup('<?php echo $this->journal2->settings->get('enquiry_popup_code'); ?>', '<?php echo $product['product_id']; ?>');" data-clk="addToCart('<?php echo $product['product_id']; ?>');" class="button hint--top" data-hint="<?php echo $this->journal2->settings->get('enquiry_button_text'); ?>"><?php echo $this->journal2->settings->get('enquiry_button_icon') . '<span class="button-cart-text">' . $this->journal2->settings->get('enquiry_button_text') . '</span>'; ?></a> </div> <?php else: ?> <div class="cart <?php echo isset($product['labels']) && is_array($product['labels']) && isset($product['labels']['outofstock']) ? 'outofstock' : ''; ?>"> <a onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button hint--top" data-hint="<?php echo $button_cart; ?>"><i class="button-left-icon"></i><span class="button-cart-text"><?php echo $button_cart; ?></span><i class="button-right-icon"></i></a> </div> <?php endif; ?> <div class="wishlist"><a onclick="addToWishList('<?php echo $product['product_id']; ?>');" class="hint--top" data-hint="<?php echo $button_wishlist; ?>"><i class="wishlist-icon"></i><span class="button-wishlist-text"><?php echo $button_wishlist;?></span></a></div> <div class="compare"><a onclick="addToCompare('<?php echo $product['product_id']; ?>');" class="hint--top" data-hint="<?php echo $button_compare; ?>"><i class="compare-icon"></i><span class="button-compare-text"><?php echo $button_compare;?></span></a></div> </div> <?php } ?> </div> <?php if ($this->journal2->settings->get('config_j2sf') === 'on') { ?> <script>if ($(location).attr('hash').replace('#/', '').replace('#', '')) { $('.main-products.product-list').html('<div class="sf-loader"><span><?php echo $this->journal2->settings->get('filter_loading_text'); ?></span></div>'); }</script> <?php } ?> <div class="pagination"><?php echo $pagination; ?></div> <?php } ?> <?php if (!$categories && !$products) { ?> <div class="content"><p class="text-empty"><?php echo $text_empty; ?></p></div> <div class="buttons"> <div class="right"><a href="<?php echo $continue; ?>" class="button"><?php echo $button_continue; ?></a></div> </div> <?php } ?> <?php echo $content_bottom; ?></div> <script type="text/javascript"><!-- function display(view) { if (view == 'list') { $('.main-products.product-grid').attr('class', 'main-products product-list'); $('.display a.grid-view').removeClass('active'); $('.display a.list-view').addClass('active'); $('.main-products.product-list > div').each(function(index, element) { if ($(this).hasClass('sf-loader')) return; $(this).attr('class','product-list-item xs-100 sm-100 md-100 lg-100 xl-100' + ($(this).hasClass('outofstock') ? ' outofstock' : '')).attr('data-respond','start: 150px; end: 300px; interval: 10px;'); var html = ''; html += '<div class="left">'; var image = $(element).find('.image').html(); if (image != null) { html += '<div class="image">' + image + '</div>'; } html += ' <div class="name">' + $(element).find('.name').html() + '</div>'; var price = $(element).find('.price').html(); if (price != null) { html += '<div class="price">' + price + '</div>'; } html += ' <div class="description">' + $(element).find('.description').html() + '</div>'; var rating = $(element).find('.rating').html(); if (rating != null) { html += '<div class="rating">' + rating + '</div>'; } html += '</div>'; html += '<div class="right">'; html += ' <div class="' + $(element).find('.cart').attr('class') + '">' + $(element).find('.cart').html() + '</div>'; html += ' <div class="wishlist">' + $(element).find('.wishlist').html() + '</div>'; html += ' <div class="compare">' + $(element).find('.compare').html() + '</div>'; html += '</div>'; $(element).html(html); }); $.totalStorage('display', 'list'); } else { $('.main-products.product-list').attr('class', 'main-products product-grid'); $('.display a.grid-view').addClass('active'); $('.display a.list-view').removeClass('active'); $('.main-products.product-grid > div').each(function(index, element) { if ($(this).hasClass('sf-loader')) return; $(this).attr('class',"product-grid-item <?php echo $this->journal2->settings->get('product_grid_classes'); ?> display-<?php echo $this->journal2->settings->get('product_grid_wishlist_icon_display'); ?> <?php echo $this->journal2->settings->get('product_grid_button_block_button'); ?>" + ($(this).hasClass('outofstock') ? ' outofstock' : '')); var html = ''; var image = $(element).find('.image').html(); if (image != null) { html += '<div class="image">' + image + '</div>'; } html += '<div class="product-details">'; html += '<div class="name">' + $(element).find('.name').html() + '</div>'; html += '<div class="description">' + $(element).find('.description').html() + '</div>'; var price = $(element).find('.price').html(); var options = $(element).find('.product_option_id').html(); if (price != null) { html += '<div class="price">' + price + '</div>'; } var rating = $(element).find('.rating').html(); if (rating != null) { html += '<div class="rating">' + rating + '</div>'; } html += '<hr>'; html += '<div class="' + $(element).find('.cart').attr('class') + '">' + $(element).find('.cart').html() + '</div>'; html += '<div class="wishlist">' + $(element).find('.cart + .wishlist').html() + '</div>'; html += '<div class="compare">' + $(element).find('.cart + .wishlist + .compare').html() + '</div>'; html += '</div>'; $(element).html('<div class="product-wrapper">'+html+'</div>'); }); $.totalStorage('display', 'grid'); } $(window).trigger('list_grid_change'); Journal.itemsEqualHeight(); Journal.equalHeight($(".main-products .product-wrapper"), '.description'); $(".main-products img.lazy").lazy({ bind: 'event', visibleOnly: false, effect: "fadeIn", effectTime: 250 }); <?php /* enable quickview */ ?> <?php if ($this->journal2->settings->get('quickview_status') == '1' && !Journal2Cache::$mobile_detect->isMobile() && !Journal2Cache::$mobile_detect->isTablet() && !$this->journal2->html_classes->hasClass("ie8")): ?> Journal.enableQuickView(); Journal.quickViewStatus = true; <?php else: ?> Journal.quickViewStatus = false; <?php endif; ?> <?php /* enable countdown */ ?> <?php if ($this->journal2->settings->get('show_countdown', 'never') !== 'never'): ?> $('.main-products > div').each(function () { var $new = $(this).find('.price-new'); if ($new.length && $new.attr('data-end-date')) { $(this).find('.image').append('<div class="countdown"></div>'); } Journal.countdown($(this).find('.countdown'), $new.attr('data-end-date')); }); <?php endif; ?> } view = $.totalStorage('display'); if (view) { display(view); } else { display('<?php echo $this->journal2->settings->get("product_view", "grid"); ?>'); } //--></script> <?php echo $footer; ?> и category.php <?php class ControllerProductCategory extends Controller { public function index() { $this->language->load('product/category'); $this->load->model('catalog/category'); $this->load->model('catalog/product'); $this->load->model('tool/image'); if (isset($this->request->get['filter'])) { $filter = $this->request->get['filter']; } else { $filter = ''; } if (isset($this->request->get['sort'])) { $sort = $this->request->get['sort']; } else { $sort = 'p.sort_order'; } if (isset($this->request->get['order'])) { $order = $this->request->get['order']; } else { $order = 'ASC'; } if (isset($this->request->get['page'])) { $page = $this->request->get['page']; } else { $page = 1; } if (isset($this->request->get['limit'])) { $limit = $this->request->get['limit']; } else { $limit = $this->config->get('config_catalog_limit'); } $this->data['breadcrumbs'] = array(); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home'), 'separator' => false ); if (isset($this->request->get['path'])) { $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $path = ''; $parts = explode('_', (string)$this->request->get['path']); $category_id = (int)array_pop($parts); foreach ($parts as $path_id) { if (!$path) { $path = (int)$path_id; } else { $path .= '_' . (int)$path_id; } $category_info = $this->model_catalog_category->getCategory($path_id); if ($category_info) { $this->data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $path . $url), 'separator' => $this->language->get('text_separator') ); } } } else { $category_id = 0; } $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { $this->document->setTitle($category_info['name']); $this->document->setDescription($category_info['meta_description']); $this->document->setKeywords($category_info['meta_keyword']); $this->document->addScript('catalog/view/javascript/jquery/jquery.total-storage.min.js'); $this->data['heading_title'] = $category_info['name']; $this->data['text_refine'] = $this->language->get('text_refine'); $this->data['text_empty'] = $this->language->get('text_empty'); $this->data['text_quantity'] = $this->language->get('text_quantity'); $this->data['text_manufacturer'] = $this->language->get('text_manufacturer'); $this->data['text_model'] = $this->language->get('text_model'); $this->data['text_price'] = $this->language->get('text_price'); $this->data['text_tax'] = $this->language->get('text_tax'); $this->data['text_points'] = $this->language->get('text_points'); $this->data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0)); $this->data['text_display'] = $this->language->get('text_display'); $this->data['text_list'] = $this->language->get('text_list'); $this->data['text_grid'] = $this->language->get('text_grid'); $this->data['text_sort'] = $this->language->get('text_sort'); $this->data['text_limit'] = $this->language->get('text_limit'); $this->data['button_cart'] = $this->language->get('button_cart'); $this->data['button_wishlist'] = $this->language->get('button_wishlist'); $this->data['button_compare'] = $this->language->get('button_compare'); $this->data['button_continue'] = $this->language->get('button_continue'); // Set the last category breadcrumb $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path']), 'separator' => $this->language->get('text_separator') ); if ($category_info['image']) { $this->data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height')); } else { $this->data['thumb'] = ''; } $this->data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8'); $this->data['compare'] = $this->url->link('product/compare'); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['categories'] = array(); $results = $this->model_catalog_category->getCategories($category_id); foreach ($results as $result) { $data = array( 'filter_category_id' => $result['category_id'], 'filter_sub_category' => true ); $product_total = $this->model_catalog_product->getTotalProducts($data); $this->data['categories'][] = array( 'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url) ); } $this->data['products'] = array(); $data = array( 'filter_category_id' => $category_id, 'filter_filter' => $filter, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $product_total = $this->model_catalog_product->getTotalProducts($data); $results = $this->model_catalog_product->getProducts($data); foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } else { $image = false; } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } $product_options = array(); foreach ($this->model_catalog_product->getProductOptions($result['product_id']) as $option) { if ($option['type'] == 'select' || $option['type'] == 'radio' || $option['type'] == 'checkbox') { $option_value_data = array(); foreach ($option['option_value'] as $option_value) { if (!$option_value['subtract'] || ($option_value['quantity'] > 0)) { $option_value_data[] = array( 'product_option_value_id' => $option_value['product_option_value_id'], 'option_value_id' => $option_value['option_value_id'], 'name' => $option_value['name'], 'price' => (float)$option_value['price'] ? $this->currency->format($this->tax->calculate($option_value['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))) : false, 'price_prefix' => $option_value['price_prefix'] ); } } $product_options[] = array( 'product_option_id' => $option['product_option_id'], 'option_id' => $option['option_id'], 'name' => $option['name'], 'type' => $option['type'], 'option_value' => $option_value_data, 'required' => $option['required'] ); } elseif ($option['type'] == 'text' || $option['type'] == 'textarea' || $option['type'] == 'file' || $option['type'] == 'date' || $option['type'] == 'datetime' || $option['type'] == 'time') { $product_options[] = array( 'product_option_id' => $option['product_option_id'], 'option_id' => $option['option_id'], 'name' => $option['name'], 'type' => $option['type'], 'option_value' => $option['option_value'], 'required' => $option['required'] ); } } $this->data['products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, 'name' => $result['name'], 'model' => $result['model'], 'options' => $product_options, 'description' => $descr_plaintext, 'price' => $price, 'special' => $special, 'tax' => $tax, 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id']) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['sorts'] = array(); $this->data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $url) ); if ($this->config->get('config_review_status')) { $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $url) ); } $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $url) ); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $this->data['limits'] = array(); $limits = array_unique(array($this->config->get('config_catalog_limit'), 25, 50, 75, 100)); sort($limits); foreach($limits as $value){ $this->data['limits'][] = array( 'text' => $value, 'value' => $value, 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=' . $value) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->text = $this->language->get('text_pagination'); $pagination->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&page={page}'); $this->data['pagination'] = $pagination->render(); $this->data['sort'] = $sort; $this->data['order'] = $order; $this->data['limit'] = $limit; $this->data['continue'] = $this->url->link('common/home'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/category.tpl')) { $this->template = $this->config->get('config_template') . '/template/product/category.tpl'; } else { $this->template = 'default/template/product/category.tpl'; } $this->children = array( 'common/column_left', 'common/column_right', 'common/content_top', 'common/content_bottom', 'common/footer', 'common/header' ); $this->response->setOutput($this->render()); } else { $url = ''; if (isset($this->request->get['path'])) { $url .= '&path=' . $this->request->get['path']; } if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_error'), 'href' => $this->url->link('product/category', $url), 'separator' => $this->language->get('text_separator') ); $this->document->setTitle($this->language->get('text_error')); $this->data['heading_title'] = $this->language->get('text_error'); $this->data['text_error'] = $this->language->get('text_error'); $this->data['button_continue'] = $this->language->get('button_continue'); $this->data['continue'] = $this->url->link('common/home'); $this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . '/1.1 404 Not Found'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/error/not_found.tpl')) { $this->template = $this->config->get('config_template') . '/template/error/not_found.tpl'; } else { $this->template = 'default/template/error/not_found.tpl'; } $this->children = array( 'common/column_left', 'common/column_right', 'common/content_top', 'common/content_bottom', 'common/footer', 'common/header' ); $this->response->setOutput($this->render()); } } } ?> Змінено 23 листопада 2015 користувачем shoputils spoiler Надіслати Поділитися на інших сайтах More sharing options...
devrvk Опубліковано: 23 листопада 2015 Share Опубліковано: 23 листопада 2015 А где JS код? Который выводит только Имя и цену. Надіслати Поділитися на інших сайтах More sharing options... winston14 Опубліковано: 23 листопада 2015 Автор Share Опубліковано: 23 листопада 2015 (змінено) А где JS код? Который выводит только Имя и цену. <script type="text/javascript"><!-- function display(view) { if (view == 'list') { $('.main-products.product-grid').attr('class', 'main-products product-list'); $('.display a.grid-view').removeClass('active'); $('.display a.list-view').addClass('active'); $('.main-products.product-list > div').each(function(index, element) { if ($(this).hasClass('sf-loader')) return; $(this).attr('class','product-list-item xs-100 sm-100 md-100 lg-100 xl-100' + ($(this).hasClass('outofstock') ? ' outofstock' : '')).attr('data-respond','start: 150px; end: 300px; interval: 10px;'); var html = ''; html += '<div class="left">'; var image = $(element).find('.image').html(); if (image != null) { html += '<div class="image">' + image + '</div>'; } html += ' <div class="name">' + $(element).find('.name').html() + '</div>'; var price = $(element).find('.price').html(); if (price != null) { html += '<div class="price">' + price + '</div>'; } html += ' <div class="description">' + $(element).find('.description').html() + '</div>'; var rating = $(element).find('.rating').html(); if (rating != null) { html += '<div class="rating">' + rating + '</div>'; } html += '</div>'; html += '<div class="right">'; html += ' <div class="' + $(element).find('.cart').attr('class') + '">' + $(element).find('.cart').html() + '</div>'; html += ' <div class="wishlist">' + $(element).find('.wishlist').html() + '</div>'; html += ' <div class="compare">' + $(element).find('.compare').html() + '</div>'; html += '</div>'; $(element).html(html); }); $.totalStorage('display', 'list'); } else { $('.main-products.product-list').attr('class', 'main-products product-grid'); $('.display a.grid-view').addClass('active'); $('.display a.list-view').removeClass('active'); $('.main-products.product-grid > div').each(function(index, element) { if ($(this).hasClass('sf-loader')) return; $(this).attr('class',"product-grid-item <?php echo $this->journal2->settings->get('product_grid_classes'); ?> display-<?php echo $this->journal2->settings->get('product_grid_wishlist_icon_display'); ?> <?php echo $this->journal2->settings->get('product_grid_button_block_button'); ?>" + ($(this).hasClass('outofstock') ? ' outofstock' : '')); var html = ''; var image = $(element).find('.image').html(); if (image != null) { html += '<div class="image">' + image + '</div>'; } html += '<div class="product-details">'; html += '<div class="name">' + $(element).find('.name').html() + '</div>'; html += '<div class="description">' + $(element).find('.description').html() + '</div>'; var price = $(element).find('.price').html(); if (price != null) { html += '<div class="price">' + price + '</div>'; } var rating = $(element).find('.rating').html(); if (rating != null) { html += '<div class="rating">' + rating + '</div>'; } html += '<hr>'; html += '<div class="' + $(element).find('.cart').attr('class') + '">' + $(element).find('.cart').html() + '</div>'; html += '<div class="wishlist">' + $(element).find('.cart + .wishlist').html() + '</div>'; html += '<div class="compare">' + $(element).find('.cart + .wishlist + .compare').html() + '</div>'; html += '</div>'; $(element).html('<div class="product-wrapper">'+html+'</div>'); }); $.totalStorage('display', 'grid'); } $(window).trigger('list_grid_change'); Journal.itemsEqualHeight(); Journal.equalHeight($(".main-products .product-wrapper"), '.description'); $(".main-products img.lazy").lazy({ bind: 'event', visibleOnly: false, effect: "fadeIn", effectTime: 250 }); <?php /* enable quickview */ ?> <?php if ($this->journal2->settings->get('quickview_status') == '1' && !Journal2Cache::$mobile_detect->isMobile() && !Journal2Cache::$mobile_detect->isTablet() && !$this->journal2->html_classes->hasClass("ie8")): ?> Journal.enableQuickView(); Journal.quickViewStatus = true; <?php else: ?> Journal.quickViewStatus = false; <?php endif; ?> <?php /* enable countdown */ ?> <?php if ($this->journal2->settings->get('show_countdown', 'never') !== 'never'): ?> $('.main-products > div').each(function () { var $new = $(this).find('.price-new'); if ($new.length && $new.attr('data-end-date')) { $(this).find('.image').append('<div class="countdown"></div>'); } Journal.countdown($(this).find('.countdown'), $new.attr('data-end-date')); }); <?php endif; ?> } view = $.totalStorage('display'); if (view) { display(view); } else { display('<?php echo $this->journal2->settings->get("product_view", "grid"); ?>'); } //--></script> Змінено 23 листопада 2015 користувачем winston14 Надіслати Поділитися на інших сайтах More sharing options... devrvk Опубліковано: 23 листопада 2015 Share Опубліковано: 23 листопада 2015 Хм... html += ' <div class="options">' + $(element).find('.options').html() + '</div>'; Не? Я могу ошибаться.. Надіслати Поділитися на інших сайтах More sharing options... winston14 Опубліковано: 23 листопада 2015 Автор Share Опубліковано: 23 листопада 2015 Результат "undefined" Если я не ошибаюсь то это значит что функция не имеет никакого значения. Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 26 листопада 2015 Share Опубліковано: 26 листопада 2015 devrvk, ты всегда выкладываешь полностью код сторонних (да еще и платных) модулей, когда пишешь сообщения на форуме?.. Надіслати Поділитися на інших сайтах More sharing options... devrvk Опубліковано: 26 листопада 2015 Share Опубліковано: 26 листопада 2015 Прошу прощения, реально провтыкал...больше не буду... Надіслати Поділитися на інших сайтах More sharing options... halfhope Опубліковано: 27 листопада 2015 Share Опубліковано: 27 листопада 2015 В контроллер фильтра еще добавить получение опций нужно по аналогии с категориями. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Вывод опций в каталог Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення UpStore – адаптивний універсальний шаблон + Швидкий Старт Автор: 29aleksey SP WAREZ CHECKER - перевірка на піратські та шкідливі модулі (with warez.rip) Автор: spectre Деталі замовлення на сторінці подяки Автор: kJlukOo Вивантаження замовлень у XML Автор: DobriyEvgeniy Octostore - адаптивний, універтальний та продуманий шаблон для Opencart/OcStore Автор: MonstroDesign × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
winston14 Опубліковано: 23 листопада 2015 Автор Share Опубліковано: 23 листопада 2015 (змінено) А где JS код? Который выводит только Имя и цену. <script type="text/javascript"><!-- function display(view) { if (view == 'list') { $('.main-products.product-grid').attr('class', 'main-products product-list'); $('.display a.grid-view').removeClass('active'); $('.display a.list-view').addClass('active'); $('.main-products.product-list > div').each(function(index, element) { if ($(this).hasClass('sf-loader')) return; $(this).attr('class','product-list-item xs-100 sm-100 md-100 lg-100 xl-100' + ($(this).hasClass('outofstock') ? ' outofstock' : '')).attr('data-respond','start: 150px; end: 300px; interval: 10px;'); var html = ''; html += '<div class="left">'; var image = $(element).find('.image').html(); if (image != null) { html += '<div class="image">' + image + '</div>'; } html += ' <div class="name">' + $(element).find('.name').html() + '</div>'; var price = $(element).find('.price').html(); if (price != null) { html += '<div class="price">' + price + '</div>'; } html += ' <div class="description">' + $(element).find('.description').html() + '</div>'; var rating = $(element).find('.rating').html(); if (rating != null) { html += '<div class="rating">' + rating + '</div>'; } html += '</div>'; html += '<div class="right">'; html += ' <div class="' + $(element).find('.cart').attr('class') + '">' + $(element).find('.cart').html() + '</div>'; html += ' <div class="wishlist">' + $(element).find('.wishlist').html() + '</div>'; html += ' <div class="compare">' + $(element).find('.compare').html() + '</div>'; html += '</div>'; $(element).html(html); }); $.totalStorage('display', 'list'); } else { $('.main-products.product-list').attr('class', 'main-products product-grid'); $('.display a.grid-view').addClass('active'); $('.display a.list-view').removeClass('active'); $('.main-products.product-grid > div').each(function(index, element) { if ($(this).hasClass('sf-loader')) return; $(this).attr('class',"product-grid-item <?php echo $this->journal2->settings->get('product_grid_classes'); ?> display-<?php echo $this->journal2->settings->get('product_grid_wishlist_icon_display'); ?> <?php echo $this->journal2->settings->get('product_grid_button_block_button'); ?>" + ($(this).hasClass('outofstock') ? ' outofstock' : '')); var html = ''; var image = $(element).find('.image').html(); if (image != null) { html += '<div class="image">' + image + '</div>'; } html += '<div class="product-details">'; html += '<div class="name">' + $(element).find('.name').html() + '</div>'; html += '<div class="description">' + $(element).find('.description').html() + '</div>'; var price = $(element).find('.price').html(); if (price != null) { html += '<div class="price">' + price + '</div>'; } var rating = $(element).find('.rating').html(); if (rating != null) { html += '<div class="rating">' + rating + '</div>'; } html += '<hr>'; html += '<div class="' + $(element).find('.cart').attr('class') + '">' + $(element).find('.cart').html() + '</div>'; html += '<div class="wishlist">' + $(element).find('.cart + .wishlist').html() + '</div>'; html += '<div class="compare">' + $(element).find('.cart + .wishlist + .compare').html() + '</div>'; html += '</div>'; $(element).html('<div class="product-wrapper">'+html+'</div>'); }); $.totalStorage('display', 'grid'); } $(window).trigger('list_grid_change'); Journal.itemsEqualHeight(); Journal.equalHeight($(".main-products .product-wrapper"), '.description'); $(".main-products img.lazy").lazy({ bind: 'event', visibleOnly: false, effect: "fadeIn", effectTime: 250 }); <?php /* enable quickview */ ?> <?php if ($this->journal2->settings->get('quickview_status') == '1' && !Journal2Cache::$mobile_detect->isMobile() && !Journal2Cache::$mobile_detect->isTablet() && !$this->journal2->html_classes->hasClass("ie8")): ?> Journal.enableQuickView(); Journal.quickViewStatus = true; <?php else: ?> Journal.quickViewStatus = false; <?php endif; ?> <?php /* enable countdown */ ?> <?php if ($this->journal2->settings->get('show_countdown', 'never') !== 'never'): ?> $('.main-products > div').each(function () { var $new = $(this).find('.price-new'); if ($new.length && $new.attr('data-end-date')) { $(this).find('.image').append('<div class="countdown"></div>'); } Journal.countdown($(this).find('.countdown'), $new.attr('data-end-date')); }); <?php endif; ?> } view = $.totalStorage('display'); if (view) { display(view); } else { display('<?php echo $this->journal2->settings->get("product_view", "grid"); ?>'); } //--></script> Змінено 23 листопада 2015 користувачем winston14 Надіслати Поділитися на інших сайтах More sharing options...
devrvk Опубліковано: 23 листопада 2015 Share Опубліковано: 23 листопада 2015 Хм... html += ' <div class="options">' + $(element).find('.options').html() + '</div>'; Не? Я могу ошибаться.. Надіслати Поділитися на інших сайтах More sharing options... winston14 Опубліковано: 23 листопада 2015 Автор Share Опубліковано: 23 листопада 2015 Результат "undefined" Если я не ошибаюсь то это значит что функция не имеет никакого значения. Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 26 листопада 2015 Share Опубліковано: 26 листопада 2015 devrvk, ты всегда выкладываешь полностью код сторонних (да еще и платных) модулей, когда пишешь сообщения на форуме?.. Надіслати Поділитися на інших сайтах More sharing options... devrvk Опубліковано: 26 листопада 2015 Share Опубліковано: 26 листопада 2015 Прошу прощения, реально провтыкал...больше не буду... Надіслати Поділитися на інших сайтах More sharing options... halfhope Опубліковано: 27 листопада 2015 Share Опубліковано: 27 листопада 2015 В контроллер фильтра еще добавить получение опций нужно по аналогии с категориями. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Вывод опций в каталог Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення UpStore – адаптивний універсальний шаблон + Швидкий Старт Автор: 29aleksey SP WAREZ CHECKER - перевірка на піратські та шкідливі модулі (with warez.rip) Автор: spectre Деталі замовлення на сторінці подяки Автор: kJlukOo Вивантаження замовлень у XML Автор: DobriyEvgeniy Octostore - адаптивний, універтальний та продуманий шаблон для Opencart/OcStore Автор: MonstroDesign
winston14 Опубліковано: 23 листопада 2015 Автор Share Опубліковано: 23 листопада 2015 Результат "undefined" Если я не ошибаюсь то это значит что функция не имеет никакого значения. Надіслати Поділитися на інших сайтах More sharing options...
afwollis Опубліковано: 26 листопада 2015 Share Опубліковано: 26 листопада 2015 devrvk, ты всегда выкладываешь полностью код сторонних (да еще и платных) модулей, когда пишешь сообщения на форуме?.. Надіслати Поділитися на інших сайтах More sharing options... devrvk Опубліковано: 26 листопада 2015 Share Опубліковано: 26 листопада 2015 Прошу прощения, реально провтыкал...больше не буду... Надіслати Поділитися на інших сайтах More sharing options... halfhope Опубліковано: 27 листопада 2015 Share Опубліковано: 27 листопада 2015 В контроллер фильтра еще добавить получение опций нужно по аналогии с категориями. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Вывод опций в каталог
devrvk Опубліковано: 26 листопада 2015 Share Опубліковано: 26 листопада 2015 Прошу прощения, реально провтыкал...больше не буду... Надіслати Поділитися на інших сайтах More sharing options... halfhope Опубліковано: 27 листопада 2015 Share Опубліковано: 27 листопада 2015 В контроллер фильтра еще добавить получение опций нужно по аналогии с категориями. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
halfhope Опубліковано: 27 листопада 2015 Share Опубліковано: 27 листопада 2015 В контроллер фильтра еще добавить получение опций нужно по аналогии с категориями. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
Recommended Posts