Помощь Ошибка редактирования товара белый экран Paladin Seo Manager

Тема в разделе "Opencart", создана пользователем Respekt2012, 7 дек 2015.

Информация :
Внимание форумчане! При создании тем, или выкладывании какой-либо информации проверьте в какой ветке форума вы находитесь! Не путайте Opencart и Opencart2. При несоблюдении данного условия выносится соответствующее наказание! И потом не говорите что вас НЕ ПРЕДУПРЕЖДАЛИ! По возможности используйте обменники mail, yandex, google, dropbox, rghost Дабы избежать просьб перезалить и проблем с рекламой!
Модераторы: ZiX
  1. Respekt2012

    Respekt2012 Постоялец

    Регистр.:
    14 мар 2012
    Сообщения:
    72
    Симпатии:
    26
    Ошибка при редактировании товара(думаю что проблема в Paladin Seo Manager):
    Fatal error
    : Call to undefined method ModelCatalogProduct::getDescripProduct() in /vqmod/vqcache/vq2-admin_controller_catalog_product.php on line 745
    Код:
    738     require_once DIR_CONFIG . 'ssb_library/ssb_data.php';
    739     $this->ssb_data = ssb_data::getInstance();
    740     $ssb_setting = $this->ssb_data->getSetting();
    741     if($ssb_setting){
    742     if (isset($this->request->post['seodata'])) {
    743     $data['seodata'] = $this->request->post['seodata'];
    744     } elseif (isset($this->request->get['product_id'])) {
    745     $data['seodata'] =       $this->model_catalog_product->getDescripProduct($this->request->get['product_id']);
    746     }
    747     }

     
  2. DobruyZluden

    DobruyZluden ___Космический___ _____засланец_____

    Регистр.:
    8 сен 2015
    Сообщения:
    182
    Симпатии:
    83
    - Помогите, у меня машина сломалась!!!
    - Какая?
    - Ну такая... красненькая...
    Это я к тому что здесь не экстрасенсы, а версий опенкартов много...
    А теперь по делу:
    ошибка говорит о том, что в модели product.php не существует функции getDescripProduct, которую должен был сгенерировать Вкмод Паладина
    по этому либо ищите причину, почему он не может этого сделать, либо попробуйте дописать в файл admin/model/catalog/product.php функцию
    (после class ModelCatalogProduct extends Model { )
    Код:
                    /* = */
                    public function getDescripProduct($product_id) {
                    $seodata = array();$sql = "SELECT language_id, seo_title, seo_h1, seo_h2, seo_h3, meta_description, meta_keyword, description, alt_image, title_image, meta_seo_data FROM " . DB_PREFIX . "product_description WHERE product_id = '" . (int)$product_id . "'";$query = $this->db->query($sql);
                    if(count($query->rows)){
                        $_SESSION['current_meta_seo_data'] = array();
                    }else{
                        unset($_SESSION['current_meta_seo_data']);
                    }
                    foreach ($query->rows as $result) {
                        $seodata[$result['language_id']] = array('seo_title' => $result['seo_title'],'seo_h1' => $result['seo_h1'],'seo_h2' => $result['seo_h2'],'seo_h3' => $result['seo_h3'], 'alt_image'=> $result['alt_image'], 'title_image'=> $result['title_image']);
                        $_SESSION['current_meta_seo_data'][$result['language_id']] = $result;
                    }return $seodata;}
                   
                    public function setDescripProduct($product_id, $data = array(), $oc_data = array()){
                    if(!count($data)){$this->load->model('localisation/language');$languages = $this->model_localisation_language->getLanguages();$data = array();foreach ($languages as $l_code => $l_val) {$data[$l_val['language_id']] = array('seo_title'=> '','seo_h1'=> '','seo_h2'=> '','seo_h3'=> '');}}
                   
                    foreach($data as $language_id => $val){
                    $val['meta_description'] = $oc_data[$language_id]['meta_description'];
                    $val['meta_keyword'] = $oc_data[$language_id]['meta_keyword'];
                    $val['description'] = $oc_data[$language_id]['description'];
                   
                    $query = $this->db->query("SELECT product_id FROM " . DB_PREFIX . "product_description WHERE product_id = '" . (int)$product_id . "' AND language_id = '". (int)$language_id ."';");
                    if(count($query->rows)){
                    $meta_seo_data = $this->getSeoMetaData($val, $language_id);
                    $meta_seo_data = "meta_seo_data = '" . $meta_seo_data . "'";
                   
                    $sql = "UPDATE " . DB_PREFIX . "product_description SET seo_title = '". $this->db->escape($val['seo_title']) ."', seo_h1 = '". $this->db->escape($val['seo_h1']) ."', seo_h2 = '". $this->db->escape($val['seo_h2']) ."', seo_h3 = '". $this->db->escape($val['seo_h3']) ."', alt_image = '". $this->db->escape($val['alt_image']) ."', title_image = '". $this->db->escape($val['title_image']) ."', ". $meta_seo_data ."  WHERE product_id = '" . (int)$product_id . "' AND language_id = '". (int)$language_id ."'";}else{$sql = "INSERT INTO " . DB_PREFIX . "product_description SET product_id = '". (int)$product_id ."', seo_h1 = '". $this->db->escape($val['seo_h1']) ."', seo_h2 = '". $this->db->escape($val['seo_h2']) ."', seo_h3 = '". $this->db->escape($val['seo_h3']) ."', seo_title = '". $this->db->escape($val['seo_title']) ."', alt_image = '". $this->db->escape($val['alt_image']) ."', title_image = '". $this->db->escape($val['title_image']) ."';";}$this->db->query($sql);}
                    unset($_SESSION['current_meta_seo_data']);
                    }
                   
                    private function getSeoMetaData($new_data, $language_id){
                        if(!isset($_SESSION['current_meta_seo_data'][$language_id])) return '';
                        $meta_seo_data = json_decode($_SESSION['current_meta_seo_data'][$language_id]['meta_seo_data'], true);
                        $old_data = $_SESSION['current_meta_seo_data'][$language_id];
                       
                        if($meta_seo_data && is_array($meta_seo_data)){
                            foreach($old_data as $key => $val){
                                if(isset($new_data[$key]) AND $this->db->escape($new_data[$key]) != $val AND isset($meta_seo_data[$key])){
                                    if($val !='' AND $meta_seo_data[$key] == 'ag' AND $new_data[$key] != ''){
                                        $meta_seo_data[$key] = 'et'; // edited
                                    }elseif($val !='' AND $meta_seo_data[$key] == 'et' AND $new_data[$key] != ''){
                                        /*empty*/
                                    }else{
                                        unset($meta_seo_data[$key]);
                                    }
                                }elseif(isset($new_data[$key]) AND $this->db->escape($new_data[$key]) == '' AND isset($meta_seo_data[$key])){
                                    unset($meta_seo_data[$key]);
                                }
                            }
                        }else{
                            $meta_seo_data = '';
                        }
                        return !$meta_seo_data ? "" : $this->db->escape(json_encode($meta_seo_data));
                    }
                    /* = */
     
  3. Respekt2012

    Respekt2012 Постоялец

    Регистр.:
    14 мар 2012
    Сообщения:
    72
    Симпатии:
    26
    Версия опенкарта 2.0.3.1
    Добавление этого кода ни к чему не привела. Есть еще идеи?
     
  4. DobruyZluden

    DobruyZluden ___Космический___ _____засланец_____

    Регистр.:
    8 сен 2015
    Сообщения:
    182
    Симпатии:
    83
    а вообще файл vq2-admin_model_catalog_product.php генерируется? Ошибка та же? Кеш очищался?
     
  5. Respekt2012

    Respekt2012 Постоялец

    Регистр.:
    14 мар 2012
    Сообщения:
    72
    Симпатии:
    26
    Да генерируется, ошибка та же, кэш чистил
    После обновления кэша модификаторов возникла эта ошибка
     
  6. DobruyZluden

    DobruyZluden ___Космический___ _____засланец_____

    Регистр.:
    8 сен 2015
    Сообщения:
    182
    Симпатии:
    83
    Паладин какой версии? мне на 203 еще не приходилось ставить, но вероятней всего нужна нормальная версия 4.9.7b, а не те что тут выкладывают(на самом деле вместо нулла вкидывают старые версии контроллеров и называют это нуллом)
     
  7. Respekt2012

    Respekt2012 Постоялец

    Регистр.:
    14 мар 2012
    Сообщения:
    72
    Симпатии:
    26
    стоит версия 4.9.7b, дело в том что до этого вроде все работало
     
  8. DobruyZluden

    DobruyZluden ___Космический___ _____засланец_____

    Регистр.:
    8 сен 2015
    Сообщения:
    182
    Симпатии:
    83
    Ну была же причина после которой все потухло... удаляйте файлы вкмода паладина и пробуйте сайт без них- если заработает значит при генерировании где то в модели накладывается код....
     
    Respekt2012 нравится это.