本文目錄一覽:
phpcms 類別管理添加的類別在前台怎麼調用啊
看你需要在什麼地方調用類別名稱
如果是在信息列表也的每個信息標題前顯示類別名,需要在模版中讀取類別緩存
{php $TYPE = getcache(‘type_content_’.$siteid,’commons’)}
先在需要顯示類別名的模版中加入上行代碼,讀取類別列表緩存;
然後在需要類別名的標題列表標籤中加上
{$TYPE[$r[typeid]][name]}
例如:
{$TYPE[$r[typeid]][name]} {$r[title]}
注意,如果是自定義SQL查詢標題列表標籤, 必須查詢typid欄位
php無限極分類實現的方法?
初始化的數據
//初始化原始數據(id=編號,name=顯示名稱,pid=父級目錄id,sort=排序順序)$data[1] = array(‘id’=’1′,’name’=’一級目錄A’,’pid’=’0′,’sort’=’1′);
$data[2] = array(‘id’=’2′,’name’=’一級目錄B’,’pid’=’0′,’sort’=’2′);
$data[3] = array(‘id’=’3′,’name’=’一級目錄C’,’pid’=’0′,’sort’=’3′);
$data[4] = array(‘id’=’4′,’name’=’一級目錄D’,’pid’=’0′,’sort’=’4′);
$data[5] = array(‘id’=’5′,’name’=’二級目錄A-1′,’pid’=’1′,’sort’=’1’);
$data[6] = array(‘id’=’6′,’name’=’二級目錄A-2′,’pid’=’1′,’sort’=’2’);
$data[7] = array(‘id’=’7′,’name’=’二級目錄A-3′,’pid’=’1′,’sort’=’3’);
$data[8] = array(‘id’=’8′,’name’=’二級目錄B-1′,’pid’=’2′,’sort’=’1’);
$data[9] = array(‘id’=’9′,’name’=’二級目錄B-2′,’pid’=’2′,’sort’=’2’);
$data[10] = array(‘id’=’10’,’name’=’二級目錄B-3′,’pid’=’2′,’sort’=’3′);
$data[11] = array(‘id’=’11’,’name’=’二級目錄C-1′,’pid’=’3′,’sort’=’2′);
$data[12] = array(‘id’=’12’,’name’=’二級目錄D-1′,’pid’=’4′,’sort’=’1′);
$data[13] = array(‘id’=’13’,’name’=’二級目錄D-2′,’pid’=’4′,’sort’=’2′);
$data[14] = array(‘id’=’14’,’name’=’三級目錄A-2-1′,’pid’=’6′,’sort’=’1′);
$data[15] = array(‘id’=’15’,’name’=’三級目錄A-2-2′,’pid’=’6′,’sort’=’2′);
$data[16] = array(‘id’=’16’,’name’=’三級目錄C-1-1′,’pid’=’11’,’sort’=’1′);
$data[17] = array(‘id’=’17’,’name’=’三級目錄B-2-1′,’pid’=’9′,’sort’=’2′);
顯示樹結構
function printTree($data,$level=0){ foreach($data as $key=$value){ for($i=0;$i=$level;$i++){ echo ’emsp;emsp;’;
} echo $value[‘name’]; echo ‘br’; if(!empty($value[‘children’])){
printTree($value[‘children’],$level+1);
}
}
}
使用遞歸的方式獲取無限極分類數組
function getNodeTree($list,$tree,$pid=0){ foreach($list as $key=$value){ if($pid == $value[‘pid’]){
$tree[$value[‘id’]]=$value; unset($list[$key]);
getNodeTree($list,$tree[$value[‘id’]][‘children’],$value[‘id’]);
}
}
}
使用引用-無限極分類
function createNodeTree($list,$tree){ foreach($list as $key=$node){ if(isset($list[$node[‘pid’]])){
$list[$node[‘pid’]][‘children’][] = $list[$key];
}else{
$tree[] = $list[$node[‘id’]];
}
}
}
調用
//遞歸-無限極分類調用getNodeTree($data,$tree);
printTree($tree);//使用引用-無限極分類調用createNodeTree($data,$tree);
printTree($tree);
PHPCMS如何調用多個分類欄目的最新文章
有沒有這樣一種需求,當我們使用PHPCMS建立多級站點時,每個大的分類下面又有許多小的分類,如果想要調用第一大分類下面和第二大分類下面的文章同時出來的時候,該怎麼調用呢。如果只是第一大分類和第二大分類,下面沒有包含小的分類的時候,哪么調用就很簡單了,我們直接使用GET就可以調用出來了,使用 PHP 的 SQL 中 in 功能。如下代碼:
123456 {pc:get sql=”SELECT * FROM v9_news WHERE catid in(1,3,5) ORDE R BY id DESC” num=”10″} {loop $data $v} lia href=”{$v[url]}”{$v[title]}/a/li {/loop} {/pc}
上面調用了1,3,5分類的文章,這個是比較容易理解的,如果遇到上面提到的問題,大的分類下面又存在小的分類,那麼利用上面的方法就沒有辦法調出子分類的內容了,所以我們要做的是如果直接分類那麼直接顯示分類ID,如果有小的分類,那麼就顯示所有的子分類ID,最後再把他們用逗號連接起來,同樣可以實現相同的效果,看下面的代碼:
1234567891011121314 ?php $assigncatid=array(23,24,19); $str =array(); foreach($assigncatid as $row){ $str[]=$CATEGORYS[$row][arrchildid]; } $finalcatid= implode(‘,’, $str); ? {pc:get sql=”SELECT * FROM v9_news WHERE catid in($finalcatid) ORD ER BY id DESC” num=”14″} {loop $data $v} lia href=”{$v[url]}”{$v[title]}/a/li {/loop} {/pc}
這裡先了 3 個分類的ID,其中,23,24沒有子分類,而19有許多子分類,$CATEGORYS[$row][arrchildid] 這一句很重要,如果沒有子分類則直接顯示該分類的ID,如果有子分類,就會以1,2,3,4,5這種格式將所有的子分類都顯示出來,數組中有3個值,所以foreach後會形成3個數組,分別是大類23,24,以及19,43,44,其中,43,44均為19大類下面的子分類ID。
把這循環的三組數組賦給一個新的數組,然後在循環外用逗號切割成字元串,拼起來就是所有大類與子類了,如23,24,19,43,44這樣,做到這裡就實現了剛開始提出的問題。
另外一種方法調用代碼如下:
1234 {loop subcat(15) $k $v} {php $subcatid[] = $k;} {/loop} {php $subcatid = implode(‘,’, $subcatid);}
然後在讀取SQL的條件中這樣寫 WHERE catid in($finalcatid)
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/160867.html