Php 什么是Opencart';s类别控制器文件?
调用所有opencart大师。在尝试理解分类页面的排序功能(按名称、评级、价格等排序)时。Php 什么是Opencart';s类别控制器文件?,php,sql,opencart,Php,Sql,Opencart,调用所有opencart大师。在尝试理解分类页面的排序功能(按名称、评级、价格等排序)时。catalog/controller/product/category.php中的行p.sort\u order-ASC让我感到困惑。在SQL中,排序查询的构建类似于orderbytable.field\u name ASC/DESC,但我无法推断p.sort\u ORDER-ASC的逻辑。是否将其设置为传递给javascript函数的值 $this->data['sorts'] = array();
catalog/controller/product/category.php
中的行p.sort\u order-ASC
让我感到困惑。在SQL中,排序查询的构建类似于orderbytable.field\u name ASC/DESC
,但我无法推断p.sort\u ORDER-ASC
的逻辑。是否将其设置为传递给javascript函数的值
$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)
);
OpenCart获取您在那里的值并根据这些值对其进行排序,因此它按
p.sort\u order
(这是产品
表的别名p
和排序顺序
字段)排序,然后是排序方式,即ASC
或升序,实际上是行
'value' => 'p.sort_order-ASC',
在模板文件(例如,catalog/view/theme/default/template/product/category.tpl
)中用于突出显示(选择)所选排序类型。在上述控制器中,sort
和order
从GET
中获取,具体地说,从点击的URL中获取,并由此行定义:
'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 { ?>
所以如果$sort.'-'$从URL获得的订单与排序的值相同,则选择
现在清楚了吗