Opencart bir sitem kategorileri verticalmenu diye bir modül var ordan eklemesini yapıyorum. modülün içinde import butonuna basında category tablosundaki verileri alıyor otomatik.
Ben ise kategorileri dışardan yani opencartın içinden değilde direk veritabanına gönderiyorum ürünleri filan. veritabanında verticalmenu ve verticalmenudescription olarak 2 tablo var 2 sinide olması gerektiği gibi gönderdiğim halde modül sayfasına girip import demediğim sürece kategoriler sayfada gözükmüyor. yapmak istediğim ise bu import fonksiyonunu ana dizinde örn: index2.php olarak bir sayfanın içinde çalıştırmak yüklemeleri yaparkende index2.php yi görüntüleyince import fonksiyonunu çalıştırmak istiyorum.
public function importCategories($store_id = 0){
$sql = "SELECT cd.`name`,c.* FROM ".DB_PREFIX ."category c
LEFT JOIN ".DB_PREFIX ."category_description cd ON c.category_id = cd.category_id
WHERE cd.language_id = '" . (int)$this->config->get('config_language_id') . "'
ORDER BY parent_id ASC";
$query = $this->db->query( $sql );
if($query->num_rows){
$categories = $query->rows;
}
$this->load->model('catalog/category');
foreach ($categories as &$category){
$category['language'] = $this->model_catalog_category->getCategoryDescriptions($category['category_id']);
if($this->checkExitItemMenu($category, $store_id) == 0){
if((int)$category['parent_id'] > 0){
$query1 = $this->db->query("SELECT verticalmenu_id FROM ".DB_PREFIX."verticalmenu WHERE store_id = ".$store_id." AND `type`='category' AND item='".$category['parent_id']."'");
if($query1->num_rows){
$megamenu_parent_id = (int)$query1->row['verticalmenu_id'];
}
} else {
$megamenu_parent_id = 1;
}
$this->insertCategory($category, $megamenu_parent_id, $store_id);
}
}
}buda aynı sayfadaki insertCategory fonksiyonupublic function insertCategory($category = array(), $megamenu_parent_id, $store_id = 0){
$data = array();
$data['verticalmenu']['position'] = 99;
$data['verticalmenu']['item'] = $category['category_id'];
$data['verticalmenu']['published'] = 1;
$data['verticalmenu']['parent_id'] = $megamenu_parent_id;
$data['verticalmenu']['show_title'] = 1;
$data['verticalmenu']['widget_id'] = 1;
$data['verticalmenu']['type_submenu'] = 'menu';
$data['verticalmenu']['type'] = 'category';
$data['verticalmenu']['colums'] = 1;
$data['verticalmenu']['store_id'] = $store_id;
$data['verticalmenu']['is_group'] = 0;
$sql = "INSERT INTO ".DB_PREFIX . "verticalmenu ( `";
$tmp = array();
$vals = array();
foreach( $data["verticalmenu"] as $key => $value ){
$tmp[] = $key;
$vals[]=$this->db->escape($value);
}
$sql .= implode("` , `",$tmp)."`) VALUES ('".implode("','",$vals)."') ";
$this->db->query( $sql );
$data['verticalmenu']['verticalmenu_id'] = $this->db->getLastId();
$this->load->model('localisation/language');
$languages = $this->model_localisation_language->getLanguages();
if( isset($category["language"]) ){
$sql = " DELETE FROM ".DB_PREFIX ."verticalmenu_description WHERE verticalmenu_id=".(int)$data["verticalmenu"]['verticalmenu_id'] ;
$this->db->query( $sql );
foreach( $category["language"] as $key => $categorydes ){
$sql = "INSERT INTO ".DB_PREFIX ."verticalmenu_description(`language_id`, `verticalmenu_id`,`title`)
VALUES(".$key.",'".$data['verticalmenu']['verticalmenu_id']."','".$this->db->escape($categorydes['name'])."') ";
$this->db->query( $sql );
}
}
}başka gerekli olucak bir kod blogu var ise gönderebilirim. yardım edebilcek arkadaşlara çok teşekkür ederim şimdiden.