HEX
Server: Apache/2.4.6 (CentOS) mpm-itk/2.4.7-04 mod_fcgid/2.3.9 PHP/5.4.16
System: Linux dvm.vladweb.ru 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: region-gk.ru (1016)
PHP: 7.3.33
Disabled: NONE
Upload Files
File: /home/temp/yarusvl.ru/adminx/ajax/search_products.php
<?php

	if(!$mgc->managers->access('products')) {
        exit();
    }

    $limit = 30;
    if (!empty($_SESSION['admin_lang_id'])) {
        $mgc->languages->set_lang_id($_SESSION['admin_lang_id']);
    }

    /*Определение языка для поиска*/
    $lang_id  = $mgc->languages->lang_id();
    $px = ($lang_id ? 'l' : 'p');
    $lang_sql = $mgc->languages->get_query(array('object'=>'product', 'px'=>'p'));

    /*Поиск товаров*/
    $keyword = $mgc->request->get('query', 'string');
    $keywords = explode(' ', $keyword);
    $keyword_sql = '';
    foreach($keywords as $keyword) {
        $kw = $mgc->db->escape(trim($keyword));
        $keyword_sql .= $mgc->db->placehold("AND (
            $px.name LIKE '%$kw%' 
            OR $px.meta_keywords LIKE '%$kw%' 
            OR p.id in (SELECT product_id FROM __variants WHERE sku LIKE '%$kw%') 
        ) ");
    }
    
    $mgc->db->query("SELECT 
            p.id, 
            $px.name, 
            i.filename as image 
        FROM __products p
        $lang_sql->join
        LEFT JOIN __images i ON i.product_id=p.id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id LIMIT 1)
        WHERE 
            1 
            $keyword_sql 
        ORDER BY $px.name 
        LIMIT ?
    ", $limit);
    
    $products = $mgc->db->results();
    
    $suggestions = array();
    foreach($products as $product) {
        if(!empty($product->image)) {
            $product->image = $mgc->design->resize_modifier($product->image, 35, 35);
        }
        
        $suggestion = new stdClass();
        $suggestion->value = $product->name;
        $suggestion->data = $product;
        $suggestions[] = $suggestion;
    }
    
    $res = new stdClass;
    $res->query = $keyword;
    $res->suggestions = $suggestions;
    header("Content-type: application/json; charset=UTF-8");
    header("Cache-Control: must-revalidate");
    header("Pragma: no-cache");
    header("Expires: -1");
    print json_encode($res);