Перейти к содержанию

Рекомендуемые сообщения

Есть несколько ошибок, хочу разобраться в чем причина и почему они появились.

 

1. 2018-08-05 11:41:14 - PHP Notice:  Undefined variable: category_id in /home/d/.../.../public_html/catalog/view/theme/.../template/product/search.tpl on line 31

 

Спойлер

код: search.tpl

      <select name="category_id">
        <option value="0"><?php echo $text_category; ?></option>
        <?php foreach ($categories as $category_1) { ?>
        <?php if ($category_1['category_id'] == $category_id) { ?>
        <option value="<?php echo $category_1['category_id']; ?>" selected="selected"><?php echo $category_1['name']; ?></option>
        <?php } else { ?>
        <option value="<?php echo $category_1['category_id']; ?>"><?php echo $category_1['name']; ?></option>
        <?php } ?>
        <?php foreach ($category_1['children'] as $category_2) { ?>
        <?php if ($category_2['category_id'] == $category_id) { ?>
        <option value="<?php echo $category_2['category_id']; ?>" selected="selected">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php echo $category_2['name']; ?></option>
        <?php } else { ?>
        <option value="<?php echo $category_2['category_id']; ?>">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php echo $category_2['name']; ?></option>
        <?php } ?>
        <?php foreach ($category_2['children'] as $category_3) { ?>
        <?php if ($category_3['category_id'] == $category_id) { ?>
        <option value="<?php echo $category_3['category_id']; ?>" selected="selected">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php echo $category_3['name']; ?></option>
        <?php } else { ?>
        <option value="<?php echo $category_3['category_id']; ?>">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php echo $category_3['name']; ?></option>
        <?php } ?>
        <?php } ?>
        <?php } ?>
        <?php } ?>

 

2.

2018-08-09 23:24:45 - PHP Notice:  Undefined variable: category_id in /home/d/.../.../public_html/vqmod/vqcache/vq2-catalog_view_theme_..._template_product_search.tpl on line 31

2018-08-09 23:24:45 - PHP Notice:  Undefined variable: category_id in /home/d/.../.../public_html/vqmod/vqcache/vq2-catalog_view_theme_..._template_product_search.tpl on line 37

 

Спойлер

<?php echo $header; ?><?php echo $column_left; ?><?php echo $column_right; ?>
<div id="content"><?php echo $content_top; ?>
  <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 if (!empty($fx_span)) {
                    echo $fx_span;
                } else {?>
                    <h1><?php echo $heading_title; ?></h1>
                <?php } ?>
            
  <b><?php echo $text_critea; ?></b>
  <div class="content">
    <p><?php echo $entry_search; ?>
      <?php if ($search) { ?>
      <input type="text" name="search" size="50" value="<?php echo $search; ?>" />
      <?php } else { ?>
      <input type="text" name="search" size="50" value="<?php echo $search; ?>" onclick="this.value = '';" onkeydown="this.style.color = '000000'" style="color: #999;" />
      <?php } ?>
      <select name="filter_category_id">
        <option value="0"><?php echo $text_category; ?></option>
        <?php foreach ($categories as $category_1) { ?>
        <?php if ($category_1['category_id'] == $filter_category_id) { ?>
        <option value="<?php echo $category_1['category_id']; ?>" selected="selected"><?php echo $category_1['name']; ?></option>
        <?php } else { ?>
        <option value="<?php echo $category_1['category_id']; ?>"><?php echo $category_1['name']; ?></option>
        <?php } ?>
        <?php foreach ($category_1['children'] as $category_2) { ?>
        <?php if ($category_2['category_id'] == $filter_category_id) { ?>
        <option value="<?php echo $category_2['category_id']; ?>" selected="selected">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php echo $category_2['name']; ?></option>
        <?php } else { ?>
        <option value="<?php echo $category_2['category_id']; ?>">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php echo $category_2['name']; ?></option>
        <?php } ?>
        <?php foreach ($category_2['children'] as $category_3) { ?>
        <?php if ($category_3['category_id'] == $filter_category_id) { ?>
        <option value="<?php echo $category_3['category_id']; ?>" selected="selected">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php echo $category_3['name']; ?></option>
        <?php } else { ?>
        <option value="<?php echo $category_3['category_id']; ?>">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php echo $category_3['name']; ?></option>
        <?php } ?>
        <?php } ?>
        <?php } ?>
        <?php } ?>
      </select>
      <?php if ($sub_category) { ?>
      <input type="checkbox" name="sub_category" value="1" id="sub_category" checked="checked" />
      <?php } else { ?>
      <input type="checkbox" name="sub_category" value="1" id="sub_category" />
      <?php } ?>
      <label for="sub_category"><?php echo $text_sub_category; ?></label>
    </p>
    <?php if ($description) { ?>
    <input type="checkbox" name="description" value="1" id="description" checked="checked" />
    <?php } else { ?>
    <input type="checkbox" name="description" value="1" id="description" />
    <?php } ?>
    <label for="description"><?php echo $entry_description; ?></label>
  </div>
  <div class="buttons">
    <div class="center"><input type="button" value="<?php echo $button_search; ?>" id="button-search" class="button" /></div>
  </div>
  <h2><?php echo $text_search; ?></h2>
  <?php if ($products) { ?>
  <div class="product-filter">
    <div class="display"><b><?php echo $text_display; ?></b> <?php echo $text_list; ?> <b>/</b> <a onclick="display('grid');"><?php echo $text_grid; ?></a></div>
      <div class="product-compare"><a href="<?php echo $compare; ?>" id="compare-total"><?php echo $text_compare; ?></a></div>
    <div class="limit"><?php echo $text_limit; ?>
      <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"><?php echo $text_sort; ?>
      <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="product-list">
    <?php foreach ($products as $product) { ?>
    <div>
      <?php if ($product['thumb']) { ?>
      <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" /></a></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 } else { ?>
        <span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span>
        <?php } ?>
        <?php if ($product['tax']) { ?>
        <br />
        <span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
        <?php } ?>
      </div>
      <?php } ?>
      <?php if ($product['rating']) { ?>
      <div class="rating"><img src="catalog/view/theme/default/image/stars-<?php echo $product['rating']; ?>.png" alt="<?php echo $product['reviews']; ?>" /></div>
      <?php } ?>
      <div class="cart"><input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" /></div>
      <div class="wishlist"><a onclick="addToWishList('<?php echo $product['product_id']; ?>');"><?php echo $button_wishlist; ?></a></div>
      <div class="compare"><a onclick="addToCompare('<?php echo $product['product_id']; ?>');"><?php echo $button_compare; ?></a></div>
    </div>
    <?php } ?>
  </div>
  <div class="pagination"><?php echo $pagination; ?></div>
  <?php } else { ?>
  <div class="content"><?php echo $text_empty; ?></div>
  <?php }?>
  <?php echo $content_bottom; ?></div>
<script type="text/javascript"><!--
$('#content input[name=\'search\']').keydown(function(e) {
    if (e.keyCode == 13) {
        $('#button-search').trigger('click');
    }
});

$('select[name=\'filter_category_id\']').bind('change', function() {
    if (this.value == '0') {
        $('input[name=\'sub_category\']').attr('disabled', 'disabled');
        $('input[name=\'sub_category\']').removeAttr('checked');
    } else {
        $('input[name=\'sub_category\']').removeAttr('disabled');
    }
});

$('select[name=\'filter_category_id\']').trigger('change');

$('#button-search').bind('click', function() {
    url = 'index.php?route=product/search';
    
    var search = $('#content input[name=\'search\']').attr('value');
    
    if (search) {
        url += '&search=' + encodeURIComponent(search);
    }

    var filter_category_id = $('#content select[name=\'filter_category_id\']').attr('value');
    
    if (filter_category_id > 0) {
        url += '&filter_category_id=' + encodeURIComponent(filter_category_id);
    }
    
    var sub_category = $('#content input[name=\'sub_category\']:checked').attr('value');
    
    if (sub_category) {
        url += '&sub_category=true';
    }
        
    var filter_description = $('#content input[name=\'description\']:checked').attr('value');
    
    if (filter_description) {
        url += '&description=true';
    }

    location = url;
});

function display(view) {
    if (view == 'list') {
        $('.product-grid').attr('class', 'product-list');
        
        $('.product-list > div').each(function(index, element) {
            html  = '<div class="right">';
            html += '  <div class="cart">' + $(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>';            
            
            html += '<div class="left">';
            
            var image = $(element).find('.image').html();
            
            if (image != null) {
                html += '<div class="image">' + image + '</div>';
            }
            
            var price = $(element).find('.price').html();
            
            if (price != null) {
                html += '<div class="price">' + price  + '</div>';
            }
                        
            html += '  <div class="name">' + $(element).find('.name').html() + '</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>';
                        
            $(element).html(html);
        });        
        
        $('.display').html('<b><?php echo $text_display; ?></b> <?php echo $text_list; ?> <b>/</b> <a onclick="display(\'grid\');"><?php echo $text_grid; ?></a>');
        
        $.totalStorage('display', 'list');
    } else {
        $('.product-list').attr('class', 'product-grid');
        
        $('.product-grid > div').each(function(index, element) {
            html = '';
            
            var image = $(element).find('.image').html();
            
            if (image != null) {
                html += '<div class="image">' + image + '</div>';
            }
            
            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 += '<div class="cart">' + $(element).find('.cart').html() + '</div>';
            html += '<div class="wishlist">' + $(element).find('.wishlist').html() + '</div>';
            html += '<div class="compare">' + $(element).find('.compare').html() + '</div>';
            
            $(element).html(html);
        });    
                    
        $('.display').html('<b><?php echo $text_display; ?></b> <a onclick="display(\'list\');"><?php echo $text_list; ?></a> <b>/</b> <?php echo $text_grid; ?>');
        
        $.totalStorage('display', 'grid');
    }
}

view = $.totalStorage('display');

if (view) {
    display(view);
} else {
    display('list');
}
//--></script>
<?php echo $footer; ?>

 

Изменено пользователем Techno1og

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 10.08.2018 в 05:34, Techno1og сказал:

хочу разобраться в чем причина

нужно смотреть в контроллере  search.php, почему не передается переменная  category_id

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От shchs
      350.00 руб
      Скачать/Купить дополнение


      SearchLive - Поиск с подсказками
      SearchLive - Поиск с подсказками для интернет-магазина.
       
      Модуль "живого" поиска с подсказками совпадений. Поиск ведется по названию, описанию, модели, артикула и тегам товара, с возможностью настройки как полей для поиска, так и релевантности совпадений и набора исключаемых символов. Так же есть настройки вида и количества результатов.
      Файлы, отвечающие за механизм поиска, а соответственно и код в них открыт и легко может быть модифицирован под конкретные нужны.

      Перед установкой дополнения, обязательно ознакомьтесь с порядком новой установки и обновления,
      описанном в файле "readme.rus" в архиве с модулем.
       
      Условия приобретения:
      1. Данное дополнение распространяется по принципу 1 лицензия - 1 домен + 1 тестовый домен.
      2. Поддомены считаются отдельным доменом!
      3. Тестовым доменом может быть только либо технический адреса хостинга, либо поддомен "test" основного домена.
      4. Модуль распространяется по принципу "как есть", со всеми его особенностями, достоинствами
      и недостатками, как имеющимися в данный момент так и выявленными в будущем, поэтому
      любые исправления или изменения модуля возможны только по воле автора и никак иначе.
      5. В модуле используется технология защиты, препятствующая несанкционированному использованию модуля,
      а также ограничивающая изменение файлов с его кодом.
      6. Данная защита не снимается ни при каких условиях.
      7. Применение средств и методов, позволяющих обойти используемую технологию защиты, являются незаконными.
      8. Лицензия возврату не подлежит!
      9. Продукт не является бесплатным программным обеспечением и не может распространяться в какой-либо форме где-либо без письменного согласия автора.
       
      Условия Тех.поддержки:
      1. Вопросы по поддержке вы также можете задавать по почте shchs@ya.ru, либо по скайпу: ashchs
      2. Активация дополнения выполняется в течении суток с момента покупки.
      3. Тех.поддержка оказывается в течении двух суток с момента поступления запроса.
       3.1 Тех.поддержка оказывается при предоставлении доступа в админ.панель и к файлам сайта по протоколу FTP.
      4. В условия тех.поддержки не входит:
       4.1 согласование работы дополнения с какими-то либо другими модулями.
       4.2 настройка и запуск дополнения на версиях opencart/ocstore отличных от явно заявленных.
       4.3 изменение работы или добавление каких-либо новых функций.
      5. Поддержка оказывается только легальным и добросовестным покупателям, купившим данный продукт непосредственно у автора, а также на сайте opencartforum.com
       
      Системные требования:
      1. Установленный на сервере IonCube loader последней версии
      2. Версия PHP минимум 5.3
      3. Opencart/Ocstore 1.5.4.1-1.5.6.x, 2.0.x.x, 2.1.x.x, 2.2.x.x, 2.3.x.x, 3.0.2.x
       
      Приобретая данное дополнение, вы тем самым соглашаетесь с системными требованиями, ограничениями, условиями покупки и тех.поддержки.
       
      Для приобретения дополнительных лицензий обращаться на shchs@ya.ru
       
      Возможно получение тестовой лицензии на 10 дней - писать на shchs@ya.ru
       
      Демо:
      http://test4.shchs.bget.ru/admin/
      demo
      demo
      Добавил shchs Добавлено 22.02.2018 Категория Поиск Системные требования Ioncube Loader Сайт разработчика Старая цена Метод активации Автоматическая активация Ioncube Loader Требуется OpenCart 3.0
      2.3
      2.2
      2.1
      2.0
      1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.5.1
      1.5.5
      1.5.4.1 ocStore 3.0
      2.3
      2.2
      2.1
      1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х
      OcShop 1.5.6.4.х  
    • От shchs
      SearchLive - Поиск с подсказками для интернет-магазина.
       
      Модуль "живого" поиска с подсказками совпадений. Поиск ведется по названию, описанию, модели, артикула и тегам товара, с возможностью настройки как полей для поиска, так и релевантности совпадений и набора исключаемых символов. Так же есть настройки вида и количества результатов.
      Файлы, отвечающие за механизм поиска, а соответственно и код в них открыт и легко может быть модифицирован под конкретные нужны.

      Перед установкой дополнения, обязательно ознакомьтесь с порядком новой установки и обновления,
      описанном в файле "readme.rus" в архиве с модулем.
       
      Условия приобретения:
      1. Данное дополнение распространяется по принципу 1 лицензия - 1 домен + 1 тестовый домен.
      2. Поддомены считаются отдельным доменом!
      3. Тестовым доменом может быть только либо технический адреса хостинга, либо поддомен "test" основного домена.
      4. Модуль распространяется по принципу "как есть", со всеми его особенностями, достоинствами
      и недостатками, как имеющимися в данный момент так и выявленными в будущем, поэтому
      любые исправления или изменения модуля возможны только по воле автора и никак иначе.
      5. В модуле используется технология защиты, препятствующая несанкционированному использованию модуля,
      а также ограничивающая изменение файлов с его кодом.
      6. Данная защита не снимается ни при каких условиях.
      7. Применение средств и методов, позволяющих обойти используемую технологию защиты, являются незаконными.
      8. Лицензия возврату не подлежит!
      9. Продукт не является бесплатным программным обеспечением и не может распространяться в какой-либо форме где-либо без письменного согласия автора.
       
      Условия Тех.поддержки:
      1. Вопросы по поддержке вы также можете задавать по почте shchs@ya.ru, либо по скайпу: ashchs
      2. Активация дополнения выполняется в течении суток с момента покупки.
      3. Тех.поддержка оказывается в течении двух суток с момента поступления запроса.
       3.1 Тех.поддержка оказывается при предоставлении доступа в админ.панель и к файлам сайта по протоколу FTP.
      4. В условия тех.поддержки не входит:
       4.1 согласование работы дополнения с какими-то либо другими модулями.
       4.2 настройка и запуск дополнения на версиях opencart/ocstore отличных от явно заявленных.
       4.3 изменение работы или добавление каких-либо новых функций.
      5. Поддержка оказывается только легальным и добросовестным покупателям, купившим данный продукт непосредственно у автора, а также на сайте opencartforum.com
       
      Системные требования:
      1. Установленный на сервере IonCube loader последней версии
      2. Версия PHP минимум 5.3
      3. Opencart/Ocstore 1.5.4.1-1.5.6.x, 2.0.x.x, 2.1.x.x, 2.2.x.x, 2.3.x.x, 3.0.2.x
       
      Приобретая данное дополнение, вы тем самым соглашаетесь с системными требованиями, ограничениями, условиями покупки и тех.поддержки.
       
      Для приобретения дополнительных лицензий обращаться на shchs@ya.ru
       
      Возможно получение тестовой лицензии на 10 дней - писать на shchs@ya.ru
       
      Демо:
      http://test4.shchs.bget.ru/admin/
      demo
      demo
    • От Elisey00
      Сжиматель ссылок google перестал работать.
      Тема наиболее актуальна была для ютюб коротких ссылок и коротких ссылок вконтакте.
      Как написано на официальном сайте гугула, короткие ссылки больше не работают, а созданные ранее будут уничтожены.
      Аналог коротких ссылок гугла доступен на сайте http://qoo.by/
      Укоротить любую ссылку еще проще чем раньше, никакой капчи и никаких лимитов!
      Пользуйтесь)
    • От sv2109
      1 199.00 руб
      Скачать/Купить дополнение


      Поисковая система с морфологией и релевантностью PRO
      Больше 10 тысяч загрузок модулей от sv2109!
      Модуль написал на основе модуля "Поиск с морфологией и релевантностью", который приобрели более 1000 пользователей!
      Что делает этот модуль?
      Это модуль поиска, основной особенностью которого является очень большая скорость поиска.
      Модуль в первую очередь создан для больших магазинов с тысячами товаров, а также для магазинов, которые работают на слабых хостингах.
      Модуль тестировался на магазине в котором больше миллиона товаров!
      Модуль использует морфологию и релевантность для более точного поиска.
      Чем этот модуль отличается от других модулей поиска?
      К обычным поисковым модулям относятся: стандартный поиск OpenCart, другие модули поиска, например модуль "Поиск с морфологией и релевантностью".
      Как они работают? После того, как пользователь ввел фразу для поиска и нажал кнопку "Искать", модуль поиска для того, чтобы найти все товары, которые соответствуют поисковой фразе, должен обойти все товары в базе данных, причем информация о каждом товаре находится не в одной, а в нескольких таблицах с множеством полей, многие из которых никак не проиндексированы.
      Если у вас немного товаров на сайте (десятки, сотни) и быстрый сервер, то поиск у вас будет работать достаточно быстро.
      Но если у вас тысячи товаров в магазине (или даже десятки и сотни тысяч) или не самый быстрый сервер, то чем больше у вас будет товаров, тем медленнее будет работать поиск на вашем сайте. В некоторых случаях и 5 и 10 и даже больше секунд, что конечно же очень много, все, что больше 1-2 секунды это уже много, пользователи не будут столько времени ждать, они закроют ваш сайт и пойдут на другой.
      Как работает этот модуль?
      Этот модуль работает по тому же принципу, что и поисковые системы, поэтому он так и называется.
      Возьмем для примера поисковую систему Google. После того, как вы вводите в поле поиска, например, "OpenCart" и нажимаете кнопку "Поиск", Google отображает вам нужные результаты за доли секунды. Это возможно потому, что Google не ищет информацию непосредственно на каждом сайте в момент поиска, он уже до этого обошел все сайты и добавил эту информацию в свои очень быстрые базы данных, где все записи проиндексированы и лежат в базе с нужными весами (какой сайт показывать выше в выдаче, какой ниже). После этого Google осуществляет поиск по своих базах, это дает возможность найти сотни тысяч сайтов за доли секунды!
      Именно так работает и этот модуль. Сначала он обходит все товары в магазине и добавляет всю информацию в свои таблицы базы данных с индексами.
      Когда пользователь что-то ищет на сайте, поиск не обходит десятки полей в тысячах товаров, а ищет всего в одной таблице по проиндексированному одному полю, поэтому результат пользователь получит не через несколько секунд или даже десятков секунд, а через доли секунды, что в десятки и даже сотни раз быстрее стандартного поиска.
      Морфология и релевантность
      Как известно, стандартный поиск OpenCart просто ужасный. При поиске он разбивает искомую фразу на отдельные слова, после чего находит все товары, в которых встречается любое из этих слов. В результате при поиске по фразе "Монитор Samsung" на первых позициях может оказаться "монитор Acer" (так как в названии есть слово "монитор") или "ноутбук Samsung" так как в названии есть слово "Samsung". В то время, как нужный товар "Монитор Samsung" может быть где-то на 10-той странице. А если вы напишите в поиске не "ноутбук", а напр. "ноутбуки" или сделаете опечатку в слове "Samsung" то поиск вообще ничего не найдет, так как поиск осуществляется только по точному вхождению слова.
      Этот модуль написан для того, чтобы исправить все недостатки стандартного поиска.
      Для этого у него есть 2 инструмента:
      Морфология. Поиск не по точному совпадению, а по корням слов. Теперь написав в поиске "ноутбуки", поиск выдаст все товары в которых встречается и "ноутбуки" и "ноутбук" и "ноутбука" итд. Поддерживаемые словари - русский, украинский, английский. Релевантность. При поиске на первых позициях будут материалы с большим суммарным весом. Наибольший вес имеет точное вхождение фразы в начало названия товара, потом вхождение одного или нескольких слов в название (чем больше слов тем больший вес), потом вхождение слова в тег, потом целой фразы в описание, потом отдельного слова в описание. Чем больше совпадений, тем больше вес и тем выше будет этот товар в результатах поиска. Вес каждого совпадения можно корректировать в админке. Кому нужен этот модуль?
      сайтам, в которых много товаров, для увеличения качества и скорости поиска. всем, кто хочет иметь очень быстрый и качественный поиск на своем сайте. Просто зайдите на страницу поиска вашего сайта, введите фразу для поиска (из 3-5 слов, можно и больше) и нажмите "Искать". Если результат поиска вы получите более чем через 1-2 секунды, то вам скорее всего нужен этот модуль.
       
      Возможности
      модуль написан на основе модуля "Поиск с морфологией и релевантностью", поэтому содержит весь огромный функционал того модуля использование морфологии и релевантности для более точного поиска выбор логики поиска для поиска по фразам из нескольких слов: И, ИЛИ поддержка мульти-магазина возможность отключить в поиске дату поступления товаров разные типы поиска (по точному совпадению или по началу слова) режим исправления раскладки клавиатуры ("фззду" -> "apple") учитывать наличие на складе (товары, которых нет в наличии будут отображаться в конце поиска) возможность включить кеширование результатов возможность добавлять новые поля для поиска, например можно добавить поиска по id товара, мета H1 и почти по любому полю товара. для каждого поля можно: включить морфологию, указать минимальную длину слова, указать вес вхождения слова в начало или середину поля возможность исключить некоторые слова из поиска возможность заменить слова при поиске (например слова с ошибками: "aple" -> "apple") поддержка нескольких режимов индексации: индексация по крону, автоматическая индексация после каждого добавления, изменения, удаления товара, ручная индексации на странице настроек модуля с поддержкой пакетного создание индексов (можно запустить процесс и оставить страницу открытой на продолжительное время) поиск по вхождению неточный поиск  
      Что нового во второй версии модуля?
      Поиск по вхождению слова и по суффиксам. Этого многим очень не хватало в 1 версии, так как многим нужен был поиск по вхождению для напр. модели или артикула. Но этого не было в 1 версии, потому что такой поиск, если сделать его просто, очень сильно (в сотни раз) сказался бы на скорости поиска. Во второй версии был написан функционал быстрого (!) поиска по вхождению.  Более точная релевантность. В 1 версии было 2 веса для слова: если слово первое (в напр. названии товара) и все остальные слова. То есть и слово, которой второе и слово которое 20-е имели один вес. Во 2 версии есть 2 веса: вес первого слова и вес последнего. Все остальные слова внутри получают веса динамически в зависимости от их положения и к-ва слов в названии. Таким образом чем ближе слово к началу тем больше у него вес и товары, у которых искомое слово будет стоять ближе к началу будут выводиться выше в результатах. Мало того, если поиск идет по вхождению, то вес также режется пропорционально части слова. Тем самым достигается большая точность релевантности поиска.  Добавлен неточный поиск, поиск слов созвучных с искомым. То есть, можно найти товары, даже если ввести какое-то слово с опечаткой или грамматической ошибкой, конечно не все ошибки модуль найдет, но многие - да. Лучший алгоритм поиска по логике И. Эта часть кода была полностью переписана, теперь в модуле такой поиск работает по новому алгоритму, который и на скорость не влияет и более точно находит только товары, в которых есть все слова из поисковой фразы.  Поддержка OpenCart 3.0 Таблица основных отличий модулей
        Поиск с морфологией и релевантностью,
      версия 3
      Поисковая система,
      версия 1
      Поисковая система,
      версия 2
      Скорость поиска низкая очень высокая очень высокая Релевантность средняя средняя хорошая Логика И средняя средняя хорошая Поиск по вхождению есть (медленный) нету есть Неточный поиск нету нету есть Поддержка OpenCart 1.5 - 3 1.5 - 2.3 1.5 - 3 Модуль совместим с модулями:
      Search suggestion - поиск с автодополнением История Поиска Похожие товары с морфологией и релевантностью Совместимость:
      OpenCart/ocStore 3.x, 2.0.x, 2.1.x, 1.5
       
      Модуль использует IonCube, обычно на 99% хостингов он используется но на всякий случай можете проверить.
      Одна лицензия модуля позволяет установить этот модуль на 1 домене.
      Демо:
      Сайт
      Админка
       
      Для обновления с версии 1 на версию 2 - пишите в ЛС, обновление платное, стоимость обновления составляет 250 рублей. Обновление включает как код модуля, так и помощь в установке и настройке. 
       
      Для связи с автором модуля пишите на sv2109@gmail.com
      © Стасюк Владимир (sv2109.com), 2016
      Добавил sv2109 Добавлено 24.07.2016 Категория Поиск Системные требования Сайт разработчика sv2109.com Старая цена Метод активации По запросу в ЛС Ioncube Loader Требуется OpenCart 3.0
      2.3
      2.2
      2.1
      2.0
      1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.4.1
      1.5.3.1 ocStore 3.0
      2.3
      2.2
      2.1
      1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1
      1.5.3.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х
      OcShop 1.5.6.4.х  
    • От sv2109
      Больше 10 тысяч загрузок модулей от sv2109!
      Модуль написал на основе модуля "Поиск с морфологией и релевантностью", который приобрели более 1000 пользователей!
      Что делает этот модуль?
      Это модуль поиска, основной особенностью которого является очень большая скорость поиска.
      Модуль в первую очередь создан для больших магазинов с тысячами товаров, а также для магазинов, которые работают на слабых хостингах.
      Модуль тестировался на магазине в котором больше миллиона товаров!
      Модуль использует морфологию и релевантность для более точного поиска.
      Чем этот модуль отличается от других модулей поиска?
      К обычным поисковым модулям относятся: стандартный поиск OpenCart, другие модули поиска, например модуль "Поиск с морфологией и релевантностью".
      Как они работают? После того, как пользователь ввел фразу для поиска и нажал кнопку "Искать", модуль поиска для того, чтобы найти все товары, которые соответствуют поисковой фразе, должен обойти все товары в базе данных, причем информация о каждом товаре находится не в одной, а в нескольких таблицах с множеством полей, многие из которых никак не проиндексированы.
      Если у вас немного товаров на сайте (десятки, сотни) и быстрый сервер, то поиск у вас будет работать достаточно быстро.
      Но если у вас тысячи товаров в магазине (или даже десятки и сотни тысяч) или не самый быстрый сервер, то чем больше у вас будет товаров, тем медленнее будет работать поиск на вашем сайте. В некоторых случаях и 5 и 10 и даже больше секунд, что конечно же очень много, все, что больше 1-2 секунды это уже много, пользователи не будут столько времени ждать, они закроют ваш сайт и пойдут на другой.
      Как работает этот модуль?
      Этот модуль работает по тому же принципу, что и поисковые системы, поэтому он так и называется.
      Возьмем для примера поисковую систему Google. После того, как вы вводите в поле поиска, например, "OpenCart" и нажимаете кнопку "Поиск", Google отображает вам нужные результаты за доли секунды. Это возможно потому, что Google не ищет информацию непосредственно на каждом сайте в момент поиска, он уже до этого обошел все сайты и добавил эту информацию в свои очень быстрые базы данных, где все записи проиндексированы и лежат в базе с нужными весами (какой сайт показывать выше в выдаче, какой ниже). После этого Google осуществляет поиск по своих базах, это дает возможность найти сотни тысяч сайтов за доли секунды!
      Именно так работает и этот модуль. Сначала он обходит все товары в магазине и добавляет всю информацию в свои таблицы базы данных с индексами.
      Когда пользователь что-то ищет на сайте, поиск не обходит десятки полей в тысячах товаров, а ищет всего в одной таблице по проиндексированному одному полю, поэтому результат пользователь получит не через несколько секунд или даже десятков секунд, а через доли секунды, что в десятки и даже сотни раз быстрее стандартного поиска.
      Морфология и релевантность
      Как известно, стандартный поиск OpenCart просто ужасный. При поиске он разбивает искомую фразу на отдельные слова, после чего находит все товары, в которых встречается любое из этих слов. В результате при поиске по фразе "Монитор Samsung" на первых позициях может оказаться "монитор Acer" (так как в названии есть слово "монитор") или "ноутбук Samsung" так как в названии есть слово "Samsung". В то время, как нужный товар "Монитор Samsung" может быть где-то на 10-той странице. А если вы напишите в поиске не "ноутбук", а напр. "ноутбуки" или сделаете опечатку в слове "Samsung" то поиск вообще ничего не найдет, так как поиск осуществляется только по точному вхождению слова.
      Этот модуль написан для того, чтобы исправить все недостатки стандартного поиска.
      Для этого у него есть 2 инструмента:
      Морфология. Поиск не по точному совпадению, а по корням слов. Теперь написав в поиске "ноутбуки", поиск выдаст все товары в которых встречается и "ноутбуки" и "ноутбук" и "ноутбука" итд. Поддерживаемые словари - русский, украинский, английский. Релевантность. При поиске на первых позициях будут материалы с большим суммарным весом. Наибольший вес имеет точное вхождение фразы в начало названия товара, потом вхождение одного или нескольких слов в название (чем больше слов тем больший вес), потом вхождение слова в тег, потом целой фразы в описание, потом отдельного слова в описание. Чем больше совпадений, тем больше вес и тем выше будет этот товар в результатах поиска. Вес каждого совпадения можно корректировать в админке. Кому нужен этот модуль?
      сайтам, в которых много товаров, для увеличения качества и скорости поиска. всем, кто хочет иметь очень быстрый и качественный поиск на своем сайте. Просто зайдите на страницу поиска вашего сайта, введите фразу для поиска (из 3-5 слов, можно и больше) и нажмите "Искать". Если результат поиска вы получите более чем через 1-2 секунды, то вам скорее всего нужен этот модуль.
       
      Возможности
      модуль написан на основе модуля "Поиск с морфологией и релевантностью", поэтому содержит весь огромный функционал того модуля использование морфологии и релевантности для более точного поиска выбор логики поиска для поиска по фразам из нескольких слов: И, ИЛИ поддержка мульти-магазина возможность отключить в поиске дату поступления товаров разные типы поиска (по точному совпадению или по началу слова) режим исправления раскладки клавиатуры ("фззду" -> "apple") учитывать наличие на складе (товары, которых нет в наличии будут отображаться в конце поиска) возможность включить кеширование результатов возможность добавлять новые поля для поиска, например можно добавить поиска по id товара, мета H1 и почти по любому полю товара. для каждого поля можно: включить морфологию, указать минимальную длину слова, указать вес вхождения слова в начало или середину поля возможность исключить некоторые слова из поиска возможность заменить слова при поиске (например слова с ошибками: "aple" -> "apple") поддержка нескольких режимов индексации: индексация по крону, автоматическая индексация после каждого добавления, изменения, удаления товара, ручная индексации на странице настроек модуля с поддержкой пакетного создание индексов (можно запустить процесс и оставить страницу открытой на продолжительное время) поиск по вхождению неточный поиск  
      Что нового во второй версии модуля?
      Поиск по вхождению слова и по суффиксам. Этого многим очень не хватало в 1 версии, так как многим нужен был поиск по вхождению для напр. модели или артикула. Но этого не было в 1 версии, потому что такой поиск, если сделать его просто, очень сильно (в сотни раз) сказался бы на скорости поиска. Во второй версии был написан функционал быстрого (!) поиска по вхождению.  Более точная релевантность. В 1 версии было 2 веса для слова: если слово первое (в напр. названии товара) и все остальные слова. То есть и слово, которой второе и слово которое 20-е имели один вес. Во 2 версии есть 2 веса: вес первого слова и вес последнего. Все остальные слова внутри получают веса динамически в зависимости от их положения и к-ва слов в названии. Таким образом чем ближе слово к началу тем больше у него вес и товары, у которых искомое слово будет стоять ближе к началу будут выводиться выше в результатах. Мало того, если поиск идет по вхождению, то вес также режется пропорционально части слова. Тем самым достигается большая точность релевантности поиска.  Добавлен неточный поиск, поиск слов созвучных с искомым. То есть, можно найти товары, даже если ввести какое-то слово с опечаткой или грамматической ошибкой, конечно не все ошибки модуль найдет, но многие - да. Лучший алгоритм поиска по логике И. Эта часть кода была полностью переписана, теперь в модуле такой поиск работает по новому алгоритму, который и на скорость не влияет и более точно находит только товары, в которых есть все слова из поисковой фразы.  Поддержка OpenCart 3.0 Таблица основных отличий модулей
        Поиск с морфологией и релевантностью,
      версия 3
      Поисковая система,
      версия 1
      Поисковая система,
      версия 2
      Скорость поиска низкая очень высокая очень высокая Релевантность средняя средняя хорошая Логика И средняя средняя хорошая Поиск по вхождению есть (медленный) нету есть Неточный поиск нету нету есть Поддержка OpenCart 1.5 - 3 1.5 - 2.3 1.5 - 3 Модуль совместим с модулями:
      Search suggestion - поиск с автодополнением История Поиска Похожие товары с морфологией и релевантностью Совместимость:
      OpenCart/ocStore 3.x, 2.0.x, 2.1.x, 1.5
       
      Модуль использует IonCube, обычно на 99% хостингов он используется но на всякий случай можете проверить.
      Одна лицензия модуля позволяет установить этот модуль на 1 домене.
      Демо:
      Сайт
      Админка
       
      Для обновления с версии 1 на версию 2 - пишите в ЛС, обновление платное, стоимость обновления составляет 250 рублей. Обновление включает как код модуля, так и помощь в установке и настройке. 
       
      Для связи с автором модуля пишите на sv2109@gmail.com
      © Стасюк Владимир (sv2109.com), 2016
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.