phpcms V9是一个非常优秀的CMS管理系统,但是每一个CMS都不可能是完美的,很多功能需要经过二次开发,修改部分内核才能得到自己想要的效果,比如:在默认情况下,phpcms不支持调用全站文章排行。phpcms只支持调用当前文章排行,代码如下:
{pc:content action=”hits” catid=”ParseError: KaTeX parse error: Expected 'EOF', got '}' at position 48: …C” cache=”3600″}̲
其中catid为待调用栏目的id,如果想实现全站调用,需要修改phpcms\modules\content\classes\content_tag.class.php文件,找到以下函数(大概在:148——196行):
/**
* 排行榜标签
* @param data∗/publicfunctionhits(data
*/
public function hits(data∗/publicfunctionhits(data) {
catid=intval(catid = intval(catid=intval(data['catid']);
if(!this−>setmodelid(this->set_modelid(this−>setmodelid(catid)) return false;
this−>hitsdb=pcbase::loadmodel(′hitsmodel′);this->hits_db = pc_base::load_model('hits_model');this−>hitsdb=pcbase::loadmodel(′hitsmodel′);sql = desc=desc =desc=ids = '';
array=array =array=ids_array = array();
order=order =order=data['order'];
hitsid=′c−′.hitsid = 'c-'.hitsid=′c−′.this->modelid.'-%';
sql="hitsidLIKE′sql = "hitsid LIKE 'sql="hitsidLIKE′hitsid'";
if(isset(ParseError: KaTeX parse error: Expected '}', got 'EOF' at end of input: data['day'])) {updatetime = SYS_TIME-intval(data[′day′])∗86400;data['day'])*86400;data[′day′])∗86400;sql .= " AND updatetime>'ParseError: KaTeX parse error: Expected 'EOF', got '}' at position 19: …atetime'";
}̲
if(this->category[ParseError: KaTeX parse error: Expected '}', got 'EOF' at end of input: …id]['child']) {catids_str = this−>category[this->category[this−>category[catid]['arrchildid'];
pos=strpos(pos = strpos(pos=strpos(catids_str,',')+1;
catidsstr=substr(catids_str = substr(catidsstr=substr(catids_str, pos);pos);pos);sql .= " AND catid IN (ParseError: KaTeX parse error: Expected 'EOF', got '}' at position 19: …ids_str)";
}̲ else {sql .= " AND catid='ParseError: KaTeX parse error: Expected 'EOF', got '}' at position 14: catid'";
}̲hits = array();
result=result =result=this->hits_db->select(sql,′∗′,sql, '*',sql,′∗′,data['limit'], order);foreach(order);
foreach (order);foreach(result as ParseError: KaTeX parse error: Expected '}', got 'EOF' at end of input: r) {pos = strpos(r[′hitsid′],′−′,2)+1;r['hitsid'],'-',2) + 1;r[′hitsid′],′−′,2)+1;ids_array[] = id=substr(id = substr(id=substr(r['hitsid'],pos);pos);pos);hits[id]=id] =id]=r;
}
ids=implode(′,′,ids = implode(',',ids=implode(′,′,ids_array);
if(ParseError: KaTeX parse error: Expected '}', got 'EOF' at end of input: ids) {sql = "status=99 AND id IN (ParseError: KaTeX parse error: Expected 'EOF', got '}' at position 12: ids)";
}̲ else {sql = '';
}
this−>db−>tablename=this->db->table_name =this−>db−>tablename=this->tablename;
result=result =result=this->db->select(sql,′∗′,sql, '*',sql,′∗′,data['limit'],'','','id');
foreach (idsarrayasids_array asidsarrayasid) {
if(result[result[result[id]['title']!='') {
array[array[array[id] = result[result[result[id];
array[array[array[id] = array_merge(array[array[array[id], hits[hits[hits[id]);
}
}
return $array;
}
将此段代码修改为:
/**
* 排行榜标签
* @param data∗/publicfunctionhits(data
*/
public function hits(data∗/publicfunctionhits(data) {
catid=intval(catid = intval(catid=intval(data['catid']);
this−>hitsdb=pcbase::loadmodel(′hitsmodel′);this->hits_db = pc_base::load_model('hits_model');this−>hitsdb=pcbase::loadmodel(′hitsmodel′);sql = desc=desc =desc=ids = '';
array=array =array=ids_array = array();
order=order =order=data['order'];
hitsid=′c−′.hitsid = 'c-'.hitsid=′c−′.this->modelid.'-%';
sql="hitsidLIKE′sql = "hitsid LIKE 'sql="hitsidLIKE′hitsid'";
if(isset(ParseError: KaTeX parse error: Expected '}', got 'EOF' at end of input: data['day'])) {updatetime = SYS_TIME-intval(data[′day′])∗86400;data['day'])*86400;data[′day′])∗86400;sql .= " AND updatetime>'ParseError: KaTeX parse error: Expected 'EOF', got '}' at position 19: …atetime'";
}̲
if(!empty(catid) && ParseError: KaTeX parse error: Expected '}', got 'EOF' at end of input: …为空
if(!this->set_modelid(catid))returnfalse;if(catid)) return false;
if(catid))returnfalse;if(this->category[ParseError: KaTeX parse error: Expected '}', got 'EOF' at end of input: …id]['child']) {catids_str = this−>category[this->category[this−>category[catid]['arrchildid'];
pos=strpos(pos = strpos(pos=strpos(catids_str,',')+1;
catidsstr=substr(catids_str = substr(catidsstr=substr(catids_str, pos);pos);pos);sql .= " AND catid IN (ParseError: KaTeX parse error: Expected 'EOF', got '}' at position 23: …str)";
}̲ else {sql .= " AND catid='ParseError: KaTeX parse error: Expected 'EOF', got '}' at position 18: …tid'";
}̲
}hits = array();
result=result =result=this->hits_db->select(sql,′∗′,sql, '*',sql,′∗′,data['limit'], order);foreach(order);
foreach (order);foreach(result as ParseError: KaTeX parse error: Expected '}', got 'EOF' at end of input: r) {pos = strpos(r[′hitsid′],′−′,2)+1;r['hitsid'],'-',2) + 1;r[′hitsid′],′−′,2)+1;ids_array[] = id=substr(id = substr(id=substr(r['hitsid'],pos);pos);pos);hits[id]=id] =id]=r;
}
ids=implode(′,′,ids = implode(',',ids=implode(′,′,ids_array);
if(ParseError: KaTeX parse error: Expected '}', got 'EOF' at end of input: ids) {sql = "status=99 AND id IN (ParseError: KaTeX parse error: Expected 'EOF', got '}' at position 12: ids)";
}̲ else {sql = '';
}
this−>db−>tablename=this->db->table_name =this−>db−>tablename=this->tablename;
result=result =result=this->db->select(sql,′∗′,sql, '*',sql,′∗′,data['limit'],'','','id');
foreach (idsarrayasids_array asidsarrayasid) {
if(result[result[result[id]['title']!='') {
array[array[array[id] = result[result[result[id];
array[array[array[id] = array_merge(array[array[array[id], hits[hits[hits[id]);
}
}
return $array;
}
修改代码后,无论设置栏目id为0或空,都能调取全站文章排行。
调用方法1:
{pc:content action=”hits” catid=”0″ num=”10″ order=”views DESC” cache=”3600″}
调用方法2:
{pc:content action=”hits” num=”10″ order=”views DESC” cache=”3600″}
简单修改让phpcms V9实现调用全站文章排行 -云主机博士
![iproyal.png iproyal.png](https://pawns.iproyal.com/img/b/728.jpg)
原文链接:简单修改让phpcms V9实现调用全站文章排行 -云主机博士,转发请注明来源!
「简单修改让phpcms V9实现调用全站文章排行 -云主机博士」评论列表