2013-05-22 60 views
2

調用所有opencart大師的。嘗試瞭解類別頁面的排序功能(按名稱,評分,價格等進行排序)。行p.sort_order-ASCcatalog/controller/product/category.php擋住我。在SQL中,排序查詢的構建與ORDER BY table.field_name ASC/DESC類似,但我無法推斷出p.sort_order-ASC的邏輯。它是否被設置爲傳遞給javascript函數的值?什麼是Opencart的類別控制器文件中的sort_order-ASC?

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

     $this->data['sorts'][] = array(
      'text' => $this->language->get('text_default'), 
      'value' => 'p.sort_order-ASC', 
      'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url) 
     ); 

回答

3

Opencart的需要你有沒有價值,並基於這些排序它,所以它的訂單由p.sort_order(這是product表的別名psort_order場),其次是它的排序,其方式是ASC或升序

0

其實線

'value' => 'p.sort_order-ASC', 

在模板文件用於(例如catalog/view/theme/default/template/product/category.tpl)用於突出顯示(選擇)選定S orting類型。在提到控制器sortorderGET取得 - 具體地從被擊中,並通過這條線定義的網址:

'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url) 

,你可以看到,該URL包含了必要的&sort&order參數值從模板中獲取並推送到模板。

在模板中有這樣的情況:

<?php foreach ($sorts as $sorts) { ?> 
    <?php if ($sorts['value'] == $sort . '-' . $order) { ?> 
    <option value="<?php echo $sorts['href']; ?>" selected="selected"><?php echo $sorts['text']; ?></option> 
    <?php } else { ?> 

所以如果從URL中獲得$sort . '-' . $order相同排序的,選擇<option>

現在更清楚了嗎?

相關問題