DEDECMS(V5.6、5.7)移动文章位置后自动删除原来文章

最近将网站栏目的目录修改了,却发现移动文章之后,在原来的位置上生成的HTML文件,并没有删除掉,而在新的位置上又生成了新的HTML文件。我想这多份重复静态HTML是否会对搜索引擎有不良影响吧。

虽然这样,但是我想这还应该是一个系统的BUG吧,于是就想修改这个BUG,其实还是很简单的。

打开dedearchives_do.php,找到以下代码:

//增加单表模型判断

if($typeInfos['issystem'] == -1)

{

$typeInfos['maintable'] = $typeInfos['addtable'];

$idtype = "aid";

}

在下面添加如下代码:

//增加代码

CheckPurview('a_Del,a_AccDel,a_MyDel,sys_ArcBatch');

require_once(DEDEINC."/oxwindow.class.php");

DelArc($qstr, 'YES', TRUE,-1);

测试成功,哦啦!!!

 

友情提示:

为避免文章移动造成对网站影响,建议文章存储位置设置为 文件夹/日期/文章ID 即:html/{Y}{M}{D}/{aid}.html的形式.

IE9如何实现多窗口cookie不同步

有时候遇到要多帐号登录同一网站,就需浏览器可以多窗口cookie不同步,像国产360浏览器等都有设置多窗口cookie不同步,但对于IE8和IE9等如何实现呢

其实很简单,在菜单中依次点击:文件>新建会话 即可实现多窗口cookie不同步.

这样操作的结果就是打开了多个浏览器进程,实现多窗口cookie不同步,但是会有占内在现象.

织梦友情链接调用{dede:flink/} 说明

flink

全局标记

V55,V56,V57

用于获取友情链接

基本语法


{dede:flink row='24'/}

标签属性

  •  
  • type:链接类型
  • row:链接数量
  • titlelen:站点文字的长度
  • linktype:链接位置内页
  • typeid:所有类型,可以在系统后台[模块]-[友情链接]中的“网站类型管理”中查看
  •  
  • flinktype

    全局标记

    V55,V56,V57

    用于获取友情链接类型

    基本语法


    {dede:flink row='24'/}

    标签属性

    •  
    • row:链接类型数量
    • titlelen:链接文字的长度 

    例如下面: 
    网站首页调用:
    {dede:flink type='textall' typeid='1' row='4' col='12' titlelen='' linktype = '2' tablestyle=''}{/dede:flink}

    说明: 
    type='textall'   全文字显示
    typeid='1'       站点类型ID1 
    row='4'           4行显示
    col='12'          12列显示
    linktype = '2'   首页显示

     

  • 解决HawkHost主机安装phpwind连接数据库出错问题

    今天在群里看到有人在老鹰主机安装pw出错,就帮忙看了下,后来研究了后,发现错误的原因是共享服务器上安装了Mod security,因此当网址中包含一些敏感字符时,就会被mod security阻止,从而就出现了刚才的错误提示。

    解决方法:

    在.htaccess文件中添加以下代码即可
     

    1
    2
    
    SecFilterEngine Off
    SecFilterScanPOST Off

    网站根目录没有.htaccess文件的,可以自己创建一个,保存为.htaccess然后上传到网站根目录即可。 

    DEDECMS生成动态网站及 DEDE批量修改动态页为静态

    1.如何修改默认发布为动态页;
    这个其实很简单,会改html就可以了!把dede文件夹打开,用编辑器打开article_add.php,找到<
     <input name="ishtml" type="radio" class="np" value="1" checked="1" />
    生成HTML
      <input type="radio" name="ishtml" class="np" value="0"/>
    仅动态浏览 </td>
     
    修改为: 

      <input name="ishtml" type="radio" class="np" value="1" />
    生成HTML
    <input type="radio" name="ishtml" class="np" value="0" checked="1" />
    仅动态浏览 </td>
      
    刷新一下发布文章页面看看可以了不!用DW可以很直观的修改。

    2.如何批量修改动态发布为静态生成,或者反过来修改。
    用phpmyadmin打开dede_dede_archives 这个表
    ismake这个字段就是我们要修改的对象。
    运行sql语句:
    UPDATE `dede_archives` SET `ismake` = '-1' 修改所有文档为动态浏览
    UPDATE `dede_archives` SET `ismake` = '1' 修改所有文档为静态发布
    UPDATE `dede_archives` SET `ismake` = '1' where `typeid`='22' 把某一栏目下的所有文章改为静态  

    三步使DEDECMS生成动态网站:

    一,首先在建立栏目的时候在列表页选项: 1链接到默认页 2链接到列表第一页 3列表使用动态页 处选择3,即你的列表生成时也是动态的。  

    二,在自己手动添加文章的时候在发布选项: 1生成HTML 2仅动态浏览 处选择2,即手动添加的文章都是动态的。

    三、以上的操作都是界面化的,如果你能够操作数据库,那么这些都可以在数据库中完成,当采集大量文章后,在数据库统一修改将是一件很轻松的事。在我的数据库里,文章的动态属性是由 archives 表的 ismake 标志位决定的。ismake 的值为1时为静态,-1 时表示动态,那么你只要用 update archives set ismake=-1 的sql语句就可以将你所有采集的文章都改为动态的。注意是所有,如果你要对某些项目作修改,那么在后面加 where “筛选条件”,而列表对应的属性是 arctype 表的 isdefault 标志位isdefault 的值为1时为静态,-1 时表示动态,那么你只要用 update arctype set isdefault=-1 的sql语句就可以将你的所有列表都改为动态的。 

    HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth之完全详解

    HTML:scrollLeft,scrollWidth,clientWidth,offsetWidth到底指的哪到哪的距离之完全详解

    scrollHeight: 获取对象的滚动高度。

    scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离

    scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离

    scrollWidth:获取对象的滚动宽度

    offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度

    offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置

    offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置

    event.clientX 相对文档的水平座标

    event.clientY 相对文档的垂直座标

    event.offsetX 相对容器的水平坐标

    event.offsetY 相对容器的垂直坐标

    document.documentElement.scrollTop 垂直方向滚动的值

    event.clientX+document.documentElement.scrollTop 相对文档的水平座标+垂直方向滚动的量

      以上主要指IE之中,FireFox差异如下:

    IE6.0、FF1.06+:

    clientWidth = width + padding

    clientHeight = height + padding

    offsetWidth = width + padding + border

    offsetHeight = height + padding + border

    IE5.0/5.5:

    clientWidth = width - border

    clientHeight = height - border

    offsetWidth = width

    offsetHeight = height

    (需要提一下:CSS中的margin属性,与clientWidth、offsetWidth、clientHeight、offsetHeight均无关)

     

     

    onMouseover当鼠标经过的时候,触发 = 后面的脚本函数
    onMouseout 当鼠标离开 。。
    onMouseUP 当鼠标 按下又抬起。。。
    onmousemove 当鼠标移动。。
    onmousedown 当鼠标按下时。。

     

    假设 obj 为某个 HTML 控件。

    obj.offsetTop 指 obj 相对于版面或由 offsetParent 属性指定的父坐标的计算上侧位置,整型,单位像素。

    obj.offsetLeft 指 obj 相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置,整型,单位像素。

    obj.offsetWidth 指 obj 控件自身的绝对宽度,不包括因 overflow 而未显示的部分,也就是其实际占据的宽度,整型,单位像素。

    obj.offsetHeight 指 obj 控件自身的绝对高度,不包括因 overflow 而未显示的部分,也就是其实际占据的高度,整型,单位像素。

    我们对前面提到的 offsetParent 作个说明。

    offsetParent 获取定义对象 offsetTop 和 offsetLeft 属性的容器对象的引用。offsetTop 与 offsetParent 很复杂,不同浏览器有不同解释,浮动一下解释又不同了,所以我们一般只要理解通过二者可以获得控件在浏览器中的绝对位置即可。

    以上属性在 FireFox 中也有效。

    另外:我们这里所说的是指 HTML 控件的属性值,并不是 document.body,document.body 的值在不同浏览器中有不同解释(实际上大多数环境是由于对 document.body 解释不同造成的,并不是由于对 offset 解释不同造成的)

     

     

    我们知道 offsetTop 可以获得 HTML 元素距离上方或外层元素的位置,style.top 也是可以的,二者的区别是:

    一、offsetTop 返回的是数字,而 style.top 返回的是字符串,除了数字外还带有单位:px。

    二、offsetTop 只读,而 style.top 可读写。

    三、如果没有给 HTML 元素指定过 top 样式,则 style.top 返回的是空字符串。

    offsetLeft 与 style.left、offsetWidth 与 style.width、offsetHeight 与 style.height 也是同样道理。

     

     

    clientHeight
    大家对 clientHeight 都没有什么异议,都认为是内容可视区域的高度,也就是说页面浏览器中可以看到内容的这个区域的高度,一般是最后一个工具条以下到状态栏以上的这个区域,与页面内容无关。

    offsetHeight
    IE、Opera 认为 offsetHeight = clientHeight + 滚动条 + 边框。
    NS、FF 认为 offsetHeight 是网页内容实际高度,可以小于 clientHeight。

    scrollHeight
    IE、Opera 认为 scrollHeight 是网页内容实际高度,可以小于 clientHeight。
    NS、FF 认为 scrollHeight 是网页内容高度,不过最小值是 clientHeight。

    简单地说
    clientHeight 就是透过浏览器看内容的这个区域高度。
    NS、FF 认为 offsetHeight 和 scrollHeight 都是网页内容高度,只不过当网页内容高度小于等于 clientHeight 时,scrollHeight 的值是 clientHeight,而 offsetHeight 可以小于 clientHeight。
    IE、Opera 认为 offsetHeight 是可视区域 clientHeight 滚动条加边框。scrollHeight 则是网页内容实际高度。

    同理
    clientWidth、offsetWidth 和 scrollWidth 的解释与上面相同,只是把高度换成宽度即可。

    说明
    以上基于 DTD HTML 4.01 Transitional,如果是 DTD XHTML 1.0 Transitional 则意义又会不同,在 XHTML 中这三个值都是同一个值,都表示内容的实际高度。新版本的浏览器大多支持根据页面指定的 DOCTYPE 来启用不同的解释器

    scrollTop 是“卷”起来的高度值,示例:

    <div style="width:100px;height:100px;background-color:#FF0000;overflow:hidden;" id="p">
    <div style="width:50px;height:300px;background-color:#0000FF;" id="t">如果为 p 设置了 scrollTop,这些内容可能不会完全显示。</div>
    </div>
    <script type="text/javascript">
    var p = document.getElementById("p");
    p.scrollTop = 10;
    </script>

    由于为外层元素 p 设置了 scrollTop,所以内层元素会向上卷,这卷起来的部分就是 scrollTop。

    scrollLeft 也是类似道理。

    我们已经知道 offsetHeight 是自身元素的宽度,而 scrollHeight 是内部元素的绝对宽度,包含内部元素的隐藏的部分。上述中 p 的 scrollHeight 为 300,而 p 的 offsetHeight 为 100。

    scrollWidth 也是类似道理。

    IE 和 FireFox 全面支持,而 Netscape 8 和 Opera 7.6 不支持 scrollTop、scrollLeft(document.body.scrollTop、document.body.scrollLeft 除外)。

     

    1.clientHeight, clientWidth:
    这两个属性大体上显示了元素内容的象素高度和宽度.理论上说这些测量不考虑任何通过样式表加入
    元素中的页边距,边框等.

    2.clientLeft,clientTop:
    这两个返回的是元素周围边框的厚度,如果不指定一个边框或者不定位改元素,他的值就是0.

    3.scrollLeft,scrollTop:
    如果元素是可以滚动的,可以通过这俩个属性得到元素在水平和垂直方向上滚动了多远,单位是象素.
    对于不可以滚动的元素,这些值总是0.

    4.scrollHeight,scrollWidth:
    不管有多少对象在页面上可见,他们得到的是整体.

    5.style.left:
    定位元素与包含它的矩形左边界的偏移量

    6.style.pixelLeft:
    返回定位元素左边界偏移量的整数像素值.因为属性的非像素值返回的是包含单位的字符串,例如,30px. 利用这个属性可以单独处理以像素为单位的数值.

    7.style:posLetf:
    返回定位元素左边界偏移量的数量值,不管相应的样式表元素指定什么单位.因为属性的非位置值返回的是包含单位的字符串,例如,1.2em

    top,pixelTop,posTOp这几个类比就行了.
    LEFT: 为从左向右移的位置,即挂件距离屏幕左边缘的距离;
    clientLeft 返回对象的offsetLeft属性值和到当前窗口左边的真实值之间的距离
    offsetLeft 返回对象相对于父级对象的布局或坐标的left值,就是以父级对象左上角为坐标原点,向右和向下为X、Y轴正方向的x坐标
    pixelLeft 设置或返回对象相对于窗口左边的位置
    scrollWidth 是对象的实际内容的宽,不包边线宽度,会随对象中内容的多少改变(内容多了可能会改变对象的实际宽度)。
    clientWidth 是对象可见的宽度,不包滚动条等边线,会随窗口的显示大小改变。
    offsetWidth 是对象的可见宽度,包滚动条等边线,会随窗口的显示大小改变。
    IE6.0、FF1.06+:
    clientWidth = width + padding
    clientHeight = height + padding
    offsetWidth = width + padding + border
    offsetHeight = height + padding + border
    IE5.0/5.5:
    clientWidth = width - border
    clientHeight = height - border
    offsetWidth = width
    offsetHeight = height
    (需要提一下:CSS中的margin属性,与clientWidth、offsetWidth、clientHeight、offsetHeight均无关)

    offsetwidth:是元素相对父元素的偏移宽度。等于border+padding+width
    clientwidth:是元素的可见宽度。等于padding+width
    scrollwidth:是元素的宽度且包括滚动部分。
    offsetLeft:Html元素相对于自己的offsetParent元素的位置
    scrollLeft:返回和设置当前横向滚动务的坐标值

    <input type="button" value="点一下" onclick="move()">
    <div id="d" style="background-color:#ff9966; position:absolute; left:170px; top:100px;width:300;height:300;overflow:scroll"
    onclick="alert('offsetLeft:'+this.offsetLeft)">
    <div style="height:600;width:600" onclick="alert('offsetLeft:'+this.offsetLeft)"></div>
    </div>
    <script language="javascript">
    function move()
    {
    var d=document.getElementById("d")
    a=eval(20)
    d.scrollLeft+=a
    }
    </script>

    保存为网页,运行一下,点按钮,滚动条移动
    点击div,先弹出b相对于a的位置,再弹出a相对于窗口的位置 

    修改dede文章标题长度

    有时候,dede系统建站,发布文章时,标题很长,发布完成后,出现标题被截短的问题,这时就要修改dede文章标题长度来解决.方法如下:

    方法一、首先你要进入dedecms后台,系统——系统基本参数——其他选项——文档标题最大长度——在这修改为200或更大(其实200应该是足够了)。

    方法二、进入phpmyadmin,点击dede_archives 进入表——title——点击编辑——输入200 (根据需要调整)

    注意:对于使用虚拟主机来说,一般不能直接操作phpmyadmin,所以你只需要执行:系统——SQL命令行工具——输入语句:alter table dede_archives modify title varchar(200)  [注意,表前缀dede是你自己数据库表内的,相对修改即可,不然会出错!]

    这样就解决了,同时在调用的时候注意titlelen的数值大小

    ------------------------------
    有网友提问,按照上述方法修改后,仍然无法显示全部。

    这时问题可能出现:一是模板问题,检查相应模板相应位置上是否使用了titlelen来限制字数, 第二,可能是CSS上控制问题,检查对应CSS文件的相应代码,是否在CSS文件上进行了长度或者宽度限制。

    解决dedecms UTF-8首页文章标题显示字数太短的办法
    原因分析:因为UTF-8编码1个中文汉字占用的是3个字节,GBK占用的是2个字节,所以,原先$titlelen = AttDef($titlelen,30)等于对大取30个字节,所以最多只显示11个汉字。

    解决方法:进入dedecms的后台,在“模板管理”中的“标签源码管理",找到arclist.lib.php ,点击“编辑”,找到“$titlelen = AttDef($titlelen,30); ”条语句,把其中的30改为60或者更大的数值即可。当然你也可以在includetaglib 这个目录中找到arclist.lib.php,然后同样的方法修改好,再传到你的空间。 

    css和h1-h6组成一个logo

    先看一下效果:

    使 believe
    BUT 中间还是藏了一个 lie

    源码:

    <font style="LINE-HEIGHT: 1.3em" size="6"color="#c0c0c0">即</font> 
    <font style="LINE-HEIGHT: 1.3em" size="3"color="#c0c0c0">使</font> 
    <font style="LINE-HEIGHT: 1.3em"color="#e00000"size="5" face="impact">believe</font>,<br /> 
    <font style="LINE-HEIGHT: 1.3em"face="黑体" size="6">BUT</font> 
    <font style="LINE-HEIGHT: 1.3em"face="黑体">中间还是藏了一个</font> 
    <font style="LINE-HEIGHT: 1.3em"face="Impact"size="5" color="#ffc0cb">lie</font>
    

    h1-h6+css 实现以上效果:

    <div class="bt"> 
    <h1>Q</h1> 
    <h4>C</h4> 
    <h3>menglei.net</h3> 
    <h5>清</h5> 
    <h6>晨</h6> 
    <h2>博客</h2> 
    </div>
    
    <style> 
    .bt{ width:250px} 
    .bt h1,h2,h3,h4,h5,h6{display:inline; line-height:1.3em} 
    .bt h1{color:#c0c0c0; font-size:30px; font-weight:normal} 
    .bt h4{color:#c0c0c0; font-size:18px; font-weight:normal;} 
    .bt h3{color:#e00000; font-size:24px; font-family:Impact;font-weight:normal; margin-right:80px;} 
    .bt h5{font-size:30px; font-family:黑体; font-weight:normal; padding-left:37px} 
    .bt h6{font-size:25px; font-family:黑体; font-weight:normal} 
    .bt h2{color:#ffc0cb; font-size:24px; font-family:Impact;font-weight:normal} 
    </style>
    

    效果如图

    Q

    C

    menglei.net

    博客

    WP固定链接修改参数

    为使博客文章目录整体美观,对文章进行链接美化,是很重要的事情,当然,对SEO也是有影响的,在修改之前,要知道以下参数,会有很大帮助的。

    /?p=%post_id%(默认的)

    /%year%/%monthnum%/%day%/%postname%/(年/月日/日志名)

    /%year%/%monthnum%/%postname%/(年/月/日志名)

    /%monthnum%/%day%/%postname%/(月/日/日志名)

    /%year%/%monthnum%/%day%/%post_id%/(年/月日/日志id号)

    /%year%/%monthnum%/%post_id%/(年/月/日志id号)

    /%monthnum%/%day%/%post_id%/(月/日/日志id号)

    /%category%/%postname%.html (分类/日志名)

    /archives/%post_id%(/archives/日志id号)

    /archives/%postname%(/archives/日志名)

    /%post_id%(/日志id号)

    /%postname%(/日志名)

    /%postname%.html(/日志名.html)

    /%postname%.htm(/日志名.htm)

    /%post_id%.html(/日志id号.html)

    /%post_id%.htm(/日志id号.htm)

    /html/y%year%/%post_id%.html

    /html/y%year%/%post_id%_%postname%.html

    WIN7上网本提高分辨率方法

    因为经常用上网本,所以遇到很多对分辨率有要求1024*768以上的软件或网页。使用起来很不方便,又因上网本在WIN7下只能最高设置为1024*600,所以一直很苦恼。

    最近遇到软件问题,就上网找了下提高分辨率的方法。

    显卡为INTEL GMA3510 网上驱动是解决不了的。只能用其它方法。下面是可用的一种方法:

    WIN7上网本提高分辨率方法

    以下操作需要手工更改注册表,引起的一切后果本人概不负责。

    1. 按Windows键+R,输入regedit,回车 ——进入注册表编辑器。

    2. 选“计算机”也即最顶端一项,按Ctrl+F,查找Display1_DownScalingSupported,配合F3(查找下一个)把所有碰到的0全部改成1。

    3. 重新启动计算机。

    4. 右键单击桌面,选“更改分辨率”,你会发现最大分辨率可以达到1152x864了。成功!

    以上来源网络,亲测可用!

    后记:请在修改之前安装好显卡驱动,否则会出现无法找到Display1_DownScalingSupported值的情况,请知悉。