关于dedeCMS幻灯片的各种灵活的调用方法

dedeCMS自带的flash幻灯片效果,虽然有些妨碍蜘蛛的抓取,但是可以方便的更改显示尺寸、颜色搭配、播放时间以及是否显示按钮等参数,所以较为实用。实际应用中,我们可以将其精简,或改造用于手动添加巨幅幻灯片,或者将这个幻灯片代码移植到到其他的程序(如:phpCMS v9)中去使用。

幻灯片实例:

关于dedeCMS幻灯片的各种灵活的调用方法

dedeCMS默认模板的代码如下:

<script language=’javascript’>
linkarr = new Array();
picarr = new Array();
textarr = new Array();
var swf_width=280;
var swf_height=192;
//文字颜色|文字位置|文字背景颜色|文字背景透明度|按键文字颜色|按键默认颜色|按键当前颜色|自动播放时间|图片过渡效果|是否显示按钮|打开方式
var configtg=’0xffffff|0|0x3FA61F|5|0xffffff|0xC5DDBC|0x000033|2|3|1|_blank’;
var files = “”;
var links = “”;
var texts = “”;
//这里设置调用标记
{dede:arclist flag=’f’ row=’5′}
linkarr[[field:global.autoindex/]] = “[field:arcurl/]”;
picarr[[field:global.autoindex/]] = “[field:litpic/]”;
textarr[[field:global.autoindex/]] = “[field:title function=’html2text(@me)’/]”;
{/dede:arclist}
for(i=1;i<picarr.length;i++){
if(files==””) files = picarr[i];
else files += “|”+picarr[i];
}
for(i=1;i<linkarr.length;i++){
if(links==””) links = linkarr[i];
else links += “|”+linkarr[i];
}
for(i=1;i<textarr.length;i++){
if(texts==””) texts = textarr[i];
else texts += “|”+textarr[i];
}
document.write(‘<object classid=”clsid:d27cdb6e-ae6d-11cf-96b8-444553540000″ codebase=”http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0″ width=”‘+ swf_width +'” height=”‘+ swf_height +'”>’);
document.write(‘<param name=”movie” value=”{dede:global.cfg_templeturl /}/default/images/bcastr3.swf”><param name=”quality” value=”high”>’);
document.write(‘<param name=”menu” value=”false”><param name=wmode value=”opaque”>’);
document.write(‘<param name=”FlashVars” value=”bcastr_file=’+files+’&bcastr_link=’+links+’&bcastr_title=’+texts+’&bcastr_config=’+configtg+'”>’);
document.write(‘<embed src=”{dede:global.cfg_templeturl /}/default/images/bcastr3.swf” wmode=”opaque” FlashVars=”bcastr_file=’+files+’&bcastr_link=’+links+’&bcastr_title=’+texts+’&bcastr_config=’+configtg+’&menu=false” quality=”high” width=”‘+ swf_width +'” height=”‘+ swf_height +'” type=”application/x-shockwave-flash” pluginspage=”http://www.macromedia.com/go/getflashplayer” />’); document.write(‘</object>’);
</script>

精简后进行使用减少代码量

dedeCMS的默认幻灯片代码分为三部分,一部分是相关参数声明,然后是dedeCMS的循环调用,最后是flash的播放器。其实我们在应用的时候,可以适当的做一些精简。对于flash的播放代码,小车一像持越精简越好的态度,仅用一个embed就够了,使用object类型的代码不但繁琐,且兼容性不好,不如直接用embed来的爽快,所以,这里是精简的重头位置。去掉注释等,精简后如下:

<script language=’javascript’>
linkarr = new Array();
picarr = new Array();
textarr = new Array();
var swf_width=280;
var swf_height=192;
var configtg=’0xffffff|0|0x3FA61F|5|0xffffff|0xC5DDBC|0x000033|2|3|1|_blank’;
var files = “”;
var links = “”;
var texts = “”;
{dede:arclist flag=’f’ row=’5′}
linkarr[[field:global.autoindex/]] = “[field:arcurl/]”;
picarr[[field:global.autoindex/]] = “[field:litpic/]”;
textarr[[field:global.autoindex/]] = “[field:title function=’html2text(@me)’/]”;
{/dede:arclist}
for(i=1;i<picarr.length;i++){
if(files==””) files = picarr[i];
else files += “|”+picarr[i];
}
for(i=1;i<linkarr.length;i++){
if(links==””) links = linkarr[i];
else links += “|”+linkarr[i];
}
for(i=1;i<textarr.length;i++){
if(texts==””) texts = textarr[i];
else texts += “|”+textarr[i];
}
document.write(‘<embed src=”{dede:global.cfg_templeturl /}/default/images/bcastr3.swf” wmode=”opaque” FlashVars=”bcastr_file=’+files+’&bcastr_link=’+links+’&bcastr_title=’+texts+’&bcastr_config=’+configtg+’&menu=false” quality=”high” width=”‘+ swf_width +'” height=”‘+ swf_height +'” type=”application/x-shockwave-flash” pluginspage=”http://www.macromedia.com/go/getflashplayer” />’);
</script>

初步精简后,即可应用于普通的幻灯片调用了,我们可以修改尺寸等参数应用与不同模板不同位置。

企业站点使用dedeCMS做巨幅幻灯片切换

对于企业站的大型幻灯片而言,可能不需要直接去调用,可以直接使用手动写入的方法。此时代码可以更加精简:

<script language=’javascript’>
var configtg=’0xffffff|0|0x666666|100|0xffffff|0xff9900|0x000033|3|3|1|_blank’;
var files = “image01.jpg|image02.jpg|image03.jpg”;
var links = “http://www.baidu.com|http://www.baidu.com/site.html|http://www.google.com”;
var texts = “图片1|图片2|图片3″;
document.write(‘<embed src=”images/bcastr3.swf” wmode=”Transparent” FlashVars=”bcastr_file=’+files+’&bcastr_link=’+links+’&bcastr_title=’+texts+’&bcastr_config=’+configtg+’&menu=false” quality=”high” width=”960″ height=”300″ type=”application/x-shockwave-flash” pluginspage=”http://www.macromedia.com/go/getflashplayer” />’);
</script>

相信这样的代码用起来就方便多了。对了,企业站使用巨幅幻灯片,一般是不需要添加文字的,这时候,我们只需要吧configtg中的第二个参数“0” 改成“2”,然后把var texts 删掉就可以了。

将dedeCMS的幻灯片代码移植到phpCMS v9

有时候,用习惯了dedeCMS,很多东西就想不自觉的到处移植一下,那么怎样把dedeCMS的幻灯片代码移植到phpCMS v9的模板中呢。其实很简单,就是把调用的模板代码修改一下就可以了。修改后代码如下:

<script language=’javascript’>
linkarr = new Array();picarr = new Array();textarr = new Array();
var configtg=”0xffffff|1|0xff0000|100|0xffffff|0xff9900|0x000033|3|3|1|_blank”;
var files = “”;var links = “”;var texts = “”;
{pc:content action=”position” posid=”1″ catid=”7″ thumb=”1″ order=”listorder DESC” num=”5″}
{loop $data $r}
linkarr[{$n}] = “{$r[‘url’]}”;
picarr[{$n}] = “{thumb($r[‘thumb’],180,150)}”;
textarr[{$n}] = “{str_cut($r[‘title’],30)}”;
{/loop}
{/pc}
for(i=1;i<picarr.length;i++){
if(files==””) files = picarr[i];
else files += “|”+picarr[i];
}
for(i=1;i<linkarr.length;i++){
if(links==””) links = linkarr[i];
else links += “|”+linkarr[i];
}
for(i=1;i<textarr.length;i++){
if(texts==””) texts = textarr[i];
else texts += “|”+textarr[i];
}
document.write(‘<embed src=”/images/bcastr3.swf” wmode=”opaque” FlashVars=”bcastr_file=’+files+’&bcastr_link=’+links+’&bcastr_title=’+texts+’&bcastr_config=’+configtg+’&menu=false” quality=”high” width=”180″ height=”150″ type=”application/x-shockwave-flash” pluginspage=”http://www.macromedia.com/go/getflashplayer” />’);
</script>

这组代码的意思就是调用栏目7下,推荐位为幻灯片的,带图片的文章,共调用5条。这样phpCMS v9里也能用上dedeCMS的幻灯片了。不过,一定不要忘了把dedeCMS模板目录里的bcastr3.swf拷贝到相关目录下哦。

Published by 小车

网站技术工人

3 replies on “关于dedeCMS幻灯片的各种灵活的调用方法”

Comments are closed.