Помощь Не работает поиск по товару

Rihard1986

Создатель
Регистрация
10 Фев 2016
Сообщения
39
Реакции
13
Всем добра! Переносил базу с 1.5.6 на 2.2. Всё стало хорошо. Потом поставил шаблон, который не так встал. Пришлось в ручную его удалять по файлу. После его удаление установил заново и всё заработало. Но есть одно НО! В поиске товара страница выдает Для просмотра ссылки Войди или Зарегистрируйся
Коротко говоря поиск на сайте не работает. В админке работает. В логах тоже не чего нет. Может кто скажет в чём дело? Если заменить файлы с чистого Opencart. менял все файлы. Реакции 0! Уже 3 день голову ломаю. Были бы хоть логи понял бы в чем ошибка или чего не хватает. В логах есть ошибка, только как с ней разобратся?
Код:
[03-Nov-2017 13:51:22 UTC] PHP Fatal error:  Uncaught Exception: Error: Unknown column 'pd.tag' in 'where clause'<br />Error No: 1054<br />SELECT COUNT(DISTINCT p.product_id) AS total FROM oc_product p LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND ( pd.name LIKE '%vw%' OR pd.tag LIKE '%vw%' OR LCASE(p.model) = 'vw' OR LCASE(p.sku) = 'vw' OR LCASE(p.upc) = 'vw' OR LCASE(p.ean) = 'vw' OR LCASE(p.jan) = 'vw' OR LCASE(p.isbn) = 'vw' OR LCASE(p.mpn) = 'vw') in /home/ri4y214/public_html/system/library/db/mysqli.php:40
Stack trace:
#0 /home/ri4y214/public_html/system/library/db.php(16): DB\MySQLi->query('SELECT COUNT(DI...', Array)
#1 /home/ri4y214/public_html/catalog/model/catalog/product.php(489): DB->query('SELECT COUNT(DI...')
#2 /home/ri4y214/public_html/system/storage/modification/system/engine/loader.php(150): ModelCatalogProduct->getTotalProducts(Array)
#3 /ho in /home/ri4y214/public_html/system/library/db/mysqli.php on line 40
 
Через ExcelPort. Дело в том что кроме стандартных модулей других нету.
<-------------- добавлено через 1970 сек. -------------->
Не помогло. Файл Лоудер
Код:
<?php
final class Loader {
    protected $registry;

    public function __construct($registry) {
        $this->registry = $registry;
    }
   
    public function controller($route, $data = array()) {
        // Sanitize the call
        $route = preg_replace('/[^a-zA-Z0-9_\/]/', '', (string)$route);
       
        // Trigger the pre events
        $result = $this->registry->get('event')->trigger('controller/' . $route . '/before', array(&$route, &$data));
       
        if ($result) {
            return $result;
        }
       
        $action = new Action($route);
        $output = $action->execute($this->registry, array(&$data));
           
        // Trigger the post events
        $result = $this->registry->get('event')->trigger('controller/' . $route . '/after', array(&$route, &$data, &$output));
       
        if (!($output instanceof Exception)) {
            return $output;
        } else {
            return false;
        }
    }
   
    public function model($route) {
        // Sanitize the call
        $route = preg_replace('/[^a-zA-Z0-9_\/]/', '', (string)$route);
       
        $file  = DIR_APPLICATION . 'model/' . $route . '.php';
        $class = 'Model' . preg_replace('/[^a-zA-Z0-9]/', '', $route);
       
        if (is_file($file)) {
            include_once(modification($file));
            //echo $class;
            $proxy = new Proxy();

            foreach (get_class_methods($class) as $method) {
                $proxy->{$method} = $this->callback($this->registry, $route . '/' . $method);
            }

            $this->registry->set('model_' . str_replace(array('/', '-', '.'), array('_', '', ''), (string)$route), $proxy);
        } else {
            throw new \Exception('Error: Could not load model ' . $route . '!');
        }
    }

    public function view($route, $data = array()) {
        // Sanitize the call
        $route = str_replace('../', '', (string)$route);
       
        // Trigger the pre events
        $result = $this->registry->get('event')->trigger('view/' . $route . '/before', array(&$route, &$data));
       
        if ($result) {
            return $result;
        }
       
        $template = new Template('basic');
       
        foreach ($data as $key => $value) {
            $template->set($key, $value);
        }
       
        $output = $template->render($route . '.tpl');
       
        // Trigger the post e
        $result = $this->registry->get('event')->trigger('view/' . $route . '/after', array(&$route, &$data, &$output));
       
        if ($result) {
            return $result;
        }
       
        return $output;
    }

    public function library($route) {
        // Sanitize the call
        $route = preg_replace('/[^a-zA-Z0-9_\/]/', '', (string)$route);
           
        $file = DIR_SYSTEM . 'library/' . $route . '.php';
        $class = str_replace('/', '\\', $route);

        if (is_file($file)) {
            include_once(modification($file));

            $this->registry->set(basename($route), new $class($this->registry));
        } else {
            throw new \Exception('Error: Could not load library ' . $route . '!');
        }
    }
   
    public function helper($route) {
        $file = DIR_SYSTEM . 'helper/' . str_replace('../', '', (string)$route) . '.php';

        if (is_file($file)) {
            include_once(modification($file));
        } else {
            throw new \Exception('Error: Could not load helper ' . $route . '!');
        }
    }
   
    public function config($route) {
        $this->registry->get('event')->trigger('config/' . $route . '/before', $route);
       
        $this->registry->get('config')->load($route);
       
        $this->registry->get('event')->trigger('config/' . $route . '/after', $route);
    }

    public function language($route) {
        $this->registry->get('event')->trigger('language/' . $route . '/before', $route);
       
        $output = $this->registry->get('language')->load($route);
       
        $this->registry->get('event')->trigger('language/' . $route . '/after', $route);
       
        return $output;
    }
   
    protected function callback($registry, $route) {
        return function($args) use($registry, &$route) {           
            // Trigger the pre events
            $result = $registry->get('event')->trigger('model/' . $route . '/before', array_merge(array(&$route), $args));
           
            if ($result) {
                return $result;
            }
           
            $file = DIR_APPLICATION . 'model/' .  substr($route, 0, strrpos($route, '/')) . '.php';
            $class = 'Model' . preg_replace('/[^a-zA-Z0-9]/', '', substr($route, 0, strrpos($route, '/')));
            $method = substr($route, strrpos($route, '/') + 1);
   
            if (is_file($file)) {
                include_once(modification($file));
           
                $model = new $class($registry);
            } else {
                throw new \Exception('Error: Could not load model ' . substr($route, 0, strrpos($route, '/')) . '!');
            }
           
            if (method_exists($model, $method)) {
                $output = call_user_func_array(array($model, $method), $args);
            } else {
                throw new \Exception('Error: Could not call model/' . $route . '!');
            }
                                                   
            // Trigger the post events
            $result = $registry->get('event')->trigger('model/' . $route . '/after', array_merge(array(&$route, &$output), $args));
           
            if ($result) {
                return $result;
            }
                       
            return $output;
        };
    }   
}
<-------------- добавлено через 2346 сек. -------------->
нет нету
 
Ребзя, ну там же ж в логе написано, что отсутствует тег pd.tag в таблице product_description, вывод: переписать под свою версию контроллер поиска, вернее модель, либо убрать из метода выборку по тегу из контроллера поиска.
 
Всем добра! Переносил базу с 1.5.6 на 2.2. Всё стало хорошо. Потом поставил шаблон, который не так встал. Пришлось в ручную его удалять по файлу. После его удаление установил заново и всё заработало. Но есть одно НО! В поиске товара страница выдает Для просмотра ссылки Войди или Зарегистрируйся
Коротко говоря поиск на сайте не работает. В админке работает. В логах тоже не чего нет. Может кто скажет в чём дело? Если заменить файлы с чистого Opencart. менял все файлы. Реакции 0! Уже 3 день голову ломаю. Были бы хоть логи понял бы в чем ошибка или чего не хватает. В логах есть ошибка, только как с ней разобратся?
Код:
[03-Nov-2017 13:51:22 UTC] PHP Fatal error:  Uncaught Exception: Error: Unknown column 'pd.tag' in 'where clause'<br />Error No: 1054<br />SELECT COUNT(DISTINCT p.product_id) AS total FROM oc_product p LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND ( pd.name LIKE '%vw%' OR pd.tag LIKE '%vw%' OR LCASE(p.model) = 'vw' OR LCASE(p.sku) = 'vw' OR LCASE(p.upc) = 'vw' OR LCASE(p.ean) = 'vw' OR LCASE(p.jan) = 'vw' OR LCASE(p.isbn) = 'vw' OR LCASE(p.mpn) = 'vw') in /home/ri4y214/public_html/system/library/db/mysqli.php:40
Stack trace:
#0 /home/ri4y214/public_html/system/library/db.php(16): DB\MySQLi->query('SELECT COUNT(DI...', Array)
#1 /home/ri4y214/public_html/catalog/model/catalog/product.php(489): DB->query('SELECT COUNT(DI...')
#2 /home/ri4y214/public_html/system/storage/modification/system/engine/loader.php(150): ModelCatalogProduct->getTotalProducts(Array)
#3 /ho in /home/ri4y214/public_html/system/library/db/mysqli.php on line 40
Делай откат , и накатуй сначала опенкарт без шаблона , потестируй, потом уже только шаблонон, еще посмотри или пишет в базу данных . может нету записи просто в базу данных
 
Назад
Сверху