Jump to content
Sign in to follow this  
dengorrom

[пЕратская сборка] ошибка поиска ajax

Recommended Posts

добрый день!

столкнулся с проблемой, на движок MaxyStore Версия 1.5.5.1 поставил шаблон Moneymaker_v.1.1.2

в поиске выдаёт ошибку: Fatal error: Cannot redeclare ControllerProductSearch::ajax() in /home/u320968676/public_html/vqmod/vqcache/vq2-catalog_controller_product_search.php on line 600

 

сам код php файла с 600й строки:

 public function ajax() {

        $data = array();
        if( isset($this->request->get['keyword']) ) {
            function custom_escape_string($inp) {
                if(is_array($inp))
                    return array_map(__METHOD__, $inp);
                if(!empty($inp) && is_string($inp)) {
                    return str_replace(array('\\', "\0", "\n", "\r", "'", '"', "\x1a"), array('\\\\', '\\0', '\\n', '\\r', "\\'", '\\"', '\\Z'), $inp);
                }
                return $inp;
            }
            $keywords = custom_escape_string( $this->request->get['keyword'] );
            if( strlen($keywords) >= 3 ) {
                $parts = $keywords;
                $add = '';
                $add .= ' AND ((LOWER(pd.name) LIKE "%' . $this->db->escape($parts) . '%")';
                $add .= ' OR (LOWER(p.sku) LIKE "%' . $this->db->escape($parts) . '%")';
                $add .= ' OR (LOWER(p.model) LIKE "%' . $this->db->escape($parts) . '%"))';
                $add = substr( $add, 4 );
                $sql  = 'SELECT DISTINCT pd.product_id, pd.name FROM ' . DB_PREFIX . 'product_description AS pd ';
                $sql .= 'LEFT JOIN ' . DB_PREFIX . 'product AS p ON p.product_id = pd.product_id ';
                $sql .= 'LEFT JOIN ' . DB_PREFIX . 'product_to_store AS p2s ON p2s.product_id = pd.product_id ';
                $sql .= 'WHERE ' . $add . ' AND p.status = 1 ';
                $sql .= 'AND pd.language_id = ' . (int)$this->config->get('config_language_id');
                $sql .= ' AND p2s.store_id =  ' . (int)$this->config->get('config_store_id');
                $sql .= ' ORDER BY p.sort_order ASC, LOWER(pd.name) ASC, LOWER(p.model) ASC';
                $sql .= ' LIMIT 8';
                $res = $this->db->query( $sql );
                if( $res ) {
                    $data = ( isset($res->rows) ) ? $res->rows : $res->row;
                    $basehref = 'product/product&keyword=' . $this->request->get['keyword'] . '&product_id=';
                    foreach( $data as $key => $values ) {
                        $data[$key] = array(
                            'name' => htmlspecialchars_decode($values['name'], ENT_QUOTES),
                            'href' => $basehref . $values['product_id']
                            //'href' => $this->url->link($basehref . $values['product_id'])
                        );
                    }
                }
            }
        }
        echo json_encode( $data );
    }
 
спасибо заранее за помощь!

Share this post


Link to post
Share on other sites

Жесть. Удалите(закомментируйте) эту функцию и попробуйте снова. 

Share this post


Link to post
Share on other sites

У Вас какой-то сторонний модуль поиска стоит, удалите его, либо удалите(закомментируйте) эту функцию из файла catalog/controller/product/search.php, не из vqmod/vqcache/vq2-catalog_controller_product_search.php.

Share this post


Link to post
Share on other sites

У Вас какой-то сторонний модуль поиска стоит, удалите его, либо удалите(закомментируйте) эту функцию из файла catalog/controller/product/search.php, не из vqmod/vqcache/vq2-catalog_controller_product_search.php.

я так полагаю что в search.php другого не нашёл, надо удалить это:

public function ajax() {
$data = array();
if( isset($this->request->get['keyword']) ) {
$keywords = strtolower( $this->request->get['keyword'] );
if( strlen($keywords) >= 1 ) {
$parts = explode( ' ', $keywords );
$add = '';
foreach( $parts as $part ) {
$add .= ' AND (LOWER(pd.name) LIKE "%' . $this->db->escape($part) . '%"';
$add .= ' OR LOWER(p.image) LIKE "%' . $this->db->escape($part) . '%")';
}
$add = substr( $add, 4 );
$sql  = 'SELECT pd.product_id, pd.name, p.image FROM ' . DB_PREFIX . 'product_description AS pd ';
$sql .= 'LEFT JOIN ' . DB_PREFIX . 'product AS p ON p.product_id = pd.product_id ';
$sql .= 'LEFT JOIN ' . DB_PREFIX . 'product_to_store AS p2s ON p2s.product_id = pd.product_id ';
$sql .= 'WHERE ' . $add . ' AND p.status = 1 ';
$sql .= 'AND pd.language_id = ' . (int)$this->config->get('config_language_id');
$sql .= ' AND p2s.store_id =  ' . (int)$this->config->get('config_store_id'); 
$sql .= ' ORDER BY p.sort_order ASC, LOWER(pd.name) ASC, LOWER(p.image) ASC';
$sql .= ' LIMIT 15';
$res = $this->db->query( $sql );
if( $res ) {
$data = ( isset($res->rows) ) ? $res->rows : $res->row;
$basehref = 'product/product&keyword=' . $this->request->get['keyword'] . '&product_id=';
foreach( $data as $key => $values ) {
if ($key['image']) {
$image = $this->model_tool_image->resize($key['image'], 40, 40);
} else {
$image = false;
}
$data[$key] = array(
'thumb' => $image,
'name'  => htmlspecialchars_decode($values['name'], ENT_QUOTES),
'href'  => $this->url->link($basehref . $values['product_id'])
);
}
}
}
} echo json_encode( $data );

Share this post


Link to post
Share on other sites

Так вы удаляйте, чего спрашиваете-то? Чтобы всем тут нравится оформляйте свои сообщения как подобает (код и спойлеры). 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.