我想获得一个opencart属性列表,并在顶部菜单中添加一个链接以链接到该模块。当用户单击顶部菜单上的链接时,将在单个页面中显示所有属性列表。
任何指导意见。
答案 0 :(得分:1)
一般读取控制器,模型和库文件中的方法,检查是否有可以使用的方法。例如,您可以在admin / model / catalog / attribute.php中使用getAttributes
方法。如果您需要独立于语言的所有属性编写新模型文件并在没有WHERE
子句的情况下复制此函数,这将为您提供所使用语言的所有属性:
class simpleAttributeClass extends Model {
public function getAttributes($data = array()) {
$sql = "SELECT *, (SELECT agd.name FROM " . DB_PREFIX . "attribute_group_description agd) AS attribute_group FROM " . DB_PREFIX . "attribute a LEFT JOIN " . DB_PREFIX . "attribute_description ad ON (a.attribute_id = ad.attribute_id)";
$result = $this->db->query($sql);
return $result['rows'];
}
}
将其放入admin/model/catalog/simple_attribute.php
然后使用以下内容创建文件admin/controller/catalog/simple_attribute.php
:
class simpleAttributeClass extends Controller {
public function index() {
$this->load->model('catalog/simple_attribute');
$this->data['all_attributes'] = $this->model_catalog_simple_attribute->getAttributes();
$this->template = 'catalog/attribute_list.tpl';
$this->children = array(
'common/header',
'common/footer');
$this->response->setOutput($this->render());
}
}
然后创建一个view/template/catalog/simple_attribute.tpl
文件,例如:
<ul>
<?php foreach ($all_attributes as $attribute) { ?>
<li><?php echo $attribute['name']; ?></li>
<?php } ?>
</ul>
对于您想要的链接,编辑header.tpl文件(或通过vqmod执行)并添加<li><a href="index.php?route=catalog/simple_attribute">All attributes</a></li>
我还没有测试过,所以可能会出现一些错误,但它应该让您了解如何使用opencart代码。