帝国cms 新闻模型转成文章模型的方法-kb88凯时官网登录

时间:2019-11-16
阅读:
免费资源网 - https://freexyz.cn/

刚开始接触帝国cms的时候,用新闻模型建了一个文章阅读站,最近网站转型,想发一些长篇文章,需要将新闻模型转为文章模型,搜了一下论坛和互联网,都没有能用于7.2的相关插件或工具,只好自己动手写一个。这里把代码和步骤分享出来,希望能帮助到其它人。

1、老数据备份

非常重要。万一在转换过程中出现意外,确保老数据安全部丢失。

2、数据库转换

将以下代码保存为一个php文件,文件编码格式与你网站编码相同,代码中的参数设置部分按照实际情况来填写。

假设你为此新建了一个名为 zh.php 的文件,那么将此文件放到 e/update/  文件夹中。那么你这时在浏览器中执行以下网址:

此程序会分组转换数据。

请注意:

(1)不能重复转换,否则数据丢失。

(2)转换完之后请立即在上删除此文件。

(3)此程序适用于帝国cms7.0及后续版本。

fetch1("select fid,savetxt from {$dbtbpre}enewsf where tbname='$newstb' and f='$cf' limit 1");
		if(!$ckist['fid']){
			exit("参数设置错误");
		}
		if(!$ckist['savetxt']){
			//字段表
			$empire->query("update {$dbtbpre}enewsf set savetxt=1 where tbname='$newstb' and f='$cf' limit 1");
			//组合存文本
			togsavetxtf(1);
			//更新缓存
			getconfig(1);
		}
	}
	$b=0;
	$tbname=$fa?$newstb."_data_1":$newstb;
	$sql=$empire->query("select id,classid,".$cf." from {$dbtbpre}ecms_".$tbname." where id>$start order by id limit ".$changeline);
	while($r=$empire->fetch($sql)){
		$b=1;
		$newid=$r['id'];
		$newstext=dp_returnchangenewstext;
		$empire->query("update {$dbtbpre}ecms_".$tbname." set ".$cf."='$newstext' where id='$newid' limit 1");
	}
	if($b==0)
	{
		echo"恭喜您!转换完毕。";
		exit();
	}
	echo"一组数据转换完毕,正进入下一组 (".$newid.")......";
	exit();
}
//返回内容地址
function dp_returnchangenewstext{
	global $public_r,$newstb,$cf;
	//存放文本
	if(strstr($public_r['savetxtf'],",".$newstb.".".$cf.","))
	{
		$truetime=time();
		//建立目录
		$thetxtfile=getfilemd5().$id;
		$truevalue=mkdirtxtfile(date("y/md",$truetime),$thetxtfile);
		//写放文件
		edittxtfieldtext($truevalue,$value);
		$value=$truevalue;
	}
	else{
		exit("参数设置错误");
	}
	return $value;
}
?>
新闻模型转文章模型程序

  



新闻模型转文章模型程序

3、模板修改

如果你在之前模板中用php代码调用过被转换的字段,则此时需要用函数 gettxtfieldtext 来读取。

例如,在之前你调用newstext用代码:


newstext转换成存文本之后必调用代码是:


4、补充说明:新闻模型与文章模型的区别

  1. 新闻系统模型的内容(newstext)是存放数据库的;而文章系统模型的内容(newstext)是存放于文本文件。对于数据量比较大的,推荐使用文章系统模型。
  2. 新闻系统模型支持内容(newstext)搜索;而文章系统模型不支持内容(newstext)搜索。
免费资源网 - https://freexyz.cn/
返回顶部
顶部
网站地图