說簡單也簡單!
說難也難!
帝國cms的文章承載量大的驚人!
於是便有人需要批量導入文章到帝國cms!
於是乎,這個插件便誕生了!
配置的php:
<?php
//存放txt的文件夾
$AddNews['target'] = '物理知識16-3萬';
//分類ID
$AddNews['class'] = '4';
//用戶名
$AddNews['user'] = 'admin';
//發佈起始時間
$AddNews['addTime'] = "2024-4-10 17:56:36";
//每篇文章,相互間隔多少,單位秒,可設置隨機
$AddNews['addTimeSecond'] = 60;
// 每次發佈多少篇文章
$AddNews['pagnum'] = '1000';
// 隨機瀏覽量
$AddNews['readMin'] = '100'; //最小值
$AddNews['readMax'] = '800'; //最大值
// 生成簡介的字數
$AddNews['num'] = '100';訪問生成的php:
🔒 隱藏內容:付費閱讀
<?php
require('./config.php');
/****以下代碼非專業人員不建議修改***************/
define('EmpireCMSAdmin','1');
require("../class/connect.php");
require("../class/db_sql.php");
require("../class/functions.php");
require LoadLang("pub/fun.php");
require("../class/delpath.php");
require("../class/copypath.php");
require("../class/t_functions.php");
require("../data/dbcache/class.php");
require("../data/dbcache/MemberLevel.php");
if($_GET['endTime']){
$AddNews['addTime'] = $_GET['endTime'];
}
$POST = array(
"enews" => "AddNews", // 操作類型
"classid" => $AddNews['class'], // 類別ID
"bclassid" => "0", // 父類別ID
"id" => "0", // 文章ID
"filepass" => "[Timestamp:時間]", // 文件密碼
"username" => $AddNews['user'], // 用戶名
"oldfilename" => "", // 舊文件名
"oldgroupid" => "", // 舊用戶組ID
"oldchecked" => "1", // 舊審覈狀態
"newstext_url" => "", // 新聞鏈接
"ecmsfrom" => "", // 來源
"ecmsnfrom" => "1", // 是否顯示來源
"fstb" => "", // 標題加粗
"oldttid" => "", // 舊標題分類ID
"ecmscheck" => "0", // 是否審覈
"ztids" => "", // 所屬專題ID
"zcids" => "", // 所屬專欄ID
"oldztids" => "", // 舊所屬專題ID
"oldzcids" => "", // 舊所屬專欄ID
"havetmpic" => "0", // 是否有臨時圖片
"title" => "", // 標題
"titlecolor" => "", // 標題顏色
"ftitle" => "", // 副標題
"checked" => "1", // 審覈狀態
"isgood" => "0", // 是否推薦
"firsttitle" => "0", // 是否頭條
"keyboard" => "", // 關鍵詞
"titleurl" => "", // 標題鏈接
"newstime" => "2023-11-22 17:56:36", // 發佈時間
"titlepic" => "", // 縮略圖
"smalltext" => "", // 簡介
"writer" => "", // 作者
"w_id" => "", // 作者ID
"befrom" => "", // 資訊來源
"befrom_id" => "選擇信息來源", // 資訊來源ID
"newstext" => "", // 正文內容
"dokey" => "1", // 是否生成關鍵詞
"qz_url" => "", // 網址前綴
"autosize" => "5000", // 自動提取摘要字數
"getfirsttitlepic" => "", // 是否獲取第一個標題圖片
"getfirsttitlespicw" => "105", // 獲取第一個標題圖片寬度
"getfirsttitlespich" => "118", // 獲取第一個標題圖片高度
"istop" => "0", // 是否置頂
"newstempid" => "1", // 內容模板ID
"groupid" => "0", // 用戶組ID
"userfen" => "0", // 用戶積分
"onclick" => "62", // 點擊數
"totaldown" => "0", // 下載數
"newspath" => "", // 存放目錄
"filename" => "", // 文件名
"infotags" => "", // 信息標籤
"oldinfotags" => "", // 舊信息標籤
"info_diyotherlink" => "0", // 是否自定義相關鏈接
"info_keyid" => "", // 相關信息關聯ID
"info_infouptime" => "2023-11-22 17:56:36", // 信息發佈時間
"info_infodowntime" => "", // 信息下架時間
"vote_title" => "", // 投票標題
"vote_name" => ["", "", "", "", "", "", "", ""], // 投票選項名稱
"vote_num" => ["0", "0", "0", "0", "0", "0", "0", "0"], // 投票選項初始票數
"v_vote_num" => "1", // 投票選項總數
"v_editnum" => "8", // 可編輯的投票選項數
"vote_class" => "0", // 投票類型
"dovote_ip" => "0", // 投票限制方式
"vote_olddotime" => "0000-00-00", // 投票開始時間
"vote_dotime" => "0000-00-00", // 投票結束時間
"vote_width" => "500", // 投票寬度
"vote_height" => "300", // 投票高度
"vote_tempid" => "1", // 投票模板ID
"addnews" => "提交" // 提交操作標識
);
//獲取分類列表
foreach($class_r as $kv)
{
if($kv['modid']=='1')
{
$cates[]=array('cname'=>$kv['classname'],'cid'=>$kv['classid'],'pid'=>$kv['bclassid']);
}
}
$link=db_connect();
$empire=new mysqlquery();
//驗證用戶
$loginin=$AddNews['user'];
$lur=$empire->fetch1("select * from {$dbtbpre}enewsuser where `username` = '{$loginin}'");
if(!$lur) exit('不存在的用戶名'.$loginin);
$loginin = $lur['username'];
$logininid=$lur['userid'];
$loginrnd=$lur['rnd'];
$loginlevel=$lur['groupid'];
$loginadminstyleid=$lur['adminstyleid'];
$incftp=0;
if($public_r['phpmode'])
{
include("../class/ftp.php");
$incftp=1;
}
require("../class/hinfofun.php");
$navtheid=(int)$_POST['filepass'];
if ($dh = opendir('./'.$AddNews['target'].'/')) {
$fileCount = 0; // 計算已讀取的文件數量
while (($file = readdir($dh)) !== false) {
if ($file != '.' && $file != '..' && pathinfo($file, PATHINFO_EXTENSION) == 'txt') {
$filePath = './'.$AddNews['target'].'/'.$file;
$content = file_get_contents($filePath);
$title = basename($filePath,'.txt');
//處理post數據
$_POST = '';
$_POST = $POST;
// 文章標題
$_POST['title'] = $title;
$_POST['newstext'] = $content;
$_POST['onclick'] = mt_rand($AddNews['readMin'],$AddNews['readMax']);
$_POST['smalltext'] = SubSmalltextVal($content,$AddNews['num']*2);
$AddNews['addTime'] = add_seconds_to_time($AddNews['addTime'],$AddNews['addTimeSecond'],'Y-m-d H:i:s');
$_POST['newstime'] = $AddNews['addTime'];
$_POST['info_infouptime'] = $AddNews['addTime'];
$navtheid=(int)$_POST['filepass'];
// print_r($_POST);
// 將文件內容插入數據庫表
AddNewsTwo($_POST,$logininid,$loginin,$filePath,$fileCount);
$fileCount++;
if($fileCount == ($AddNews['pagnum'])){
$url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']."?endTime=".$_POST['newstime'];
echo '<meta http-equiv="refresh" content="0; url='.$url.'">';
}
// 如果已讀取的文件數量達到設定的限制,停止讀取
if ($fileCount >= $AddNews['pagnum']) {
break;
}
}
}
closedir($dh);
}
/**
* 將指定時間與時間戳相加減後,輸出指定格式時間
*
* @param string $time 日期時間字符串,格式爲 'Y-m-d H:i:s'
* @param int $seconds 要添加或減去的秒數,正數爲加,負數爲減
* @param string $format 輸出的日期時間格式,默認爲 'Y-m-d H:i:s'
* @return string 格式化後的日期時間字符串
*/
function add_seconds_to_time($time, $seconds, $format = 'Y-m-d H:i:s') {
// 將日期時間字符串轉換爲時間戳
$timestamp = strtotime($time);
// 計算加減後的時間戳
$new_timestamp = $timestamp + $seconds;
// 將時間戳格式化爲指定格式的日期時間字符串
$new_time = date($format, $new_timestamp);
// 返回格式化後的日期時間字符串
return $new_time;
}
//增加信息
function AddNewsTwo($add,$userid,$username,$filePath,$fileCount){
global $empire,$class_r,$class_zr,$bclassid,$public_r,$dbtbpre,$emod_r,$lur;
$add[classid]=(int)$add[classid];
$userid=(int)$userid;
if(!$add[title]||!$add[classid])
{
printerrorTwo("EmptyTitle","history.go(-1)");
}
//操作權限
$doselfinfo=CheckLevel($userid,$username,$add[classid],"news");
if(!$doselfinfo['doaddinfo'])//增加權限
{
printerrorTwo("NotAddInfoLevel","history.go(-1)");
}
$ccr=$empire->fetch1("select classid,modid,listdt,haddlist,sametitle,addreinfo,wburl,repreinfo from {$dbtbpre}enewsclass where classid='$add[classid]' and islast=1 limit 1");
if(!$ccr['classid']||$ccr['wburl'])
{
printerrorTwo("ErrorUrl","history.go(-1)");
}
// if($ccr['sametitle'])//標題
// {
// if(ReturnCheckRetitle($add))
// {
// printerrorTwo("ReInfoTitle","history.go(-1)");
// }
// }
//修改文件名權限
if(!$doselfinfo['doinfofile'])
{
$add['newspath']=date($class_r[$add['classid']]['newspath']);
$add['filename']='';
}
$add=DoPostInfoVar($add);//返回變量
$ret_r=ReturnAddF($add,$class_r[$add[classid]][modid],$userid,$username,0,0,1);//返回自定義字段
$newspath=FormatPath($add[classid],$add[newspath],1);//查看目錄是否存在,不存在則建立
//審覈權限
if(!$doselfinfo['docheckinfo'])
{
$add['checked']=$class_r[$add[classid]][checked];
}
//必須審覈
if($doselfinfo['domustcheck'])
{
$add['checked']=0;
}
//推薦權限
if(!$doselfinfo['dogoodinfo'])
{
$add['isgood']=0;
$add['firsttitle']=0;
$add['istop']=0;
}
else
{
if(!eFirstTitleCheckLevel($add['isgood'],0))//推薦
{
$add['isgood']=0;
}
if(!eFirstTitleCheckLevel($add['firsttitle'],1))//頭條
{
$add['firsttitle']=0;
}
}
//簽發
$isqf=0;
if($class_r[$add[classid]][wfid])
{
$userisqf=EcmsReturnDoIsqf($userid,$username,$lur['groupid'],0);
if(!$userisqf)
{
$add[checked]=0;
$isqf=1;
}
}
$newstime=empty($add['newstime'])?time():to_time($add['newstime']);
$truetime=time();
$lastdotime=$truetime;
//是否生成
$havehtml=0;
if($add['checked']==1&&$ccr['addreinfo'])
{
$havehtml=1;
}
//返回關鍵字組合
if($add['info_diyotherlink'])
{
$keyid=DoPostDiyOtherlinkID($add['info_keyid']);
}
else
{
$keyid=GetKeyid($add[keyboard],$add[classid],0,$class_r[$add[classid]][link_num]);
}
//附加鏈接參數
$addecmscheck=empty($add['checked'])?'&ecmscheck=1':'';
//索引表
$sql=$empire->query("insert into {$dbtbpre}ecms_".$class_r[$add[classid]][tbname]."_index(classid,checked,newstime,truetime,lastdotime,havehtml) values('$add[classid]','$add[checked]','$newstime','$truetime','$lastdotime','$havehtml');");
$id=$empire->lastid();
$pubid=ReturnInfoPubid($add['classid'],$id);
$infotbr=ReturnInfoTbname($class_r[$add[classid]][tbname],$add['checked'],$ret_r['tb']);
//主表
$infosql=$empire->query("insert into ".$infotbr['tbname']."(id,classid,ttid,onclick,plnum,totaldown,newspath,filename,userid,username,firsttitle,isgood,ispic,istop,isqf,ismember,isurl,truetime,lastdotime,havehtml,groupid,userfen,titlefont,titleurl,stb,fstb,restb,keyboard".$ret_r['fields'].") values('$id','$add[classid]','$add[ttid]','$add[onclick]',0,'$add[totaldown]','$newspath','$filename','$userid','".addslashes($username)."','$add[firsttitle]','$add[isgood]','$add[ispic]','$add[istop]','$isqf',0,'$add[isurl]','$truetime','$lastdotime','$havehtml','$add[groupid]','$add[userfen]','".addslashes($add[my_titlefont])."','".addslashes($add[titleurl])."','$ret_r[tb]','$public_r[filedeftb]','$public_r[pldeftb]','".addslashes($add[keyboard])."'".$ret_r['values'].");");
//副表
$finfosql=$empire->query("insert into ".$infotbr['datatbname']."(id,classid,keyid,dokey,newstempid,closepl,haveaddfen,infotags".$ret_r['datafields'].") values('$id','$add[classid]','$keyid','$add[dokey]','$add[newstempid]','$add[closepl]',0,'".addslashes($add[infotags])."'".$ret_r['datavalues'].");");
//更新欄目信息數
AddClassInfos($add['classid'],'+1','+1',$add['checked']);
//更新新信息數
DoUpdateAddDataNum('info',$class_r[$add['classid']]['tid'],1);
//簽發
if($isqf==1)
{
InfoInsertToWorkflow($id,$add[classid],$class_r[$add[classid]][wfid],$userid,$username);
}
//更新附件表
UpdateTheFile($id,$add['filepass'],$add['classid'],$public_r['filedeftb']);
//取第一張圖作爲標題圖片
if($add['getfirsttitlepic']&&empty($add['titlepic']))
{
$firsttitlepic=GetFpicToTpic($add['classid'],$id,$add['getfirsttitlepic'],$add['getfirsttitlespic'],$add['getfirsttitlespicw'],$add['getfirsttitlespich'],$public_r['filedeftb']);
if($firsttitlepic)
{
$addtitlepic=",titlepic='".addslashes($firsttitlepic)."',ispic=1";
}
}
//文件命名
if($add['filename'])
{
$filename=$add['filename'];
}
else
{
$filename=ReturnInfoFilename($add[classid],$id,'');
}
//信息地址
$updateinfourl='';
if(!$add['isurl'])
{
$infourl=GotoGetTitleUrl($add['classid'],$id,$newspath,$filename,$add['groupid'],$add['isurl'],$add['titleurl']);
$updateinfourl=",titleurl='$infourl'";
}
$usql=$empire->query("update ".$infotbr['tbname']." set filename='$filename'".$updateinfourl.$addtitlepic." where id='$id'");
//替換圖片下一頁
if($add['repimgnexturl'])
{
UpdateImgNexturl($add[classid],$id,$add['checked']);
}
//投票
AddInfoVote($add['classid'],$id,$add);
//加入專題
InsertZtInfo($add['ztids'],$add['zcids'],$add['oldztids'],$add['oldzcids'],$add['classid'],$id,$newstime);
//TAGS
if($add[infotags]&&$add[infotags]<>$add[oldinfotags])
{
eInsertTags($add[infotags],$add['classid'],$id,$newstime);
}
//處理函數
DoMFun($class_r[$add['classid']]['modid'],$add['classid'],$id,1,0);
//增加信息是否生成文件
if($ccr['addreinfo']&&$add['checked'])
{
GetHtml($add['classid'],$id,'',0);
}
//生成上一篇
$epreid=0;
if($ccr['repreinfo']&&$add['checked'])
{
$prer=$empire->fetch1("select * from {$dbtbpre}ecms_".$class_r[$add[classid]][tbname]." where id<$id and classid='$add[classid]' order by id desc limit 1");
$epreid=$prer['id'];
GetHtml($add['classid'],$prer['id'],$prer,1);
}
//生成欄目
if($ccr['haddlist']&&$add['checked'])
{
hAddListHtml($add['classid'],$ccr['modid'],$ccr['haddlist'],$ccr['listdt']);//生成信息列表
if($add['ttid'])//生成標題分類列表
{
ListHtml($add['ttid'],'',5);
}
}
//同時發佈
$copyclassid=$add[copyclassid];
$cpcount=count($copyclassid);
if($cpcount)
{
$copyids=AddInfoToCopyInfo($add[classid],$id,$copyclassid,$userid,$username,$doselfinfo);
if($copyids)
{
UpdateInfoCopyids($add['classid'],$id,$copyids);
}
}
//更新動態緩存
if($public_r['ctimeopen']&&$add['checked'])
{
eUpCacheInfo(1,$add['classid'],0,$epreid,$add['ttid'],'',$add['infotags'],0,0);
}
if($sql)
{
//返回地址
if($add['ecmsfrom']&&(stristr($add['ecmsfrom'],'ListNews.php')||stristr($add['ecmsfrom'],'ListAllInfo.php')))
{
$ecmsfrom=$add['ecmsfrom'];
}
else
{
$ecmsfrom=$add['ecmsnfrom']==1?"ListNews.php?bclassid=$add[bclassid]&classid=$add[classid]":"ListAllInfo.php?tbname=".$class_r[$add[classid]][tbname];
$ecmsfrom.=hReturnEcmsHashStrHref2(0);
}
$GLOBALS['ecmsadderrorurl']=$ecmsfrom.$addecmscheck;
insert_dolog("classid=$add[classid]<br>id=".$id."<br>title=".$add[title],$pubid);//操作日誌
echo("{$fileCount}、成功導入文章:{$add[title]}<br>");
if(unlink($filePath)){
echo '已刪除文件:' . str_replace('./','',$filePath) . '<br>';
}
}
else
{
echo '請檢查數據庫連接';
}
}
function printerrorTwo($msg = '',$targe = ''){
echo $msg,$targe;
}
db_close();
$empire=null;