相争不足 共享有余

DeDeCms使用技巧集大合集(一)

编程开发 moonygao 524℃ 0评论

1、DedeCms的搜索框,改为整合各大搜索引擎的多功能搜索框

编辑打开模板文件 head.htm,把<form></form>之间的代码,替换为以下代码:

  1. <form name=bfsubmit=”bottomForm();return false;”>
  2.    <script>
  3.  function bottomForm(){
  4.  var $=document.bf.key.value;
  5.  if(document.bf.sto[0].checked)window.open(“./plus/search.php?kwtype=0&keyword=”+$,”a1”);
  6.  if(document.bf.sto[1].checked)window.open(“http://www.baidu.com/s?q1=”+”&q6=blog.sina.com.cn”,”a2″);
  7.  if(document.bf.sto[2].checked)window.open(“http://www.google.com/search?hl=zh-CN&q=”+”&as_sitesearch=blog.sina.com.cn”,”a3″);
  8. // if(document.bf.sto[3].checked)window.open(“http://www.gougou.com/search?id=1&search=”+$,”a4”);
  9. // if(document.bf.sto[4].checked)window.open(“http://map.baidu.com/m?word=”+$,”a5”);
  10. // if(document.bf.sto[5].checked)window.open(“http://bk.baidu.com/?kw=”+”&submit=search”,”a6″);
  11.  return false}
  12.  </script>  <div class=”form”>
  13.  <h4>搜索</h4>
  14. <!– <input name=”key” class=”search-keyword” value=”(输入搜索内容……)”> –>
  15. <input name=”key” class=”search-keyword” value=”(输入搜索内容……)” onfocus=”if(this.value==’(输入搜索内容……)’){this.value=”;}”  onblur=”if(this.value==”){this.value=’(输入搜索内容……)’;}”>
  16.  <input name=sto type=radio value=”0″ checked=true>本站内
  17.  <input name=sto type=radio value=”1″><a href=”http://www.baidu.com”>百度</a>
  18.  <input name=sto type=radio value=”2″><a href=”http://www.google.cn”>Google</a>
  19. <!–
  20.  <input name=sto type=radio value=”3″><a href=”http://www.gougou.com”>狗狗</a>
  21.  <input name=sto type=radio value=”4″><a href=”http://map.baidu.com”>地图</a>
  22.  <input name=sto type=radio value=”5″><a href=”http://baike.baidu.com”>百科</a>
  23. >
  24.  <button type=”submit” class=”search-submit”>搜索</button>
  25.  </div>
  26.  </form>

其中,“blog.sina.com.cn” 换成你自己的独立域名。

2、DedeCms用SQL语句调用数据库任意内容方法

1.首页在后台单页文档管理里添加一个单页文档,内容编辑框输入你要的内容生成。

2. 在需要调用单页文档的地方加入SQL万用标签 {dede:sql sql=”select body from dede_sgpage where aid=2″}[field:body /] {/dede:sql} 相信熟悉SQL语言的朋友很容易看懂这句含义。意思其实就是选择数据表dede_sgpage 的body字段输入,aid=2 这里的2表示你创建单页文档ID数字,你使用时做下相应修改即可。

又如这句SQL标签样例代码

  1. {dede:sql sql=”select content from dede_arctype where id=2″}
  2. [field:content function=cn_substr(Html2Text(@me),600)/]
  3. {/dede:sql}

根据上面的例子,应该很好理解了,这里主要说明一下cn_substr表示截取600个字符也就是300个汉字。Html2Text代表把含有HTML的字符过滤掉,只显示文本。

其实除了上面的例子外,在Dede系统里面,我可以可以自由使用SQL语句来配合织梦标签进行更多的个性化调用。他们的基本参照格式为:

  1. {dede:sql sql=”select  字段 From 表名称 where 条件语句”}
  2. [field:字段名/]
  3. {/dede:sql}

由上面这种基本格式,我们就可以基本转换出一条调用文档列表的调用标签了,代码为:

  1. {dede:sql sql=”select  * From dede_archives  limit 10″}
  2. <li>·<a href=”/plus/view.php?aid=[field:id/]”>[field:title/]</a></li>
  3. {/dede:sql}

大家看到了上面的文档链接的底层模板地址的是动态的,那么我们要怎么样来进行转换,让他链接到静态地址呢,这里我们只需要对[field:id/]进行一下转换,转换后的完整代码为:

  1. {dede:sql sql=”SELECT * FROM dede_archives limit 10″}
  2. <li>·<a href=”[field:id runphp=’yes’] $id=@me;@me=”;$url=GetOneArchive($id);@me=$url[‘arcurl’];[/field:id]” title=”[field:title/]”  target=”_blank”>[field:title function=cn_substr(@me,30,0)/]</a></li>
  3. {/dede:sql}

3、去除织梦CMS文章和列表分页标签源码中的 li 的方法

找到/include/arc.listview.class.php以arc.archives.class.php文件
查找:<li> 全部替换为”空”
查找:</li>全部替换为”空”
查找:<li class=”thisclass”> 全部替换为”空”
保存,覆盖原文件即可。

4、DedeCMS删除所有栏目或文章后,新建ID不从1开始的解决方法

只需要在后台系统-SQL命令行工具里面运行以下语句即可,不用采用笨方法重新安装织梦CMS了。

删除所有栏目,新建ID从1开始:

  1. ALTER TABLE `dede_arctype` AUTO_INCREMENT =1;

删除所有文章,新发布文章ID从1开始:

  1. ALTER TABLE `dede_archives` AUTO_INCREMENT =1;

5、DedeCms去掉栏目页面包屑导航最后的分隔符“>”

织梦DedeCms的面包屑导航调用标签{dede:field name=’position’ /},在栏目页里调用的面包屑导航,最后会出现分割符号“>”,如:主页 > DedeCms 模板 >

用下面这两种方法可以将最后的分割符“>”,用如下代码调用面包屑导航标签:

  1. {dede:field name=’position’ runphp=’yes’}
  2. $a=mb_strlen(@me);//计算字符串的长度
  3. @me=cn_substr(@me,$a-2,-1);//截取字符
  4. {/dede:field}

或者修改系统文件,编辑打开include/typelink.class.php 文件

查找: return $this->valuePosition.$this->SplitSymbol;

修改为:return $this->valuePosition;

6、DedeCms限制文章页上一篇、下一篇文章标题字数

为了避免文章标题字数过多,影响美观,我们可以对其进行控制。

1、编辑打开include/arc.archives.class.php文件

查找:$this->PreNext[‘pre’] = “上一篇:{$preRow[‘title’]} “;

在这一行上面加上以下代码

$preRow[‘title’]=cn_substr($preRow[‘title’],30);//最多显示15个汉字

查找:$this->PreNext[‘next’] = “下一篇:{$nextRow[‘title’]} “;

在这一行上面加上以下代码

$nextRow[‘title’]=cn_substr($nextRow[‘title’],30);//最多显示15个汉字

然后再重新生成所有页面即可。

7、Dedecms文章发布时“来源”或者“作者”没内容时隐藏

下面这段代码可以在不填写来源信息的时候,显示指定信息或者不显示来源或者作者。

{dede:field name=’source’ runphp=’yes’}
if(@me == “”) @me = “”;else @me = “来 源:”.@me;
{/dede:field}

{dede:field name=’writer’ runphp=’yes’}
if(@me == “”) @me = “”;else @me = “作 者:”.@me;
{/dede:field}

上面代码加了个if和else进行判断,if(@me == “”) @me = “”; 如果为空,则不显示内容。否则显示填写的内容。

8、DedeCms发布文章时输入Tag标签逗号自动变成英文标点的方法

以下是修改方法:

编辑打开templets/article_add.htm文件,然后查找如下代码:

<input name=”tags” type=”text” id=”tags” value=”<?php echo $tags; ?>” style=”width:300px” />

修改为:

<input name=”tags” type=”text” id=”tags” value=”& lt;?php echo $tags; ?>” onkeyup=”this.value=this.value.replace(/, /g, ‘,’); ” style=”width:300px” />

注意,以上只是修改了增加新文章的标签逗号的自动切换,如果你想把编辑文章、添加新软件等的标签也修改成这样的话,那么找到相应的模板按上述方法修改就可以了。

9、DedeCms鼠标移到标题处显示完整标题

有些标题过长,为了页面的美观,会对标题的长度进行控制,会截断一些。给标题加上title属性就能让读者把鼠标移到标题上就能显示完整标题了。之前我也注意到要把title给添加上,用的是以下这种方式。

<a href=”[field:arcurl/]” title=”[field:title/]”>[field:title/]</a>

但是生成的时候,title里面的标题还是会别截断,换成title=”[field:fulltitle/]”标签就解决了。方法如下:

<a title=”[field:fulltitle/]” href=”[field:arcurl/]”>[field:title/]</a>

10、UCweb浏览器访问织梦DedeCms Wap页面空白解决办法

编辑打开/templets/wap/index.wml文件,查找<card id=’start’ ontimer=’#main’> ,将

<card id=’start’ ontimer=’#main’>
<timer value=’10’ />
<p align=’center’>
DedeCms Wap Load…
</p>
</card>

删除后,UCweb就能正常访问了。

转载请注明:IT起义 » DeDeCms使用技巧集大合集(一)

喜欢 (0)or分享 (0)