用phpcms做網(wǎng)站的時(shí)候,有些地方要用到推薦位列表,如幻燈片,特別推薦等。有時(shí)候因?yàn)橹匾潭炔煌膯栴},我希望推薦位能夠按照后臺(tái)設(shè)置的排序號(hào)來(lái)排序。這時(shí)代碼應(yīng)該是:{pc:content action="position" posid="25" num="4" order="listorder DESC"} {/pc}
1.打開文件:/phpcms/modules/admin/classes/push_api.class.php
找到:
$info['id'] = $info['listorder'] = $d['id'];
就是這一句,當(dāng)添加文章或者修改文章的時(shí)候,把listorder變得跟id一樣,以至于,listorder排序不起作用。
所以上面那句代碼應(yīng)該改為:
$info['id'] = $d['id'];
這樣一來(lái)添加文章或者修改文章的時(shí)候就不會(huì)改動(dòng)listorder的值了。但單單這樣還不行,因?yàn)橥扑]標(biāo)簽在取數(shù)據(jù)的時(shí)候,是根據(jù)v9_position_data表的listorder來(lái)排序的,但后臺(tái)更新文章排序的時(shí)候,并沒有更新v9_position_data這個(gè)表的listorder,所以得加上這個(gè)功能。
2.打開文件:/phpcms/modules/content/content.php
找到:
在上面的后面加上
//更改推薦位排序開始
$this->db_config = pc_base::load_config('database');
$tablepre = $this->db_config['default']['tablepre'];
$this->db->table_name = $tablepre."position_data";
foreach($_POST['listorders'] as $id => $listorder) {
$r = $this->db->get_one(array('id'=>$id));
if($r['posid']){
$this->db->update(array('listorder'=>$listorder),array('id'=>$id,modelid=>$modelid));
}
}
//更改推薦位排序開始
改完這兩個(gè)地方就可以正常使用推薦位排序了。