织梦的一些效果
来源:常见问题
2024-03-04
让24小时内发布的文章变红色
无css版本
{dede:arclist typeid='2,7,57,5,59,9,10,4,11,55,56' row=16 titlelen=39 orderby='id' channelid='1'}
[field:pubdate runphp='yes']
$a="";
$b="<font color=#000000>";
$ntime = time();
$day3 = 3600 * 24;
if(($ntime - @me) < $day3) @me = $a;
else @me =$b;
[/field:pubdate][field:title /]{/dede:arclist}
Css版本标签:
{dede:arclist typeid='2,7,57,5,59,9,10,4,11,55,56' row=16 titlelen=39 orderby='id' channelid='1'}
[field:pubdate runphp='yes']
$a="
";
$b="
";
$ntime = time();
$day3 = 3600 * 24;
if(($ntime - @me) < $day3) @me = $a;
else @me =$b;
[/field:pubdate] [field:title /]{/dede:arclist}
css:
.xxxx.li.24red a:link, .xxxx.li.24red a:visited {color:#ff0000; text-decoration:none;}
.xxxx.li.24red a:hover, .xxxx.li.24red a:active {color:#333; text-decoration:underline;}
循环几条显示特效,有规律的
[field:global name=autoindex runphp="yes"](@me%4==0)? @me='
':@me='';[/field:global] {/dede:list}
循环到某个出现特效,无规律的
[field:global name=autoindex runphp="yes"](@me==1 || @me==2)? @me='<img< span=""> src="/templets/newhtm/static/images/N_tese_line.gif" />':@me='';[/field:global]
循环两条出现个效果
[field:global runphp='yes' name=autoindex]
$b4="
";
$a4="
";
if (@me%2==0) @me=$b4;
else @me=$a4;
[/field:global]
循环ul实现4条一个下划线
{dede:list pagesize='25'}
·[field:title/]
[field:global name=autoindex runphp='yes']
if (@me%5==0 && @me != 25) @me = '
';
else @me = "";
[/field:global]
{/dede:list}
调用在线挂号数据(武警安徽肝病医院)
{dede:sql sql="select id,REPLACE (linker,SUBSTRING( linker, 2 ) ,'某') as name,keshi,REPLACE (telephone,right( telephone, 4 ) ,'****') as tel,meet_time from wj_guahao order by id asc limit 20 "}
最新挂名:[field:name/],[field:keshi/],[field:tel/]
{/dede:sql}
Dedecms实现"文章标题-2级栏目-1级栏目-网站名"
DEDECMS文章页的title结构是:
“文章标题-网站名”
现在我们想改为:
“文章标题-2级栏目-1级栏目-网站名” 的形式。
一种方法是:
在 /include/inc_archives_view.php 中查找 tp.typedir,然后替换成 tp.typedir,tp.typename
在文章模板中用 {dede:field name='typename' /} 调用。这样就OK啦。可以实现在文章页显示文章所属栏目的名称,不过,这个栏目是文章最接近的一个栏目。
Title 里用如:
{dede:field name='title'/}-{dede:field name='typename'/}-{dede:global name='cfg_webname'/}
这样就OK了。
第二种方法更科学、更简便:
下面用“position”来实现。
(A)代码如下:
{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' /}
将以上代码放在文章页模板
用这种方式,如果你某N级栏目目录太深,导致文章标题太长成了“文章标题-100几十级栏目-......4级栏目-3级栏目-2级栏目-1级栏目-网站名”这样怎么办?
(B)解决办法如下:
{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);
$tk=str_replace("-4级栏目-3级栏目","",$tk);
@me=$tk; //赋值给@me
{/dede:field}-{dede:global name='cfg_webname' /}
增加蓝色部分,把你不想要的栏目标题如上红色的填上即可。
另:
这种方法也可以用在栏目的 title 上,把二级以下的栏目标题如“一级栏目//二级栏目”这种讨厌的形式给kill掉。
用法是:
抄上面的代码(A)到
Dedecms5.3.1如何实现"三级栏目_二级栏目_一级栏目_网站名称"?
A:用这个办法,最新版Dedecms5.3.1可以实现"三级栏目_二级栏目_一级栏目_网站名称",即优化,对搜索收录有好处.
1.将官方原来的排列方式反过来,找到include/typelink.class.php第164行
$this->valuePositionName = $tinfos['typename'].$this->SplitSymbol.$this->valuePositionName;
修改为:
$this->valuePositionName = $this->valuePositionName.$this->SplitSymbol.$tinfos['typename'];
接下来将模板的标题标签
修改为:
即可。
如果您对栏目中间的连接符不满意,可以修改include/arc.listview.class.php,找到55行
$this->Fields['title'] = ereg_replace("[<>]"," / ",$this->TypeLink->GetPositionLink(false));
把 / 删除 注意留一个空格 " "
这样在模板标题标签部分就可以修改各级栏目间的连接符(已加红了)
仿457频道循环例子
{dede:channelartlist row=6 typeid='107'}
{dede:global.itemindex runphp='yes'}
if (@me == 3 || @me == 4)
{
@me = "
";
}
else
{
@me = "
";
}
{/dede:global.itemindex}
<img< span=""> src="/templets/new/static/images/icon_NO{dede:global.itemindex runphp='yes' /}.jpg" />{dede:field name='typename'/}
治疗方案
{dede:arclist row='1' infolen='44' flag='a'}
[field:info /]...[
详情点击]
{/dede:arclist}
{/dede:channelartlist}
仿161例子
{dede:arclist row='10' typeid='38' imgwidth='190' imgheight='45' titlelen='26'}
[field:title /]
[field:image /]
{/dede:arclist}
dede:arclist row=2 typeid='156' flag='a,p' titlelen='100'}
[field:global
name=autoindex runphp="yes"](@me%2==0)? @me='':@me='';[/field:global]
{/dede:arclist}
{dede:arclist row=6 typeid='156' titlelen='100'}
[field:title function='cn_substr(@me,34)' /]
{/dede:arclist}
{dede:channelartlist typeid='6,17,26,37,51,64,158'}
<div id="conmnk0{dede:global.itemindex /}" {dede:global.itemindex runphp='yes'}if(@me != 1){@me = "style='display:none;'";}else{@me = '';}{/dede:global.itemindex}>
{dede:arclist row=1 flag='a,p' titlelen='32'}
[field:title /]
{/dede:arclist}
{dede:channel type='son' row=10 } [field:typename/] {/dede:channel}
{dede:arclist row='1' flag='h' titlelen='28' infolen='112' limit='0,1'}
[field:title /]
[field:infos /]...[
查看全文]
{/dede:arclist}
{dede:arclist row='1' flag='h' titlelen='28' infolen='112' limit='1,2'}
[field:title /]
[field:infos /]...[
查看全文]
{/dede:arclist}
{dede:arclist row=10 flag='c' titlelen='32'}
·[field:title /]
{/dede:arclist}
诊疗范围: {dede:channel type='son' row=6} [field:typename/] [field:global name='autoindex' runphp='yes']if(@me < 6){@me = '|';}else{@me='';}[/field:global]
{/dede:channel}
{/dede:channelartlist}
{dede:channelartlist typeid='1,32,149,135'}
<div class="box1" {dede:global.itemindex runphp='yes'}if(@me % 2 = 0){@me = "style='margin-right:0;'";}else{@me = '';}{/dede:global.itemindex}>
{dede:type}
[field:typename /]
more
》
{/dede:type}
{dede:arclist row='1' type='image' att='2' titlelen='100' orderby='pubdate'} {/dede:arclist}
{dede:arclist row='6' titlelen='28' orderby='pubdate'}
[field:title /]
{/dede:arclist}
{dede:channel type='son' row='6' }[field:typename /] | {/dede:channel}
{/dede:channelartlist}
鼠标经过循环的判断
{dede:channelartlist row='6' typeid='29'}
<li< span=""> onmouseover="set('news1',{dede:global.itemindex runphp='yes' /},6)" id="news1{dede:global.itemindex runphp='yes' /}" {dede:global.itemindex runphp='yes'}if (@me == 1){@me = "class='hover'";}else{ @me = "";}{/dede:global.itemindex}
{/dede:channelartlist}
{dede:channelartlist row='6' typeid='21'}
{dede:arclist row='1' flag='h' titlelen='50' infolen='110' orderby='pubdate'}
[field:title /]
[field:infos /]
{/dede:arclist}
{dede:arclist row='8' titlelen='28' orderby='pubdate'}
[field:title /]
{/dede:arclist}
{/dede:channelartlist}
频道循环,设定最后几个不显示出来 # lgl {display: none;}
{dede:channelartlist}
<div class="syminfo" {dede:global.itemindex runphp='yes'}(@me%2==0)? @me='style="margin-right:0;"':@me=' ';{/dede:global.itemindex}{dede:global.itemspecial runphp='yes'}$temp = explode('-', @me); ($temp[0]>($temp[1]-2)) ? @me=' id="lgl"' : @me='';{/dede:global.itemspecial}>
{dede:field name='typename'/}
{dede:arclist row=1 flag='a,p' titlelen='24' infolen='80' orderby='pubdate'}
[field:title /]
{/dede:arclist}
{dede:arclist row='3' titlelen='40' orderby='pubdate'}
·[field:title /] [[field:pubdate function=MyDate('Y-m-d',@me)/]]
{/dede:arclist}
{/dede:channelartlist}
autoindex itemindex 的使用区分
channelartlist 标签下利用{dede:global name='itemindex' runphp='yes'}@me;{/dede:global}
channel 标签下使用 [field:global name=autoindex/] 从0 开始的
当用[]时候
autoindex 由1开始
itemindex 由0开
当在arclist标签内判断是
[field:global name='autoindex' function='@me=@me+1'/]
从0开始的
比如1 3 5 7 你可以写 function='@me=@me*2-1'
在arclist中使用autoindex runphp 时用这类方式:
autoindex 由0开始
itemindex 由1开始
itemindex 可以 @me-1;实现由0开始
{dede:global name='itemindex' runphp='yes'}@me=@me+1;{/dede:global}
5.1调用附加字段方法
{dede:arclist typeid='49' row='6' orderby='pubdate' titlelen='100' infolen='96' orderby='pubdate' type='commend,image' channelid='1' addfields='zj_sc,zj_zz,zj_zc,zj_sc2' }
[field:title function='html2text(cn_substr(@me,6))'/] [field:shorttitle/]
[field:id runphp="yes"]
$dsql = new DedeSql(false);
$a="select hkfk120com.zj_sc2,hkfk120com.zj_sc,hkfk120com.zj_zz,hkfk120com.zj_zc FROM dede_addonarticle as hkfk120com where hkfk120com.aid=@me";
$arcRow = $dsql->GetOne($a);
@me=' 【专业擅长】'.$arcRow[zj_sc2].'
【专家荣誉】
★ '.$arcRow[zj_sc].' ★ '.$arcRow[zj_zz].'
★ '.$arcRow[zj_zc].'';
[/field:id]
{/dede:arclist}
指定从第几条开始循环
例:从第8条开始循环,循环8条
{dede:channelartlist typeid='176' row='8'}
{dede:field name='typename'/}
{/dede:channelartlist}
/////////////////相等关系//////////////
{dede:global.itemindex runphp='yes'}@me=$GLOBALS['itemindex']+8;{/dede:global.itemindex}
等于
{dede:global name='itemindex' runphp='yes'}@me=@me+1;{/dede:global}