7生成首页提示404错误解决办法,dedecms友情链接中去掉织梦链投放修改方法
分类:web前端

在使用dedecms5.7织梦建站系统的时候,发现了一个重大的bug。

dedecmsV5.6去掉友情链接中“织梦链投放”连接的方法,dedecmsV5.7删除友情链接中的织梦链的方法
织梦CMS V5.7,在友情链接中会自动添加“织梦链”,可以考虑删除。不过,在后台管理中,并没有发现织梦链管理,所以只能修改源文件。

才发现dedecms 5.7就是5.6的官方广告版,加了一个垃圾的织梦链的东西,来偷偷添加黑链,让我站收录大幅度下滑,百思不得其解,后来想起是因为中间换了一个主题,换回了官方主题,本来以为官方主题会因为seo优化做得好,收录更好才对,因为以前的主题是自己做的,那时候没太关注seo,通篇都是div和css,没有一个

问题一、dede让channelartlist标签支持currentstyle属性 完美解决

出现问题状况:

dedecmsV5.7删除友情链接中的织梦链的方法:后台模块---文件管理器找到织梦CMS V5.7根目录include/taglib/flinktype.lib.php 文件删除如下代码然后重新生成首页HTML

,

打开includetaglibchannelartlist.lib.php
找到
$pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);
在此行代码下方增加以下代码:

后台生成首页html文件的时候,提示404.html错误,直接访问网站首页会自动跳转到404.html,同时提示文件不存在的错误。

$dedecms = false;
$dedecms->id = 999;
$dedecms->typename = '织梦链';
if($type == 'dedecms') $row[] = $dedecms;

标签,今天检查了友情链接,发现莫名其妙的多了什么左旋肉碱,自己检查了检查,才发现,原来dede官方植入黑链那,这两天得考虑着如何把数据转到phpcms v9中,换全站好了,哈哈。不过换之前还是先去掉这些烦人的织梦链吧,尽管是为了dede的生存才加入的,但是却影响收录,这也侧面说明了程序员的艰辛那,作为一个知名的cms管理工具,都要动这些小心思了。 去除方法有两种,大家看那种方便吧。如下: 1. 修改php文件 找根目录下的 include/taglib/flinktype.lib.php 文件找到如下代码: 复制代码代码如下: $dedecms = false; $dedecms->id = 999; $dedecms->typename = ‘织梦链’; if($type == ‘dedecms’) $row[] = $dedecms; 删除以上文字即可,或者将$type == ‘dedecms’里的dedecms随便改一个名字,例如改成你的网址 2. 修改模版 直接打开根目录下的templetsdefault中的index.htm,也就是首页的模板,找到 {dede:flinktype type="dedecms"},删除掉,或者把那个dedecms随便改一个名字,呵呵。有两处,少改一处都会出现织梦链。 建议用第一种方法修改吧,好一些,呵呵。

if($typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['id'] || $typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['topid'] ){
$pv->Fields['currentstyle'] = $currentstyle ? $currentstyle : 'current';
}
else{
$pv->Fields['currentstyle'] = '';
}

解决方法:

dedecmsV5.6去掉友情链接中“织梦链投放”连接的方法:后台模块---文件管理器找到织梦CMS V5.6根目include/taglib/flink.lib.php 文件删除如下代码然后重新生成首页HTML

网上找到的一般没有加$typeids[$i]['id'] ==$refObj->TypeLink->TypeInfos['topid']
添加这个后才能对二级栏目也起作用
调用方法:

修改的文件路径:/www/dede/include/taglib/flinktype.lib.php

// 获取织梦链
$cache_file = DEDEDATA.'/cache/dedelink.txt';
if(file_exists($cache_file))
{
$result = unserialize(file_get_contents($cache_file));
}
if(!isset($result['result']) OR $result['timeout'] < time())
{
$linkUrl = DedeGetHtml(";
$linkInfo = DedeGetHtml($linkUrl);
$result = array();
$result['result'] = $linkInfo;
$result['timeout'] = time() + 60 * 60 * 3; // 缓存3个小时
file_put_contents($cache_file, serialize($result));
} else {
$linkInfo = $result['result'];
}

{dede:channelartlist typeid='2' currentstyle='current'}
<li class='{dede:field.currentstyle/}'><a href='{dede:field name='typeurl'/}'>{dede:field name='typename'/}</a></li>
。。。
{/dede:channelartlist}
如果是当前栏目则 li的class属性显示current,否则显示class='' ,也可以修改currentstyle='这里改为你需要的类名'。

找到这一段代码:

记得一定要重新生成HTML才行。


 $dedecms = false;
 $dedecms->id = 999;
 $dedecms->typename = '织梦链';
 if($type == 'dedecms') $row[] = $dedecms;

也可以与arclist标签(详见:
这样调用:
{dede:channelartlist typeid='2' currentstyle='current'}
<dt ><a class='{dede:field.currentstyle/}' href='{dede:fieldname='typeurl'/}'>{dede:field name='typename'/}</a></dt>
{dede:arclist titlelen='42' row='10' currentstyle="<dd><a class='current' href='~typelink~'>~typename~</a></dd>"}
[field:array runphp='yes']
if(@me['currentstyle']){
@me = @me['currentstyle'];
}else{
@me = "<dd ><a href='{@me['arcurl']}'>{@me['title']}</a></dd>";
}
[/field:array]
{/dede:arclist}
{/dede:channelartlist}

把红色的部分改掉,随便修改成任意字符。

 

如: if($type == 'jb51net') $row[] = $dedecms;

 

整体如下:

问题二、织梦channel标签currentstyle样式无效不起作用

复制代码代码如下:
$dedecms = false;
$dedecms->id = 999;
$dedecms->typename = '织梦链';
if($type == 'jb51net') $row[] = $dedecms;

我们在用织梦系统制作网站时,经常会用到channel标签来调子栏目。但是,很多朋友会遇到这种情况在使用channel标签来调子栏目的时候,指定 “type=son typeid=x” 发现currentstyle无效。今天笔者就跟大家分享一下解决方法。

保存即可解决该问题,后来在官方论坛有人发了一份聊天记录,据说是由于织梦官方在新发布的程序里加入了所谓的“织梦链”广告代码,导致了该问题的出现。

1、解决channel标签currentstyle样式无效不起作用的错误方法

代码如下:
{dede: type='son' typeid='12' currentstyle="<li><a href='~typelink~' title="~typename~">~typename~</a> </li>"}   
<li><a title="[field:typename/]" href="[field:typelink/]">[field:typename/]</a></li>   
{/dede:channel}
解决的办法:把typeid=‘12’改为channel=‘1’ (文章模型id),首页除外,其他页面不需要指定typeid=x,会自动判断当前位置。
解决方法如下:
{dede: type='son' channel='1' currentstyle="<li><a href='~typelink~' title="~typename~">~typename~</a> </li>"}  
<li><a title="[field:typename/]" href="[field:typelink/]">[field:typename/]</a></li> 
{/dede:channel}
笔者经测试这种调用方式currentstyle根本是无效的,简直是无稽之谈。
2、解决channel标签currentstyle样式无效不起作用的正确方法 修改include/taglib/channel.lib.php

if( ($row['id']==$typeid || ($topid==$row['id'] && $type=='top') ) && $currentstyle!='' )
改成
if( ( $row['id']== $refObj->TypeLink->TypeInfos['id'] || ($topid==$row['id'] && $type=='top') ) && $currentstyle!='' )
笔者经测试这种调用方式currentstyle有效,可以解决解决channel标签currentstyle样式无效不起作用的问题。

本文由10bet手机官网发布于web前端,转载请注明出处:7生成首页提示404错误解决办法,dedecms友情链接中去掉织梦链投放修改方法

上一篇:php数组排序之多维数组与一维数组,php对二维数组进行相关操作10bet手机官网 下一篇:thinkPHP实现文章上一篇和下一篇,织梦DEDECMS中增加父栏目调用
猜你喜欢
热门排行
精彩图文