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

Respekt2012

Постоялец
Регистрация
14 Мар 2012
Сообщения
191
Реакции
121
Ошибка при редактировании товара(думаю что проблема в 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     }

 
- Помогите, у меня машина сломалась!!!
- Какая?
- Ну такая... красненькая...
Это я к тому что здесь не экстрасенсы, а версий опенкартов много...
А теперь по делу:
ошибка говорит о том, что в модели 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));
                }
                /* = */
 
Версия опенкарта 2.0.3.1
Добавление этого кода ни к чему не привела. Есть еще идеи?
 
а вообще файл vq2-admin_model_catalog_product.php генерируется? Ошибка та же? Кеш очищался?
 
Да генерируется, ошибка та же, кэш чистил
После обновления кэша модификаторов возникла эта ошибка
 
Паладин какой версии? мне на 203 еще не приходилось ставить, но вероятней всего нужна нормальная версия 4.9.7b, а не те что тут выкладывают(на самом деле вместо нулла вкидывают старые версии контроллеров и называют это нуллом)
 
стоит версия 4.9.7b, дело в том что до этого вроде все работало
 
Ну была же причина после которой все потухло... удаляйте файлы вкмода паладина и пробуйте сайт без них- если заработает значит при генерировании где то в модели накладывается код....
 
Назад
Сверху