lostyazilim
tr.link

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

3 Mesajlar 848 Okunma
lstbozum
tr.link

Yeninesil44 Yeninesil44 Kullanıcı
  • Üyelik 28.02.2015
  • Yaş/Cinsiyet 34 / 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

Link Link WM Aracı Kimlik Onayı
  • Üyelik 04.01.2013
  • Yaş/Cinsiyet 44 / 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 34 / 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