栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP > php开源框架 > dedecms

dedecms模板原理,实现标签替换

dedecms 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

dedecms模板原理,实现标签替换

正则匹配出所有的arclist标签并构造SQL   取出数据并替换field为相应字段的数据   为field标签添加一个function属性   $v)   {            // 取出标签相应的属性字符串并把属性转化成一个数组,如 row="10" channelid="17" addfields="pffz,pfrs,yuyan" orderby="id" orderway="desc"      $attrArr = strToArray($a[1][$k]);      // 根据构造构造SQL语句上的变量      if(isset($attrArr['row']))          $limit = $attrArr['row'];      else          $limit = 20;      if(isset($attrArr['orderby']))          $orderby = $attrArr['orderby'];      else          $orderby = 'id';      if(isset($attrArr['orderway']))          $orderway = $attrArr['orderway'];      else          $orderway = 'desc';      // 连表的属性      if(isset($attrArr['channelid']))          $leftJoin = ' LEFT JOIN dede_addon17 b ON a.id=b.aid ';      else          $leftJoin = '';      if(isset($attrArr['addfields']))          $extraFields = ','.$attrArr['addfields'];      else          $extraFields = '';      // 解析属性            $sql = "SELECt a.*$extraFields              FROM dede_archives a $leftJoin               ORDER BY $orderby $orderway               LIMIT $limit";      $dsql->Execute('me', $sql);      $html = '';      // 每个arclist对应的多个数据      while($row = $dsql->GetArray('me'))      {          // 重置模板字符串,不要在原模板上面进行替换          $_tep = $a[2][$k];                    // 把字符串中的[field:xxxx/]替换成$row['xxxx']变量。          $_re = '/[field:(w+)(s+function=("|')(w+)((.*))3)?/]/U';          preg_match_all($_re, $_tep, $_a);          /**
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/5272.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号