prestashop浅谈二

ps自带有很多的插件,而有的在开发网站肯定是要的,默认就应该直接装好的,还要装,有的还要找,BS 1、显示全部商品,比如在导航栏加个链接,all products,最简单的方法当然是建一个分类,把所有的商品放进去,链接这个分类,这当然行的,但是ps有个不好的就是,只能在商品里选择分类,分类下不能选择商品,这样这个方法就不方便了,可以仿照newproducts和分类,主要就是控制器和取数据,在类文件中category.php建个getAllproducts方法,就是复制getProducts方法,把sql语句中的条件删掉就行了,这里注意下,这样会产生一个情况,这时的sql会遍历每个分类下的商品,如果商品同时属于两个分类下,会被取两次,加个关键字DISTINCT,搞定 2、根据分类搜索功能 这里发现个bug,搜索插件默认是装上的,但是只是显示在头部,看了下代码发现其实左右栏应该是显示的,把插件卸了在装上就行了,无语啊,这个功能首先要把分类放到select中,可以看下分类模块,把分类中的hookLeftColumn拿出来,blocksearch.tpl中加入select

Select Category
{foreach from=$blockCategTree.children item=child name=blockCategTree}
{$child.name|escape:html:'UTF-8'}
{/foreach}

这是只是一级分类,多级就在来几次循环,一般最多也就二级,此时传值时多了searchid,SearchController中加入判断是否有searchid

$test= Tools::getValue('searchid');
if(!$test){
$search = Search::find((int)(self::$cookie->id_lang), $query, $this->p, $this->n, $this->orderBy, $this->orderWay);
}else{$search = Search::findleft((int)(self::$cookie->id_lang),$test, $query, $this->p, $this->n, $this->orderBy, $this->orderWay);}

在类文件search.php建立findleft方法,也就是复制find方法,改下sql条件 c.`id_category` = '.$searchid.' OR c.id_parent = '.$searchid.' 分类下的子类也可以搜索 3、发现1.4.0.17一个极大的悲哀,在选择送货方式的时候,默认竟然是一个都没选,那后台的那个设置默认送货方式有什么用啊,我试了下1.3.7的,发现可以默认,看了下代码,原来1.4的控制文件少了一个判断

if (!isset($checked) OR intval($checked) == 0)
$checked = intval(Configuration::get('PS_CARRIER_DEFAULT'));

你可能感兴趣的:(prestashop)