Opencart 1.5.6 Удалить категорию автозаполнения на модуле - PullRequest
1 голос
/ 09 апреля 2020

Пытаясь удалить функцию автозаполнения в модуле, я бы хотел, чтобы она перечисляла все категории с флажком для выбора вместо автозаполнения, вот как выглядит код, есть предложения? Я знаю, что в строке 3 нужно внести некоторые изменения.

.'<tr class="category" '.(($this->data['xshippingpro']['category'][$no_of_tab]!=1)?'style="display:table-row"':'').'>'
                  .'<td>'.$this->data['entry_category'].'</td>'
                  .'<td><input type="text" name="category" value="" /></td>'
                .'</tr>'
                .'<tr class="category" '.(($this->data['xshippingpro']['category'][$no_of_tab]!=1)?'style="display:table-row"':'').'>'
                  .'<td>&nbsp;</td>'
                  .'<td><div class="scrollbox product-category">';
                  foreach ($this->data['xshippingpro']['product_category'][$no_of_tab] as $category_id) {
                           $category_name=$this->getPath($category_id);
                           $return.='<div class="product-category'.$category_id. '">'.$category_name.'<img src="view/image/delete.png" alt="" />'
                             .'<input type="hidden" class="category" name="xshippingpro[product_category]['.$no_of_tab.'][]" value="'.$category_id.'" /></div>';
                        }
                  $return.='</div></td>'
                .'</tr>'

Это другая часть кода, которая обрабатывает вызов для получения данных ...

public function get_categories() {
        $json = array();

        if (isset($this->request->get['filter_name'])) {



            $results = $this->getCategories($this->request->get['filter_name']);

            foreach ($results as $result) {
                $json[] = array(
                    'category_id' => $result['category_id'], 
                    'name'        => strip_tags(html_entity_decode($result['name'], ENT_QUOTES, 'UTF-8'))
                );
            }       
        }

        $sort_order = array();

это javascript часть кода

$('input[name=\'category\']').autocomplete({
            delay: 500,
            source: function(request, response) {
                $.ajax({
                    url: 'index.php?route=shipping/xshippingpro/get_categories&token=<?php echo $token; ?>&filter_name=' +  encodeURIComponent(request.term),
                    dataType: 'json',
                    success: function(json) {       
                        response($.map(json, function(item) {
                            return {
                                label: item.name,
                                value: item.category_id
                            }
                        }));
                    }
                });
            }, 
            select: function(event, ui) {
                var no_of_tab=$(this).closest('div.shipping').attr('id');
                no_of_tab=no_of_tab.replace('shipping-','');
                no_of_tab=parseInt(no_of_tab);
                $('#form #shipping-'+no_of_tab+' .product-category' + ui.item.value).remove();

                $('#form #shipping-'+no_of_tab+' .product-category').append('<div class="product-category' + ui.item.value + '">' + ui.item.label + '<img src="view/image/delete.png" alt="" /><input type="hidden" class="category" name="xshippingpro[product_category]['+no_of_tab+'][]" value="' + ui.item.value + '" /></div>');       
                return false;
            },
            focus: function(event, ui) {
              return false;
           }
        });

        $('.product-category div img').live('click', function() {
            var no_of_tab=$(this).closest('div.shipping').attr('id');
                no_of_tab=no_of_tab.replace('shipping-','');
                no_of_tab=parseInt(no_of_tab);
            $(this).parent().remove();  
        });

        $('select.category-selection').live('change', function() {
            var no_of_tab=$(this).closest('div.shipping').attr('id');
                no_of_tab=no_of_tab.replace('shipping-','');
                no_of_tab=parseInt(no_of_tab);
             if($(this).val()=='1'){
                $('#form #shipping-'+no_of_tab+' tr.category').css('display', 'none');
             }else{
               $('#form #shipping-'+no_of_tab+' tr.category').css('display', 'table-row');
             }
        });

...