2013-05-22 86 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>

现在更清楚了吗?

相关问题