|
|
@@ -15,19 +15,20 @@ define('DEBUG_LEVEL', FALSE); //如果设置为TRUE则会打印执行SQL的时 |
|
|
|
$workDir = dirname(__FILE__) . "/src"; |
|
|
|
chdir($workDir); |
|
|
|
if (substr(php_sapi_name(), 0, 3) === 'cgi') { |
|
|
|
die("DedeBIZ:needs php-cli to run\n\n"); |
|
|
|
die("DedeBIZ:需要使用php-cli运行\n\n"); |
|
|
|
} |
|
|
|
$helpStr = " |
|
|
|
NAME: |
|
|
|
DedeBIZ Cli Tools |
|
|
|
DedeBIZ命令行工具 |
|
|
|
USAGE: |
|
|
|
php ./dedebiz command [arguments...] |
|
|
|
COMMANDS: |
|
|
|
serv,s Run cli web server for DedeBIZ |
|
|
|
make,m Make DedeBIZ HTML |
|
|
|
update,u Update to latest system |
|
|
|
help,h Shows a list of commands or help |
|
|
|
quick,q Quick start a development environment |
|
|
|
serv,s 运行DedeBIZ开发服务 |
|
|
|
make,m 生成HTML |
|
|
|
update,u 更新到最新系统 |
|
|
|
help,h Shows 帮助 |
|
|
|
quick,q 快速开始一个开发环境 |
|
|
|
tdata 生成测试数据 |
|
|
|
WEBSITE: |
|
|
|
https://www.dedebiz.com/help/ |
|
|
|
"; |
|
|
@@ -71,14 +72,14 @@ function RandEncode($length=26) |
|
|
|
if (count($argv) > 1 && ($argv[1] == "serv" || $argv[1] == "s")) { |
|
|
|
//PHP5.4以下不支持内建服务器,用于开发调试 |
|
|
|
if (phpversion() < "5.4") { |
|
|
|
die("DedeBIZ:command web server not support\n\n"); |
|
|
|
die("DedeBIZ:命令行Web Server不支持\n\n"); |
|
|
|
} |
|
|
|
echo "Start Dev Server For DedeBIZ\n\r"; |
|
|
|
echo "Open http://localhost:8088\n\r"; |
|
|
|
echo "启动DedeBIZ开发环境\n\r"; |
|
|
|
echo "浏览器打开 http://localhost:8088\n\r"; |
|
|
|
passthru(PHP_BINARY . ' -S localhost:8088 -t' . escapeshellarg('./')); |
|
|
|
} else if (count($argv) > 1 && ($argv[1] == "make" || $argv[1] == "m")) { |
|
|
|
if (!file_exists($workDir . "/system/common.inc.php")) { |
|
|
|
DedeCli::error("Check your root path is right"); |
|
|
|
DedeCli::error("检查目录是否正确"); |
|
|
|
exit; |
|
|
|
} |
|
|
|
require_once($workDir . "/system/common.inc.php"); |
|
|
@@ -108,7 +109,7 @@ if (count($argv) > 1 && ($argv[1] == "serv" || $argv[1] == "s")) { |
|
|
|
DedeCli::showProgress(ceil(($i / $total) * 100), 100, $i, $total); |
|
|
|
$i++; |
|
|
|
} |
|
|
|
DedeCli::write("Make archive html successfull"); |
|
|
|
DedeCli::write("成功生成内容html"); |
|
|
|
$queryTime = ExecTime() - $t1; |
|
|
|
DedeCli::write($queryTime); |
|
|
|
exit; |
|
|
@@ -128,7 +129,7 @@ if (count($argv) > 1 && ($argv[1] == "serv" || $argv[1] == "s")) { |
|
|
|
$lv = new SgListView($row->id); |
|
|
|
} |
|
|
|
$lv->CountRecord(); |
|
|
|
DedeCli::write("Start make list html[id:{$row->id}]"); |
|
|
|
DedeCli::write("开始生成列表html[id:{$row->id}]"); |
|
|
|
$lv->MakeHtml('', '', 0); |
|
|
|
} |
|
|
|
exit; |
|
|
@@ -139,7 +140,7 @@ if (count($argv) > 1 && ($argv[1] == "serv" || $argv[1] == "s")) { |
|
|
|
$position = "../index.html"; |
|
|
|
} |
|
|
|
if (!preg_match("#\.html$#", $position)) { |
|
|
|
DedeCli::error("position must end with .html"); |
|
|
|
DedeCli::error("位置必须以.html结尾"); |
|
|
|
exit; |
|
|
|
} |
|
|
|
$homeFile = DEDEINC . "/" . $position; |
|
|
@@ -152,7 +153,7 @@ if (count($argv) > 1 && ($argv[1] == "serv" || $argv[1] == "s")) { |
|
|
|
$GLOBALS['_arclistEnv'] = 'index'; |
|
|
|
$pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/" . $templet); |
|
|
|
$pv->SaveToHtml($homeFile); |
|
|
|
DedeCli::write("Make index html successfull"); |
|
|
|
DedeCli::write("成功生成首页html"); |
|
|
|
} else if (count($argv) > 2 && ($argv[2] == "auto" || $argv[2] == "o")) { |
|
|
|
//自动生成 |
|
|
|
function OptimizeData($dsql) |
|
|
@@ -172,7 +173,7 @@ if (count($argv) > 1 && ($argv[1] == "serv" || $argv[1] == "s")) { |
|
|
|
$start = empty(DedeCli::getOption("start"))? "-1 day" : DedeCli::getOption("start"); |
|
|
|
$start = strtotime($start); |
|
|
|
if (!$start) { |
|
|
|
DedeCli::error("start is empty"); |
|
|
|
DedeCli::error("start参数为空"); |
|
|
|
exit; |
|
|
|
} |
|
|
|
//1.生成首页 |
|
|
@@ -189,7 +190,7 @@ if (count($argv) > 1 && ($argv[1] == "serv" || $argv[1] == "s")) { |
|
|
|
} else { |
|
|
|
if (file_exists($homeFile)) @unlink($homeFile); |
|
|
|
} |
|
|
|
DedeCli::write("Make index html successfull"); |
|
|
|
DedeCli::write("成功生成首页html"); |
|
|
|
//2.生成栏目 |
|
|
|
$query = "SELECT DISTINCT typeid From `#@__arctiny` WHERE senddate >=" . $start . " AND arcrank>-1"; |
|
|
|
$dsql->SetQuery($query); |
|
|
@@ -219,10 +220,10 @@ if (count($argv) > 1 && ($argv[1] == "serv" || $argv[1] == "s")) { |
|
|
|
$lv = new SgListView($tt); |
|
|
|
} |
|
|
|
$lv->CountRecord(); |
|
|
|
DedeCli::write("Start make list html[id:{$tt}]"); |
|
|
|
DedeCli::write("开始生成列表html[id:{$tt}]"); |
|
|
|
$lv->MakeHtml('', '', 0); |
|
|
|
} |
|
|
|
DedeCli::write("Make list html successfull"); |
|
|
|
DedeCli::write("成功生成列表html"); |
|
|
|
} |
|
|
|
//生成文档 |
|
|
|
$tt = $dsql->GetOne("SELECT COUNT(id) as dd FROM `#@__arctiny` WHERE senddate >=" . $start . " AND arcrank>-1"); |
|
|
@@ -236,24 +237,25 @@ if (count($argv) > 1 && ($argv[1] == "serv" || $argv[1] == "s")) { |
|
|
|
DedeCli::showProgress(ceil(($i / $total) * 100), 100); |
|
|
|
$i++; |
|
|
|
} |
|
|
|
DedeCli::write("Make archives html successfull"); |
|
|
|
DedeCli::write("成功生成html"); |
|
|
|
//优化数据 |
|
|
|
OptimizeData($dsql); |
|
|
|
DedeCli::write("Optimize data successfull"); |
|
|
|
DedeCli::write("成功优化数据"); |
|
|
|
} else { |
|
|
|
$helpStr = " |
|
|
|
USAGE: |
|
|
|
php ./dedebiz make action [arguments...] |
|
|
|
ACTIONS: |
|
|
|
index,i Make Index html |
|
|
|
--position index html position,default: ../index.html(relative include dir) |
|
|
|
arc,a Make Archive htmls |
|
|
|
--typeid type id |
|
|
|
--aid archive id |
|
|
|
list,l Make List htmls |
|
|
|
--typeid type id |
|
|
|
auto,o Auto Make htmls |
|
|
|
--start start time(format:2012-03-12) |
|
|
|
index,i 生成首页html |
|
|
|
--position 首页html位置,默认: ../index.html(相对system目录) |
|
|
|
arc,a 生成文档html |
|
|
|
--typeid 栏目id |
|
|
|
--aid 文档id |
|
|
|
list,l 生成列表html |
|
|
|
--typeid 栏目id |
|
|
|
auto,o 自动生成 |
|
|
|
--start 开始时间(format:2012-03-12) |
|
|
|
tdata 生成测试数据 |
|
|
|
WEBSITE: |
|
|
|
https://www.dedebiz.com/help/"; |
|
|
|
DedeCli::write($helpStr); |
|
|
@@ -272,7 +274,7 @@ if (count($argv) > 1 && ($argv[1] == "serv" || $argv[1] == "s")) { |
|
|
|
preg_match("#_version_detail = '([\d\.]+)'#", $commStr, $matchs); |
|
|
|
$cfg_version_detail = $localVerStr = $matchs[1]; |
|
|
|
if (version_compare($localVerStr, $remoteVerStr, '>=')) { |
|
|
|
DedeCli::error("latest version,don't need to update"); |
|
|
|
DedeCli::error("已经是最新版本,无需继续升级"); |
|
|
|
exit; |
|
|
|
} |
|
|
|
$fileHashURL = "https://cdn.dedebiz.com/release/{$cfg_version_detail}.json"; |
|
|
@@ -286,9 +288,9 @@ if (count($argv) > 1 && ($argv[1] == "serv" || $argv[1] == "s")) { |
|
|
|
require_once(DEDEINC . "/libraries/cli.class.php"); |
|
|
|
//快速开始一个用于开发的DedeBIZ环境,基于SQLite无其他依赖 |
|
|
|
if (file_exists($workDir."/data/DedeBIZ.db")) { |
|
|
|
DedeCli::write("development environment has inited"); |
|
|
|
echo "Start Dev Server For DedeBIZ\n\r"; |
|
|
|
echo "Open http://localhost:8088\n\r"; |
|
|
|
DedeCli::write("开发环境已经初始化"); |
|
|
|
echo "启动DedeBIZ开发环境\n\r"; |
|
|
|
echo "浏览器打开 http://localhost:8088\n\r"; |
|
|
|
passthru(PHP_BINARY . ' -S localhost:8088 -t' . escapeshellarg('./')); |
|
|
|
exit; |
|
|
|
} |
|
|
@@ -432,7 +434,7 @@ if (count($argv) > 1 && ($argv[1] == "serv" || $argv[1] == "s")) { |
|
|
|
DedeCli::write("admin user:admin"); |
|
|
|
DedeCli::write("admin password:admin"); |
|
|
|
if (phpversion() < "5.4") { |
|
|
|
die("DedeBIZ:command web server not support\n\n"); |
|
|
|
die("DedeBIZ:命令行Web Server不支持\n\n"); |
|
|
|
} |
|
|
|
//写入程序安装锁 |
|
|
|
file_put_contents($workDir.'/install/install_lock.txt', 'ok'); |
|
|
@@ -440,6 +442,42 @@ if (count($argv) > 1 && ($argv[1] == "serv" || $argv[1] == "s")) { |
|
|
|
echo "Open http://localhost:8088\n\r"; |
|
|
|
passthru(PHP_BINARY . ' -S localhost:8088 -t' . escapeshellarg('./')); |
|
|
|
exit; |
|
|
|
} else if(count($argv) > 1 && ($argv[1] =="tdata")){ |
|
|
|
if (!file_exists($workDir . "/system/common.inc.php")) { |
|
|
|
DedeCli::error("检查根目录是否存在错误"); |
|
|
|
exit; |
|
|
|
} |
|
|
|
require_once($workDir . "/system/common.inc.php"); |
|
|
|
require_once(DEDEINC . "/libraries/cli.class.php"); |
|
|
|
$in_query = "INSERT INTO `#@__arctype` (reid,topid,sortrank,typename,cnoverview,enname,enoverview,bigpic,litimg,typedir,isdefault,defaultname,issend,channeltype,tempindex,templist,temparticle,modname,namerule,namerule2,ispart,corank,description,keywords,seotitle,moresite,siteurl,sitepath,ishidden,`cross`,`crossid`,`content`,`smalltypes`) VALUES ('0','0','999','测试栏目','','','','','','{cmspath}/a/ceshilanmu','1','index.html','1','1','{style}/index_article.htm','{style}/list_article.htm','{style}/article_article.htm','default','{typedir}/{aid}.html','{typedir}/{tid}-{page}.html','0','0','测试','测试','','0','','','0','0','','','')"; |
|
|
|
if (!$dsql->ExecuteNoneQuery($in_query)) { |
|
|
|
die("保存目录数据时失败,请检查您的输入资料是否存在问题"); |
|
|
|
} |
|
|
|
$typeid = $dsql->GetLastID(); |
|
|
|
DedeCli::write("开始生成测试数据..."); |
|
|
|
for ($i=0; $i < 30000; $i++) { |
|
|
|
DedeCli::showProgress(ceil(($i / 30000) * 100), 100); |
|
|
|
$now = time(); |
|
|
|
$arcID = GetIndexKey(0, $typeid, $now, 1, $now, 1); |
|
|
|
if (empty($arcID)) { |
|
|
|
die("无法获得主键,因此无法进行后续操作"); |
|
|
|
} |
|
|
|
$query = "INSERT INTO `#@__archives` (id,typeid,typeid2,sortrank,flag,ismake,channel,arcrank,click,money,title,shorttitle,color,writer,source,litpic,pubdate,senddate,mid,notpost,description,keywords,filename,dutyadmin,weight) VALUES ('$arcID','$typeid','0','$now','','1','1','0','100','0','这是一篇测试文章$arcID','测试文章$arcID','','天涯','DedeBIZ','','$now','$now','1','0','测试描述','测试关键词','','1','');"; |
|
|
|
if (!$dsql->ExecuteNoneQuery($query)) { |
|
|
|
$gerr = $dsql->GetError(); |
|
|
|
$dsql->ExecuteNoneQuery("DELETE FROM `#@__arctiny` WHERE id='$arcID'"); |
|
|
|
die("数据保存到数据库主表`#@__archives`时出错,请检查数据库字段".str_replace('"', '', $gerr)); |
|
|
|
} |
|
|
|
$body = str_repeat("得德内容管理系统DedeBIZ上海穆云智能科技有限公司,天涯、叙述别离、老岳2023",500); |
|
|
|
$query = "INSERT INTO `#@__addonarticle` (aid,typeid,redirecturl,templet,userip,body) VALUES ('$arcID','$typeid','','','127.0.0.1','$body')"; |
|
|
|
if (!$dsql->ExecuteNoneQuery($query)) { |
|
|
|
$gerr = $dsql->GetError(); |
|
|
|
$dsql->ExecuteNoneQuery("DELETE FROM `#@__archives` WHERE id='$arcID'"); |
|
|
|
$dsql->ExecuteNoneQuery("DELETE FROM `#@__arctiny` WHERE id='$arcID'"); |
|
|
|
die("数据保存到数据库附加表时出错,请检查数据库字段".str_replace('"', '', $gerr)); |
|
|
|
} |
|
|
|
} |
|
|
|
DedeCli::write("成功生成所有测试数据"); |
|
|
|
} else { |
|
|
|
echo $helpStr; |
|
|
|
} |