源于生活
标题: [field:global]各种循环手段 [打印本页]
作者: kevin-ying 时间: 2014-2-17 22:50
标题: [field:global]各种循环手段
[field:global.autoindex/]从2开始和从0开始
在织梦的{dede:arclist/}的标签中,有一个非常有用的,[field:global.autoindex/],这个标签是一个自增长标签,他的值是默认是从1开始,跟着你的列表自动自增,在我们给网站加入一些效果时候会非常有用。
这里再介绍一下,如果想让他从0开始自增的方法
- [field:autoindex runphp='yes']@me=$GLOBALS['autoindex']-1;[/field:autoindex]
复制代码
这里的-1是重点,如果想从2开始自增就是+1以此类推
列表隔5行加一行线:
- {dede:list pagesize='50'}
- <LI><a href="[field:arcurl /]" title="[field:title function='htmlspecialchars(@me)'/]"
- target=_blank>[field:title function="cn_substr(@me,48)"/]</a>[field:pubdate runphp='yes']
- $a="<font color=red>".strftime('%m-%d',@me)."</font>";
- $b=strftime('%m-%d',@me);
- $ntime = time();
- $day3 = 3600 * 24;
- if(($ntime - @me) < $day3) @me = $a;
- else @me =$b;
- [/field:pubdate]<br>
- [field:global name=autoindex runphp="yes"]
- if(@me%5==0)@me="<hr />";
- else @me="";
- [/field:global]
- {/dede:list}
- <DIV class="line2 m1 m3"></DIV></LI>
复制代码 循环时的条件判断。例如当循环到第四条时增加一个<li class='x_li'></li>,其他的时候则没有。
标签:
- {dede:arclist row=16 }
- <li class="tb_li[field:global.autoindex/]"><a href="[field:arcurl/]"><img src="[field:litpic/]" /></a>
- </li>
- [field:global name=autoindex runphp='yes'] (@me!=4)? @me="":@me="<li class='x_li'></li>";
- [/field:global]
- {/dede:arclist}
复制代码 隔行换色- {dede:arclist orderby=pubdate titlelen='26' row='10'}
- [field:global runphp='yes' name=autoindex]
- $a="<div id='a'>";
- $b="<div id='b'>";
- if ((@me%2)==0) @me=$a;
- else @me=$b;
- [/field:global]
- <ul>
- <li>[field:title/]</li>
- </ul>
- </div>
- {/dede:arclist}
复制代码
每三行一次有序循环(原创,必须可以用)
{dede:list模版标签下使用[field:global name=autoindex/]
用dede:loop标签调用论坛贴子时,用 [field:global name=autoindex/]递增,如<li class=1>,<li class=2>,,,等。
要修改一个文件。
搜索页面循环用的是{dede:list} 有的时候我们需要在显示第几条~ 这个时候大家可能会想到 [field:global name=autoindex/]递增~ 只是这个标签不被支持
我们要修改一下/include/arc.searchview.class.php文件~
找到include下的arc.searchview.class文件
//搜索
- $query = "Select arc.*,act.typedir,act.typename,act.isdefault,act.defaultname,act.namerule,
- act.namerule2,act.ispart,act.moresite,act.siteurl,act.sitepath
- from `#@__archives` arc left join `#@__arctype` act on arc.typeid=act.id
- where {$this->AddSql} $ordersql limit $limitstart,$row";
- $this->dsql->SetQuery($query);
- $this->dsql->Execute("al");
- $artlist = "";
- if($col>1)
- {
- $artlist = "<table width='$tablewidth' border='0' cellspacing='0' cellpadding='0'>\r\n";
- }
- $this->dtp2->LoadSource($innertext);
复制代码
在后面加上
- $GLOBALS['autoindex'] = 0;
复制代码
然后找到
- $row['templeturl'] = $GLOBALS['cfg_templeturl'];
复制代码
在其后加上
保存一下就可以在{dede:list}里面使用[field:global name=autoindex/]了~
作者: kevin-ying 时间: 2014-2-17 22:50
最新 文章列表 “隔行换色” 的方法
- {dede:arclist orderby=pubdate titlelen='26' row='10'}
- [field:global runphp='yes' name=autoindex]
- $a="<div id='a'>";
- $b="<div id='b'>";
- if ((@me%2)==0) @me=$a;
- else @me=$b;
- [/field:global]
- <ul>
- <li>[field:title/]</li>
- </ul>
- </div>
- {/dede:arclist}
复制代码
24小时内更新的文章时间显示为红色:
- [field:pubdate runphp='yes']
- $a="<font color=red>".strftime('%m-%d',@me)."</font>";
- $b=strftime('%m-%d',@me);
- $ntime = time();
- $day3 = 3600 * 24;
- if(($ntime - @me) < $day3) @me = $a;
- else @me =$b;
- [/field:pubdate]
复制代码
COPY页面内容,自动在后面加上网站信息,利于SEO
- <script type="text/javascript">
- document.body.oncopy = function () { setTimeout( function () { var text = clipboardData.getData("text"); if (text) { text = text + "\r\n本篇文章来源于 www.地址.COM 原文链接:"+location.href; clipboardData.setData("text", text); } }, 100 ) }
- </script>
复制代码 实现“文章标题-2级栏目-1级栏目-网站名”形式
- {dede:field name='title'/}-{dede:field name='position' runphp='yes'}
- $tc="-"; //分隔符
- $tw=$GLOBALS['cfg_list_symbol']; //调用位置分隔符
- @me=html2text(@me); //去除html标签
- $tf=split($tw,@me); //分解成数组
- for($ta=(count($tf)-2);$ta>=1;$ta--){ //循环赋值给$tk
- $tk.=trim($tf[$ta]).$tc;
- }
- $tk=substr($tk,0,-1);
- @me=$tk; //赋值给@me
- {/dede:field}-{dede:global name='cfg_webname'/}
复制代码
发布的文章显示红色日期或加上new字或new小图片
给近三天(或当天)发布的文章显示红色日期或加上new字或new小图片等。
都是围绕pubdate做文章,写扩展的。
第2、3要注意的问题是:如:"<img src='new.gif' />中不能用双引号,否则不行。
如果要给当天的加,把 3600 * 24 * 3 改为 3600 * 24 即可。
1、==========红色的日期========
- [field:pubdate runphp='yes']
- $a="<font color=red>".strftime('%m-%d',@me)."</font>";
- $b=strftime('%m-%d',@me);
- $ntime = time();
- $day3 = 3600 * 24 * 3;
- if(($ntime - @me) < $day3) @me = $a;
- else @me =$b;
- [/field:pubdate]
复制代码
2、==========红色的(new)========
- [field:pubdate runphp='yes']
- $aa=strftime('%m-%d',@me);
- $ntime = time();
- $tagtime = @me;
- $day3 = 3600 * 24 * 3;
- if($tagtime > $ntime-$day3) @me = "<font color='red'>(new)</font>";
- else @me = $aa;
- [/field:pubdate]
复制代码
3、==========加new.gif小图片========
- [field:pubdate runphp='yes']
- $aa=strftime('%m-%d',@me);
- $ntime = time();
- $tagtime = @me;
- $day3 = 3600 * 24 * 3;
- if($tagtime > $ntime-$day3) @me = "<img src='new.gif' />".$aa;
- else @me = $aa;
- [/field:pubdate]
复制代码
作者: kevin-ying 时间: 2014-2-17 22:51
{dede:datalist}标签中autoindex无效解决办法
方法一:
{dede:datalist limit='0,10'}
<TR>
<TD class=sp><B><?php echo++$i;?></B></TD>
<TD class=sl><A
href="/plus/search.php?keyword={dede:field.keyword/}"
target=_blank>{dede:field.keyword/}</A></TD>
<TDclass=sp>{dede:field.count/}</TD></TR> {/dede:datalist}
注意红色字体部分自动生成序号
方法二:打开include\datalistcp.class.php
functionGetArcList($atts,$refObj='',$fields=array())
{
$rsArray = array();
$t1 = Exectime();
if(!$this->isQuery) $this->dsql->Execute('dlist',$this->sourceSql);
$i = 0;
while($arr=$this->dsql->GetArray('dlist'))
{
$i++;
$arr['itemid']=$i;
$rsArray[$i] = $arr;
if($i >= $this->pageSize)
{
break;
}
}
$this->dsql->FreeResult('dlist');
$this->queryTime = (Exectime() - $t1);
return $rsArray;
}
增加红色字体部分
然后模板中代码注意红色部分
{dede:datalistlimit='0,10'}
<TR>
<TD class=sp><B>{dede:field.itemid/}</B></TD>
<TD class=sl><A
href="/plus/search.php?keyword={dede:field.keyword/}"
target=_blank>{dede:field.keyword/}</A></TD>
<TD class=sp>{dede:field.count/}</TD></TR> {/dede:datalist}
作者: kevin-ying 时间: 2014-2-17 22:51
织梦标签 [field:global.autoindex/]的使用
- 在织梦的{dede:arclist/}的标签中,有一个非常有用的,[field:global.autoindex/],这个标签是一个自增长标签,他的值是从1开始,跟着你的列表自动自增,在我们给网站加入一些效果时候会非常有用。
- 这里再介绍一下,如果想让他从0开始自增的方法
- [field:autoindex runphp='yes']@me=$GLOBALS['autoindex']-1;[/field:autoindex],这里的-1是重点,如果想从2开始自增就是+1以此类推
- 这个标签默认在sql标签中是不可以使用的,如果希望在sql语句的标签中加入,可以这样做。比如我们想修在{dede:sql/}标签中使用
- 首先找到 /includ/taglib文件夹下的sql.lib.php文件
- 打开后我们找到第34行,也就是代码 $ctp->LoadSource($Innertext); 处,
-
- 在下面加上以下一段代码:$GLOBALS['autoindex'] = 0; 这段代码就是定义一个全局变量,并赋值为0,
- 接下来我们只需要将下面代码进行下修改:
- while($row = $dsql->GetArray($thisrs))
- {
- $sqlCt++;
- foreach($ctp->CTags as $tagid=>$ctag){
- if(!empty($row[$ctag->GetName()])){ $ctp->Assign($tagid,$row[$ctag->GetName()]); }
- }
- $GLOBALS['autoindex']++; //每循环一次加上一个1然后解析出来
- $revalue .= $ctp->GetResult();
- }
- 这样一来,这个[field:global.autoindex/]标签就可以在那个{dede:sql/}中使用了,我们举个例子:
- {dede:sql sql='select * from [url=mailto:#@__archives]#@__archives'[/url]}
- [field:global.autoindex/]-[field:title/]</br>
- {/dede:sql}
- itemindex在channelarclist中的使用类似于autoindex
- arclist 标签下使用 [field:global.autoindex/] 默认从1开始
- channel 标签下使用 [field:global.autoindex/] 默认从0开始
- channelartlist 标签下使用 {dede:global.itemindex/} 默认从1开始
- arclist 从0开始 [field:global name=autoindex runphp="yes"]@me=@me-1;[/field:global]
- channel 从1开始 [field:global name=autoindex runphp="yes"]@me=@me+1;[/field:global][field:typename/]
- channelartlist 从0开始 {dede:global name=itemindex runphp='yes'}@me=@me-1;{/dede:global}
- 案例:
- 1.如果要实现排行榜,前三名的样式不一样
- [field:global runphp='yes' name=autoindex]
- $a="<SPAN class='ico1'>"; $b="</SPAN>"; $c="<SPAN class='ico2'>"; if (@me > 3) @me = $c.@me.$b; else @me = $a.@me.$b;
- [/field:global]
- 如果样式 都是不同的 还可以这样定义
- [field:global runphp='yes' name=autoindex] $a="<SPAN class='icon@me'>"; $b="</SPAN>"; $c="<SPAN class='ico2'>"; if (@me > 3) @me = $c.@me.$b; else @me = $a.@me.$b; [/field:global]
复制代码
作者: kevin-ying 时间: 2014-2-17 22:53
常用的一些 :
关键描述调用标签: <meta name="keywords" content="{dede:field name='keywords'/}">
<meta name="description" content="{dede:field name='description' function='html2text(@me)'/}">
模板路径调用标签: {dede:field name='templeturl'/}
网站标题调用标签: {dede:global name='cfg_webname'/}
栏目导航调用标签: <a href="/">首页</a></li>
{dede:channel type='top' row='8' currentstyle="<li class='thisclass'><a href='~typelink~'>~typename~</a> </li>"}
<li><a href='[field:typelink/]' target="_blank">[field:typename/]</a> </li>
{/dede:channel}
指定调用栏目标签: {dede:onetype typeid='ID'}[field:typename /]{/dede:onetype}
频道栏目调用标签: {dede:channel type='self'}<li><a href='[field:typelink/]'>[field:typename/]</a></li>{/dede:channel}
友情链接调用标签: {dede:flink row='24' linktype=2/}
网站版权调用标签: {dede:global name='cfg_powerby'/}
网站备案调用标签: {dede:global name='cfg_beian'/}
当前栏目名称标签: {dede:field name='typename'/}
当前位置调用标签: {dede:field name='position'/}
列表文章调用标签: {dede:list pagesize='8'}{/dede:list}
栏目链接调用标签: [field:typelink function='str_replace("a ","a class=ulink ",@me)'/]
作者链接调用标签: [field:writer /]
列表点击调用标签: [field:click/]
列表评论调用标签: [field:postnum/]
查阅全文调用标签: <a href="[field:arcurl/]">查阅全文...</a>
列表时间调用标签: [field:pubdate function="GetDateTimeMK(@me)"/]
列表分页调用标签: {dede:pagelist listsize='4' listitem='index pre pageno next end '/}
文章标题调用标签: {dede:field name="title"/}
文章来源调用标签: {dede:field name='source'/}
文章作者调用标签: {dede:field name='writer' /}
文章时间调用标签: {dede:field name='pubdate' function='GetDateMk(@me)'/}
文章Tag调用标签: {dede:tag type='current'/}
文章点击调用标签: <script src="{dede:field name='phpurl'/}/count.php?aid={dede:field name='ID'/}&mid={dede:field name='memberid'/}&view=yes" language="javascript"></script>
文章内容调用标签: {dede:field name='body'/}
文章分页调用标签: {dede:pagebreak/}
[<a href="{dede:field name='phpurl'/}/stow.php?arcID={dede:field name=ID/}">收藏</a>]
[<a href="{dede:field name='phpurl'/}/recommend.php?arcID={dede:field name=ID/}">推荐</a>]
[<a href="{dede:field name='phpurl'/}/feedback.php?arcID={dede:field name=ID/}">评论</a>]
[<a href="#">打印</a>]
[<a href="#">关闭</a>]
文章顶客次数标签: {dede:field name='digg'/} <a href="javascript:Digg('digg',{dede:field name='id'/});">顶一下</a>
上一篇下一篇标签: {dede:prenext get='pre'/}{dede:prenext get='next'/}
头条推荐调用标签: {dede:arclist row=1 titlelen=24 orderby=pubdate att=2} <dt> [field:textlink/]
<span>[field:description/]……</span> </dt> {/dede:arclist}
最新文章调用标签: {dede:arclist row=8 titlelen=24 orderby=pubdate}<li>[field:textlink/]</li> {/dede:arclist}
热关键字调用标签: {dede:hotwords num='5' subday='30'/}
最新图文调用标签: {dede:arclist row=4 titlelen=20 orderby=pubdate type='image.' imgwidth='152' imgheight='98'}
<dd><a href="[field:arcurl/]"><img src="[field:picname/]" alt="[field:title/]" ></a><span><a title="[field:title function='htmlspecialchars(@me)'/] " href="[field:arcurl /]">[field:title /]</a></span> </dd>{/dede:arclist}
推荐文档调用标签: {dede:arclist type='commend' titlelen='40' row='10'} <li><a title="[field:title function='htmlspecialchars(@me)'/] " href="[field:arcurl /]">[field:title /]</a></li> {/dede:arclist}
随机推荐调用标签: {dede:arclist type='commend' titlelen='26' orderby='rand' row='10'} <li><a title="[field:title function='htmlspecialchars(@me)'/] " href="[field:arcurl /]">[field:title /]</a></li> {/dede:arclist}
热点文档调用标签: {dede:arclist orderby='click' titlelen='40' row='10'} <li><a title="[field:title function='htmlspecialchars(@me)'/] " href="[field:arcurl /]">[field:title /]</a></li> {/dede:arclist}
相关文档调用标签: {dede:likeart titlelen='24' row='10'} <li><a title="[field:title function='htmlspecialchars(@me)'/] " href="[field:arcurl /]">[field:title /]</a></li> {/dede:likeart}
调用图片链接标记: <a href="[field:arcurl/]"><img src="[field:picname/]" alt="[field:title/]" ></a>
<a href='[field:arcurl /]'>[field:image/]</a>
调用文字链接标记: <a href="[field:aucurl/]" title="[field:title/]">[field:title/]</a>
<a title="[field:title function='htmlspecialchars(@me)'/] " href="[field:arcurl /]">[field:title /]</a>
控制字数描述标记: [field:description function="cn_substr(@me,100)"/]...
调用文章tags标记: {dede:tag type='current'/}
文章关键字与描述: {dede:field name='keywords'/}
{dede:field name='description' function='html2text(@me)'/}
栏目介绍:{dede:field name='description' function='html2text(@me)'/}
调用外部htm文件:{dede:include file='head.htm' ismake='yes'/}
搜索文章调用标签:{dede:global name='keyword'/}"的搜索结果 - {dede:global name='cfg_webname'/} 搜索" {dede:global name='keyword'/}</span>" 的结果
递增序列号: [field:global name=autoindex/]
按时间点击文章排行榜调用标签:
按总: {dede:arclist row='24' titlelen=24 orderby=click}
按月: {dede:arclist row='24' titlelen=8 orderby=click subday=30}
按周: {dede:arclist row='24' titlelen=8 orderby=click subday=7}
在首页调用某栏目的子栏目
{dede:channel type=’sun’ typeid=’栏目ID’}
<a href=”[field:typelink/]“>[field:typename/]</a>
{/dede:channel}
或者
{dede:global name=’maplist’/}
搜索表单调用标签:
- <form action="{dede:global name='cfg_phpurl'/}/search.php" name="formsearch">
- <input type="hidden" name="kwtype" value="1" />
- <input name="keyword" id="keyword" type="text" class="searchtxt" />
- <select name="searchtype" id="searchtype">
- <option value="titlekeyword" selected>智能模糊搜索</option>
- <option value="title">仅搜索标题</option>
- </select>
- <input type="image" src="{dede:field name='templeturl'/}/images/topsearch_submit.gif" />
- </form>
复制代码
调用缩略图: <img src='{dede:field name="litpic"/}'>
时间效果
- [field:pubdate runphp="yes"]
- if((time()-@me)<(60*60*24)){@me=' <font color="#ff6600">'.strftime("%H:%M",@me).'</FONT>';}
- else {@me=strftime("%m-%d",@me);}
- [/field:pubdate]
复制代码
DEDE seo小技巧 加个百度搜索本篇文章
【<a href="javascript:" onclick='window.open("http://www.baidu.com/s?q1={dede:field name="title" /}&q2=&q3=&q4=&rn=10&lm=0&ct=1&ft=&q5=&q6=你的网址")' target="_top" title="在百度搜索“{dede:field name="title" /}”相关内容"><font color=red>在百度搜索更多繁体字</font></a>】
把网址改一下,不加http
【<a href="javascript:" onclick='window.open("http://www.baidu.com/baidu?word={dede:field name="title" /}")' target="_top" title="在百度搜索“{dede:field name="title" /}”相关内容
调用tag:
- {dede:field name='keywords' runphp='yes' }
- if(!empty(@me)){
- $kws = explode(' ',@me);
- @me = "";
- foreach($kws as $k){
- @me .= "<a href='/tag.php?/$k/'>$k</a> ";
- }
- @me= str_replace('+', ' ',trim(@me));
- }
- {/dede:field}
复制代码
欢迎光临 源于生活 (http://bbs.vingoo.info/) |
Powered by Discuz! X3.1 |