织梦DedeCMS判断字段为空时则显示其它字段

灵活使用DedeCMS进行建站时,在判断字段内容进行个性输出,是建站者所必须掌握的一个持基。影子互联接合多年网站建设经验,分享如下:
方法一:
{dede:field name='array' runphp='yes'} if (@me['shorttitle']=='') @me=@me['title'];else @me=@me['shorttitle'];{/dede:field}

方法二:
[field:array runphp='yes'] if (@me['shorttitle']=='') @me=@me['title'];else @me=@me['shorttitle'];[/field:array]

这个方法可以在{dede:arclist}标签中套用。

方法三:
有时标题过长,全部显示会导致排版混乱,影响美观。但显示一部分又影响用户体验。我们希望当标题在一定长度范围内时,全标题显示,当标题过时,只显示一定长度,后面加省略号,然后当鼠标移上去时再显示标题的全部内容,这样就即做到了不影响版面的布局,又做到了标题内容的全部显示。

这里给出不需要修改程序,只修改模板的方法。举例,下面的标题列表,最长的标题50字节,只想显示30字节,模板代码如下:

<ul>
{dede:arclist titlelen='50' row='10'}
<li><a title="[field:title /]" href="[field:filename%20/]">[field:title function='( strlen("@me")>30 ? cn_substr("@me",30)."..." : "@me" )'/]</a></li>
{/dede:arclist}
</ul>

很明显,解决问题的关键在于用 [field:title function='( strlen("@me")>34 ? cn_substr("@me",30)."..." : "@me" ) ' /] 代替了原来的 [field:title /] ,在输出标题时多了一个判断的过程,先判断标题是否大于34字节,如果大于则只输出30字节的长度,并加上省略号。而title="[field:title /]" 则不受影响,鼠标移上去时显示标题的全部内容。

dedecms织梦文章审核机制解析

织梦通过dede_archives表中的arcrank和ismake两个字段控制文章的审核和状态。其中arcrank是审核控制字段,它有-1和0两个值;ismake是静态动态控制字段,它有三个值:0,1,-1。

另外,文章微表dede_arctiny中的arcrank字段与dede_archives表中的arcrank状态同步,也是审核控制字段,这两者需同步一致方可.

以上情况组合起来会有多种情况:

审核状态生成html:$arcrank=-1 $ismake = 0 (但是后台文章列表那里显示没有生成,点击修改文章是显示以生成,其实没生成,因为是未审核,一但审核,自动变成1)。

审核状态动态浏览:$arcrank=-1 $ismake = -1 ;

开放状态生成html:$arcrank=0 $ismake = 1 ;

开放状态动态浏览:$arcrank=0 $ismake = -1 ;

通过以上的情况,我们可以分析多种情况下出现的问题,以求解决.同时要注意微表dede_arctiny中的arcrank状态同步.

微表dede_arctiny是起到索引的作用,在前台列表中即可通过微表来显示文章的.

织梦有个定时审核插件,即是通过修改微表dede_arctiny中的arcrank字段与dede_archives表中的arcrank字段来实现的.

同时,在审核过程中,文章相关的标签表dede_taglist中的相关标签的arcrank字段也会通过审核状态.

以上,即是DedeCMS织梦文章审核机制的简单说明.

dedecms5.7后台发布文章提示“标题不能为空”的解决方法

有人发现在使用织梦dedecms5.7后台发布文章提示“标题不能为空”了,这个问题很怪我们都是从直接从官网下载的也有问题了,那么要如何解决呢.

问题症状:V5.7登录后台后,发布英文标题没问题,发布中文会提示“标题不能为空”.

问题根源:htmlspecialchars在php5.4默认为utf8编码,gbk编码字符串经 htmlspecialchars 转义后的中文字符串为空,也就是标题为空.

解决办法:给htmlspecialchars添加ENT_COMPAT ,’GB2312’参数修改编码默认值.

具体修改页面,代码如下:

1、dede/article_add.php 和 dede/article_edit.php

$title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen));

改成
$title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen),ENT_COMPAT ,'GB2312');

2、include/ckeditor/ckeditor_php5.php 138行:将

htmlspecialchars($value)

替换为

htmlspecialchars($value, ENT_COMPAT ,'GB2312')

测试,发布文章成功.

提示:若不想修改程序源码的话,建议更换到PHP5.3版本,等织梦升级支持PHP5.4以后再更换空间服务器.

 

织梦移动化友好度七盏明灯

“站在风口上猪都能飞起来”,在这个移动化浪潮兴起的时代,每个站长都想抓住这个机会让自己已有的网站再提升一下。在这个过程中,移动化的友好度就尤其重要,因为它能直接影响到你的网站在百度体系的评级。

今天在这里要谈的就是,在站长圈使用率较高的织梦Cms的友好度建设。下面给大家介绍一下,我们在做织梦Cms移动化友好度建设要注意哪些事项。

 1、网页的篇幅不要太长

因为手机的屏幕较小,如果页面过长,第一会影响网页的加载速度,第二用户需要多次向上滚动才能看完整个网页,这个是一种不好的体验,一个移动站点的首页最好是控制在2-3屏,这样能把一些重点简单明了的展示在首页,同时也不会对网站加载造成太大的负担。

  2、网页使用静态页面

用过织梦Cms的站长都知道,织梦后台有生成静态页面的功能,相较于动态页面,静态页面对于SEO友好度要好得多,所以建议站长在做手机站的时候尽量使用静态化的页面,这样有利于提升网页的加载速度,同时对于网站安全也有帮助,织梦怎么快速有效的建立移动优化站,之前站长学院给出了相关教程(参考链接:http://zhanzhang.baidu.com/college/courseinfo?id=750),在这里就不多加介绍了。

 

  3、做好PC站适配跳转

这一点我认为尤其重要,因为在早期很多网站没有移动化站点,也并没有做自适应的处理,这样就导致m.baidu.com在收录时,是被百度收录了的PC页面或者被百度转码,所以我们在做了移动站点后第一件要做的事情就是做好适配,这里站长学院介绍了三种适配的方式(参考链接:http://zhanzhang.baidu.com/college/courseinfo?id=156),在做完网站的适配之后,站长也可以将pc站和移动站一一对应的关系在百度站长平台后台进行提交。

4、图片单独处理

因为在织梦程序里要做手机站是需要和PC端公用一个数据库,这样就会导致手机上调用的图片和PC一致,但是PC站上的图片的尺寸和大小显然不能满足移动友好度的要求,这个地方站长可以针对手机单独进行处理,比方说在上传图片的时候按照比例上传多张图片供不同的设备使用。

  5、移动网站的分页

现在很多网站流行使用ajax加载的方式加载网站列表,这种方式固然是对用户体验的一大提升,但是现在百度是不抓取JS内容的,所以到时你加载的内容是不被百度蜘蛛抓取的,所以建议站长尽量使用分页

  6、链接区域放大

因为手机屏幕小,所以如果链接区域偏小,会很容易影响点击,同时链接与链接之间要保持好距离。这个可以根据官方文档里面给出的建议进行调整

 

  7、手机站尽量少用多媒体元素

因为对于手机站而言,加载速度对于移动化友好度极为重要,所以我建议各位站长尽量少用或者不用多媒体元素,同时要注意的是,百度蜘蛛目前为止抓取还是以文字为主,所以从网站优化角度而言,也应少用多媒体。

如果上面几点站长对于自己网站调整还无从下手的话,可以通过站长工具里面的移动友好度进行评测,根据评测结果进行网站调整。