代码分析
有关relation标签的文件是/phpcms/modules/content/classes/content_tag.class.php,其中有一段就是这个函数的开始:大约在167行,如下。
有关relation标签的文件是/phpcms/modules/content/classes/content_tag.class.php,其中有一段就是这个函数的开始:大约在167行,如下。
/**
* 相关文章标签
* @param $data
*/
public function relation($data) {
$catid = intval($data['catid']);
$modelid = intval($data['modelid']);
if(!$this->set_modelid($catid) && $modelid) {
$this->db->set_model($modelid);
$this->tablename = $this->db->table_name;
} elseif(!$this->set_modelid($catid)) {
return false;
}
$order = $data['order'];//注意这里是有调用order的参数的。但是只在$data['relation'])参数中生效,见下标准
$sql = "`status`=99";
$limit = $data['id'] ? $data['limit']+1 : $data['limit'];
if($data['relation']) {
$relations = explode('|',trim($data['relation'],'|'));
$relations = array_diff($relations, array(null));
$relations = implode(',',$relations);
$sql = " `id` IN ($relations)";
$key_array = $this->db->select($sql, '*', $limit, $order,'','id');
} elseif($data['keywords']) {
$keywords = str_replace(array('%',"'"), '',$data['keywords']);
$keywords_arr = explode(' ',$keywords);
$key_array = array();
$number = 0;
$i =1;
$sql .= " AND catid='$catid'";
foreach ($keywords_arr as $_k) {
$sql2 = $sql." AND `keywords` LIKE '%$_k%'".(isset($data['id']) && intval($data['id']) ? " AND `id` != '".abs(intval($data['id']))."'" : '');
$r = $this->db->select($sql2, '*', $limit, '','','id');//注意在这里使用keywords="$rs[keywords]"}时并没有调用$order,因此我们只在把这里修改一下就可以
$r = $this->db->select($sql2, '*', $limit, $order,'','id');//这里我们将$order添加上。
以上就是青锋建站给大家分享的phpcms中relation标签如何按时间排序的解决方法。更多phpcms相关问题解决,请大家关注我们网站更新。青锋建站提供phpcms建站,二次开发服务。
$r = $this->db->select($sql2, '*', $limit, $order,'','id');//这里我们将$order添加上。
以上就是青锋建站给大家分享的phpcms中relation标签如何按时间排序的解决方法。更多phpcms相关问题解决,请大家关注我们网站更新。青锋建站提供phpcms建站,二次开发服务。
转载请注明来源网址:青锋建站-http://www.sjzphp.com/webdis/relation_tags_1349.html