欢迎光临
我们一直在努力

织梦DEDECMS5.7怎么自动给文章内的图片增加alt属性

qyuef阅读(5061)评论(31)

搜素引擎看不懂图片,通过给图片添加alt属性,有助于搜索引擎判了解这是一张什么图片,利于搜索引擎优化,在seo优化中,图片ALT属性描述很重要,图片alt属性就是对图片进行描述的文字。描述中可以加入网站的关键词,来增加关键词密度,当搜索引擎来爬取页面的时候,图片的描述也可以更好的帮助搜索引擎对图片进行理解,利于网站的排名。做好了图片的alt属性无论是对搜索引擎的爬取还是用户体验都是有利无害的,所以我们一定要重视图片alt属性。
  织梦本身没有批量添加或自动替换图片alt描述的功能,而使用织梦建站的朋友都有很多采集来的文章,大部分图片都没有alt属性,非常不利于SEO优化,手工添加又太费时费力,怎么办呢?下面YYCYS知识网就以织梦5.7为例介绍下怎么给你网站所有文章里的图片自动添加ALT属性,其他版本应该也可以,网上这一类的教程很多,网友在5.3/5.5版测试通过,5.6没试过,本文教程在织梦最新版5.7测试通过:
织梦5.7版自动给图片添加alt属性具体解决方法:

  一. 找到网站Include目录下的arc.archives.class.php 文件并打开
  (模板标签:{dede:field.body/} ,如果是其它字段,可以修改$this->Fields['body'] 为其它的字段名。)

  二. 用组合键 Ctrl+F 查找下面的这段代码
 

//设置全局环境变量  
$this->Fields['typename'] = $this->TypeLink->TypeInfos['typename'];  
SetSysEnv($this->Fields['typeid'],$this->Fields['typename'],$this->Fields['aid'],$this->Fields['title'],'archives'); 

三. 在以上代码下面添加以下代码即可

//替换图片Alt为文档标题  
$this->Fields['body'] = str_ireplace(array('altalt=""','alt=\'\''),'',$this->Fields['body']);  
$this->Fields['body'] = preg_replace("@ [\s]{0,}alt[\s]{0,}=[\"'\s]{0,}[\s\S]{0,}[\"'\s] @isU"," ",$this->Fields['body']);  
$this->Fields['body'] = str_ireplace("<img " ,"<img alt='".$this->Fields['title']."' ",$this->Fields['body']); 

DEDECMS 5.7 织梦建站程序如何自动获取关键字内容

qyuef阅读(6494)评论(23)

关于dede自动获取关键字内容上主要分三部分来讲:
  1.dede自动获取关键字链接增加站内锚文本
  2.dede自动添加关键字频率设置
  3.删除dede系统变量
  下面具体看看以上三点在dede系统中应该如何实现,这里主要以操作及设置参数介绍为主,详解!!!
  一、dede自动获取关键字链接
  这个比较简单,新手也能独立完成,主要是其中一些注意的,以及一些参数的意义在这里说一下:
  1.系统目录采集文档关键字维护
  2.设置参数详解
  a.新增关键字:(需要显示的关键字文本)
  b.链接网址:(关键字链接地址)
  c.频率:(自动获取关键字频率,默认为30,这里不需要修改,因为每个关键字锚文本只需要在文中出现一次,后面第二步具体设置)
  注意:举例说明,以枫叶博客为例,需要在每篇文章出现枫叶博客的时候自动添加链接锚文本即可这样操作:新增关键字:(枫叶博客),链接网址:(http://www.qyuef.com/),频率:(默认为30,不用修改)
  其实方法很简单,并不需要改根目录下的任何文件,只需要设置好之后即可一步到位,使dede在发布文章时自动加上关键词链接即可,所以下次如果看到什么要修改系统文件什么的,基本可以忽略了。不过,还是有以下几点需要注意:
  a.每篇文章中相同的锚文本最好只出现一次(如:当一篇文章中有上百个关键字时,每个关键字都自动添加关键字锚文本,se会认为你是在作弊,这点一定切忌!但是这里的频率设置没有任何意义,一般我们通过添加变量控制关键字锚文本出现频率,下面第二点说到)
  b.自动链接会切断你的手动链接(如:我现在在后台设置了枫叶博客链接到http://www.qyuef.com/,但是如果我更新文章时手动给枫叶博客举办XX活动添加了到其他相关页面链接的话,文章更新后看到的效果其实是枫叶博客链接到了后台设置好的链接,而具备XX活动则链接到了手动设置好的那个页面,这就是所谓的自动链接会切断你的手动链接可能用词不当,但是这点是要注意的)
  二、dede自动添加关键字频率设置
  再次申明,这个也不需要修改系统文件,只需要添加一个控制变量即可。这里我们用cfg_replace_num变量来控制相同关键字锚文本的出现频率:
  1.系统系统基本参数
  2.添加新变量(这里需要截图细说)
  变量名称:即你说添加的变量,这里是cfg_replace_num而不是你自己填
  变量值:这个很好理解,每个关键字锚文本只出现一次,即设置为1
  参数说明:限制关键字替换次数(这个将会显示在控制选项中,这个个人可以根据爱好不同自己设定)
  所属组:即出现在那个组,可选项为:站点设置| 核心设置 | 附件设置 | 会员设置 | 互动设置 | 性能选项 | 其选项 |模块设置,这里你选择那一个,这个变量就是出现在那一组下面,以后设置就可以在这个组别里找,这里我选择其他选项,所以会只会在其他选项中找到他,效果如下:
  这样设置好之后先更新一篇文章测试,如果ok,则更新所有文档。看完介绍不知道你设置对了没有?如果设置的不理想可以删掉变量重新设置,但是在dede后台控制面板中并没有这个选项,我们可以运用SQL命令行工具删除变量,想删那个删那个,这个将在第三点。
  三、删除dede系统变量
  这里我们需要用到dede后台的SQL命令行工具,其实没有什么高深的。在dede系统后台系统设置SQL命令行工具运行SQL命令行(单行或者多行这个按需求来定)
  DeleteFROM dede_sysconfig wherevarname=cfg_replace_num,其中cfg_replace_num为你要删除的变量名称

织梦dedecms 5.7SP1修改文章的tags标签长度限制

qyuef阅读(3085)评论(14)

今天早上文章编辑突然给我说后台加不了tags标签,我打开后台随意打了几个字保存没有问题。后来去她那看。一保存重新打开就丢失了。经过检查是织梦本身的程序和数据库表对tags做了长度的限制。
修改方法:

首先在后台–系统–SQL命令行工具的输入框填写以下代码执行。

ALTER TABLE dede_tagindex modify column tag char(251) not null;
ALTER TABLE dede_taglist modify column tag char(251) not null;

这2句代码的意思是修改数据表dede_tagindex和dede_taglist的字段tag的字符长度,需要注意的是,如果你安装织梦的时候修改了表的前缀,那么sql语句也需要对应修改表名。

然后找到文件include/archives.func.php,大概在代码第200行左右找到if(isset($tag[12]) || $tag!=stripslashes($tag)),将这句代码改为:if(isset($tag[251]) || $tag!=stripslashes($tag)) 然后保存文件。

就这样2个步骤就修改完毕,然后可以在后台测试一下有没有问题了。

dedecms5.7解决arclist标签无法调用副栏目文章的方法!

qyuef阅读(2711)评论(20)

  今天在做医院的门户网站时,因为有的专家属于多个诊疗科室。在专家调用的时候就用到了副栏目的关联。但是显示却出现了问题。arclist标签调用推荐专家,关联的专家无法正常显示。于是在网上搜索没有找到好的解决办法。自己查看了arclist标签的处理文件做了一点小修改。
 修改内容如下:
找到并打开/include/taglib/arclist.lib.php,代码大约处于295-296行的样子。

if($CrossID=='') $orwheres[] = ' arc.typeid IN ('.GetSonIds($typeid).')'; 
else $orwheres[] = ' arc.typeid IN ('.GetSonIds($typeid).','.$CrossID.')';

将上面的代码直接替换成

if($CrossID=='') $orwheres[] = ' (arc.typeid IN ('.GetSonIds($typeid).') 
OR arc.typeid2 IN ('.GetSonIds($typeid).')) '; 
else $orwheres[] = ' (arc.typeid IN ('.GetSonIds($typeid).','.$CrossID.')
OR arc.typeid2 IN ('.GetSonIds($typeid).','.$CrossID.')) ';

修改完成之后保存测试就行了,修改的时候记得先备份该文件。以免修改错误造成网页出现异常。

织梦dedecms5.7提示信息美化分享。

qyuef阅读(1308)评论(3)

有时候我们在用dede建站的时候,会删掉和隐藏一些信息让别人不知道是织梦建的网站来针对性攻击。这里博主分享一个美化的提示信息。。

该功能主要是修改了默认的函数文件common.func.php。

修改:include/common.func.php

第178-255行

覆盖以下代码:

function ShowMsg($msg, $gourl, $onlymsg=0, $limittime=0)
{
    if(empty($GLOBALS['cfg_plus_dir'])) $GLOBALS['cfg_plus_dir'] = '..';

    $htmlhead  = "<html>\r\n<head>\r\n<title>DedeCMS提示信息</title>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\" />\r\n";
    $htmlhead .= "<base target='_self'/>\r\n<style>div{line-height:160%;}</style></head>\r\n<body leftmargin='0' topmargin='0' bgcolor='#FFFFFF'>".(isset($GLOBALS['ucsynlogin']) ? $GLOBALS['ucsynlogin'] : '')."\r\n<center>\r\n<script>\r\n";
    $htmlfoot  = "</script>\r\n</center>\r\n</body>\r\n</html>\r\n";

    $litime = ($limittime==0 ? 1000 : $limittime);
    $func = '';

    if($gourl=='-1')
    {
        if($limittime==0) $litime = 5000;
        $gourl = "javascript:history.go(-1);";
    }

    if($gourl=='' || $onlymsg==1)
    {
        $msg = "<script>alert(\"".str_replace("\"","“",$msg)."\");</script>";
    }
    else
    {
        //当网址为:close::objname 时, 关闭父框架的id=objname元素
        if(preg_match('/close::/',$gourl))
        {
            $tgobj = trim(preg_replace('/close::/', '', $gourl));
            $gourl = 'javascript:;';
            $func .= "window.parent.document.getElementById('{$tgobj}').style.display='none';\r\n";
        }
        
        $func .= "      var pgo=0;
      function JumpUrl(){
        if(pgo==0){ location='$gourl'; pgo=1; }
      }\r\n";
        $rmsg = $func;
        $rmsg .= "document.write(\"<br /><div style='width:450px;padding:0px;border:1px solid #DADADA;'>";
        $rmsg .= "<div style='padding:6px;font-size:12px;border-bottom:1px solid #DADADA;background:#DBEEBD url({$GLOBALS['cfg_plus_dir']}/img/wbg.gif)';'><b>DedeCMS 提示信息!</b></div>\");\r\n";
        $rmsg .= "document.write(\"<div style='height:130px;font-size:10pt;background:#ffffff'><br />\");\r\n";
        $rmsg .= "document.write(\"".str_replace("\"","“",$msg)."\");\r\n";
        $rmsg .= "document.write(\"";
        
        if($onlymsg==0)
        {
            if( $gourl != 'javascript:;' && $gourl != '')
            {
                $rmsg .= "<br /><a href='{$gourl}'>如果你的浏览器没反应,请点击这里...</a>";
                $rmsg .= "<br/></div>\");\r\n";
                $rmsg .= "setTimeout('JumpUrl()',$litime);";
            }
            else
            {
                $rmsg .= "<br/></div>\");\r\n";
            }
        }
        else
        {
            $rmsg .= "<br/><br/></div>\");\r\n";
        }
        $msg  = $htmlhead.$rmsg.$htmlfoot;
    }
    echo $msg;
}

文件覆盖直接下载地址:http://yunpan.cn/lk/sV2yqriILa8uQ?sid=301

如何实现织梦文章列表页按照权重自定义排序

qyuef阅读(1825)评论(15)

dedecms v5.6\v5.7列表页标签{dede:list增加按权重排序标签 

dedecms v5.6版本已经中已经添加权重字段,并且在{dede:arclist标签中默认可以使用(5.7中的{dede:arclist}也已经可以使用)。但在列表页的标签 {dede:list中是还是无法按权重实现排序。(v5.7中,{dede:list}也可以这样改)

解决方法:

1、打开\include\目录中的arc.listview.class.php文件,搜索“排序方式”,然后在

else if($orderby=="lastpost") { 

$ordersql = " order by arc.lastpost $orderWay"; 



     

这段代码和



else { 

$ordersql=" order by arc.sortrank $orderWay"; 



       

这段代码中间粘贴上



else if($orderby == 'weight') $ordersql = " order by arc.weight asc"; 

   

找到     if(preg_match('hot|click|lastpost',$orderby))

修改成   if(preg_match('hot|click|lastpost|weight',$orderby))

保存文件。



这个时候在列表页里就可以使用

{dede:list pagesize='5' orderby='weight' orderway="asc"}

进行排序了。

织梦cms获取当前栏目的上级栏目名称及链接

qyuef阅读(1210)评论(2)

 

有时候在用织梦建网站的时候会需要在子栏目显示上级栏目的名称和链接。下面附上一段模版代码。

复制到模版中就可以使用。已经测试过支持最新版本的织梦cms v57-sp1。

GetOne("SELECT reid FROM dede_arctype where id=@me");
   $reid = $reid['reid'];
   $typename = $dsql->GetOne("SELECT typedir FROM dede_arctype where id=$reid");
   @me=str_replace('{cmspath}','',$typename['typedir']);
{/dede:field.typeid}
   >{dede:field.typeid runphp='yes'"}
   global $dsql ;
   $reid = $dsql->GetOne("SELECT reid FROM dede_arctype where id=@me");
   $reid = $reid['reid'];
   $typename = $dsql->GetOne("SELECT typename FROM dede_arctype where id=$reid");
   @me=$typename['typename'];
{/dede:field.typeid}

dedecms分享一个网站幻灯管理插件!

qyuef阅读(1459)评论(5)

很多企业网站都需要首页有幻灯图片展示,织梦本身的幻灯管理是推荐文章。这里把插件单独列出来方便企业网站管理。
把xml文件上传至DEDE程序的/data/module目录下
然后登录后台,找到模块 然的点击插件管理器,安装新插件找到刚上传的幻灯管理插件,点击安装就行了,安装完成后会在辅助插件那生成菜单链接,不是IE的用户需要刷新才能找到刚安装的插件

——————————————————————
调用实例
<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:myppt typeid='1' row='3'}
linkarr[[field:global.autoindex/]] = "[field:url/]";
picarr[[field:global.autoindex/]]  = "[field:pic/]";
textarr[[field:global.autoindex/]] = "[field:title function='html2text(@me)'/]";

{/dede:myppt}
for(i=1;i<picarr.length;i++){
if(files=="") files = picarr;
else files += "|"+picarr;
}
for(i=1;i<linkarr.length;i++){
if(links=="") links = linkarr;
else links += "|"+linkarr;
}
for(i=1;i<textarr.length;i++){
if(texts=="") texts = textarr;
else texts += "|"+textarr;
}
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>
下载地址:http://www.qyuef.com/qyuefcom.rar
 

织梦dedecms列表页实现有缩略图显示图片无则不显示的方法!

qyuef阅读(1550)评论(8)

织梦模式的缩略图显示方式是有图片就显示管理员上传的缩略图,如果没有会显示一张系统默认的图片。但有的朋友在用织梦制作网站的时候可能会遇到一些客户的特殊需求,比如在新闻列表页会要求有图片就显示,没有就不显示图片。下面分享一段小代码来解决这个问题。

[field:array runphp='yes']
@me = (strpos(@me['litpic'],'defaultpic') ? "" : "
");
[/field:array]

织梦DedeCMS后台文件列表按文件名排序的方法

qyuef阅读(1351)评论(1)

后台文件列表按文件名排序的方法: 织梦dede系统的后台文件, 默认的排序很乱, 不是按名称, 也不是按时间, 如果目录内容很多的话, 很难找到自己想要的文件:

没有按名字排序

没有按名字排序

实在是太不方便了, 于是想让这些文件列表按名字排序, 看了一下后台的文件, 原来是因为php的函数dir引起的, 以”默认模板管理”在文件列表为例, 在后台的找到模板文件: /dede/templets/templets_default.htm (dede为你的后台目录) ,打开这个文件找到:

 <?php

$dh = dir($templetdird);

while($filename=$dh->read())

{

if(!preg_match(“#\.htm#”, $filename)) continue;

$filetime = filemtime($templetdird.’/’.$filename);

$filetime = MyDate(“Y-m-d H:i”,$filetime);

$fileinfo = (isset($fileinfos[$filename]) ? $fileinfos[$filename] : ‘未知模板’);

?>

可以看得出来使用了PHP的dir函数导致的, dir()读取的文件是无序的, 现在我们要想办法让他按名字排序, 这里可以改另一个读取目录文件的函数scandir(); 这个函数的文件会按文件名称排序, 改成下面这样:

<?php

$files = scandir($templetdird);

foreach ($files as $filename)

{

if(!preg_match(“#\.htm#”, $filename)) continue;

$filetime = filemtime($templetdird.’/’.$filename);

$filetime = MyDate(“Y-m-d H:i”,$filetime);

$fileinfo = (isset($fileinfos[$filename]) ? $fileinfos[$filename] : ‘未知模板’);

?>

文件已经全部按名字排序了,很容易找到自己要的文件:

按名字排序的列表

按名字排序的列表

后台还有其它的有文件列表的地方也一样修改就可以了.

转载出处: http://www.dengor.com/archives/1442.html 

枫叶博客

联系我们联系我们

登录

忘记密码 ?