Skip to main content
 仿站網 » 仿站教程 » 帝國cms教程

帝國cms仿站之新聞模型轉換成文章模型的方法

2018年06月04日20180百度已收錄

 帝國cms仿站之新聞模型轉換成文章模型的方法:在帝國cms中新聞系統模型和文章系統模型是比較相似的系統模型,初學者很容易搞混,其實這兩種系統是有明顯區別和使用側重的,

1、內容存放的位置不同:新聞系統模型的內容(newstext)是存放數據庫的;而文章系統模型的內容(newstext)是存放于文本文件。對于數據量比較大的,推薦使用文章系統模型。
2、是否支持內容搜索:新聞系統模型支持內容(newstext)搜索;而文章系統模型不支持內容(newstext)搜索。

3.、搜索效率不同:新聞系統模型的文章信息在phome_ecms_news里面(文章內容不在里面),文章內容在phome_ecms_news_data_1中newstext中,這樣內容和標題不在一個表內,數據庫大時,搜索會快一些;文章系統模型的文章所有信息都在phome_ecms_article里面,包括標題和內容,這樣數據庫大時,搜索一個會很慢。

在實際工作中,經常碰到有朋友需要把新聞模型轉換成文章模型的需求,下面就分享下把新聞模型轉換成文章模型時的操作步驟;

1、數據備份
非常重要。萬一在轉換過程中出現意外,確保數據安全。

2、數據庫轉換
將以下代碼保存為一個php文件,文件編碼格式與你網站編碼相同,代碼中的參數設置部分按照實際情況來填寫。
<?php
error_reporting(E_ERROR | E_WARNING | E_PARSE);

@set_time_limit(1000);

//********************* 參數設置開始 *********************

$newstb="gushi"; //需要轉換的數據表
$cf='newstext';//需要轉換的字段名
$fa=1;//字段位置,0為主表,1為副表
$changeline=50; //每組轉換數


//********************* 參數設置結束 *********************

if($_GET['tochange']==1)
{
    include("../class/connect.php");
    include("../class/db_sql.php");
    include("../class/functions.php");
    $link=db_connect();
    $empire=new mysqlquery();
    dp_ChangeNewsToArticle($_GET['start']);
}

//開始轉換
function dp_ChangeNewsToArticle($start=0){
    global $empire,$newstb,$cf,$fa,$changeline,$dbtbpre;
    $start=(int)$start;
    if($start==0){
        $ckist=$empire->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_ReturnChangeNewstextUrl($r[$cf],$r['id']);
        $empire->query("update {$dbtbpre}ecms_".$tbname." set ".$cf."='$newstext' where id='$newid' limit 1");
    }
    if($b==0)
    {
        echo"恭喜您!轉換完畢。";
        exit();
    }
    echo"一組數據轉換完畢,正進入下一組 (<font color=red><b>".$newid."</b></font>)......<script>self.location.href='index.php?tochange=1&start=$newid';</script>";
    exit();
}

//返回內容地址
function dp_ReturnChangeNewstextUrl($value,$id){
    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;
}
?>
<html>
<head>
<title>新聞模型轉文章模型程序</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
a:link     { COLOR: #000000; TEXT-DECORATION: none }
a:visited   { COLOR: #000000 ; TEXT-DECORATION: none }
a:active   { COLOR: #000000 ; TEXT-DECORATION: underline }
a:hover    { COLOR: #000000 ; TEXT-DECORATION:underline }
.home_top { border-top:2px solid #4798ED; }
.home_path { background:#4798ED; padding-right:10px; color:#F0F0F0; font-size: 11px; }
td, th, caption { font-family:  "宋體"; font-size: 12px; color:#000000;  LINE-HEIGHT: 165%; }
.hrLine{MARGIN: 0px 0px; BORDER-BOTTOM: #807d76 1px dotted;}
</style>
</head>
<body>
  <p><br>
  <br>
  </p>
  <form method="get" action="index.php" onsubmit="return confirm('確認要執行?');">
  <table width="500" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#0472BC">
    <tr>
      <td height="25"><div align="center"><font color="#FFFFFF" size="3"><strong>新聞模型轉文章模型程序</strong></font></div></td>
    </tr>
    <tr bgcolor="#FFFFFF">
      <td height="50">
        <div align="center">
          <input type=submit name=ok value="點擊開始轉換">
          <input type=hidden name="tochange" value=1>
        </div></td>
    </tr>
  </table>
</form>
</body>
</html>
假設你為此新建了一個名為 zh.php 的文件,那么將此文件放到 e/update/  文件夾中。那么你這時在瀏覽器中執行以下網址:
http://www.vdent103.com/e/update/zh.php?tochange=1
此程序會分組轉換數據。
請注意:
(1)不能重復轉換,否則數據丟失。
(2)轉換完之后請立即在服務器上刪除此文件。
(3)此程序適用于帝國cms7.0及后續版本。

3、模板修改
如果你在之前模板中用php代碼調用過被轉換的字段,則此時需要用函數 GetTxtFieldText 來讀取。
例如,在之前你調用newstext用代碼:
<?=$navinfor['newstext']?>
newstext轉換成存文本之后必調用代碼是:
<?=GetTxtFieldText($navinfor['newstext'])?>

4、補充說明:新聞模型與文章模型的區別
新聞系統模型的內容(newstext)是存放數據庫的;而文章系統模型的內容(newstext)是存放于文本文件。對于數據量比較大的,推薦使用文章系統模型。
新聞系統模型支持內容(newstext)搜索;而文章系統模型不支持內容(newstext)搜索。

評論列表暫無評論
發表評論取消回復
微信
2019最新国产不卡a,香蕉影视在线观看免费,久久香蕉热,俺去也 <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>