@@ -54,7 +54,7 @@ function DelArc($aid, $type = 'ON', $onlyfile = FALSE, $recycle = 0) | |||
return FALSE; | |||
} | |||
} | |||
//$issystem==-1 是自定义模型,不使用回收站 | |||
//$issystem==-1是自定义模型,不使用回收站 | |||
if ($issystem == -1) $type = 'OK'; | |||
if (!is_array($arcRow)) return FALSE; | |||
/** 删除到回收站 **/ | |||
@@ -40,7 +40,7 @@ else if ($dopost == 'setskin') { | |||
$admin_catalog = join(',', $admin_catalogs); | |||
$userCatalogSql = "AND arc.typeid IN($admin_catalog) "; | |||
} | |||
$query = "SELECT arc.id, arc.arcrank, arc.title, arc.typeid, arc.mid, arc.pubdate, arc.channel, ch.editcon, tp.typename FROM `#@__archives` arc LEFT JOIN `#@__channeltype` ch ON ch.id = arc.channel LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id WHERE arc.arcrank<>-2 {$userCatalogSql} AND arc.mid={$cuserLogin->getUserID()} ORDER BY arc.id DESC LIMIT 0,12"; | |||
$query = "SELECT arc.id, arc.arcrank, arc.title, arc.typeid, arc.mid, arc.pubdate, arc.channel, ch.editcon, tp.typename FROM `#@__archives` arc LEFT JOIN `#@__channeltype` ch ON ch.id = arc.channel LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id WHERE arc.arcrank<>-2 {$userCatalogSql} AND arc.mid={$cuserLogin->getUserID()} ORDER BY arc.id DESC LIMIT 0,15"; | |||
$arcArr = array(); | |||
$dsql->Execute('m', $query); | |||
while($row = $dsql->GetArray('m')) | |||
@@ -55,7 +55,7 @@ else if ($dopost == 'setskin') { | |||
if (trim($row['editcon'])=='') { | |||
$row['editcon'] = 'archives_edit.php'; | |||
} | |||
$rowarcrank = $row['arcrank']==-1? " <span class='btn btn-danger btn-xs'>未审核</span>":""; | |||
$rowarcrank = $row['arcrank']==-1? "<span class='btn btn-danger btn-xs ml-2'>未审核</span>":""; | |||
$pubdate = GetDateMk($row['pubdate']); | |||
echo "<tr><td><a href='{$row['editcon']}?aid={$row['id']}&channelid={$row['channel']}'>{$row['title']}</a>{$rowarcrank}</td><td width='90'>{$pubdate}</td></tr>"; | |||
} | |||
@@ -1,6 +1,6 @@ | |||
<?php | |||
/** | |||
* 数据库备份还原 | |||
* 数据库备份还原 | |||
* | |||
* @version $id:sys_data.php 17:19 2010年7月20日 tianya $ | |||
* @package DedeBIZ.Administrator | |||
@@ -1,6 +1,6 @@ | |||
<?php | |||
/** | |||
* 数据库操作 | |||
* 数据库备份还原操作 | |||
* | |||
* @version $id:sys_data_done.php 17:19 2010年7月20日 tianya $ | |||
* @package DedeBIZ.Administrator | |||
@@ -24,7 +24,7 @@ $dojs = "<script>$gotojs</script>"; | |||
//备份数据 | |||
if ($dopost == 'bak') { | |||
if (empty($tablearr)) { | |||
ShowMsg('您没选中数据表', 'javascript:;'); | |||
ShowMsg('您还没选择备份数据表', 'javascript:;'); | |||
exit(); | |||
} | |||
if (!is_dir($bkdir)) { | |||
@@ -63,7 +63,7 @@ if ($dopost == 'bak') { | |||
} | |||
} | |||
$dh->close(); | |||
$tmsg .= "清除备份目录旧数据完成"; | |||
$tmsg .= "完成备份目录旧数据清理"; | |||
if ($isstruct == 1) { | |||
$bkfile = $bkdir."/tables_struct_".substr(md5(time().mt_rand(1000, 5000).$cfg_cookie_encode), 0, 16).".txt"; | |||
$mysql_version = $dsql->GetVersion(); | |||
@@ -80,17 +80,17 @@ if ($dopost == 'bak') { | |||
fwrite($fp, ''.$tableStruct.";\r\n\r\n"); | |||
} | |||
fclose($fp); | |||
$tmsg .= "备份数据表结构信息完成"; | |||
$tmsg .= "完成备份数据表结构信息"; | |||
} | |||
$tmsg .= "正在进行数据备份初始化工作,请稍后"; | |||
$doneForm = "<form name='gonext' method='post' action='sys_data_done.php'> | |||
<input type='hidden' name='isstruct' value='$isstruct' /> | |||
<input type='hidden' name='dopost' value='bak' /> | |||
<input type='hidden' name='fsize' value='$fsize' /> | |||
<input type='hidden' name='tablearr' value='$tablearr' /> | |||
<input type='hidden' name='nowtable' value='{$tables[0]}' /> | |||
<input type='hidden' name='startpos' value='0' /> | |||
<input type='hidden' name='iszip' value='$iszip' />\r\n</form>\r\n{$dojs}\r\n"; | |||
<input type='hidden' name='isstruct' value='$isstruct'> | |||
<input type='hidden' name='dopost' value='bak'> | |||
<input type='hidden' name='fsize' value='$fsize'> | |||
<input type='hidden' name='tablearr' value='$tablearr'> | |||
<input type='hidden' name='nowtable' value='{$tables[0]}'> | |||
<input type='hidden' name='startpos' value='0'> | |||
<input type='hidden' name='iszip' value='$iszip'>\r\n</form>\r\n{$dojs}\r\n"; | |||
PutInfo($tmsg, $doneForm); | |||
exit(); | |||
} | |||
@@ -104,7 +104,6 @@ if ($dopost == 'bak') { | |||
$dsql->GetTableFields($nowtable); | |||
$intable = "INSERT INTO `$nowtable` VALUES("; | |||
while ($r = $dsql->GetFieldObject()) { | |||
$fs[$j] = trim($r->name); | |||
$j++; | |||
} | |||
@@ -124,15 +123,15 @@ if ($dopost == 'bak') { | |||
$fp = fopen($bakfilename, "w"); | |||
fwrite($fp, $bakStr); | |||
fclose($fp); | |||
$tmsg = "完成到{$m}条数据备份,继续备份{$nowtable}"; | |||
$tmsg = "正在备份{$m}条数据,继续备份{$nowtable}"; | |||
$doneForm = "<form name='gonext' method='post' action='sys_data_done.php'> | |||
<input type='hidden' name='isstruct' value='$isstruct' /> | |||
<input type='hidden' name='dopost' value='bak' /> | |||
<input type='hidden' name='fsize' value='$fsize' /> | |||
<input type='hidden' name='tablearr' value='$tablearr' /> | |||
<input type='hidden' name='nowtable' value='$nowtable' /> | |||
<input type='hidden' name='startpos' value='$m' /> | |||
<input type='hidden' name='iszip' value='$iszip' />\r\n</form>\r\n{$dojs}\r\n"; | |||
<input type='hidden' name='isstruct' value='$isstruct'> | |||
<input type='hidden' name='dopost' value='bak'> | |||
<input type='hidden' name='fsize' value='$fsize'> | |||
<input type='hidden' name='tablearr' value='$tablearr'> | |||
<input type='hidden' name='nowtable' value='$nowtable'> | |||
<input type='hidden' name='startpos' value='$m'> | |||
<input type='hidden' name='iszip' value='$iszip'>\r\n</form>\r\n{$dojs}\r\n"; | |||
PutInfo($tmsg, $doneForm); | |||
exit(); | |||
} | |||
@@ -161,17 +160,17 @@ if ($dopost == 'bak') { | |||
$startpos = 0; | |||
break; | |||
} else { | |||
PutInfo("完成所有数据备份", ""); | |||
PutInfo("成功完成所有数据备份", ""); | |||
exit(); | |||
} | |||
} | |||
} | |||
$tmsg = "完成到{$m}条数据备份,继续备份{$nowtable}"; | |||
$tmsg = "正在备份{$m}条数据,继续备份{$nowtable}"; | |||
$doneForm = "<form name='gonext' method='post' action='sys_data_done.php?dopost=bak'> | |||
<input type='hidden' name='isstruct' value='$isstruct' /> | |||
<input type='hidden' name='fsize' value='$fsize' /> | |||
<input type='hidden' name='tablearr' value='$tablearr' /> | |||
<input type='hidden' name='nowtable' value='$nowtable' /> | |||
<input type='hidden' name='isstruct' value='$isstruct'> | |||
<input type='hidden' name='fsize' value='$fsize'> | |||
<input type='hidden' name='tablearr' value='$tablearr'> | |||
<input type='hidden' name='nowtable' value='$nowtable'> | |||
<input type='hidden' name='startpos' value='$startpos'>\r\n</form>\r\n{$dojs}\r\n"; | |||
PutInfo($tmsg, $doneForm); | |||
exit(); | |||
@@ -181,7 +180,7 @@ if ($dopost == 'bak') { | |||
//还原数据 | |||
else if ($dopost == 'redat') { | |||
if ($bakfiles == '') { | |||
ShowMsg('没指定任何要还原数据', 'javascript:;'); | |||
ShowMsg('您还没选择还原数据表', 'javascript:;'); | |||
exit(); | |||
} | |||
$bakfilesTmp = $bakfiles; | |||
@@ -210,11 +209,11 @@ else if ($dopost == 'redat') { | |||
if ($delfile == 1) { | |||
@unlink("$bkdir/$structfile"); | |||
} | |||
$tmsg = "完成数据表还原,继续还原数据"; | |||
$tmsg = "成功完成数据表还原,继续还原其它数据"; | |||
$doneForm = "<form name='gonext' method='post' action='sys_data_done.php?dopost=redat'> | |||
<input type='hidden' name='startgo' value='1' /> | |||
<input type='hidden' name='delfile' value='$delfile' /> | |||
<input type='hidden' name='bakfiles' value='$bakfilesTmp' /> | |||
<input type='hidden' name='startgo' value='1'> | |||
<input type='hidden' name='delfile' value='$delfile'> | |||
<input type='hidden' name='bakfiles' value='$bakfilesTmp'> | |||
</form>\r\n{$dojs}\r\n"; | |||
PutInfo($tmsg, $doneForm); | |||
exit(); | |||
@@ -236,14 +235,14 @@ else if ($dopost == 'redat') { | |||
@unlink("$bkdir/$nowfile"); | |||
} | |||
if ($bakfilesTmp == "") { | |||
ShowMsg('成功还原所有的文件数据', 'javascript:;'); | |||
ShowMsg('成功还原所有数据', 'javascript:;'); | |||
exit(); | |||
} | |||
$tmsg = "成功还原{$nowfile}文件{$oknum}条数据,正在继续还原其它数据"; | |||
$tmsg = "正在还原$nowfile}文件{$oknum}条数据,继续还原其它数据"; | |||
$doneForm = "<form name='gonext' method='post' action='sys_data_done.php?dopost=redat'> | |||
<input type='hidden' name='startgo' value='1' /> | |||
<input type='hidden' name='delfile' value='$delfile' /> | |||
<input type='hidden' name='bakfiles' value='$bakfilesTmp' /> | |||
<input type='hidden' name='startgo' value='1'> | |||
<input type='hidden' name='delfile' value='$delfile'> | |||
<input type='hidden' name='bakfiles' value='$bakfilesTmp'> | |||
</form>\r\n{$dojs}\r\n"; | |||
PutInfo($tmsg, $doneForm); | |||
exit(); | |||
@@ -1,6 +1,6 @@ | |||
<?php | |||
/** | |||
* 数据库操作替换 | |||
* 数据库字段替换 | |||
* | |||
* @version $id:sys_data_replace.php 22:28 2010年7月20日 tianya $ | |||
* @package DedeBIZ.Administrator | |||
@@ -59,51 +59,57 @@ | |||
</div> | |||
</div> | |||
</div> | |||
<div class="col-md-6 my-3"> | |||
<div class="col-md-7 my-3"> | |||
<div class="card"> | |||
<div class="card-header"> | |||
<a href="javascript:Copyinfo()"><i class="fa fa-cogs"></i> 软件信息</a> | |||
<span id="text">软件:<?php echo $cfg_version_detail;?>|操作系统:<?php echo PHP_OS;?>|Web服务器:<?php echo $_SERVER['SERVER_SOFTWARE'];?>|PHP:<?php echo @phpversion();?>|数据库:<?php echo $dsql->GetVersion();?></span> | |||
<span id="text">软件:<?php echo $cfg_version_detail;?>丨操作系统:<?php echo PHP_OS;?>丨Web服务器:<?php echo $_SERVER['SERVER_SOFTWARE'];?>丨PHP:<?php echo @phpversion();?>丨数据库:<?php echo $dsql->GetVersion();?>丨上传限制:<?php echo ini_get("post_max_size")?></span> | |||
</div> | |||
<div class="card-body"> | |||
<table class="table table-borderless"> | |||
<tr> | |||
<td width="20%"> | |||
<td> | |||
<div class="web-info"> | |||
<p>操作系统</p> | |||
<span><?php echo PHP_OS;?></span> | |||
</div> | |||
</td> | |||
<td width="20%"> | |||
<td> | |||
<div class="web-info"> | |||
<p>WEB服务器</p> | |||
<span><?php echo GetSimpleServerSoftware();?></span> | |||
</div> | |||
</td> | |||
<td width="20%"> | |||
<td> | |||
<div class="web-info"> | |||
<p>IP地址</p> | |||
<span><?php echo gethostbyname($_SERVER['SERVER_NAME']);?></span> | |||
</div> | |||
</td> | |||
<td width="20%"> | |||
<td> | |||
<div class="web-info"> | |||
<p>PHP版本</p> | |||
<span><?php echo @phpversion();?></span> | |||
</div> | |||
</td> | |||
<td width="20%"> | |||
<td> | |||
<div class="web-info"> | |||
<p>数据库版本</p> | |||
<span><?php echo $dsql->GetVersion();?></span> | |||
</div> | |||
</td> | |||
<td> | |||
<div class="web-info"> | |||
<p>上传限制</p> | |||
<span><?php echo ini_get("post_max_size")?></span> | |||
</div> | |||
</td> | |||
</tr> | |||
</table> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="col-md-6 my-3"> | |||
<div class="col-md-5 my-3"> | |||
<div class="card"> | |||
<div class="card-header"> | |||
<span><i class="fa fa-shield"></i> 版本授权</span> | |||
@@ -112,17 +118,17 @@ | |||
<div class="card-body" id="system-info">正在加载</div> | |||
</div> | |||
</div> | |||
<div class="col-md-6 my-3"> | |||
<div class="col-md-7 my-3"> | |||
<div class="card"> | |||
<div class="card-header"> | |||
<a name="statChart"><i class="fa fa-line-chart"></i> 流量统计图</a> | |||
</div> | |||
<div class="card-body"> | |||
<div class="card-body py-3"> | |||
<canvas id="statChart"></canvas> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="col-md-6 my-3"> | |||
<div class="col-md-5 my-3"> | |||
<div class="card"> | |||
<div class="card-header"> | |||
<span><i class="fa fa-file-word-o"></i> 最新文档</span> | |||
@@ -61,7 +61,7 @@ | |||
if (!empty($cfg_bizcore_appid) && !empty($cfg_bizcore_key)) { | |||
$client = new DedeBizClient(); | |||
$data = $client->AdminPWDExists(); | |||
if ($data->code == -1){ | |||
if ($data->code == -1) { | |||
?> | |||
<tr> | |||
<td colspan="2">启动商业组件失败,<a href="https://www.dedebiz.com/start?code=-1008" target="_blank" class="btn btn-warning btn-sm ml-2">如何启动组件</a></td> | |||
@@ -92,11 +92,7 @@ | |||
<label><input type="radio" name="lockindex" value="lock" <?php echo ($row['index_lock_state']==false)? "checked='checked'" : "";?>> 锁定</label> | |||
</td> | |||
</tr> | |||
<?php | |||
} | |||
} | |||
} else { | |||
?> | |||
<?php }}} else {?> | |||
<tr> | |||
<td colspan="2">启动商业组件失败<a href="https://www.dedebiz.com/start?code=-1008" target="_blank" class="btn btn-warning btn-sm ml-2">启动组件</a></td> | |||
</tr> | |||
@@ -51,13 +51,13 @@ | |||
</tr> | |||
<tr> | |||
<td> | |||
<div class="alert alert-info"> | |||
<?php echo $alter;?> | |||
<div class="alert alert-info mb-0"> | |||
<ul> | |||
<li>检测结果:结果仅供参考,请务必查看源码后才删除非法文件</li> | |||
<li>安全建议:1、有条件的会员把data、system、theme修改为不可对外浏览,static、a目录设置为不允许执行脚本,其它目录禁止写入,系统更安全;2、本检测程以开发模式为标准,如果您的网站目录包含其它系统,此检测程序可能会产生错误判断;3、检测程序会跳过对模板缓存目录的检测,为了安全起见,检测完成后建议清空模板缓存</li> | |||
</ul> | |||
</div> | |||
<?php echo $alter;?> | |||
</td> | |||
</tr> | |||
<tr> | |||
@@ -96,17 +96,16 @@ class Archives | |||
foreach ($GLOBALS['PubFields'] as $k => $v) { | |||
$this->Fields[$k] = $v; | |||
} | |||
//为了减少重复查询,这里直接把附加表查询记录放在 $this->addTableRow 中,在 ParAddTable() 不再查询 | |||
//为了减少重复查询,这里直接把附加表查询记录放在$this->addTableRow中,在ParAddTable()不再查询 | |||
if ($this->ChannelUnit->ChannelInfos['addtable'] != '') { | |||
if ($this->ChannelUnit->ChannelID < 0) { | |||
$query = "SELECT tb.*,mb.uname,mb.face FROM `{$this->ChannelUnit->ChannelInfos['addtable']}` tb LEFT JOIN `#@__member` mb on tb.mid = mb.mid WHERE tb.`aid` = '$aid'"; | |||
} else { | |||
$query = "SELECT * FROM `{$this->ChannelUnit->ChannelInfos['addtable']}` WHERE `aid` = '$aid'"; | |||
} | |||
$this->addTableRow = $this->dsql->GetOne($query); | |||
} | |||
//issystem==-1 表示自定义模型,自定义模型不支持redirecturl这类参数,因此限定文档普通模型才进行下面查询 | |||
//issystem==-1表示自定义模型,自定义模型不支持redirecturl这类参数,因此限定文档普通模型才进行下面查询 | |||
if ($this->ChannelUnit->ChannelInfos['addtable'] != '' && $this->ChannelUnit->ChannelInfos['issystem'] != -1) { | |||
if (is_array($this->addTableRow)) { | |||
$this->Fields['redirecturl'] = $this->addTableRow['redirecturl']; | |||
@@ -189,15 +188,15 @@ class Archives | |||
//设置全局环境变量 | |||
$this->Fields['typename'] = $this->TypeLink->TypeInfos['typename']; | |||
@SetSysEnv($this->Fields['typeid'], $this->Fields['typename'], $this->Fields['id'], $this->Fields['title'], 'archives'); | |||
//文档图片注释替换为标题,利于优化 | |||
//文档模型正文图片注释自动为标题 | |||
$this->Fields['body'] = str_ireplace(array('alt=""','alt=\'\''),'',$this->Fields['body']); | |||
$this->Fields['body'] = preg_replace("@ [\s]{0,}alt[\s]{0,}=[\"'\s]{0,}[\s\S]{0,}[\"'\s] @isU","",$this->Fields['body']); | |||
$this->Fields['body'] = str_ireplace("<img","<img alt=\"".$this->Fields['title']."\" title=\"".$this->Fields['title']."\" ",$this->Fields['body']); | |||
//图片注释替换为标题,利于优化 | |||
//图片模型正文图片注释自动为标题 | |||
$this->Fields['imgurls'] = str_ireplace(array('alt=""','alt=\'\''),'',$this->Fields['imgurls']); | |||
$this->Fields['imgurls'] = preg_replace("@ [\s]{0,}alt[\s]{0,}=[\"'\s]{0,}[\s\S]{0,}[\"'\s] @isU","",$this->Fields['imgurls']); | |||
$this->Fields['imgurls'] = str_ireplace("<img","<img alt=\"".$this->Fields['title']."\" title=\"".$this->Fields['title']."\"",$this->Fields['imgurls']); | |||
//清除文档图片的宽度和高度,适配自适应网站 | |||
//移除文档模型正文图片宽度和高度,适配自适应/响应式网站 | |||
$this->Fields['body'] = preg_replace("/style=\"width\:(.*)\"/","",$this->Fields['body']); | |||
} | |||
//完成附加表信息读取 | |||
@@ -9,7 +9,7 @@ if (!defined('DEDEINC')) exit('dedebiz'); | |||
* @license https://www.dedebiz.com/license | |||
* @link https://www.dedebiz.com | |||
*/ | |||
//显示类似Bootstrap警告框 | |||
//类似Bootstrap警告框 | |||
define('ALERT_PRIMARY', 1); | |||
define('ALERT_SECONDARY', 2); | |||
define('ALERT_SUCCESS', 3); | |||
@@ -28,7 +28,7 @@ define('ALERT_COLORS', array( | |||
ALERT_LIGHT => array('#fefefe','#fdfdfe','#636464'), | |||
ALERT_DARK => array('#d3d3d4','#bcbebf','#141619'), | |||
)); | |||
define("ALERT_TPL", '<div style="position:relative;padding:.75rem 1.25rem;width:auto;font-size:12px;color:~color~;background:~background~;border-color:~border~;border:1px solid transparent;border-radius:.2rem">~content~</div>'); | |||
define("ALERT_TPL", '<div style="position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;width:auto;font-size:12px;color:~color~;background:~background~;border-color:~border~;border:1px solid transparent;border-radius:.2rem">~content~</div>'); | |||
//$content:文档,$type:alert类型 | |||
function DedeAlert($content, $type = ALERT_PRIMARY, $isHTML=false) | |||
{ | |||
@@ -188,12 +188,12 @@ if (!function_exists('CheckSql')) { | |||
if (preg_match("#^create table#i", $clean)) $fail = FALSE; | |||
$error = "unusual character"; | |||
} | |||
//老版本的Mysql并不支持union,常用的程序里也不使用union,但是一些黑客使用它,所以检查它 | |||
//老版本数据库不支持union,程序不使用union,但黑客使用它,所以检查它 | |||
if (strpos($clean, 'union') !== FALSE && preg_match('~(^|[^a-z])union($|[^[a-z])~s', $clean) != 0) { | |||
$fail = TRUE; | |||
$error = "union detect"; | |||
} | |||
//发布版本的程序可能比较少包括--,#这样的注释,但是黑客经常使用它们 | |||
//发布版本的程序可能比较少包括--,#这样的注释,但黑客经常使用它们 | |||
elseif (strpos($clean, '/*') > 2 || strpos($clean, '--') !== FALSE || strpos($clean, '#') !== FALSE) { | |||
$fail = TRUE; | |||
$error = "comment detect"; | |||
@@ -212,7 +212,7 @@ if (!function_exists('CheckSql')) { | |||
$fail = TRUE; | |||
$error = "file fun detect"; | |||
} | |||
//老版本的MYSQL不支持子查询,我们的程序里可能也用得少,但是黑客可以使用它来查询数据库敏感信息 | |||
//老版本数据库不支持子查询,该功能也用得少,但黑客可以使用它来查询数据库敏感信息 | |||
elseif (preg_match('~\([^)]*?select~s', $clean) != 0) { | |||
$fail = TRUE; | |||
$error = "sub select detect"; | |||
@@ -226,8 +226,7 @@ if (!function_exists('CheckSql')) { | |||
} | |||
} | |||
/** | |||
* 载入小助手,系统默认载入小助手 | |||
* 在/data/helper.inc.php中进行默认小助手初始化的设置,创建一个示例为test.helper.php文件基本文档如下: | |||
* 载入小助手,系统默认载入小助手示例: | |||
* <code> | |||
* if (!function_exists('HelloDede')) | |||
* { | |||
@@ -237,10 +236,10 @@ if (!function_exists('CheckSql')) { | |||
* } | |||
* } | |||
* </code> | |||
* 则我们在开发中使用这个小助手的时候直接使用函数helper('test');初始化它,然后在文件中就可以直接使用:HelloDede();来进行调用 | |||
* 开发中使用这个小助手的时候直接使用函数helper('test');初始化它,然后在文件中就可以直接使用:HelloDede();调用 | |||
* | |||
* @access public | |||
* @param mix $helpers 小助手名称,可以是数组,可以是单个字符串 | |||
* @param mix $helpers 小助手名称,可以是数组,可以是单个字符串 | |||
* @return void | |||
*/ | |||
$_helpers = array(); | |||
@@ -426,6 +425,20 @@ function IndexSub($idx, $num) | |||
{ | |||
return intval($idx) - intval($num) == 0 ? '0 ' : intval($idx) - intval($num); | |||
} | |||
/** | |||
* HideEmail隐藏邮箱 | |||
* | |||
* @param mixed $email | |||
* @return string | |||
*/ | |||
function HideEmail($email) | |||
{ | |||
if (empty($email)) return "暂无"; | |||
$em = explode("@",$email); | |||
$name = implode('@', array_slice($em, 0, count($em)-1)); | |||
$len = floor(strlen($name)/2); | |||
return substr($name,0, $len).str_repeat('*', $len)."@".end($em); | |||
} | |||
//用来返回index的active | |||
function IndexActive($idx) | |||
{ | |||
@@ -508,7 +521,18 @@ function GetUpdateSQL() | |||
fclose($fp); | |||
return $result; | |||
} | |||
//标签调用标签[field:id function='GetMyTags(@me,2)'/]2表示输出2个文档 | |||
/*会员中心调用默认主题模板<?php pasterTempletDiy('head.htm');?>*/ | |||
if (!function_exists('pasterTempletDiy')) { | |||
function pasterTempletDiy($path) | |||
{ | |||
global $cfg_basedir, $cfg_templets_dir, $cfg_df_style; | |||
$tmpfile = $cfg_basedir.$cfg_templets_dir.'/'.$cfg_df_style.'/'.$path; | |||
$dtp = new PartView(); | |||
$dtp->SetTemplet($tmpfile); | |||
$dtp->Display(); | |||
} | |||
} | |||
//标签调用标签[field:id function='GetMyTags(@me,2)'/]2表示调用文档2个标签 | |||
if (!function_exists('GetMyTags')) { | |||
function GetMyTags($aid, $num=3) | |||
{ | |||
@@ -523,18 +547,7 @@ if (!function_exists('GetMyTags')) { | |||
return $tags; | |||
} | |||
} | |||
/*会员中心调用默认模板<?php pasterTempletDiy('head.htm');?>*/ | |||
if (!function_exists('pasterTempletDiy')) { | |||
function pasterTempletDiy($path) | |||
{ | |||
global $cfg_basedir, $cfg_templets_dir, $cfg_df_style; | |||
$tmpfile = $cfg_basedir.$cfg_templets_dir.'/'.$cfg_df_style.'/'.$path; | |||
$dtp = new PartView(); | |||
$dtp->SetTemplet($tmpfile); | |||
$dtp->Display(); | |||
} | |||
} | |||
//联动单筛选标签{dede:php}AddFilter(模型id,类型,'字段1,字段2');{/dede:php} | |||
//联动单筛选标签{dede:php}AddFilter(模型id,类型,'字段1,字段2');{/dede:php}类型对应以下case数值 | |||
function litimgurls($imgid = 0) | |||
{ | |||
global $lit_imglist, $dsql; | |||
@@ -630,20 +643,6 @@ function AddFilter($channelid, $type=1, $fieldsnamef='', $defaulttid=0, $toptid= | |||
} | |||
echo $dede_addonfields; | |||
} | |||
/** | |||
* HideEmail隐藏邮箱 | |||
* | |||
* @param mixed $email | |||
* @return string | |||
*/ | |||
function HideEmail($email) | |||
{ | |||
if (empty($email)) return "空"; | |||
$em = explode("@",$email); | |||
$name = implode('@', array_slice($em, 0, count($em)-1)); | |||
$len = floor(strlen($name)/2); | |||
return substr($name,0, $len).str_repeat('*', $len)."@".end($em); | |||
} | |||
//自定义函数接口 | |||
if (file_exists(DEDEINC.'/extend.func.php')) { | |||
require_once(DEDEINC.'/extend.func.php'); | |||
@@ -260,7 +260,7 @@ if ($GLOBALS['cfg_dbtype'] == 'mysql' || $GLOBALS['cfg_dbtype'] == 'mysqli') { | |||
} else { | |||
require_once(DEDEINC.'/database/dedesqlite.class.php'); | |||
} | |||
//载入小助手配置,并对其进行默认初始化 | |||
//载入小助手配置,并对其进行默认初始化 | |||
$cfg_helper_autoload = array( | |||
'charset', /* 编码小助手 */ | |||
'channelunit',/* 模型单元小助手 */ | |||
@@ -42,12 +42,12 @@ | |||
</div> | |||
</div> | |||
<div class="container py-3"> | |||
<div class="row biz-mb">{dede:channelartlist typeid='1,1'} | |||
<div class="row biz-mb">{dede:channelartlist typeid='18,18'} | |||
<div class="col-md-12 mb-3"> | |||
<div class="item-title text-left"> | |||
<h2>{dede:field.typename/}</h2> | |||
</div> | |||
</div>{dede:arclist row='3' orderby='id'} | |||
</div>{dede:arclist row='3' orderby='rand'} | |||
<div class="col-md-4"> | |||
<div class="item-theme bg-white shadow-sm rounded"> | |||
<div class="item-theme-img">[field:array runphp='yes']@me=(strpos(@me['litpic'],'thumbnail')?"":"<a href='{@me['arcurl']}'><img src='{@me['litpic']}' alt='{@me['title']}' title='{@me['title']}'></a>");[/field:array]</div> | |||
@@ -69,12 +69,12 @@ | |||
</div> | |||
</div> | |||
<div class="container py-3"> | |||
<div class="row biz-mb">{dede:channelartlist typeid='2,2'} | |||
<div class="row biz-mb">{dede:channelartlist typeid='17,17'} | |||
<div class="col-md-12 mb-3"> | |||
<div class="item-title text-left"> | |||
<h2>{dede:field.typename/}</h2> | |||
</div> | |||
</div>{dede:arclist row='3' orderby='id'} | |||
</div>{dede:arclist row='3' orderby='rand'} | |||
<div class="col-md-4"> | |||
<div class="item-news bg-white shadow-sm rounded"> | |||
<div class="item-news-img">[field:array runphp='yes']@me=(strpos(@me['litpic'],'thumbnail')?"":"<a href='{@me['arcurl']}'><img src='{@me['litpic']}' alt='{@me['title']}' title='{@me['title']}'></a>");[/field:array]</div> | |||
@@ -91,28 +91,27 @@ | |||
</div> | |||
</div> | |||
<div class="container py-3"> | |||
<div class="row"> | |||
{dede:channelartlist typeid='3,3'} | |||
<div class="row">{dede:channelartlist typeid='18,18'} | |||
<div class="col-md-4 m-pb-2"> | |||
<div class="item-article bg-white shadow-sm rounded p-3"> | |||
<h2 class="mb-3">{dede:field.typename/}</h2> | |||
<ul>{dede:arclist row='10' titlelen='120' orderby='id'} | |||
<ul>{dede:arclist row='10' titlelen='120' orderby='rand'} | |||
<li>[field:global.autoindex/].<a title="[field:fulltitle/]" href="[field:arcurl/]">[field:title/]</a></li>{/dede:arclist} | |||
</ul> | |||
</div> | |||
</div>{/dede:channelartlist}{dede:channelartlist typeid='4,4'} | |||
</div>{/dede:channelartlist}{dede:channelartlist typeid='19,19'} | |||
<div class="col-md-4"> | |||
<div class="item-article bg-white shadow-sm rounded p-3"> | |||
<h2 class="mb-3">{dede:field.typename/}</h2> | |||
<ul>{dede:arclist row='10' titlelen='120' orderby='id'} | |||
<ul>{dede:arclist row='10' titlelen='120' orderby='rand'} | |||
<li>[field:global.autoindex/].<a title="[field:fulltitle/]" href="[field:arcurl/]">[field:title/]</a></li>{/dede:arclist} | |||
</ul> | |||
</div> | |||
</div>{/dede:channelartlist}{dede:channelartlist typeid='5,5'} | |||
</div>{/dede:channelartlist}{dede:channelartlist typeid='17,17'} | |||
<div class="col-md-4"> | |||
<div class="item-article bg-white shadow-sm rounded p-3"> | |||
<h2 class="mb-3">{dede:field.typename/}</h2> | |||
<ul>{dede:arclist row='10' titlelen='120' orderby='id'} | |||
<ul>{dede:arclist row='10' titlelen='120' orderby='rand'} | |||
<li>[field:global.autoindex/].<a title="[field:fulltitle/]" href="[field:arcurl/]">[field:title/]</a></li>{/dede:arclist} | |||
</ul> | |||
</div> | |||
@@ -16,7 +16,7 @@ | |||
<div class="row"> | |||
<div class="col-md-12"> | |||
<div class="pannel-main-container shadow-sm rounded"> | |||
<nav class="navbar navbar-expand-lg mb-3 p-0"> | |||
<nav class="navbar navbar-expand-lg p-0"> | |||
<ol class="breadcrumb mr-auto"> | |||
<li class="breadcrumb-item"><a href="<?php echo $cfg_memberurl;?>/">会员中心</a></li> | |||
<li class="breadcrumb-item">发布<?php echo $cInfos['typename'];?></li></li> | |||
@@ -16,7 +16,7 @@ | |||
<div class="row"> | |||
<div class="col-md-12"> | |||
<div class="pannel-main-container shadow-sm rounded"> | |||
<nav class="navbar navbar-expand-lg mb-3 p-0"> | |||
<nav class="navbar navbar-expand-lg p-0"> | |||
<ol class="breadcrumb mr-auto"> | |||
<li class="breadcrumb-item"><a href="<?php echo $cfg_memberurl;?>/">会员中心</a></li> | |||
<li class="breadcrumb-item">修改<?php echo $row['title']?></li></li> | |||
@@ -16,7 +16,7 @@ | |||
<div class="row"> | |||
<div class="col-md-12"> | |||
<div class="pannel-main-container shadow-sm rounded"> | |||
<nav class="navbar navbar-expand-lg mb-3 p-0"> | |||
<nav class="navbar navbar-expand-lg p-0"> | |||
<ol class="breadcrumb mr-auto"> | |||
<li class="breadcrumb-item"><a href="<?php echo $cfg_memberurl;?>/">会员中心</a></li> | |||
<li class="breadcrumb-item">发布<?php echo $cInfos['typename'];?></li></li> | |||
@@ -16,7 +16,7 @@ | |||
<div class="row"> | |||
<div class="col-md-12"> | |||
<div class="pannel-main-container shadow-sm rounded"> | |||
<nav class="navbar navbar-expand-lg mb-3 p-0"> | |||
<nav class="navbar navbar-expand-lg p-0"> | |||
<ol class="breadcrumb mr-auto"> | |||
<li class="breadcrumb-item"><a href="<?php echo $cfg_memberurl;?>/">会员中心</a></li> | |||
<li class="breadcrumb-item">修改<?php echo $row['title']?></li></li> | |||
@@ -16,7 +16,7 @@ | |||
<div class="row"> | |||
<div class="col-md-12"> | |||
<div class="pannel-main-container shadow-sm rounded"> | |||
<nav class="navbar navbar-expand-lg mb-3 p-0"> | |||
<nav class="navbar navbar-expand-lg p-0"> | |||
<ol class="breadcrumb mr-auto"> | |||
<li class="breadcrumb-item"><a href="<?php echo $cfg_memberurl;?>/">会员中心</a></li> | |||
<li class="breadcrumb-item">发布<?php echo $cInfos['typename'];?></li></li> | |||
@@ -16,7 +16,7 @@ | |||
<div class="row"> | |||
<div class="col-md-12"> | |||
<div class="pannel-main-container shadow-sm rounded"> | |||
<nav class="navbar navbar-expand-lg mb-3 p-0"> | |||
<nav class="navbar navbar-expand-lg p-0"> | |||
<ol class="breadcrumb mr-auto"> | |||
<li class="breadcrumb-item"><a href="<?php echo $cfg_memberurl;?>/">会员中心</a></li> | |||
<li class="breadcrumb-item">修改<?php echo $row['title']?></li></li> | |||
@@ -16,7 +16,7 @@ | |||
<div class="row"> | |||
<div class="col-md-12"> | |||
<div class="pannel-main-container shadow-sm rounded"> | |||
<nav class="navbar navbar-expand-lg mb-3 p-0"> | |||
<nav class="navbar navbar-expand-lg p-0"> | |||
<ol class="breadcrumb mr-auto"> | |||
<li class="breadcrumb-item"><a href="<?php echo $cfg_memberurl;?>/">会员中心</a></li> | |||
<li class="breadcrumb-item">发布<?php echo $cInfos['typename'];?></li></li> | |||
@@ -16,7 +16,7 @@ | |||
<div class="row"> | |||
<div class="col-md-12"> | |||
<div class="pannel-main-container shadow-sm rounded"> | |||
<nav class="navbar navbar-expand-lg mb-3 p-0"> | |||
<nav class="navbar navbar-expand-lg p-0"> | |||
<ol class="breadcrumb mr-auto"> | |||
<li class="breadcrumb-item"><a href="<?php echo $cfg_memberurl;?>/">会员中心</a></li> | |||
<li class="breadcrumb-item">修改<?php echo $row['title']?></li></li> | |||
@@ -16,7 +16,7 @@ | |||
<?php include(DEDEMEMBER."/templets/menu.htm");?> | |||
<div class="col-md-9"> | |||
<div class="pannel-main-container shadow-sm rounded"> | |||
<nav class="navbar navbar-expand-lg mb-3 p-0"> | |||
<nav class="navbar navbar-expand-lg p-0"> | |||
<ol class="breadcrumb mr-auto"> | |||
<li class="breadcrumb-item"><a href="<?php echo $cfg_memberurl;?>/">会员中心</a></li> | |||
<li class="breadcrumb-item">积分钱包</li></li> | |||
@@ -26,49 +26,49 @@ | |||
<div class="alert alert-success"><?php echo $cfg_ml->GetSta($dsql);?></div> | |||
<?php if ($cfg_money_scores > 0) {?> | |||
<?php $canCav = floor($cfg_ml->fields['scores'] / $cfg_money_scores);?> | |||
<div class="py-3"> | |||
<div class="pb-3"> | |||
<p>积分兑换金币(<?php echo "兑换价格{$cfg_money_scores}积分/个,您目前可兑换金币{$canCav}";?>)</p> | |||
<form name="formrank" action="index_do.php?dopost=money2s&fmdo=user" method="post"> | |||
<table width="100%" cellpadding="0" cellspacing="0" class="table"> | |||
<tbody> | |||
<tr> | |||
<td width="20%" align="right">兑换数量:</td> | |||
<td width="20%">兑换数量:</td> | |||
<td><input type="text" name="money" id="money" class="form-control w-25" value="<?php echo $canCav;?>"></td> | |||
</tr> | |||
<tr> | |||
<td></td> | |||
<td align="left"><button type="submit" class="btn btn-success btn-sm">兑换</button></td> | |||
<td><button type="submit" class="btn btn-success btn-sm">兑换</button></td> | |||
</tr> | |||
</tbody> | |||
</table> | |||
</form> | |||
</div> | |||
<?php }?> | |||
<div class="py-3"> | |||
<div class="pb-3"> | |||
<h4 class="mb-3">积分充值</h4> | |||
<form name="formrank" action="check_card.php" method="post"> | |||
<table width="100%" cellpadding="0" cellspacing="0" class="table"> | |||
<tbody> | |||
<tr> | |||
<td width="20%" align="right">积分密码:</td> | |||
<td width="20%">积分密码:</td> | |||
<td><input type="text" name="cardid" id="cardid" class="form-control w-25"></td> | |||
</tr> | |||
<tr> | |||
<td align="right">验证码</td> | |||
<td>验证码</td> | |||
<td> | |||
<input type="text" name="vdcode" id="vdcode" class="form-control text-uppercase d-inline-block w-25"> | |||
<img src="../apps/vdimgck.php" title="验证码" onclick="this.src=this.src+'?'"> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td align="right"></td> | |||
<td></td> | |||
<td><button type="submit" class="btn btn-success btn-sm">充值</button></td> | |||
</tr> | |||
</tbody> | |||
</table> | |||
</form> | |||
</div> | |||
<div class="py-3"> | |||
<div class="pb-3"> | |||
<h4 class="mb-3">购买金币</h4> | |||
<form name="f1" action="buy_action.php" method="post"> | |||
<input type="hidden" name="product" value="card"> | |||
@@ -86,7 +86,7 @@ | |||
<div class="text-center"><button type="submit" class="btn btn-success btn-sm">购买</button></div> | |||
</form> | |||
</div> | |||
<div class="py-3"> | |||
<div> | |||
<h4 class="mb-3">账号升级</h4> | |||
<form name="f1" action="buy_action.php" method="post"> | |||
<input type="hidden" name="product" value="member"> | |||
@@ -16,7 +16,7 @@ | |||
<?php include(DEDEMEMBER."/templets/menu.htm");?> | |||
<div class="col-md-9"> | |||
<div class="pannel-main-container shadow-sm rounded"> | |||
<nav class="navbar navbar-expand-lg mb-3 p-0"> | |||
<nav class="navbar navbar-expand-lg p-0"> | |||
<ol class="breadcrumb mr-auto"> | |||
<li class="breadcrumb-item"><a href="<?php echo $cfg_memberurl;?>/">会员中心</a></li> | |||
<li class="breadcrumb-item"><a href="<?php echo $cfg_memberurl;?>/buy.php">积分钱包</a></li> | |||
@@ -19,7 +19,7 @@ | |||
<?php include(DEDEMEMBER."/templets/menu.htm");?> | |||
<div class="col-md-9"> | |||
<div class="pannel-main-container shadow-sm rounded"> | |||
<nav class="navbar navbar-expand-lg mb-3 p-0"> | |||
<nav class="navbar navbar-expand-lg p-0"> | |||
<ul class="navbar-nav mr-auto"> | |||
<li class="nav-item"><a class="nav-link <?php echo ($arcrank=='')? 'active' : '';?>" href="content_list.php?channelid=<?php echo $channelid;?>">全部</a></li> | |||
<li class="nav-item"><a class="nav-link<?php echo ($arcrank=='1')? ' active' : '';?>" href="content_list.php?channelid=<?php echo $channelid;?>&arcrank=1">已审核</a></li> | |||
@@ -19,7 +19,7 @@ | |||
<?php include(DEDEMEMBER."/templets/menu.htm");?> | |||
<div class="col-md-9"> | |||
<div class="pannel-main-container shadow-sm rounded"> | |||
<nav class="navbar navbar-expand-lg mb-3 p-0"> | |||
<nav class="navbar navbar-expand-lg p-0"> | |||
<ul class="navbar-nav mr-auto"> | |||
<li class="nav-item"><a class="nav-link <?php echo ($arcrank=='')? 'active' : '';?>" href="content_sg_list.php?channelid=<?php echo $channelid;?>">全部</a></li> | |||
<li class="nav-item"><a class="nav-link<?php echo ($arcrank=='1')? ' active' : '';?>" href="content_sg_list.php?channelid=<?php echo $channelid;?>&arcrank=1">已审核</a></li> | |||
@@ -7,7 +7,7 @@ while ($channel = $dsql->GetArray('addmod')) { | |||
?> | |||
<div class="col-md-3 m-pb-2"> | |||
<ul class="list-group list-group-flush shadow-sm rounded"> | |||
<li class="list-group-item justify-content-between align-items-center rounded <?php echo (isset($_menu_home) && $_menu_home===true)? ' active' : '';?>"><a href="<?php echo $cfg_memberurl;?>/">会员面板</a></li> | |||
<li class="list-group-item justify-content-between align-items-center <?php echo (isset($_menu_home) && $_menu_home===true)? ' active' : '';?>"><a href="<?php echo $cfg_memberurl;?>/">会员面板</a></li> | |||
<li class="list-group-item justify-content-between align-items-center"> | |||
<div data-toggle="collapse" data-target="#collapseMessage">消息管理<span class="badge badge-warning badge-pill ml-2"><?php echo $pms['nums'];?></span><span class="fa fa-angle-down ml-2"></span></div> | |||
<div id="collapseMessage" class="mt-3 collapse<?php echo (isset($_menu_pmex) && $_menu_pmex===true)? ' show' : '';?>"> | |||
@@ -35,7 +35,7 @@ while ($channel = $dsql->GetArray('addmod')) { | |||
</ul> | |||
</div> | |||
</li> | |||
<li class="list-group-item justify-content-between align-items-center rounded <?php echo (isset($_menu_stow) && $_menu_stow===true)? ' active' : '';?>"><a href="<?php echo $cfg_memberurl;?>/mystow.php">我的收藏</a></li> | |||
<li class="list-group-item justify-content-between align-items-center <?php echo (isset($_menu_stow) && $_menu_stow===true)? ' active' : '';?>"><a href="<?php echo $cfg_memberurl;?>/mystow.php">我的收藏</a></li> | |||
<li class="list-group-item justify-content-between align-items-center <?php echo (isset($_menu_buy) && $_menu_buy===true)? ' active' : '';?>"><a href="<?php echo $cfg_memberurl;?>/buy.php">积分钱包</a></li> | |||
<li class="list-group-item justify-content-between align-items-center"> | |||
<div data-toggle="collapse" data-target="#collapseOrder">订单详情<span class="fa fa-angle-down ml-2"></span></div> | |||
@@ -46,6 +46,6 @@ while ($channel = $dsql->GetArray('addmod')) { | |||
</ul> | |||
</div> | |||
</li> | |||
<li class="list-group-item justify-content-between align-items-center rounded <?php if (isset($_menu_edtitem) && $_menu_edtitem === 'base') echo 'active';?>"><a href="<?php echo $cfg_memberurl;?>/edit_baseinfo.php">资料修改</a></li> | |||
<li class="list-group-item justify-content-between align-items-center <?php if (isset($_menu_edtitem) && $_menu_edtitem === 'base') echo 'active';?>"><a href="<?php echo $cfg_memberurl;?>/edit_baseinfo.php">资料修改</a></li> | |||
</ul> | |||
</div> |
@@ -22,7 +22,7 @@ | |||
<?php include(DEDEMEMBER."/templets/menu.htm");?> | |||
<div class="col-md-9"> | |||
<div class="pannel-main-container shadow-sm rounded"> | |||
<nav class="navbar navbar-expand-lg mb-3 p-0"> | |||
<nav class="navbar navbar-expand-lg p-0"> | |||
<ul class="navbar-nav mr-auto"> | |||
<li class="nav-item"><a class="nav-link<?php if ($state === 0) echo ' active';?>" href="pm.php?folder=<?php echo $folder;?>">全部</a></li> | |||
<li class="nav-item"><a class="nav-link<?php if ($state === 1) echo ' active';?>" href="pm.php?folder=<?php echo $folder;?>&state=1">已阅读</a></li> | |||
@@ -15,7 +15,7 @@ | |||
<div class="row"> | |||
<div class="col-md-12"> | |||
<div class="pannel-main-container shadow-sm rounded"> | |||
<nav class="navbar navbar-expand-lg mb-3 p-0"> | |||
<nav class="navbar navbar-expand-lg p-0"> | |||
<ol class="breadcrumb mr-auto"> | |||
<li class="breadcrumb-item"><a href="<?php echo $cfg_memberurl;?>/">会员中心</a></li> | |||
<li class="breadcrumb-item">发布<?php echo $cInfos['typename'];?></li></li> | |||
@@ -15,7 +15,7 @@ | |||
<div class="row"> | |||
<div class="col-md-12"> | |||
<div class="pannel-main-container shadow-sm rounded"> | |||
<nav class="navbar navbar-expand-lg mb-3 p-0"> | |||
<nav class="navbar navbar-expand-lg p-0"> | |||
<ol class="breadcrumb mr-auto"> | |||
<li class="breadcrumb-item"><a href="<?php echo $cfg_memberurl;?>/">会员中心</a></li> | |||
<li class="breadcrumb-item">修改<?php echo $row['title']?></li></li> | |||