Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

megrel

Користувачі
  
  • Публікації

    189
  • З нами

  • Відвідування

Повідомлення, опубліковані користувачем megrel

  1. Решил проблему следующим образом:
    1) Обернул обычный артикул

    <span id="formated_sku" sku="<?php echo $sku; ?>"><?php echo $sku; ?></span>
    

    2) Меняем <option>

    <option data-sku="<?php echo $option_value['o_sku'];?> " value="<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
    

    3) В autocalc_price_option_v2.0.18.xml добавил

    $('#formated_sku').html( $('select option').first().attr('data-sku') );
      
    $('select').change(function(){ 
    $(this).children('option:selected').each(function(){
        if( $(this).attr('data-sku') != "  " ){
        $('#formated_sku').html($(this).attr('data-sku')) 
         }else{
         $('#formated_sku').html( $('#formated_sku').attr('sku') );
         }
      })
    })
    

    Если кому пригодится данное решение, то артикулы для опций выводил на основе этого решения. Вывод на фронт допиливал сам.

  2. Спасибо за разъяснения. Но по моему вы тоже где-то опечатались)

    sku - артикул товара

    o_sku - артикул опции товара

     

    Что у меня получилось:

    1) Обернул обычный артикул

    <span id="formated_sku" sku="<?php echo $sku; ?>"><?php echo $sku; ?></span>
    

    2) <option> получился такой

    <option sku="<?php echo $option_value['o_sku']; ?>" value="<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
    

    3) В autocalc_price_option_v2.0.18.xml после <script type="text/javascript"><!-- добавил

    var sku = $('#formated_sku').attr('sku');
        
        $('.option input:checked,option:selected').each(function() {
           if ($(this).attr('sku') != '') {
            sku = $(this).attr('sku');
          }
        });
        $('#formated_sku').html(sku);
    

    Кажется в скрипте надо где-то sku на o_sku поменять...

    Такой вариант не завелся

  3. Вывел артикулы для опций. Но не получается теперь их отформатировать. Кусок опции из product.tpl:

    <b><?php echo $option['name']; ?>:</b>
              
              <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 echo $option_value['o_sku']; ?>
                
                <?php if ($option_value['price']) { ?>
                (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                <?php } ?>
                </option>
                <?php } ?>
              </select>
    

    Задача в том, чтобы при выборе опции, артикул опции заменял опцию товара. Но столкнулся с тем, что "o_sku" даже класс не задать. Все из-за <option>, стирает все теги.

    Кто знает выход из ситуации?

  4. Выделяешь в файле category.tpl то, что скинули вышле -> Вырезаешь - > Вставляешь перед  этим

    <?php if (!$categories && !$products) { ?>
      <div class="content"><?php echo $text_empty; ?></div>
    

    Должно получиться так внизу

      <?php if ($thumb || $description) { ?>
      <div class="category-info">
        <?php if ($thumb) { ?>
        <div class="image"><img src="<?php echo $thumb; ?>" alt="<?php echo $heading_title; ?>" /></div>
        <?php } ?>
        <?php if ($description) { ?>
        <?php echo $description; ?>
        <?php } ?>
      </div>
      <?php } ?>
    
      <?php if (!$categories && !$products) { ?>
      <div class="content"><?php echo $text_empty; ?></div>
      <?php } ?>
      <?php echo $content_bottom; ?></div>
    
    <?php echo $footer; ?>
    
  5. Смысл делать клон, когда есть решение гораздо проще, через проверку текущей страницы. Всегда так делаю со всеми модулями, очень удобно и просто.

  6. Попробуйте так

    <div class="header_category col-sm-3 col-xs-12">
    <div id="boss-menu-category" class="box">
      <div class="boss_heading"><div class="box-heading"><i class="fa fa-align-justify"></i><span><?php echo $heading_title; ?></span></div></div>
      <div class="box-content">
        <ul class="box-category boss-menu-cate">
    	<?php if(isset($menus) && !empty($menus)){ ?>
          <?php $i=1; foreach($menus as $menu){ ?>
    		<li <?php if($i>$alway_show) echo 'class="b_menucategory_hidde"';?>>
    			<div class="nav_title">
    				<img alt="<?php echo $menu['title']; ?>" src="<?php echo $menu['icon']; ?>" />
    				<a class="title" href="<?php echo $menu['href']; ?>"><?php echo $menu['title']; ?><?php if ($menu['categories']){ ?><i class="fa fa-caret-right"></i><?php } ?></a>
    			</div>
    		</li>
    	  <?php $i++; } ?>
    	  <?php } ?>
    		<?php if(count($menus) > $alway_show){ ?>
    		<li class="menu_loadmore">
    		<div class="nav_title">			
    			<a class="more title" href="javascript:void(0)"><i class="fa fa-plus-square-o"></i><?php echo $text_more_category;?></a>
    		</div>
    		</li>
    		<li class="menu_loadmore_hidden">
    		<div class="nav_title">			
    			<a class="more title" href="javascript:void(0)"><i class="fa fa-minus-square-o"></i><?php echo $text_more_category_hidden;?></a>
    		</div>
    		</li> 
    		<?php } ?>
        </ul>
      </div>
      <script type="text/javascript"><!--
    	jQuery(document).ready(function($) {
    		loadtopmenu();
    	});
    	$("#boss-menu-category .boss_heading").click(function(){
    		$('#boss-menu-category').toggleClass('opencate');
    		loadtopmenu();
    	});
    	function loadtopmenu(){
    		var menuheight = $('#boss-menu-category .box-content').outerHeight();
    		var topcate = $('#boss-menu-category').offset().top;
    		$('.boss-menu-cate .nav_title').each(function(index, element) {
    			var liheight = $(this).outerHeight();
    			var subheight = $(this).next('.nav_submenu').outerHeight();
    			var topheight = $(this).offset().top - topcate -55;
    			/*if((subheight < menuheight)&&(subheight < topheight)){
    				var bottomh = topheight - subheight + liheight + 14;
    				$(this).next('.nav_submenu').css('top', bottomh + 'px');
    			}else{
    				$(this).next('.nav_submenu').css('top', '-1px');
    			}*/
    		});
    	}
    	$('.b_menucategory_hidde, .menu_loadmore_hidden').hide();
    	$('.menu_loadmore').click(function(){
    		$( '.b_menucategory_hidde' ).slideToggle( "normal", function() {
    			$('.menu_loadmore').hide();
    			$('.menu_loadmore_hidden').show();
    		});
    		
    	});
    	$('.menu_loadmore_hidden').click(function(){
    		$( '.b_menucategory_hidde' ).slideToggle( "normal", function() {
    			$('.menu_loadmore').show();
    			$('.menu_loadmore_hidden').hide();
    		});
    		
    	});
    	
    
      //--></script>
    </div>
    </div>
    
    
    <?php if(isset($menu_fixed) && $menu_fixed){ ?>
    <div class="header_category menucategory-fixed">
    <div id="boss-menu-category-fixed" class="box">
      <div class="boss_heading"><div class="box-heading"><i class="fa fa-align-justify"></i><span><?php echo $heading_title; ?></span></div></div>
      <div class="box-content">
        <ul class="box-category boss-menu-cate">
    	<?php if(isset($menus) && !empty($menus)){ ?>
          <?php $i=0; foreach($menus as $menu){ ?>
    		<?php if($i<$alway_show){ ?>
    		<?php $half = round(($alway_show/2), 0, PHP_ROUND_HALF_UP); ?>
    		<li <?php if($i>$half) echo 'class="dropdown_up"';?>>
    			<div class="bt-icon"><img alt="<?php echo $menu['title']; ?>" src="<?php echo $menu['icon']; ?>" /></div>				
    			
    			<div class="parent_dropdown">
    			<a class="title" href="<?php echo $menu['href']; ?>"><?php echo $menu['title']; ?><?php if ($menu['categories']){ ?><i class="fa fa-caret-right"></i><?php } ?></a>
    
    			</div>
    		</li>
    		<?php } ?>
    	  <?php $i++; } ?>
    	  <?php } ?>
        </ul>
      </div>
    <script type="text/javascript"><!--
    	// show all the icon when click ICON CATEGORY
    	$("#boss-menu-category-fixed .boss_heading").click(function(){
    		// save cookie
    		localStorage.setItem('opencate', $(".menucategory-fixed>div").hasClass("opencate").toString());
    		$('#boss-menu-category-fixed').toggleClass('opencate');	
    	});		
    	
    	// show icon when scroll
    	$(window).scroll(function() {
    		var height_header = $('#top').height() + $('header').height() + $('.boss-new-position').height();  
    		if($(window).scrollTop() > height_header) {				
    			$('.menucategory-fixed').slideDown(300);
    			if (localStorage.getItem('opencate')=='false'){
    				$('#boss-menu-category-fixed').addClass('opencate');	
    			}else if(!localStorage.getItem('opencate')){ //set show Icon on Homepage when first load
    				if($("body").hasClass("bt-home-page")){
    					$('#boss-menu-category-fixed').addClass('opencate');
    				}
    			}
    		} else {
    			$('.menucategory-fixed').slideUp(300); 
    		}
    	});
    	
    	
    	//position of icon when load first
    	$(window).load(function() {
    		if ($('.header_category').length){			
    			var height_icon = 40;//$('.menucategory-fixed .boss_heading').height(); 
    			var num_li = $('.menucategory-fixed .boss-menu-cate>li').length; 
    			var menucategory_fixed = height_icon*num_li; 			
    			var top = Math.floor(parseFloat(($( window ).height() - menucategory_fixed -height_icon)/2));
    			if(top<0) top = 0;			
    			$('.menucategory-fixed').css('top',top);			
    		}
    		
    	});
    	//position of icon when load first
    	$(window).smartresize(function(){
    		if ($('.header_category').length){
    			var height_icon = 40;//$('.menucategory-fixed .boss_heading').height(); 
    			var num_li = $('.menucategory-fixed .boss-menu-cate>li').length; 
    			var menucategory_fixed = height_icon*num_li; 			
    			var top = Math.floor(parseFloat(($( window ).height() - menucategory_fixed -height_icon)/2));
    			if(top<0) top = 0;			
    			$('.menucategory-fixed').css('top',top);		
    		}
    	});
    //--></script>
    </div>
    </div>
    <?php } ?>
    
  7. Могу посоветовать одно решение. Выводил через модуль выгрузки Яндекс Маркета. Только пришлось дописывать, делая отдельную выгрузку для акционных товаров.

  8. Вывел производителей в хедер

    header.php

    $this->load->model('catalog/manufacturer');
    		$manufacturers = $this->model_catalog_manufacturer->getManufacturers();
    		foreach ($manufacturers as $manufacturer) {
    					$manufacturer_children_data[] = array(
    						'name'  => $manufacturer['name'],	
    						'image'     => $manufacturer['image'],
                                                    'image_src'     => $server . 'image/' . $manufacturer['image'],
    						'href' => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $manufacturer['manufacturer_id'])	
    					);
    		}
    				
    		$this->data['manufacturers'][] = array(
    					'name'     => 'Brands',
    					'children' => $manufacturer_children_data,
    					'column'   => 1,
    					'href'     => $this->url->link('product/manufacturer')
    				);
    

    header.tpl

    <?php if ($manufacturers) { ?>
      <ul>
        <?php foreach ($manufacturers as $manufacturer) { ?>
        <li> 
          <?php if ($manufacturer['children']) { ?>
          <div>
            <?php for ($i = 0; $i < count($manufacturer['children']);) { ?>
            <ul>
              <?php $j = $i + ceil(count($manufacturer['children']) / $manufacturer['column']); ?>
              <?php for (; $i < $j; $i++) { ?>
              <?php if (isset($manufacturer['children'][$i])) { ?>
              <li><a href="<?php echo $manufacturer['children'][$i]['href']; ?>"><?php echo $manufacturer['children'][$i]['name']; ?></a></li>
              <?php } ?>
              <?php } ?>
            </ul>
            <?php } ?>
          </div>
          <?php } ?>
        </li>
        <?php } ?>
      </ul>
    <?php } ?>
    

    По разному пробовал, но ничего не вышло. Опытные люди, подскажите пожалуйста, как вывести image брендов в хедер?

  9. Здравствуйте. Что скажете по поводу возможности объединения атрибутов?

    Например, в админке очень много товаров и атрибутов соответственно. И бывают дублирующиеся атрибуты, т.е. одинаковые по смыслу, но различающиеся по написанию, может даже в несколько символов. Было бы очень удобно объединять их прямо в фильтре в админке.

  10. Ну так и подразумевается, что от одного родителя, в списке подкатегорий же.

     

    Про группировку.

    Например, интернет магазин сантехники. Есть категория Ванны. В ней много подкатегорий, которые можно разделить по смыслу, чтобы они не шли все подряд:

    Ванны

    <div id="category-group-1"> <span>по размеру:</span> здесь выводятся подкатегории </div>
    <div id="category-group-2"> <span>по форме:</span> здесь выводятся подкатегории </div>
    <div id="category-group-3"> <span>по производителю:</span> здесь выводятся подкатегории </div>
    
  11. А вообще, было круто создать модуль такой простенький. Где можно группировать подкатегории.

    Создаешь группу и вводишь: название группы и порядок сортировки( ну или можно отдельное поле создать для этой функции, или выбор категорий с галочками). Ну и возможность задать класс группе.

    Сколько примерно будет стоить разработка такого?

  12. Да. Но здесь другая задача. Нужно вывести все подкатегории и сгруппировать их.
    Нашел такой выход - группировка по порядку сортировки. И в шаблоне каждой главной категорий вручную сгруппировать их по статусу, с заголовками.
     
    Добавил в контроллер category.php то, что вы написали и вывел в category.tpl так (с замечанием tabook):

      <?php if ($categories) { ?>
      <div class="category-list">
     <?php foreach ($categories as $category) { ?>
    <?php if ($category['sort_order'] == 6) { ?>
          <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li>
          <?php } ?>
    <?php } ?>
      </div>
      <?php } ?>
    

    Страница категории не открывается.

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.