kaf
wmaraci reklam

kategori hiyerarşi mantığı nasıl olmalı?

3 Mesajlar 983 Okunma
Toplam 3 mesaj ve 983 görüntüleme
acebozum
wmaraci reklam

Yeninesil44 Yeninesil44 Kullanıcı
  • Üyelik 28.02.2015
  • Yaş/Cinsiyet 35 / E
  • Meslek web programlama
  • Konum Malatya
  • Ad Soyad O** D**
  • Mesajlar 1033
  • Beğeniler 282 / 281
  • Ticaret 18, (%100)
Yapmak istediğim şey seçilen kategorinin alt kategorilerindeki ürünleri tek sorguda göstermek (enazından şimdilik).

http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/
şu kaynakdan faydalanarak her kategorinin left ve right değerlerini yazdım yani left kendisinden önce eklenen kategoriler right ise içindeki alt kategori sayısı şimdi buraya kadar tamam.

Listelerken sorunsuz tek sorguda listeliyorum left ve right degerleri ile fakat bir kategori eklemem gerektiğinde tüm kategorilerin left ve right değerlerini değişmek zorunda kalıorum buda çok uzun sürüor 30 sn civarı php işlemi sonlandıracak seviyede. 2 gündür uykumda bile bunu düşünüorum bi mantık bulamadım. Bu yolla hızlı kategori eklemek mümkün değil galiba. Tek tek sutunda açmak istemiorum her kategori için nasıl bi mantık kullanmalıyım? Bu kaynak kafamı çok karıştırdı yorumlardada benim sorunumu yaşayan çok kişi var fikir verebilecek arkadaş varmı?
 

 

MultiAnaliz.com
wmaraci reklam
reklam

Link Link WM Aracı Kimlik Onayı
  • Üyelik 04.01.2013
  • Yaş/Cinsiyet 45 / E
  • Meslek Seo Danışmanı
  • Konum İstanbul Avrupa
  • Ad Soyad H** A**
  • Mesajlar 1548
  • Beğeniler 379 / 426
  • Ticaret 46, (%100)
class ControllerModuleCategory extends Controller {
protected function index() {
$this->language->load('module/category');

$this->data['heading_title'] = $this->language->get('heading_title');

if (isset($this->request->get['path'])) {
$parts = explode('_', (string)$this->request->get['path']);
} else {
$parts = array();
}

if (isset($parts[0])) {
$this->data['category_id'] = $parts[0];
} else {
$this->data['category_id'] = 0;
}

if (isset($parts[1])) {
$this->data['child_id'] = $parts[1];
} else {
$this->data['child_id'] = 0;
}
if (isset($parts[2])) {
$this->data['altKat_id'] = $parts[2];
} else {
$this->data['altKat_id'] = 0;
}
$this->load->model('catalog/category');
$this->load->model('catalog/product');

$this->data['categories'] = array();

$categories = $this->model_catalog_category->getCategories(0);

foreach ($categories as $category) {

$children_data = array();
$alt_data = array();

$children = $this->model_catalog_category->getCategories($category['category_id']);

foreach ($children as $child) {
$alt_data = array();
$altKat = $this->model_catalog_category->getCategories($child['category_id']);
if($altKat) {
foreach ($altKat as $altMember) {
$alt_data[] = array(
'category_id' =>$altMember['category_id'],
'name' => $altMember['name'],
'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']. '_' . $altMember['category_id'])
);

}
$children_data[] = array(
'category_id' => $child['category_id'],
'alt_id' => $alt_data,
'name' => $child['name'],
'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
);
}else{
$children_data[] = array(
'category_id' => $child['category_id'],
'alt_id' =>'',
'name' => $child['name'],
'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
);
}
}
$data = array(
'filter_category_id' => $category['category_id'],
'filter_sub_category' => true
);

$product_total = $this->model_catalog_product->getTotalProducts($data);

$this->data['categories'][] = array(
'category_id' => $category['category_id'],
'name' => $category['name'],
'children' => $children_data,
'alt' => $alt_data,
'href' => $this->url->link('product/category', 'path=' . $category['category_id'])
);
}

if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/category.tpl')) {
$this->template = $this->config->get('config_template') . '/template/module/category.tpl';
} else {
$this->template = 'default/template/module/category.tpl';
}

$this->render();
}
}
?>


















































Bu işini görür hocam
Yeninesil44

kişi bu mesajı beğendi.

Yeninesil44 Yeninesil44 Kullanıcı
  • Üyelik 28.02.2015
  • Yaş/Cinsiyet 35 / E
  • Meslek web programlama
  • Konum Malatya
  • Ad Soyad O** D**
  • Mesajlar 1033
  • Beğeniler 282 / 281
  • Ticaret 18, (%100)
bunu biliriom ama tek sorguda yapmak istediğim için yukardaki gibi bişe buldum. Şuan bu iyi ama daha kategori ekleme sildirtme olayı yapmaya fırsatım olmadı onu daha hızlı yapmanın yolunu buldum. Yardımınız için teşekkürler hocam. Sorun olursa bu yapıya geçerim ama
 

 

MultiAnaliz.com
wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al