织梦DedeCMS判断简略标题为空则显示完整标题的几种方法
如遇蓝奏网盘打不开lanzous替换成lanzoux尝试!
前言
相信大家都遇到过,我们在使用织梦DedeCMS系统程序开发网站中,会遇到很多因网页版面设计限定的宽度,使文章标题需要进行字数限制,通常做法是在a标签中加入一个title属性,让鼠标放上去的时候显示完整标题。但是标题被剪裁掉一些字符而不完整,下面脚本之家的小编就为你推荐另外几种标题调用方式,如进行标题判断,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字节,模板代码如下:
- [field:title function='( strlen(“@me”)>30 ? cn_substr(“@me”,30).”…” : “@me” )’/]
{dede:arclist titlelen=’50’ row=’10’}
{/dede:arclist}
很明显,解决问题的关键在于用 [field:title function='( strlen(“@me”)>34 ? cn_substr(“@me”,30).”…” : “@me” ) ‘ /] 代替了原来的 [field:title /] ,在输出标题时多了一个判断的过程,先判断标题是否大于34字节,如果大于则只输出30字节的长度,并加上省略号。而title=”[field:title /]” 则不受影响,鼠标移上去时显示标题的全部内容。
方法四:
除上面修改模板的方法外,还有编程或CSS等方法。但能通过模板解决的问题,编程就不必要了。CSS的方法如下:
解释:width:120px; 限定长度,text-overflow:ellipsis :当对象内文本溢出时显示省略标记…,white-space:nowrap:强制文本在一行内显示,overflow:hidden:溢出内容为隐藏。
CSS的方法比修改模板还要简单,不过很遗憾,text-overflow:ellipsis属性在firefox中是没有效果的。所以,还是使用上面的修改模板的方法吧。
最近还发现了另外一个问题,dede标题链接,有则能链接无则不连接,下面是解决的方法:
{dede:list pagesize=’15’ orderby=’weight’ orderway=’desc’}
- [field:pubdate function=’strftime(“%Y/%m/%d”,@me)’/]
-
[field:array runphp=’yes’] if (@me[‘body’]==”) @me=@me[‘title’];else{ @me= ‘‘.@me[‘title’].’‘;}[/field:array]
{/dede:list}
织梦5.7会员中心,由于为了安全性问题,限制了注册会员在会员中心发布信息的时候上传图片,但是管理员登录会员中心发布信息的时候上传图片却不受影响。那该如何解决呢?下面我们来说明一下具体的解决方案。
首先,具体的问题为,注册会员点击图片上传,预览选择好本地图后点击上传到服务器上
图片上传失败,并无像正常上传图片后提交按钮跳转到相应的图像属性界面上,仅在当前窗口上弹出一个滚动条,上面的滚动条里面提示为“提示:需输入后台管理目录才能登陆”,但因滚动条高度受限制了所以我们看不到提示。想要查看具体的提升信息的话,请点击向下的滚动条一直往下,即可出现文字提示。
现在知道具体原因后就容易解决问题了,直接搜索织梦网站程序文件夹下的全部包含“提示:需输入后台管理目录才能登陆“的文件,找到includedialogconfig.php文件。其中有段代码
//检验用户登录状态
$cuserLogin=new userLogin();
if($cuserLogin->getUserID() <=0 )
{
if(empty($adminDirHand))
{
ShowMsg(“提示:需输入后台管理目录才能登录
”, “javascript:;”);
exit();
}
$gurl=“http://www.dede58.com/a/{$adminDirHand}/login.php?gotopage=”.urlencode($dedeNowurl);
echo “”;
exit();
}
将$cuserLogin=new userLogin();之后的代码进行注释后即可使注册会员正常上传图片,具体注释方法为:
以上方法虽然解决了注册会员不能上传图片的问题,但是因为注释了该部分代码,导致了任何人都可以通过点击浏览服务器,查看到uploads目录下的全部目录及文件,大大降低网站的安全性,所以需要进行安全性修复。
导致问题的根源在于浏览服务器功能降低了网站的安全性,而该功能基本上没有任何用处,那最简单的解决方案就莫过于直接取消这项功能。具体方法为,打开includeckeditorconfig.js文件,注释掉以下代码:
我们在用DedeCMS自定义表单功能的时候,一般都是在本地测试,成功后再上传到空间实测,把自定义表单备份在空间还原之后,在提交表单的时候却提示“数据校验不对,程序返回 ”,在自定义表单中点击发布信息却并没有这个问题,一切正常。
DedeCMS自定义表单出现“数据校验证不对,程序返回”的解决方案
排查一番,终于找出原因,原来自定义表单中中有一个dede_fieldshash值,它的value值是唯一的,每个网站都有单独的value值,这里报错就是因为这个问题,比如如下代码:
很简单,打开后台-核心-频道模型-自定义表单value值为:497900ecbac58b031af0c80e589e7649,网站转移之后这个值也会变化,并没有及时修改这个值,导致出错,那么怎么找到这个值呢?
找到自己设置好的自定义表单,点击“前台预览”
如果提示前台预览关闭,则点击“修改”,将“前台列表和内容也公开”选项勾选为“完全公开”。
DedeCMS自定义表单出现“数据校验证不对,程序返回”的解决方案
在预览自定义表单界面点击右上角的“发布信息”
DedeCMS自定义表单出现“数据校验证不对,程序返回”的解决方案
即可到信息发布的页面,查看源代码,找到“ dede_fieldshash”,后面的value值即为我们需要的新的值,放到自己的模版中即可解决“数据校验不对”的报错问题,再去提交表单则提示成功。