getAttributes($compiler, $args); $from = $_attr['from']; $item = $_attr['item']; $name = $_attr['item']; $name=str_replace('\'','',$name); $name=$name?$name:'list';$name='$'.$name; if (!strncmp("\$_smarty_tpl->tpl_vars[$item]", $from, strlen($item) + 24)) { $compiler->trigger_template_error("item variable {$item} may not be the same variable as at 'from'", $compiler->lex->taglineno); } //自定义标签 START //数据库操作 $OutputStr = ' global $db,$db_config,$config; include PLUS_PATH.\'/group.cache.php\';' .$name.'= array(); $rs = null; $nids = null; $paramer = '.ArrayToString($_attr,true).'; $ParamerArr = GetSmarty($paramer,$_GET,$_smarty_tpl); $paramer = $ParamerArr[\'arr\']; $Purl = $ParamerArr[\'purl\']; if($paramer[cache]){ $Purl = "{{page}}.html"; } global $ModuleName; if(!$Purl["m"]){ $Purl["m"]=$ModuleName; } $where=1; $where .=" and (`starttime`<=".time()." or `starttime`=0 or `starttime` is null)"; $where .=" and (`endtime`>".time()." or `endtime`=0 or `endtime` is null)"; if($config[\'did\']){ $where .= " and (`did`=\'".$config[\'did\']."\' or `did`=-1)"; }else{ $where .= " and (`did`=-1 OR `did`=0 OR did=\'\')"; } include PLUS_PATH."/group.cache.php"; if($paramer[\'nid\']){ $nid_s = @explode(\',\',$paramer[nid]); foreach($nid_s as $v){ if($group_type[$v]){ $paramer[nid] = $paramer[nid].",".@implode(\',\',$group_type[$v]); } } } if($paramer[\'nid\']!="" && $paramer[\'nid\']!=0){ $where .=" AND `nid` in ($paramer[nid])"; $nids = @explode(\',\',$paramer[\'nid\']); $paramer[\'nid\']=$paramer[\'nid\']; }else if($paramer[\'rec\']!=""){ $nids=array(); if(is_array($group_rec)){ foreach($group_rec as $key=>$value){ if($key<=2){ $nids[]=$value; } } $paramer[nid]=@implode(\',\',$nids); } } if($paramer[\'type\']){ $type = str_replace("\"","",$paramer[type]); $type_arr = @explode(",",$type); if(is_array($type_arr) && !empty($type_arr)){ foreach($type_arr as $key=>$value){ $where .=" AND FIND_IN_SET(\'".$value."\',`describe`)"; if(count($nids)>0){ $picwhere .=" AND FIND_IN_SET(\'".$value."\',`describe`)"; } } } } //拼接补充SQL条件 if($paramer[\'pic\']!=""){ $where .=" AND `newsphoto`<>\'\'"; } //新闻搜索 if($paramer[\'keyword\']!=""){ $where .=" AND `title` LIKE \'%".$paramer[keyword]."%\'"; } //拼接查询条数 if(intval($paramer[\'limit\'])>0){ $limit = intval($paramer[\'limit\']); $limit = " limit ".$limit; } if($paramer[\'ispage\']){ if($Purl["m"]=="wap"){ $limit = PageNav($paramer,$_GET,"news_base",$where,$Purl,"","6",$_smarty_tpl); }else{ $limit = PageNav($paramer,$_GET,"news_base",$where,$Purl,"","5",$_smarty_tpl); } } //拼接字段排序 if($paramer[\'order\']!=""){ $where .=" ORDER BY $paramer[order]"; }else{ $where .=" ORDER BY `starttime`"; } //排序方式默认倒序 if($paramer[\'sort\']){ $where.=" ".$paramer[sort]; }else{ $where.=" DESC"; } //多类别新闻查找 if(!intval($paramer[\'ispage\']) && count($nids)>0){ $nidArr = @explode(\',\',$paramer[nid]); $rsnids = array(); if(is_array($group_type)){ foreach($group_type as $key=>$value){ if(in_array($key,$nidArr)){ if(is_array($value)){ foreach($value as $v){ $rsnids[$v] = $key; $nidArr[] = $v; } } } } } $where = " `nid` IN (".@implode(\',\',$nidArr).")"; if($config[\'did\']){ $where.=" and `did`=\'".$config[\'did\']."\'"; } //查询带图新闻 if($paramer[\'pic\']){ if(!$paramer[\'piclimit\']){ $piclimit = 1; }else{ $piclimit = $paramer[\'piclimit\']; } $db->query("set @f=0,@n=0"); $query = $db->query("select * from (select id,title,color,datetime,starttime,description,newsphoto,@n:=if(@f=nid,@n:=@n+1,1) as aid,@f:=nid as nid from $db_config[def]news_base WHERE ".$where." AND `newsphoto` <>\'\' order by nid asc,starttime desc) a where aid <=".$piclimit); $conque = $db->select_all("news_content","1 order by nbid desc".$limit); foreach($conque as $cv){ $newcon[$cv[nbid]]=$cv; } while($rs = $db->fetch_array($query)){ if($rsnids[$rs[\'nid\']]){ $rs[\'nid\'] = $rsnids[$rs[\'nid\']]; } //处理标题长度 if(intval($paramer[t_len])>0){ $len = intval($paramer[t_len]); $rs[title_n] = $rs[title]; $rs[title] = mb_substr($rs[title],0,$len,"utf-8"); } if($rs[color]){ $rs[title] = "".$rs[title].""; } //处理描述内容长度 if(intval($paramer[d_len])>0){ $len = intval($paramer[d_len]); $rs[description] = mb_substr($rs[description],0,$len,"utf-8"); } $rs[\'name\'] = $group_name[$rs[\'nid\']]; //构建资讯静态链接 if($config[sy_news_rewrite]=="2"){ $rs["url"]=$config[\'sy_weburl\']."/news/".date("Ymd",$rs["datetime"])."/".$rs[id].".html"; }else{ $rs["url"] = Url("article",array("c"=>"show","id"=>$rs[id]),"1"); } if(mb_substr($rs[newsphoto],0,4)=="http"){ $rs["picurl"]=$rs[newsphoto]; }else{ if($rs[\'newsphoto\']==""){ $content=str_replace(array(\'"\',"\'"),array("",""),$newcon[$rs[id]]["content"]); preg_match_all("/]+src=(.*?)\s[^>]+>/im",$content,$res); $str=str_replace("\\\\","",$res[1][0]); if($str){ $rs[newsphoto]=".".$str; } } $nopic=$config[sy_weburl]."/app/template/".$config[style]."/images/nopic.gif"; $rs["picurl"] = checkpic($rs[\'newsphoto\'],$nopic); } $rs[time]=date("Y-m-d",$rs[starttime]); $rs[\'starttime\']=date("m-d",$rs[starttime]); if(count('.$name.'[$rs[\'nid\']][\'pic\'])<$piclimit){ '.$name.'[$rs[\'nid\']][\'pic\'][] = $rs; } }//end while } $db->query("set @f=0,@n=0"); $query = $db->query("select * from (select id,title,datetime,starttime,color,description,newsphoto,@n:=if(@f=nid,@n:=@n+1,1) as aid,@f:=nid as nid from $db_config[def]news_base WHERE ".$where." order by nid asc,starttime desc) a where aid <=$paramer[limit]"); while($rs = $db->fetch_array($query)){ if($rsnids[$rs[\'nid\']]){ $rs[\'nid\'] = $rsnids[$rs[\'nid\']]; } //处理标题长度 if(intval($paramer[t_len])>0){ $len = intval($paramer[t_len]); $rs[title_n] = $rs[title]; $rs[title] = mb_substr($rs[title],0,$len,"utf-8"); } if($rs[color]){ $rs[title] = "".$rs[title].""; } //处理描述内容长度 if(intval($paramer[d_len])>0){ $len = intval($paramer[d_len]); $rs[description] = mb_substr($rs[description],0,$len,"utf-8"); } //获取所属类别名称 $rs[\'name\'] = $group_name[$rs[\'nid\']]; //构建资讯静态链接 if($config[sy_news_rewrite]=="2"){ $rs["url"]=$config[\'sy_weburl\']."/news/".date("Ymd",$rs["datetime"])."/".$rs[id].".html"; }else{ $rs["url"] = Url("article",array("c"=>"show","id"=>$rs[id]),"1"); } if(mb_substr($rs[newsphoto],0,4)=="http"){ $rs["picurl"]=$rs[newsphoto]; }else{ if($rs[\'newsphoto\']==""){ $rs["picurl"] = $config[sy_weburl]."/app/template/".$config[style]."/images/nopic.gif"; }else{ $rs["picurl"] = checkpic($rs[\'newsphoto\']); } } $rs[time]=date("Y-m-d",$rs[starttime]); $rs[starttime]=date("m-d",$rs[starttime]); if(count('.$name.'[$rs[\'nid\']][\'arclist\'])<$paramer[limit]){ '.$name.'[$rs[\'nid\']][\'arclist\'][] = $rs; } }//end while }//end if(!intval($paramer[\'ispage\']) && count($nids)>0) else{ $query = $db->query("SELECT * FROM `$db_config[def]news_base` WHERE ".$where.$limit); while($rs = $db->fetch_array($query)){ //处理标题长度 if(intval($paramer[t_len])>0){ $len = intval($paramer[t_len]); $rs[title_n] = $rs[title]; $rs[title] = mb_substr($rs[title],0,$len,"utf-8"); } if($rs[color]){ $rs[title] = "".$rs[title].""; } //处理描述内容长度 if(intval($paramer[d_len])>0){ $len = intval($paramer[d_len]); $rs[description] = mb_substr($rs[description],0,$len,"utf-8"); } //获取所属类别名称 $rs[\'name\'] = $group_name[$rs[\'nid\']]; //构建资讯静态链接 if($config[sy_news_rewrite]=="2"){ $rs["url"]=$config[\'sy_weburl\']."/news/".date("Ymd",$rs["datetime"])."/".$rs[id].".html"; }else{ $rs["url"] = Url("article",array("c"=>"show","id"=>$rs[id]),"1"); } if(mb_substr($rs[newsphoto],0,4)=="http"){ $rs["picurl"]=$rs[newsphoto]; }else{ if($rs[\'newsphoto\']==""){ $rs["picurl"] = $config[sy_weburl]."/app/template/".$config[style]."/images/nopic.gif"; }else{ $rs["picurl"] = checkpic($rs[\'newsphoto\']); } } $rs[time]=date("Y-m-d",$rs[starttime]); $rs[starttime]=date("m-d",$rs[starttime]); '.$name.'[] = $rs; }//end while }'; //自定义标签 END //global $DiyTagOutputStr; //$DiyTagOutputStr[]=$OutputStr; return SmartyOutputStr($this,$compiler,$_attr,'article',$name,$OutputStr,$name); } } class Smarty_Internal_Compile_Articleclose extends Smarty_Internal_CompileBase{ public function compile($args, $compiler, $parameter){ $_attr = $this->getAttributes($compiler, $args); if ($compiler->nocache) { $compiler->tag_nocache = true; } list($openTag, $compiler->nocache, $item, $key) = $this->closeTag($compiler, array('article', 'articleelse')); return ""; } }