织梦内容页模板修改

织梦cms的栏目有内容,生成完静态内容变没了,用SQL快速解决

大家好,我是擅长快速建站的兼职小哥,给客户建网站的时候,有一些栏目内容是原样采集过来的,也就是说参照的网站本身就有bug,网站栏目的专题页面保存在content字段中,有的栏目这个字段填写了,有的栏目这个字段没有填写内容,如果后面建了一个typedir和之前栏目和typedir相同,并且后面栏目和content为空,那么整个专题就会变成空白页面。

那个我们这个问题的第一个解决方案,就是将网址相同的第二个typedir相同栏目的栏目属性选择为外部链接。这样就做了一个专题页面的镜像,比如一个专题属于即整形分类,又属于活动专题的分类时,会经常用到这种镜像操作,这个时候我们填写内容的时候,就到第一个栏目里填写就对了。

第二种方法是用SQL语句删除网址相同的栏目,如果客户网站是没有安装phpmyadmin,可以上传一个单文件sql管理工具Adminer,这是一个类似phpmyadmin和数据库操作工具,可以执行sql语句,在我们执行sql语句之前,要使用织梦后台的备份功能把数据库整体做一下备份。

我们先说一下删除重复数据的原理,这个删除重复数据的需求经常出现在面试题中,您可以记录收藏一下。

select id from dede_arctype where id in (select min(id) as id from dede_arctype where content<>'' and ispart<>2 group by typedir having count(id) > 1)

这条SQL语句会筛选出重复的数据记录,以id最小的为准,那么后面的数据将不显示。

select id from dede_arctype where id in (select max(id) as id from dede_arctype where content<>'' and ispart<>2 group by typedir having count(id) > 1)

这条SQL语句名筛选出重复的数据记录,以id最大的为准,后面的数据不显示,我们在这里选择执行这条语句。

我们能否像其它数据库一样,外面再嵌套一层语句,将重复数据直接删除呢?试一下

delete FROM `dede_arctype` WHERE `id` in (select id from dede_arctype where id in (select max(id) as id from dede_arctype where content<>'' and ispart<>2 group by typedir having count(id) > 1))

mysql数据库报错了。我们还是只把mysql当成一个绿色小巧的数据库工具吧,我们在mysql-front中将重复的id复制出来,再在文本编辑器里将回车替换成逗号

最后拼接成这样的语句,在客户服务器上的Adminer接口上执行这条删除指令,即可。

delete from dede_arctype where id in(37,197,198,201,203,205,208,209,210,211,218,225,227,230,232,235,241,242,243,254,255,256,259,260,265,267,268,270,271,272,274,275,276,277,278,279,280,282,283,284,285,286,287,288,289,291,292,293,294,295,296,298,299,302,304,305,306,310,311,312,313,314,315,316,317,319,320,321,322,325,326,329,335,342,343,344,345,346,347,348,349,350,351,352,353,354,360,361,363,367,368,370,374,377,381,383,385,386,387,410,413,415,417,418,420,421,422,423,424,425,426,428,429,430,431,468,532)

注意用完Adminer或者phpmyadmin之后,一定要删除这两个软件,以免留下安全隐患。

欢迎关注我的头条号,兼职小哥,关注后您可以点击底部的快速建站菜单,与我联系!

织梦DEDECMS生成静态手机页面

工具/原料

dedecms 芒果源码

实现wap手机静态生成

一、添加后台导航栏目链接

1 打开dede/inc/inc_menu.php,在146行下面添加代码:

<m:item name='更新WAP主页' link='makehtml_homepagewap.php' rank='sys_MakeHtml' target='main' /> <m:item name='更新WAP栏目' link='makehtml_listwap.php' rank='sys_MakeHtml' target='main' /> <m:item name='更新WAP文档' link='makehtml_archiveswap.php' rank='sys_MakeHtml' target='main' />

二、更新WAP主页

1.复制文件dede/makehtml_homepage.php,重命名为makehtml_homepagewap.php2.打开makehtml_homepagewap.php,找到最后一行

include DedeInclude(‘templets/makehtml_homepage.htm’);

修改为

include DedeInclude(‘templets/makehtml_homepagewap.htm’);

3.复制文件dede/templets/makehtml_homepage.htm,重命名为makehtml_homepagewap.htm

4打开dede/templets/makehtml_homepagewap.htm 修改21行

<form action=”makehtml_homepage.php” method=”post” name=”form1″ target=”stafrm”>

修改为

<form action=”makehtml_homepagewap.php” method=”post” name=”form1″ target=”stafrm”>

3

4.修改36行,指定生成WAP主页模板

<input name=”templet” type=”text” id=”templet” style=”width:300″ value=”default/wap.htm”>

4

5.修改48行,指定生成WAP主页路径

<td height=”20″ valign=”top” bgcolor=”#FFFFFF”><input name=”position” type=”text” id=”position” value=”../m/index.html” size=”30″>

6.修改69~70行,“checked”移到“不保存当前选项”,系统默认是提交保存主页模板和路径数据的

<input name=”saveset” type=”radio” value=”0″ class=”np” checked>

不保存当前选项

<input name=”saveset” type=”radio” class=”np” value=”1″ >

保存当前选项

END

三、更新WAP栏目

1.复制文件dede/makehtml_list.php,重命名为makehtml_listwap.php

2.打开makehtml_listwap.php,找到最后一行

include DedeInclude(‘templets/makehtml_list.htm’);

修改为

include DedeInclude(‘templets/makehtml_listwap.htm’);

3.复制文件dede/templets/makehtml_list.htm 重命名为makehtml_listwap.htm ,修改第10行

<form name=”form1″ action=”makehtml_list_action.php” method=”get” target=’stafrm’>

修改为

<form name=”form1″ action=”makehtml_listwap_action.php” method=”get” target=’stafrm’>

4.复制dede/makehtml_list_action.php 重命名makehtml_listwap_action.php

require_once(DEDEINC.”/arc.listview.class.php”);

修改为

require_once(DEDEINC.”/arc.listwapview.class.php”);

5.复制include/arc.listview.class.php 重命名为arc.listwapview.class.php

if(!file_exists($tempfile))

{

$tempfile = $GLOBALS[‘cfg_basedir’].$GLOBALS[‘cfg_templets_dir’].”/”.$GLOBALS[‘cfg_df_style’].”/list_default.htm”;

}

if(!file_exists($tempfile)||!is_file($tempfile))

{

echo “模板文件不存在,无法解析文档!”;

exit();

}

替换为

$tempfile = $GLOBALS[‘cfg_basedir’].$GLOBALS[‘cfg_templets_dir’].”/”.$GLOBALS[‘cfg_df_style’].”/list_wap.htm”;

修改栏目储存目录,在658-659行后面添加代码,生成的栏目文件保存在文件夹“m”下面

$typedir = MfTypedir(‘/m/’.$typedir);

修改

function GetMakeFileRule($typeid,$wname,$typedir,$defaultname,$namerule2)

{

$typedir = MfTypedir(‘/m/’.$typedir);

if($wname==’index’)

代码345-371行是把list第一页复制为首页index.html的,修改354行修改复制保存路径,在$this->Fields[‘typedir’])前面添加’/m/’. 如下面10行所示

if($startpage==1)

{

//如果列表启用封面文件,复制这个文件第一页

if($this->TypeLink->TypeInfos[‘isdefault’]==1

&& $this->TypeLink->TypeInfos[‘ispart’]==0)

{

$onlyrule = $this->GetMakeFileRule($this->Fields[‘id’],”list”,$this->Fields[‘typedir’],”,$this->Fields[‘namerule2’]);

$onlyrule = str_replace(“{page}”,”1″,$onlyrule);

$list_1 = $this->GetTruePath().$onlyrule;

$murl = MfTypedir(‘/m/’.$this->Fields[‘typedir’]).’/’.$this->Fields[‘defaultname’];

//如果启用远程发布则需要进行判断

if($cfg_remote_site==’Y’&& $isremote == 1)

{

//分析远程文件路径

$remotefile = $murl;

$localfile = ‘..’.$remotefile;

$remotedir = preg_replace(‘/[^\/]*\.html/’, ”,$remotefile);

//不相等则说明已经切换目录则可以创建镜像

$this->ftp->rmkdir($remotedir);

$this->ftp->upload($localfile, $remotefile, ‘acii’);

}

$indexname = $this->GetTruePath().$murl;

copy($list_1,$indexname);

}

}

return $murl;

}

四、更新WAP文档

1.复制dede/makehtml_archives.php 重命名为makehtml_archiveswap.php 修改最后一行

include DedeInclude(‘templets/makehtml_archives.htm’);

修改为

include DedeInclude(‘templets/makehtml_archiveswap.htm’);

2.复制dede/templets/makehtml_archives.htm 重命名为makehtml_archiveswap.htm 修改13行form提交地址

<form name=”form1″ action=”makehtml_archives_action.php” method=”get” target=’stafrm’>

修改为

<form name=”form1″ action=”makehtml_archiveswap_action.php” method=”get” target=’stafrm’>

3.复制dede/makehtml_archives_action.php 重命名为makehtml_archiveswap_action.php 修改13行

require_once(DEDEINC.”/arc.archives.class.php”);

修改为

require_once(DEDEINC.”/arc.archiveswap.class.php”);

4.复制include/arc.archives.class.php 重命名为arc.archiveswap.class.php

修改文章页储存位置,476行,站点真实路径后面添加”/m/” 如下第9行所示:

/**

* 获得站点的真实根路径

*

* @access public

* @return string

*/

function GetTruePath()

{

$TRUEpath = $GLOBALS[“cfg_basedir”].’/m/’;

return $TRUEpath;

}

修改获得模板文件位置,屏蔽528-536行代码,后面添加调用模版路径

/* if(!empty($this->Fields[‘templet’]))

{

$filetag = MfTemplet($this->Fields[‘templet’]);

if( !preg_match(“#\/#”, $filetag) ) $filetag = $GLOBALS[‘cfg_df_style’].’/’.$filetag;

}

else

{

$filetag = MfTemplet($this->TypeLink->TypeInfos[“temparticle”]);

}*/

$filetag = $GLOBALS[‘cfg_df_style’].’/’.’article_wap.htm’;

是将上面的代码注释掉

注意事项

DEDE手机目录是M