@@ -23,7 +23,7 @@ $dlist->Display(); | |||||
function GetSta($sta) | function GetSta($sta) | ||||
{ | { | ||||
if ($sta == 1) return "正常"; | if ($sta == 1) return "正常"; | ||||
else return "<span style='color:#dc3545'>禁用</span>"; | |||||
else return "<span class='text-danger'>禁用</span>"; | |||||
} | } | ||||
function GetMan($sta) | function GetMan($sta) | ||||
{ | { | ||||
@@ -1,76 +0,0 @@ | |||||
<?php | |||||
/** | |||||
* 百度新闻 | |||||
* | |||||
* @version $Id: baidunews.php 1 14:31 2010年7月12日Z tianya $ | |||||
* @package DedeBIZ.Administrator | |||||
* @copyright Copyright (c) 2022, DedeBIZ.COM | |||||
* @license https://www.dedebiz.com/license | |||||
* @link https://www.dedebiz.com | |||||
*/ | |||||
require_once(dirname(__FILE__)."/config.php"); | |||||
$filename = str_replace("..", "", $filename); | |||||
$filename = str_replace("{cmspath}", $cfg_cmspath, $filename); | |||||
if (empty($do)) { | |||||
include DEDEADMIN.'/templets/baidunews.htm'; | |||||
} else { | |||||
$baidunews = "<?xml version=\"1.0\" encoding=\"".$cfg_soft_lang."\" ?>\n"; | |||||
$baidunews .= "<document>\n"; | |||||
$baidunews .= "<webSite>$cfg_webname </webSite>\n"; | |||||
$baidunews .= "<webMaster>$cfg_adminemail </webMaster>\n"; | |||||
$baidunews .= "<updatePeri>$cfg_updateperi </updatePeri>\n"; | |||||
$limit = $cfg_baidunews_limit; | |||||
if ($limit > 100 || $limit < 1) { | |||||
$limit = 100; | |||||
} | |||||
$query = "SELECT maintable.*, addtable.body, arctype.typename | |||||
FROM `#@__archives` maintable | |||||
LEFT JOIN `#@__addonarticle` addtable ON addtable.aid=maintable.id | |||||
LEFT JOIN `#@__arctype` arctype ON arctype.ID=maintable.typeid | |||||
WHERE maintable.channel=1 and maintable.arcrank!=-1 ORDER BY maintable.pubdate DESC LIMIT $limit | |||||
"; | |||||
$dsql->SetQuery($query); | |||||
$dsql->Execute(); | |||||
$proto = IsSSL()? "https://" : "http://"; | |||||
while ($row = $dsql->GetArray()) { | |||||
$title = dede_htmlspecialchars($row['title']); | |||||
$row1 = GetOneArchive($row['id']); | |||||
if ((strpos($row1['arcurl'], 'http://') === false) || (strpos($row1['arcurl'], 'https://') === false)) { | |||||
$link = ($cfg_basehost == '' ? $proto.$_SERVER["HTTP_HOST"].$cfg_cmspath : $cfg_basehost).$row1['arcurl']; | |||||
} else { | |||||
$link = $row1['arcurl']; | |||||
} | |||||
$link = dede_htmlspecialchars($link); | |||||
$description = dede_htmlspecialchars(strip_tags($row['description'])); | |||||
$text = dede_htmlspecialchars(strip_tags($row['body'])); | |||||
$image = $row['litpic'] == '' ? '' : $row['litpic']; | |||||
if ($image != '' && (strpos($image, 'http://') === false) || (strpos($image, 'https://') === false)) { | |||||
$image = ($cfg_basehost == '' ? $proto.$_SERVER["HTTP_HOST"].$cfg_cmspath : $cfg_basehost).$image; | |||||
} | |||||
//$headlineimg = ''; | |||||
$keywords = dede_htmlspecialchars($row['keywords']); | |||||
$category = dede_htmlspecialchars($row['typename']); | |||||
$author = dede_htmlspecialchars($row['writer']); | |||||
$source = dede_htmlspecialchars($row['source']); | |||||
$pubdate = dede_htmlspecialchars(gmdate('Y-m-d H:i', $row['pubdate'] + $cfg_cli_time * 3600)); | |||||
$baidunews .= "<item>\n"; | |||||
$baidunews .= "<title>$title </title>\n"; | |||||
$baidunews .= "<link>$link </link>\n"; | |||||
$baidunews .= "<description>$description </description>\n"; | |||||
$baidunews .= "<text>$text </text>\n"; | |||||
$baidunews .= "<image>$image </image>\n"; | |||||
//$baidunews .= "<headlineimages/>\n"; | |||||
$baidunews .= "<keywords>$keywords </keywords>\n"; | |||||
$baidunews .= "<category>$category </category>\n"; | |||||
$baidunews .= "<author>$author </author>\n"; | |||||
$baidunews .= "<source>$source </source>\n"; | |||||
$baidunews .= "<pubDate>$pubdate </pubDate>\n"; | |||||
$baidunews .= "</item>\n"; | |||||
} | |||||
$baidunews .= "</document>\n"; | |||||
$fname = str_replace("//","/",DEDEROOT.$filename) ; | |||||
$fp = fopen($fname, 'w'); | |||||
fwrite($fp, $baidunews); | |||||
fclose($fp); | |||||
showmsg("<a href='{$filename}' target=\"_blank\">{$filename}生成成功</a>", 'javascript:;'); | |||||
} |
@@ -50,7 +50,7 @@ else if ($dopost == 'savequick') { | |||||
$tempindex = "{style}/index_{$nid}.htm"; | $tempindex = "{style}/index_{$nid}.htm"; | ||||
$templist = "{style}/list_{$nid}.htm"; | $templist = "{style}/list_{$nid}.htm"; | ||||
$temparticle = "{style}/article_{$nid}.htm"; | $temparticle = "{style}/article_{$nid}.htm"; | ||||
$queryTemplate = "INSERT INTO `#@__arctype`(reid,topid,sortrank,typename,namegk,enname,ennamegk,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`) | |||||
$queryTemplate = "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('~reid~','~topid~','~rank~','~typename~','','','','','','~typedir~','$isdefault','$defaultname','$issend','$channeltype','$tempindex','$templist','$temparticle','default','$namerule','$namerule2','0','0','','','~typename~','0','','','0','0','0','','')"; | VALUES('~reid~','~topid~','~rank~','~typename~','','','','','','~typedir~','$isdefault','$defaultname','$issend','$channeltype','$tempindex','$templist','$temparticle','default','$namerule','$namerule2','0','0','','','~typename~','0','','','0','0','0','','')"; | ||||
if (empty($savetype)) { | if (empty($savetype)) { | ||||
foreach ($_POST as $k => $v) { | foreach ($_POST as $k => $v) { | ||||
@@ -176,8 +176,8 @@ else if ($dopost == 'save') { | |||||
exit(); | exit(); | ||||
} | } | ||||
} | } | ||||
$in_query = "INSERT INTO `#@__arctype`(reid,topid,sortrank,typename,namegk,enname,ennamegk,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('$reid','$topid','$sortrank','$typename','$namegk','$enname','$ennamegk','$bigpic','$litimg','$typedir','$isdefault','$defaultname','$issend','$channeltype','$tempindex','$templist','$temparticle','default','$namerule','$namerule2','$ispart','$corank','$description','$keywords','$seotitle','$moresite','$siteurl','$sitepath','$ishidden','$cross','$crossid','$content','$smalltypes')"; | |||||
$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('$reid','$topid','$sortrank','$typename','$cnoverview','$enname','$enoverview','$bigpic','$litimg','$typedir','$isdefault','$defaultname','$issend','$channeltype','$tempindex','$templist','$temparticle','default','$namerule','$namerule2','$ispart','$corank','$description','$keywords','$seotitle','$moresite','$siteurl','$sitepath','$ishidden','$cross','$crossid','$content','$smalltypes')"; | |||||
if (!$dsql->ExecuteNoneQuery($in_query)) { | if (!$dsql->ExecuteNoneQuery($in_query)) { | ||||
ShowMsg("保存目录数据时失败,请检查您的输入资料是否存在问题", "-1"); | ShowMsg("保存目录数据时失败,请检查您的输入资料是否存在问题", "-1"); | ||||
exit(); | exit(); | ||||
@@ -33,9 +33,9 @@ if ($dopost == "save") { | |||||
issend='$issend', | issend='$issend', | ||||
sortrank='$sortrank', | sortrank='$sortrank', | ||||
typename='$typename', | typename='$typename', | ||||
namegk='$namegk', | |||||
cnoverview='$cnoverview', | |||||
enname='$enname', | enname='$enname', | ||||
ennamegk='$ennamegk', | |||||
enoverview='$enoverview', | |||||
bigpic='$bigpic', | bigpic='$bigpic', | ||||
litimg='$litimg', | litimg='$litimg', | ||||
typedir='$typedir', | typedir='$typedir', | ||||
@@ -158,87 +158,87 @@ while ($row = $dsql->GetObject()) { | |||||
PutCookie('lastCid', GetTopid($id), 3600 * 24, "/"); | PutCookie('lastCid', GetTopid($id), 3600 * 24, "/"); | ||||
if ($dopost == 'time') { | if ($dopost == 'time') { | ||||
?> | ?> | ||||
<form name="form1" action="catalog_edit.php" method="post" onSubmit="return checkSubmit();"> | |||||
<input type="hidden" name="dopost" value="savetime"> | |||||
<input type="hidden" name="id" value="<?php echo $id; ?>"> | |||||
<input type="hidden" name="topid" value="<?php echo $myrow['topid']; ?>"> | |||||
<input type="hidden" name="moresite" value="<?php echo $myrow['moresite']; ?>"> | |||||
<table width="100%" cellpadding="0" cellspacing="0"> | |||||
<tr> | |||||
<td width="160" class="bline" height="26" align="center">是否支持投稿:</td> | |||||
<td class="bline"> | |||||
<label><input type='radio' name='issend' value='0' class='np' <?php if ($myrow['issend'] == "0") echo " checked='1' "; ?>> 不支持</label> | |||||
<label><input type='radio' name='issend' value='1' class='np' <?php if ($myrow['issend'] == "1") echo " checked='1' "; ?>> 支持</label> | |||||
</td> | |||||
</tr> | |||||
<tr> | |||||
<td class="bline" height="26" align="center">内容模型:</td> | |||||
<td class="bline"> | |||||
<?php | |||||
foreach ($channelArray as $k => $arr) { | |||||
if ($k == $channelid) echo "{$arr['typename']} | {$arr['nid']}"; | |||||
} | |||||
?> | |||||
<a href='catalog_edit.php?id=<?php echo $id; ?>' class='btn btn-success btn-sm'>更多模型</a> | |||||
</td> | |||||
</tr> | |||||
<tr> | |||||
<td class="bline" height="26" align="center">栏目名称:</td> | |||||
<td class="bline"><input name="typename" type="text" id="typename" value="<?php echo $myrow['typename'] ?>" style="width:260px" class="iptxt"></td> | |||||
</tr> | |||||
<tr> | |||||
<td class="bline" height="26" align="center"> 排列顺序:</td> | |||||
<td class="bline"> <input name="sortrank" type="text" value="<?php echo $myrow['sortrank'] ?>" style="width:100px" class="iptxt">(由低 > 高)</td> | |||||
</tr> | |||||
<tr> | |||||
<td class="bline" height="26" align="center">浏览权限:</td> | |||||
<td class="bline"> | |||||
<select name="corank" id="corank" style="width:100px"> | |||||
<?php | |||||
$dsql->SetQuery("SELECT * FROM `#@__arcrank` WHERE `rank` >= 0"); | |||||
$dsql->Execute(); | |||||
while ($row = $dsql->GetObject()) { | |||||
if ($myrow['corank'] == $row->rank) | |||||
echo "<option value='".$row->rank."' selected>".$row->membername."</option>\r\n"; | |||||
else | |||||
echo "<option value='".$row->rank."'>".$row->membername."</option>\r\n"; | |||||
} | |||||
?> | |||||
</select>(仅限制栏目里的文档浏览权限) | |||||
</td> | |||||
</tr> | |||||
<tr> | |||||
<td class="bline" height="26" align="center">文件保存目录:</td> | |||||
<td class="bline"><input name="typedir" type="text" id="typedir" value="<?php echo $myrow['typedir'] ?>" style="width:260px"class="iptxt"></td> | |||||
</tr> | |||||
<tr> | |||||
<td height="26" align="center" class="bline">栏目列表选项:</td> | |||||
<td class="bline"> | |||||
<label><input type='radio' name='isdefault' value='1' class='np' <?php if ($myrow['isdefault'] == 1) echo " checked='1' "; ?>> 链接到默认页</label> | |||||
<label><input type='radio' name='isdefault' value='0' class='np' <?php if ($myrow['isdefault'] == 0) echo " checked='1' "; ?>> 链接到列表第一页</label> | |||||
<label><input type='radio' name='isdefault' value='-1' class='np' <?php if ($myrow['isdefault'] == -1) echo " checked='1' "; ?>> 使用动态页</label> | |||||
</td> | |||||
</tr> | |||||
<tr> | |||||
<td class="bline" height="26" align="center">默认页的名称:</td> | |||||
<td class="bline"><input name="defaultname" type="text" value="<?php echo $myrow['defaultname'] ?>" style="width:260px" class="iptxt"></td> | |||||
</tr> | |||||
<tr> | |||||
<td height="26" class="bline" align="center">栏目属性:</td> | |||||
<td class="bline"> | |||||
<label><input name="ispart" type="radio" id="radio" value="0" class='np' <?php if ($myrow['ispart'] == 0) echo " checked='1' "; ?>> 最终列表栏目(允许在本栏目发布文档,并生成文档列表)</label><br> | |||||
<label><input name="ispart" type="radio" id="radio2" value="1" class='np' <?php if ($myrow['ispart'] == 1) echo " checked='1' "; ?>> 频道封面(栏目本身不允许发布文档)</label><br> | |||||
<label><input name="ispart" type="radio" id="radio3" value="2" class='np' <?php if ($myrow['ispart'] == 2) echo " checked='1' "; ?>> 外部连接(在"文件保存目录"处填写网址)</label> | |||||
</td> | |||||
</tr> | |||||
<tr> | |||||
<td bgcolor="#F8FCF1" colspan="2" align="center" class="py-3"> | |||||
<button onclick='getSelCat("<?php echo $targetid; ?>");' class='btn btn-success btn-sm'>保存</button> | |||||
<button type='button' onclick='CloseMsg()' class='btn btn-success btn-sm'>关闭</button> | |||||
</td> | |||||
</tr> | |||||
</table> | |||||
</form> | |||||
<form name="form1" action="catalog_edit.php" method="post" onSubmit="return checkSubmit();"> | |||||
<input type="hidden" name="dopost" value="savetime"> | |||||
<input type="hidden" name="id" value="<?php echo $id; ?>"> | |||||
<input type="hidden" name="topid" value="<?php echo $myrow['topid']; ?>"> | |||||
<input type="hidden" name="moresite" value="<?php echo $myrow['moresite']; ?>"> | |||||
<table width="100%" cellpadding="0" cellspacing="0"> | |||||
<tr> | |||||
<td width="160" class="bline" height="26" align="center">是否支持投稿:</td> | |||||
<td class="bline"> | |||||
<label><input type='radio' name='issend' value='0' class='np' <?php if ($myrow['issend'] == "0") echo " checked='1' "; ?>> 不支持</label> | |||||
<label><input type='radio' name='issend' value='1' class='np' <?php if ($myrow['issend'] == "1") echo " checked='1' "; ?>> 支持</label> | |||||
</td> | |||||
</tr> | |||||
<tr> | |||||
<td class="bline" height="26" align="center">内容模型:</td> | |||||
<td class="bline"> | |||||
<?php | |||||
foreach ($channelArray as $k => $arr) { | |||||
if ($k == $channelid) echo "{$arr['typename']} | {$arr['nid']}"; | |||||
} | |||||
?> | |||||
<a href='catalog_edit.php?id=<?php echo $id; ?>' class='btn btn-success btn-sm'>更多模型</a> | |||||
</td> | |||||
</tr> | |||||
<tr> | |||||
<td class="bline" height="26" align="center">栏目名称:</td> | |||||
<td class="bline"><input name="typename" type="text" id="typename" value="<?php echo $myrow['typename'] ?>" style="width:260px" class="iptxt"></td> | |||||
</tr> | |||||
<tr> | |||||
<td class="bline" height="26" align="center"> 排列顺序:</td> | |||||
<td class="bline"> <input name="sortrank" type="text" value="<?php echo $myrow['sortrank'] ?>" style="width:100px" class="iptxt">(由低 > 高)</td> | |||||
</tr> | |||||
<tr> | |||||
<td class="bline" height="26" align="center">浏览权限:</td> | |||||
<td class="bline"> | |||||
<select name="corank" id="corank" style="width:100px"> | |||||
<?php | |||||
$dsql->SetQuery("SELECT * FROM `#@__arcrank` WHERE `rank` >= 0"); | |||||
$dsql->Execute(); | |||||
while ($row = $dsql->GetObject()) { | |||||
if ($myrow['corank'] == $row->rank) | |||||
echo "<option value='".$row->rank."' selected>".$row->membername."</option>\r\n"; | |||||
else | |||||
echo "<option value='".$row->rank."'>".$row->membername."</option>\r\n"; | |||||
} | |||||
?> | |||||
</select>(仅限制栏目里的文档浏览权限) | |||||
</td> | |||||
</tr> | |||||
<tr> | |||||
<td class="bline" height="26" align="center">文件保存目录:</td> | |||||
<td class="bline"><input name="typedir" type="text" id="typedir" value="<?php echo $myrow['typedir'] ?>" style="width:260px"class="iptxt"></td> | |||||
</tr> | |||||
<tr> | |||||
<td height="26" align="center" class="bline">栏目列表选项:</td> | |||||
<td class="bline"> | |||||
<label><input type='radio' name='isdefault' value='1' class='np' <?php if ($myrow['isdefault'] == 1) echo " checked='1' "; ?>> 链接到默认页</label> | |||||
<label><input type='radio' name='isdefault' value='0' class='np' <?php if ($myrow['isdefault'] == 0) echo " checked='1' "; ?>> 链接到列表第一页</label> | |||||
<label><input type='radio' name='isdefault' value='-1' class='np' <?php if ($myrow['isdefault'] == -1) echo " checked='1' "; ?>> 使用动态页</label> | |||||
</td> | |||||
</tr> | |||||
<tr> | |||||
<td class="bline" height="26" align="center">默认页的名称:</td> | |||||
<td class="bline"><input name="defaultname" type="text" value="<?php echo $myrow['defaultname'] ?>" style="width:260px" class="iptxt"></td> | |||||
</tr> | |||||
<tr> | |||||
<td height="26" class="bline" align="center">栏目属性:</td> | |||||
<td class="bline"> | |||||
<label><input name="ispart" type="radio" id="radio" value="0" class='np' <?php if ($myrow['ispart'] == 0) echo " checked='1' "; ?>> 最终列表栏目(允许在本栏目发布文档,并生成文档列表)</label><br> | |||||
<label><input name="ispart" type="radio" id="radio2" value="1" class='np' <?php if ($myrow['ispart'] == 1) echo " checked='1' "; ?>> 频道封面(栏目本身不允许发布文档)</label><br> | |||||
<label><input name="ispart" type="radio" id="radio3" value="2" class='np' <?php if ($myrow['ispart'] == 2) echo " checked='1' "; ?>> 外部连接(在"文件保存目录"处填写网址)</label> | |||||
</td> | |||||
</tr> | |||||
<tr> | |||||
<td bgcolor="#F8FCF1" colspan="2" align="center" class="py-3"> | |||||
<button onclick='getSelCat("<?php echo $targetid; ?>");' class='btn btn-success btn-sm'>保存</button> | |||||
<button type='button' onclick='CloseMsg()' class='btn btn-success btn-sm'>关闭</button> | |||||
</td> | |||||
</tr> | |||||
</table> | |||||
</form> | |||||
<?php | <?php | ||||
exit(); | exit(); | ||||
} else { | } else { | ||||
@@ -14,11 +14,11 @@ if (empty($uploadfile)) { | |||||
$uploadfile = ""; | $uploadfile = ""; | ||||
} | } | ||||
if (!is_uploaded_file($uploadfile)) { | if (!is_uploaded_file($uploadfile)) { | ||||
ShowMsg("您没有选择上传的文件!", "-1"); | |||||
ShowMsg("您没有选择上传的文件", "-1"); | |||||
exit(); | exit(); | ||||
} | } | ||||
if (!preg_match("#^text#", $uploadfile_type)) { | if (!preg_match("#^text#", $uploadfile_type)) { | ||||
ShowMsg("您上传的不是文本类型附件!", "-1"); | |||||
ShowMsg("您上传的不是文本类型附件", "-1"); | |||||
exit(); | exit(); | ||||
} | } | ||||
if (!preg_match("#\.(".$cfg_txttype.")#i", $uploadfile_name)) { | if (!preg_match("#\.(".$cfg_txttype.")#i", $uploadfile_name)) { | ||||
@@ -116,7 +116,7 @@ $adminMenu1 | |||||
<m:item name='会员短信管理' link='member_pm.php' rank='member_Type' target='main' /> | <m:item name='会员短信管理' link='member_pm.php' rank='member_Type' target='main' /> | ||||
</m:top> | </m:top> | ||||
$adminMenu2 | $adminMenu2 | ||||
<m:top item='1_5_10_' name='系统帮助' display='none'> | |||||
<m:top item='5_10_' name='系统帮助' display='none'> | |||||
<m:item name='系统概况' link='$cfg_biz_helpUrl' rank='' target='_blank' /> | <m:item name='系统概况' link='$cfg_biz_helpUrl' rank='' target='_blank' /> | ||||
<m:item name='代码托管' link='$cfg_biz_gitUrl' rank='' target='_blank' /> | <m:item name='代码托管' link='$cfg_biz_gitUrl' rank='' target='_blank' /> | ||||
</m:top>"; | </m:top>"; |
@@ -20,9 +20,9 @@ $dlist->display(); | |||||
function GetSta($sta, $id) | function GetSta($sta, $id) | ||||
{ | { | ||||
if ($sta == 1) { | if ($sta == 1) { | ||||
return ($id != -1 ? "启用 > <a href='mychannel_edit.php?dopost=hide&id=$id'>禁用</a>" : "固定项目"); | |||||
return ($id != -1 ? "<span class='text-success'>启用</span> > <a href='mychannel_edit.php?dopost=hide&id=$id'>禁用</a>" : "固定项目"); | |||||
} else { | } else { | ||||
return "禁用 > <a href='mychannel_edit.php?dopost=show&id=$id'>启用</a>"; | |||||
return "<span class='text-danger'>禁用</span> > <a href='mychannel_edit.php?dopost=show&id=$id'>启用</a>"; | |||||
} | } | ||||
} | } | ||||
function IsSystem($s) | function IsSystem($s) | ||||
@@ -11,9 +11,9 @@ | |||||
require_once(dirname(__FILE__)."/config.php"); | require_once(dirname(__FILE__)."/config.php"); | ||||
require_once(DEDEINC."/datalistcp.class.php"); | require_once(DEDEINC."/datalistcp.class.php"); | ||||
CheckPurview('shops_Operations'); | CheckPurview('shops_Operations'); | ||||
if (!isset($oid)) exit("<a href='javascript:window.close()'>无效操作!</a>"); | |||||
if (!isset($oid)) exit("<a href='javascript:window.close()'>无效操作</a>"); | |||||
$oid = preg_replace("#[^-0-9A-Z]#", "", $oid); | $oid = preg_replace("#[^-0-9A-Z]#", "", $oid); | ||||
if (empty($oid)) exit("<a href='javascript:window.close()'>无效订单号!</a>"); | |||||
if (empty($oid)) exit("<a href='javascript:window.close()'>无效订单号</a>"); | |||||
$row = $dsql->GetOne("SELECT * FROM `#@__shops_userinfo` WHERE oid='$oid'"); | $row = $dsql->GetOne("SELECT * FROM `#@__shops_userinfo` WHERE oid='$oid'"); | ||||
$sql = "SELECT o.*,p.title,p.price as uprice,d.dname FROM `#@__shops_orders` as o left join `#@__shops_products` as p on o.oid=p.oid left join `#@__shops_delivery` as d on d.pid=o.pid WHERE o.oid='$oid'"; | $sql = "SELECT o.*,p.title,p.price as uprice,d.dname FROM `#@__shops_orders` as o left join `#@__shops_products` as p on o.oid=p.oid left join `#@__shops_delivery` as d on d.pid=o.pid WHERE o.oid='$oid'"; | ||||
$dlist = new DataListCP(); | $dlist = new DataListCP(); | ||||
@@ -10,13 +10,13 @@ | |||||
*/ | */ | ||||
require_once(dirname(__FILE__)."/config.php"); | require_once(dirname(__FILE__)."/config.php"); | ||||
CheckPurview('shops_Operations'); | CheckPurview('shops_Operations'); | ||||
if (!isset($oid)) exit("<a href='javascript:window.close()'>无效操作!</a>"); | |||||
if (!isset($oid)) exit("<a href='javascript:window.close()'>无效操作</a>"); | |||||
$oid = preg_replace("#[^-0-9A-Z]#", "", $oid); | $oid = preg_replace("#[^-0-9A-Z]#", "", $oid); | ||||
if (empty($oid)) exit("<a href='javascript:window.close()'>无效订单号!</a>"); | |||||
if (empty($oid)) exit("<a href='javascript:window.close()'>无效订单号</a>"); | |||||
$rows = $dsql->GetOne("SELECT * FROM `#@__shops_userinfo` WHERE oid='$oid' LIMIT 0,1"); | $rows = $dsql->GetOne("SELECT * FROM `#@__shops_userinfo` WHERE oid='$oid' LIMIT 0,1"); | ||||
if (!is_array($rows)) { | if (!is_array($rows)) { | ||||
$dsql->Close(); | $dsql->Close(); | ||||
exit("<a href='javascript:window.close()'>该订单下没相关用户信息!</a>"); | |||||
exit("<a href='javascript:window.close()'>该订单下没相关用户信息</a>"); | |||||
} | } | ||||
$row = $dsql->GetOne("SELECT pid,dprice FROM `#@__shops_orders` WHERE oid='$oid'"); | $row = $dsql->GetOne("SELECT pid,dprice FROM `#@__shops_orders` WHERE oid='$oid'"); | ||||
if (is_array($row)) { | if (is_array($row)) { | ||||
@@ -26,7 +26,7 @@ | |||||
<tr> | <tr> | ||||
<td align="center"> | <td align="center"> | ||||
<table width="98%" cellspacing="0" cellpadding="5"> | <table width="98%" cellspacing="0" cellpadding="5"> | ||||
<?php foreach ($row['soniterm'] as $rows) {?> | |||||
<?php foreach ($row['soniterm'] as $rows) { ?> | |||||
<tr> | <tr> | ||||
<td align="left"><a href="<?php echo $rows['linkurl'] ?>" target="main"><?php echo $rows['title'] ?></a><br><?php echo $rows['description'] ?></td> | <td align="left"><a href="<?php echo $rows['linkurl'] ?>" target="main"><?php echo $rows['title'] ?></a><br><?php echo $rows['description'] ?></td> | ||||
</tr> | </tr> | ||||
@@ -1,4 +1,4 @@ | |||||
{dede:config.pagesize value='20' /} | |||||
{dede:config.pagesize value='30'/} | |||||
<!DOCTYPE html> | <!DOCTYPE html> | ||||
<html> | <html> | ||||
<head> | <head> | ||||
@@ -1,41 +0,0 @@ | |||||
<!DOCTYPE html> | |||||
<html> | |||||
<head> | |||||
<meta charset="<?php echo $cfg_soft_lang; ?>"> | |||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"> | |||||
<title>百度新闻地图</title> | |||||
<link rel="stylesheet" href="../static/web/css/bootstrap.min.css"> | |||||
<link rel="stylesheet" href="../static/web/font/css/font-awesome.min.css"> | |||||
<link rel="stylesheet" href="../static/web/css/admin.css"> | |||||
</head> | |||||
<body> | |||||
<table width="98%" align="center" cellpadding="4" cellspacing="1" class="table maintable mt-3 mb-3"> | |||||
<tr> | |||||
<td colspan="2" background="../static/web/img/tbg.gif" style="padding-left:10px">百度新闻地图</td> | |||||
</tr> | |||||
<tr> | |||||
<td colspan="2"> | |||||
<p>《互联网新闻开放协议》是百度新闻搜索制定的搜索引擎新闻源收录标准,网站可将发布的新闻内容制作成遵循此开放协议的XML格式的网页(独立于原有的新闻发布形式)供搜索引擎索引</p> | |||||
<p> <a href="http://news.baidu.com/newsop.html#kg" target="_blank">详情参见</a></p> | |||||
<p>配置的相关参数在 <a href="sys_info.php">系统设置</a>-其他选项中调整</p> | |||||
<p>只适用于文章频道,数据表为V6默认的</p> | |||||
</td> | |||||
</tr> | |||||
<form id="form2" name="form1" method="post" action="?do=yes" target="stafrm"> | |||||
<tr> | |||||
<td>文件名:</td> | |||||
<td><input name="filename" type="text" id="textfield" value="{cmspath}/a/baidunews.xml" size="30" class='alltxt' /></td> | |||||
</tr> | |||||
<tr> | |||||
<td height="26" bgcolor="#F8FCF1" colspan="2" align="center"><button name="button" type="submit" class="btn btn-success btn-sm" id="button">开始生成</button></td> | |||||
</tr> | |||||
</form> | |||||
<tr> | |||||
<td colspan="2">状态:</td> | |||||
</tr> | |||||
<tr> | |||||
<td align="center" colspan="2"><iframe name="stafrm" frameborder="0" id="stafrm" width="96%" height="360px"></td> | |||||
</tr> | |||||
</table> | |||||
</body> | |||||
</html> |
@@ -31,49 +31,26 @@ | |||||
?> | ?> | ||||
<input type="hidden" name="ID_<?php echo $k?>" value="<?php echo $row->tid?>"> | <input type="hidden" name="ID_<?php echo $k?>" value="<?php echo $row->tid?>"> | ||||
<tr align="center"> | <tr align="center"> | ||||
<td height="26"> | |||||
<input name="pname_<?php echo $k?>" value="<?php echo $row->pname?>" type="text" id="pname_<?php echo $k?>" class='pubinputs' style="width:90%"> | |||||
</td> | |||||
<td height="26"> | |||||
<input name="num_<?php echo $k?>" value="<?php echo $row->num?>" type="text" id="num_<?php echo $k?>" class='pubinputs' style="width:80%"> | |||||
</td> | |||||
<td> | |||||
<input name="money_<?php echo $k?>" value="<?php echo $row->money?>" type="text" id="money_<?php echo $k?>" class='pubinputs' style="width:80%"> | |||||
(元) | |||||
</td> | |||||
<td> | |||||
<input name="check_<?php echo $k?>" type="checkbox" id="check_<?php echo $k?>" value="1" checked='1' | |||||
class='np'> | |||||
保留 | |||||
</td> | |||||
<td height="26"><input name="pname_<?php echo $k?>" value="<?php echo $row->pname?>" type="text" id="pname_<?php echo $k?>" class='pubinputs' style="width:90%"></td> | |||||
<td height="26"><input name="num_<?php echo $k?>" value="<?php echo $row->num?>" type="text" id="num_<?php echo $k?>" class='pubinputs' style="width:80%"></td> | |||||
<td><input name="money_<?php echo $k?>" value="<?php echo $row->money?>" type="text" id="money_<?php echo $k?>" class='pubinputs' style="width:80%">(元)</td> | |||||
<td><input name="check_<?php echo $k?>" type="checkbox" id="check_<?php echo $k?>" value="1" checked='1' class='np'> 保留</td> | |||||
</tr> | </tr> | ||||
<?php | <?php | ||||
} | |||||
?> | |||||
} | |||||
?> | |||||
<input type="hidden" name="idend" value="<?php echo $k?>"> | <input type="hidden" name="idend" value="<?php echo $k?>"> | ||||
<tr bgcolor="#F8FCF1"> | <tr bgcolor="#F8FCF1"> | ||||
<td height="26" colspan="4" bgcolor="#f8f8f8" style="padding-left:10px"> | |||||
新增一个点卡产品类型:</td> | |||||
<td height="26" colspan="4" bgcolor="#f8f8f8" style="padding-left:10px">新增一个点卡产品类型:</td> | |||||
</tr> | </tr> | ||||
<tr height="26" align="center"> | <tr height="26" align="center"> | ||||
<td> | |||||
<input name="pname_new" type="text" id="pname_new" class='pubinputs' style="width:90%"> | |||||
</td> | |||||
<td> | |||||
<input name="num_new" value="100" type="text" id="num_new" class='pubinputs' style="width:80%"> | |||||
</td> | |||||
<td> | |||||
<input name="money_new" type="text" id="money_new" class='pubinputs' style='width:80%' value="30"> | |||||
(元) | |||||
</td> | |||||
<td align="center"> | |||||
<input name="check_new" type="checkbox" id="check_new" value="1" checked='1' class='np'> | |||||
新增 </td> | |||||
<td><input name="pname_new" type="text" id="pname_new" class='pubinputs' style="width:90%"></td> | |||||
<td><input name="num_new" value="100" type="text" id="num_new" class='pubinputs' style="width:80%"></td> | |||||
<td><input name="money_new" type="text" id="money_new" class='pubinputs' style='width:80%' value="30">(元)</td> | |||||
<td align="center"><input name="check_new" type="checkbox" id="check_new" value="1" checked='1' class='np'> 新增</td> | |||||
</tr> | </tr> | ||||
<tr> | <tr> | ||||
<td colspan="4" align="center" bgcolor="#f8f8f8" class="py-3"> | |||||
<button type="submit" class="btn btn-success btn-sm">保存</button> | |||||
</td> | |||||
<td colspan="4" align="center" bgcolor="#f8f8f8" class="py-3"><button type="submit" class="btn btn-success btn-sm">保存</button></td> | |||||
</tr> | </tr> | ||||
</form> | </form> | ||||
</table> | </table> | ||||
@@ -217,16 +217,16 @@ | |||||
<td class="bline"><input name="typename" type="text" class="iptxt" style="width:260px"></td> | <td class="bline"><input name="typename" type="text" class="iptxt" style="width:260px"></td> | ||||
</tr> | </tr> | ||||
<tr> | <tr> | ||||
<td class="bline" height="26" style="padding-left:10px">中文概况:</td> | |||||
<td class="bline"><input name="namegk" type="text" class="iptxt" style="width:260px"></td> | |||||
<td class="bline" height="26" style="padding-left:10px">中文概述:</td> | |||||
<td class="bline"><input name="cnoverview" type="text" class="iptxt" style="width:260px"></td> | |||||
</tr> | </tr> | ||||
<tr> | <tr> | ||||
<td class="bline" height="26" style="padding-left:10px">英文名称:</td> | <td class="bline" height="26" style="padding-left:10px">英文名称:</td> | ||||
<td class="bline"><input name="enname" type="text" class="iptxt" style="width:260px"></td> | <td class="bline"><input name="enname" type="text" class="iptxt" style="width:260px"></td> | ||||
</tr> | </tr> | ||||
<tr> | <tr> | ||||
<td class="bline" height="26" style="padding-left:10px">英文概况:</td> | |||||
<td class="bline"><input name="ennamegk" type="text" class="iptxt" style="width:260px"></td> | |||||
<td class="bline" height="26" style="padding-left:10px">英文概述:</td> | |||||
<td class="bline"><input name="enoverview" type="text" class="iptxt" style="width:260px"></td> | |||||
</tr> | </tr> | ||||
<tr> | <tr> | ||||
<td class="bline" height="26" style="padding-left:10px">栏目大图:</td> | <td class="bline" height="26" style="padding-left:10px">栏目大图:</td> | ||||
@@ -194,16 +194,16 @@ | |||||
<td class="bline"><input name="typename" type="text" value="<?php echo $myrow['typename']?>" class="iptxt" style="width:260px"></td> | <td class="bline"><input name="typename" type="text" value="<?php echo $myrow['typename']?>" class="iptxt" style="width:260px"></td> | ||||
</tr> | </tr> | ||||
<tr> | <tr> | ||||
<td class="bline" height="26" style="padding-left:10px">中文概况:</td> | |||||
<td class="bline"><input name="namegk" type="text" value="<?php echo $myrow['namegk']?>" class="iptxt" style="width:260px"></td> | |||||
<td class="bline" height="26" style="padding-left:10px">中文概述:</td> | |||||
<td class="bline"><input name="cnoverview" type="text" value="<?php echo $myrow['cnoverview']?>" class="iptxt" style="width:260px"></td> | |||||
</tr> | </tr> | ||||
<tr> | <tr> | ||||
<td class="bline" height="26" style="padding-left:10px">英文名称:</td> | <td class="bline" height="26" style="padding-left:10px">英文名称:</td> | ||||
<td class="bline"><input name="enname" type="text" value="<?php echo $myrow['enname']?>" class="iptxt" style="width:260px"></td> | <td class="bline"><input name="enname" type="text" value="<?php echo $myrow['enname']?>" class="iptxt" style="width:260px"></td> | ||||
</tr> | </tr> | ||||
<tr> | <tr> | ||||
<td class="bline" height="26" style="padding-left:10px">英文概况:</td> | |||||
<td class="bline"><input name="ennamegk" type="text" value="<?php echo $myrow['ennamegk']?>" class="iptxt" style="width:260px"></td> | |||||
<td class="bline" height="26" style="padding-left:10px">英文概述:</td> | |||||
<td class="bline"><input name="enoverview" type="text" value="<?php echo $myrow['enoverview']?>" class="iptxt" style="width:260px"></td> | |||||
</tr> | </tr> | ||||
<tr> | <tr> | ||||
<td class="bline" height="26" style="padding-left:10px">栏目大图:</td> | <td class="bline" height="26" style="padding-left:10px">栏目大图:</td> | ||||
@@ -244,7 +244,7 @@ | |||||
</tr> | </tr> | ||||
<tr> | <tr> | ||||
<td class="bline" height="26" style="padding-left:10px">文件保存目录:</td> | <td class="bline" height="26" style="padding-left:10px">文件保存目录:</td> | ||||
<td class="bline"><input name="typedir" type="text" id="typedir" value="<?php echo $myrow['typedir']?>" class="iptxt" style="width:260px">(填写{cmspath}/a/b/c生成目录“域名/a/b/c”标签{cmspath}必填)</td> | |||||
<td class="bline"><input name="typedir" type="text" id="typedir" value="<?php echo $myrow['typedir']?>" class="iptxt" style="width:260px">(标签“{cmspath}”必填,请勿删除)</td> | |||||
</tr> | </tr> | ||||
<tr> | <tr> | ||||
<td height="26" style="padding-left:10px">栏目列表选项:</td> | <td height="26" style="padding-left:10px">栏目列表选项:</td> | ||||
@@ -29,13 +29,13 @@ | |||||
<td width="70%">属性名称</td> | <td width="70%">属性名称</td> | ||||
</tr> | </tr> | ||||
<?php | <?php | ||||
$dsql->SetQuery(" Select * From `#@__arcatt` order by sortid asc "); | |||||
$dsql->Execute(); | |||||
$k=0; | |||||
while($row = $dsql->GetObject()) | |||||
{ | |||||
$k++; | |||||
?> | |||||
$dsql->SetQuery(" Select * From `#@__arcatt` order by sortid asc "); | |||||
$dsql->Execute(); | |||||
$k=0; | |||||
while($row = $dsql->GetObject()) | |||||
{ | |||||
$k++; | |||||
?> | |||||
<input type="hidden" name="att_<?php echo $k?>" value="<?php echo $row->att?>"> | <input type="hidden" name="att_<?php echo $k?>" value="<?php echo $row->att?>"> | ||||
<tr> | <tr> | ||||
<td align="center"><?php echo $row->att; ?></td> | <td align="center"><?php echo $row->att; ?></td> | ||||
@@ -43,13 +43,11 @@ | |||||
<td><input name="attname_<?php echo $k?>" value="<?php echo $row->attname; ?>" type="text" id="attname_<?php echo $k?>" size="30" class='pubinputs'></td> | <td><input name="attname_<?php echo $k?>" value="<?php echo $row->attname; ?>" type="text" id="attname_<?php echo $k?>" size="30" class='pubinputs'></td> | ||||
</tr> | </tr> | ||||
<?php | <?php | ||||
} | |||||
?> | |||||
} | |||||
?> | |||||
<input type="hidden" name="idend" value="<?php echo $k?>"> | <input type="hidden" name="idend" value="<?php echo $k?>"> | ||||
<tr> | <tr> | ||||
<td colspan="3" align="center" class="py-3"> | |||||
<button type="submit" class="btn btn-success btn-sm">保存</button> | |||||
</td> | |||||
<td colspan="3" align="center" class="py-3"><button type="submit" class="btn btn-success btn-sm">保存</button></td> | |||||
</tr> | </tr> | ||||
</form> | </form> | ||||
</table> | </table> | ||||
@@ -258,9 +258,7 @@ | |||||
</td> | </td> | ||||
</tr> | </tr> | ||||
<tr> | <tr> | ||||
<td align="center" class="py-3"> | |||||
<button name="Submit2" type="submit" id="Submit2" class="btn btn-success btn-sm">保存</button> | |||||
</td> | |||||
<td align="center" class="py-3"><button name="Submit2" type="submit" id="Submit2" class="btn btn-success btn-sm">保存</button></td> | |||||
</tr> | </tr> | ||||
</table> | </table> | ||||
</td> | </td> | ||||
@@ -250,9 +250,7 @@ | |||||
</td> | </td> | ||||
</tr> | </tr> | ||||
<tr> | <tr> | ||||
<td align="center" class="py-3"> | |||||
<button name="Submit2" type="submit" id="Submit2" class="btn btn-success btn-sm">保存</button> | |||||
</td> | |||||
<td align="center" class="py-3"><button name="Submit2" type="submit" id="Submit2" class="btn btn-success btn-sm">保存</button></td> | |||||
</tr> | </tr> | ||||
</table> | </table> | ||||
</td> | </td> | ||||
@@ -17,7 +17,8 @@ | |||||
<a href="friendlink_main.php">友情链接管理</a> | <a href="friendlink_main.php">友情链接管理</a> | ||||
<a href="friendlink_add.php" class="btn btn-success btn-sm">增加链接</a> | <a href="friendlink_add.php" class="btn btn-success btn-sm">增加链接</a> | ||||
<a href="friendlink_type.php" class="btn btn-success btn-sm">网站类型管理</a> | <a href="friendlink_type.php" class="btn btn-success btn-sm">网站类型管理</a> | ||||
<a href='../apps/flink_add.php' target='_blank' class="btn btn-success btn-sm">外部申请表单</a></td> | |||||
<a href='../apps/flink_add.php' target='_blank' class="btn btn-success btn-sm">外部申请表单</a> | |||||
</td> | |||||
</tr> | </tr> | ||||
<tr bgcolor="#F8FCF1"> | <tr bgcolor="#F8FCF1"> | ||||
<td width="4%" height="26" align="center">类型ID</td> | <td width="4%" height="26" align="center">类型ID</td> | ||||
@@ -1,4 +1,4 @@ | |||||
{dede:config.pagesize value="30"/} | |||||
{dede:config.pagesize value='30'/} | |||||
<!DOCTYPE html> | <!DOCTYPE html> | ||||
<html> | <html> | ||||
<head> | <head> | ||||
@@ -1,4 +1,4 @@ | |||||
{dede:config name='pagesize' value='30' /} | |||||
{dede:config name='pagesize' value='30'/} | |||||
<!DOCTYPE html> | <!DOCTYPE html> | ||||
<html> | <html> | ||||
<head> | <head> | ||||
@@ -56,9 +56,7 @@ | |||||
</tr>'} | </tr>'} | ||||
<tr height="26" align="center" onmousemove="javascript:this.bgColor='#F8FCF1';" onmouseout="javascript:this.bgColor='#ffffff';"> | <tr height="26" align="center" onmousemove="javascript:this.bgColor='#F8FCF1';" onmouseout="javascript:this.bgColor='#ffffff';"> | ||||
<td>{dede:field.id /}</td> | <td>{dede:field.id /}</td> | ||||
<td> | |||||
<a href='mychannel_edit.php?id={dede:field.id/}&dopost=edit'>{dede:field.typename /}</a> | |||||
</td> | |||||
<td><a href='mychannel_edit.php?id={dede:field.id/}&dopost=edit'>{dede:field.typename /}</a></td> | |||||
<td>{dede:field.nid /}</td> | <td>{dede:field.nid /}</td> | ||||
<td>{dede:field.addtable function="str_replace('#@__',$cfg_dbprefix,@me)" /}</td> | <td>{dede:field.addtable function="str_replace('#@__',$cfg_dbprefix,@me)" /}</td> | ||||
<td>{dede:field.isshow function="GetSta(@me,$fields['id'])" /}</td> | <td>{dede:field.isshow function="GetSta(@me,$fields['id'])" /}</td> | ||||
@@ -1,4 +1,4 @@ | |||||
{dede:config.pagesize value="30"/} | |||||
{dede:config.pagesize value='30'/} | |||||
<!DOCTYPE html> | <!DOCTYPE html> | ||||
<html> | <html> | ||||
<head> | <head> | ||||
@@ -103,9 +103,7 @@ | |||||
</td> | </td> | ||||
</tr> | </tr> | ||||
<tr> | <tr> | ||||
<td colspan="2" align="center" class="py-3"> | |||||
<button type="submit" class="btn btn-success btn-sm" class="coolbg np">保存</button> | |||||
</td> | |||||
<td colspan="2" align="center" class="py-3"><button type="submit" class="btn btn-success btn-sm" class="coolbg np">保存</button></td> | |||||
</tr> | </tr> | ||||
</table> | </table> | ||||
</form> | </form> | ||||
@@ -78,9 +78,7 @@ | |||||
</td> | </td> | ||||
</tr> | </tr> | ||||
<tr> | <tr> | ||||
<td colspan="2" align="center" class="py-3"> | |||||
<button type="submit" class="btn btn-success btn-sm" onClick="DoSubmit('gettag')" class="coolbg np">保存</button> | |||||
</td> | |||||
<td colspan="2" align="center" class="py-3"><button type="submit" class="btn btn-success btn-sm" onClick="DoSubmit('gettag')" class="coolbg np">保存</button></td> | |||||
</tr> | </tr> | ||||
</table> | </table> | ||||
</td> | </td> | ||||
@@ -38,7 +38,7 @@ | |||||
<table width="100%" cellspacing="0" cellpadding="0"> | <table width="100%" cellspacing="0" cellpadding="0"> | ||||
<tr> | <tr> | ||||
<td width="30%"> | <td width="30%"> | ||||
<select name="tablename" id="tablename" style="width:100%;height:auto" size="12"> | |||||
<select name="tablename" id="tablename" style="width:100%;height:auto" size="16"> | |||||
<?php | <?php | ||||
if ($cfg_dbtype=="sqlite") { | if ($cfg_dbtype=="sqlite") { | ||||
$query = "SELECT name FROM sqlite_master WHERE type='table' ORDER BY name;"; | $query = "SELECT name FROM sqlite_master WHERE type='table' ORDER BY name;"; | ||||
@@ -61,15 +61,12 @@ | |||||
<td width="2%"></td> | <td width="2%"></td> | ||||
<td width="63%" valign="bottom"> | <td width="63%" valign="bottom"> | ||||
<div style="float:left;margin-right:20px"> | <div style="float:left;margin-right:20px"> | ||||
<button type="Submit" name="Submit1" class="btn btn-success btn-sm" onClick="this.form.dopost.value='opimize';">优化选中表</button> | |||||
<br> | |||||
<button type="Submit" name="Submit2" class="btn btn-success btn-sm" onClick="this.form.dopost.value='repair';" style="margin-top:10px">修复选中表</button> | |||||
<br> | |||||
<button type="Submit" name="Submit1" class="btn btn-success btn-sm" onClick="this.form.dopost.value='opimize';">优化选中表</button><br> | |||||
<button type="Submit" name="Submit2" class="btn btn-success btn-sm" onClick="this.form.dopost.value='repair';" style="margin-top:10px">修复选中表</button><br> | |||||
<button type="Submit" name="Submit3" class="btn btn-success btn-sm" onClick="this.form.dopost.value='viewinfo';" style="margin-top:10px">查看表结构</button> | <button type="Submit" name="Submit3" class="btn btn-success btn-sm" onClick="this.form.dopost.value='viewinfo';" style="margin-top:10px">查看表结构</button> | ||||
</div> | </div> | ||||
<div style="float:left"> | <div style="float:left"> | ||||
<button type="Submit" name="Submit5" class="btn btn-success btn-sm" onClick="this.form.dopost.value='opimizeAll';">优化全部表</button> | |||||
<br> | |||||
<button type="Submit" name="Submit5" class="btn btn-success btn-sm" onClick="this.form.dopost.value='opimizeAll';">优化全部表</button><br> | |||||
<button type="Submit" name="Submit6" class="btn btn-success btn-sm" onClick="this.form.dopost.value='repairAll';" style="margin-top:10px">修复全部表</button> | <button type="Submit" name="Submit6" class="btn btn-success btn-sm" onClick="this.form.dopost.value='repairAll';" style="margin-top:10px">修复全部表</button> | ||||
</div> | </div> | ||||
</td> | </td> | ||||
@@ -94,13 +91,10 @@ | |||||
</td> | </td> | ||||
</tr> | </tr> | ||||
<tr> | <tr> | ||||
<td height="110" colspan="2" style="border:1px solid #ddd"> | |||||
<textarea id="sqlquery" name="sqlquery" cols="60" rows="10" id="sqlquery" style="width:90%"></textarea> | |||||
</td> | |||||
<td height="110" colspan="2" style="border:1px solid #ddd"><textarea id="sqlquery" name="sqlquery" cols="60" rows="10" id="sqlquery" style="width:90%"></textarea></td> | |||||
</tr> | </tr> | ||||
<tr> | <tr> | ||||
<td colspan="2" align="center" class="py-3"><button type="submit" class="btn btn-success btn-sm">保存</button> | |||||
</td> | |||||
<td colspan="2" align="center" class="py-3"><button type="submit" class="btn btn-success btn-sm">保存</button></td> | |||||
</tr> | </tr> | ||||
</form> | </form> | ||||
</table> | </table> | ||||
@@ -108,7 +108,7 @@ | |||||
<form name="form2" action="tags_main.php" style="display:inline-block"> | <form name="form2" action="tags_main.php" style="display:inline-block"> | ||||
<input type="text" name="tag" value="<?php echo $tag; ?>" placeholder="请输入标签" style="width:160px"> | <input type="text" name="tag" value="<?php echo $tag; ?>" placeholder="请输入标签" style="width:160px"> | ||||
<button type="submit" name="sb" class="btn btn-success btn-sm">保存</button> | <button type="submit" name="sb" class="btn btn-success btn-sm">保存</button> | ||||
<a href="makehtml_taglist.php" name="sb" class="btn btn-success btn-sm">生成标签</a> | |||||
<a href="makehtml_taglist.php" name="sb" class="btn btn-success btn-sm">生成</a> | |||||
</form> | </form> | ||||
</td> | </td> | ||||
</tr> | </tr> | ||||
@@ -30,12 +30,12 @@ function checkSubmit() | |||||
</head> | </head> | ||||
<body> | <body> | ||||
<table width="98%" cellpadding="3" cellspacing="1" align="center" class="table maintable mt-3 mb-3"> | <table width="98%" cellpadding="3" cellspacing="1" align="center" class="table maintable mt-3 mb-3"> | ||||
<tr> | |||||
<tr> | |||||
<td height="26" background="../static/web/img/tbg.gif" style="padding-left:10px"><a href="templets_one.php">单独页面管理</a> > 修改自定义页面</td> | <td height="26" background="../static/web/img/tbg.gif" style="padding-left:10px"><a href="templets_one.php">单独页面管理</a> > 修改自定义页面</td> | ||||
</tr> | |||||
<tr> | |||||
<td height="200"> | |||||
<table width="100%" cellspacing="4" cellpadding="2" class="table table-borderless"> | |||||
</tr> | |||||
<tr> | |||||
<td height="200"> | |||||
<table width="100%" cellspacing="4" cellpadding="2" class="table table-borderless"> | |||||
<form action="templets_one_edit.php" method="post" name="form1" onSubmit="return checkSubmit()"> | <form action="templets_one_edit.php" method="post" name="form1" onSubmit="return checkSubmit()"> | ||||
<input type='hidden' name='dopost' value='saveedit'> | <input type='hidden' name='dopost' value='saveedit'> | ||||
<input type='hidden' name='aid' value='<?php echo $aid?>'> | <input type='hidden' name='aid' value='<?php echo $aid?>'> | ||||
@@ -40,8 +40,7 @@ | |||||
<tr> | <tr> | ||||
<td> | <td> | ||||
<input type="submit" value="保存" name='B1' class="btn btn-success btn-sm"> | <input type="submit" value="保存" name='B1' class="btn btn-success btn-sm"> | ||||
<input type="reset" value="取消修改" name='B2' class="btn btn-success btn-sm"> | |||||
<input type="button" value="不理返回" name='B4' class="btn btn-success btn-sm" onClick="javascript:history.go(-1)"> | |||||
<input type="button" value="返回" name='B4' class="btn btn-success btn-sm" onClick="javascript:history.go(-1)"> | |||||
</td> | </td> | ||||
</tr> | </tr> | ||||
</form> | </form> | ||||
@@ -17,7 +17,7 @@ | |||||
</td> | </td> | ||||
</tr> | </tr> | ||||
<tr> | <tr> | ||||
<td height="26" colspan="2">下载的文件临时存放在文件夹(<span class='text-danger'>../data/<?php echo $tmpdir; ?></span>)内,如果某些基础类有重要的改动导致更新中途中错,您可以从这文件夹提取文件手工更新</td> | |||||
<td height="26" colspan="2">下载的文件临时存放在文件夹<span class='text-danger'>../data/<?php echo $tmpdir; ?></span>内,如果某些基础类有重要的改动导致更新中途中错,您可以从这文件夹提取文件手工更新</td> | |||||
</tr> | </tr> | ||||
<?php echo $dirinfos; ?> | <?php echo $dirinfos; ?> | ||||
<tr bgcolor="#F8FEDA"> | <tr bgcolor="#F8FEDA"> | ||||
@@ -1,21 +1,17 @@ | |||||
<?php | <?php | ||||
/*--------------------------------------------------------------------------------------------- | /*--------------------------------------------------------------------------------------------- | ||||
文件远程发布目录更新配置(config.file.inc.php) | |||||
说明:本文件主要用于系统后台[生成]-[自动任务]-[远程服务器同步] | |||||
中的文件夹自定义更新配置所用,使用时候如果有特定目录需要进行同 | |||||
步,则需要在这个文件中进行配置,配置方式如下: | |||||
说明:本文件主要用于系统后台[生成]-[自动任务]-[远程服务器同步]文件远程发布目录更新配置(config.file.inc.php) | |||||
中的文件夹自定义更新配置所用,使用时候如果有特定目录需要进行同步,则需要在这个文件中进行配置,配置方式如下: | |||||
$remotefile[] = array( | $remotefile[] = array( | ||||
'filedir' => '/yourdir', //同步文件夹目录 | 'filedir' => '/yourdir', //同步文件夹目录 | ||||
'description' => '这里是文件夹说明', | |||||
'dfserv' => '0', //默认服务器选项,可以在系统后台[系统设置]-[服务器分布/远程 ]中配置 | |||||
'state' => '0', //同步状态,0:未同步 1:已同步 | |||||
'description' => ' //这里是文件夹说明', | |||||
'dfserv' => '0', //默认服务器选项,可以在系统后台[系统设置]-[服务器分布/远程 ]中配置 | |||||
'state' => '0', //同步状态,0:未同步 1:已同步 | |||||
); | ); | ||||
-----------------------------------------------------------------------------------------------*/ | -----------------------------------------------------------------------------------------------*/ | ||||
global $remotefile; | global $remotefile; | ||||
$remotefile = array(); | $remotefile = array(); | ||||
//以下是必备同步配置项 | //以下是必备同步配置项 | ||||
//@start_config 不要改动下面<>结构 | |||||
#<s_config> | |||||
$remotefile[0] = array( | $remotefile[0] = array( | ||||
'filedir'=>'/a', | 'filedir'=>'/a', | ||||
'description'=>'文档HTML默认保存路', | 'description'=>'文档HTML默认保存路', | ||||
@@ -24,53 +20,17 @@ $remotefile[0] = array( | |||||
'issystem'=>1 | 'issystem'=>1 | ||||
); | ); | ||||
$remotefile[1] = array( | $remotefile[1] = array( | ||||
'filedir'=>'/longhoo', | |||||
'description'=>'文档HTML默认保存路', | |||||
'filedir'=>'/static', | |||||
'description'=>'图片上传文件默认路径', | |||||
'dfserv'=>0, | 'dfserv'=>0, | ||||
'state'=>1, | 'state'=>1, | ||||
'issystem'=>1 | 'issystem'=>1 | ||||
); | ); | ||||
$remotefile[2] = array( | $remotefile[2] = array( | ||||
'filedir'=>'/uploads', | |||||
'description'=>'图片/上传文件默认路径', | |||||
'dfserv'=>0, | |||||
'state'=>1, | |||||
'issystem'=>1 | |||||
); | |||||
$remotefile[3] = array( | |||||
'filedir'=>'/special', | |||||
'filedir'=>'/apps/special', | |||||
'description'=>'专题目录', | 'description'=>'专题目录', | ||||
'dfserv'=>0, | 'dfserv'=>0, | ||||
'state'=>1, | 'state'=>1, | ||||
'issystem'=>1 | 'issystem'=>1 | ||||
); | ); | ||||
$remotefile[4] = array( | |||||
'filedir'=>'/data/js', | |||||
'description'=>'生成js目录', | |||||
'dfserv'=>0, | |||||
'state'=>1, | |||||
'issystem'=>1 | |||||
); | |||||
$remotefile[5] = array( | |||||
'filedir'=>'/images', | |||||
'description'=>'图片素材存放文件', | |||||
'dfserv'=>0, | |||||
'state'=>1, | |||||
'issystem'=>0 | |||||
); | |||||
$remotefile[6] = array( | |||||
'filedir'=>'/templets/images', | |||||
'description'=>'模板文件图片存放目录', | |||||
'dfserv'=>0, | |||||
'state'=>1, | |||||
'issystem'=>0 | |||||
); | |||||
$remotefile[7] = array( | |||||
'filedir'=>'/templets/style', | |||||
'description'=>'模板文件CSS样式存放目录', | |||||
'dfserv'=>0, | |||||
'state'=>1, | |||||
'issystem'=>0 | |||||
); | |||||
#<e_config> | |||||
?> | ?> |
@@ -10,7 +10,7 @@ if (!file_exists(dirname(__FILE__).'/data/common.inc.php')) { | |||||
header('Location:install/index.php'); | header('Location:install/index.php'); | ||||
exit(); | exit(); | ||||
} | } | ||||
//自动生成网页版 | |||||
//自动生成网页 | |||||
if (isset($_GET['upcache']) || !file_exists('index.html')) { | if (isset($_GET['upcache']) || !file_exists('index.html')) { | ||||
require_once(dirname(__FILE__)."/system/common.inc.php"); | require_once(dirname(__FILE__)."/system/common.inc.php"); | ||||
require_once DEDEINC."/archive/partview.class.php"; | require_once DEDEINC."/archive/partview.class.php"; | ||||
@@ -4,7 +4,7 @@ $cfg_cmspath = '~basepath~'; | |||||
$cfg_cookie_encode = '~cookieEncode~'; | $cfg_cookie_encode = '~cookieEncode~'; | ||||
$cfg_indexurl = '~indexurl~'; | $cfg_indexurl = '~indexurl~'; | ||||
$cfg_backup_dir = 'backupdata'; | $cfg_backup_dir = 'backupdata'; | ||||
$cfg_indexname = '首页'; | |||||
$cfg_indexname = '网站主页'; | |||||
$cfg_webname = '~webname~'; | $cfg_webname = '~webname~'; | ||||
$cfg_adminemail = '~adminmail~'; | $cfg_adminemail = '~adminmail~'; | ||||
$cfg_html_editor = 'ckeditor'; | $cfg_html_editor = 'ckeditor'; | ||||
@@ -26,7 +26,7 @@ $cfg_fck_xhtml = 'N'; | |||||
$cfg_df_style = 'templets'; | $cfg_df_style = 'templets'; | ||||
$cfg_multi_site = 'N'; | $cfg_multi_site = 'N'; | ||||
$cfg_dede_log = 'N'; | $cfg_dede_log = 'N'; | ||||
$cfg_powerby = 'Copyright © 2022 DedeBIZ 版权所有'; | |||||
$cfg_powerby = 'Copyright © 2022 DedeBIZ 版权所有'; | |||||
$cfg_arcsptitle = 'N'; | $cfg_arcsptitle = 'N'; | ||||
$cfg_arcautosp = 'N'; | $cfg_arcautosp = 'N'; | ||||
$cfg_arcautosp_size = 5; | $cfg_arcautosp_size = 5; | ||||
@@ -114,7 +114,7 @@ $cfg_jump_once = 'Y'; | |||||
$cfg_task_pwd = ''; | $cfg_task_pwd = ''; | ||||
$cfg_addon_domainbind = 'N'; | $cfg_addon_domainbind = 'N'; | ||||
$cfg_addon_domain = ''; | $cfg_addon_domain = ''; | ||||
$cfg_df_dutyadmin = '网站管理员'; | |||||
$cfg_df_dutyadmin = '管理员'; | |||||
$cfg_mb_allowncarc = 'Y'; | $cfg_mb_allowncarc = 'Y'; | ||||
$cfg_mb_allowreg = 'Y'; | $cfg_mb_allowreg = 'Y'; | ||||
$cfg_mb_adminlock = 'N'; | $cfg_mb_adminlock = 'N'; | ||||
@@ -255,9 +255,9 @@ CREATE TABLE `#@__arctype` ( | |||||
`topid` smallint(5) unsigned NOT NULL default '0', | `topid` smallint(5) unsigned NOT NULL default '0', | ||||
`sortrank` smallint(5) unsigned NOT NULL default '50', | `sortrank` smallint(5) unsigned NOT NULL default '50', | ||||
`typename` varchar(255) NOT NULL default '', | `typename` varchar(255) NOT NULL default '', | ||||
`namegk` char(200) NOT NULL default '', | |||||
`enname` char(200) NOT NULL default '', | |||||
`ennamegk` char(200) NOT NULL default '', | |||||
`cnoverview` char(255) NOT NULL default '', | |||||
`enname` char(255) NOT NULL default '', | |||||
`enoverview` char(255) NOT NULL default '', | |||||
`bigpic` char(255) NOT NULL default '', | `bigpic` char(255) NOT NULL default '', | ||||
`litimg` char(255) NOT NULL default '', | `litimg` char(255) NOT NULL default '', | ||||
`typedir` char(60) NOT NULL default '', | `typedir` char(60) NOT NULL default '', | ||||
@@ -15,7 +15,6 @@ | |||||
<div class="d-flex flex-column flex-md-row align-items-center mb-3 p-3 px-md-5 bg-white border-bottom shadow-sm"> | <div class="d-flex flex-column flex-md-row align-items-center mb-3 p-3 px-md-5 bg-white border-bottom shadow-sm"> | ||||
<h5 class="my-0 mr-md-auto text-success">程序安装</h5> | <h5 class="my-0 mr-md-auto text-success">程序安装</h5> | ||||
<nav class="my-md-0 mr-md-3"> | <nav class="my-md-0 mr-md-3"> | ||||
<a class="p-2 text-dark" href="https://www.dedebiz.com/git" target="_blank">代码托管</a> | |||||
<a class="p-2 text-dark" href="https://www.dedebiz.com/help" target="_blank">帮助中心</a> | <a class="p-2 text-dark" href="https://www.dedebiz.com/help" target="_blank">帮助中心</a> | ||||
<a class="p-2 text-dark" href="https://www.dedebiz.com/service" target="_blank">技术服务</a> | <a class="p-2 text-dark" href="https://www.dedebiz.com/service" target="_blank">技术服务</a> | ||||
</nav> | </nav> | ||||
@@ -59,7 +58,7 @@ | |||||
</div> | </div> | ||||
<div class="mb-3"> | <div class="mb-3"> | ||||
<label for="exampleInputPassword1" class="form-label">数据库密码</label> | <label for="exampleInputPassword1" class="form-label">数据库密码</label> | ||||
<input name="dbpwd" type="text" class="form-control" id="dbpwd" placeholder=""> | |||||
<input name="dbpwd" type="text" class="form-control" id="dbpwd"> | |||||
</div> | </div> | ||||
<div class="mb-3"> | <div class="mb-3"> | ||||
<label for="dbprefix" class="form-label">数据表前缀</label> | <label for="dbprefix" class="form-label">数据表前缀</label> | ||||
@@ -1,3 +1,9 @@ | |||||
-- 6.1.10 | |||||
ALTER TABLE `#@__arctype` CHANGE `namegk` `cnoverview` CHAR(255) NOT NULL DEFAULT ''; | |||||
ALTER TABLE `#@__arctype` CHANGE `ennamegk` `enoverview` CHAR(255) NOT NULL DEFAULT ''; | |||||
DELETE FROM `#@__sysconfig` WHERE `#@__sysconfig`.`varname` = 'cfg_disable_funs'; | |||||
DELETE FROM `#@__sysconfig` WHERE `#@__sysconfig`.`varname` = 'cfg_disable_tags'; | |||||
-- 6.1.9 | -- 6.1.9 | ||||
ALTER TABLE `#@__archives` MODIFY COLUMN `title` varchar(255) NOT NULL DEFAULT '' AFTER `money`; | ALTER TABLE `#@__archives` MODIFY COLUMN `title` varchar(255) NOT NULL DEFAULT '' AFTER `money`; | ||||
ALTER TABLE `#@__arctype` MODIFY COLUMN `typename` varchar(255) NOT NULL DEFAULT '' AFTER `sortrank`; | ALTER TABLE `#@__arctype` MODIFY COLUMN `typename` varchar(255) NOT NULL DEFAULT '' AFTER `sortrank`; | ||||
@@ -5,11 +11,10 @@ ALTER TABLE `#@__admin` ADD COLUMN `pwd_new` varchar(120) NOT NULL DEFAULT '' AF | |||||
ALTER TABLE `#@__member` ADD COLUMN `pwd_new` varchar(120) NOT NULL DEFAULT '' AFTER `pwd`; | ALTER TABLE `#@__member` ADD COLUMN `pwd_new` varchar(120) NOT NULL DEFAULT '' AFTER `pwd`; | ||||
-- 6.1.8 | -- 6.1.8 | ||||
INSERT INTO `#@__sysconfig` VALUES ('710', 'cfg_tags_dir', 'TAGS生成目录', 7, 'string', '{cmspath}/a/tags'); | |||||
INSERT INTO `#@__sysconfig` VALUES ('151', 'cfg_tags_dir', 'TAGS生成目录', 7, 'string', '{cmspath}/a/tags'); | |||||
ALTER TABLE `#@__tagindex` DROP COLUMN `tag_pinyin`; | ALTER TABLE `#@__tagindex` DROP COLUMN `tag_pinyin`; | ||||
-- 6.1.7 | -- 6.1.7 | ||||
DROP TABLE IF EXISTS `#@__statistics`; | |||||
CREATE TABLE `#@__statistics` ( | CREATE TABLE `#@__statistics` ( | ||||
`id` int NOT NULL AUTO_INCREMENT, | `id` int NOT NULL AUTO_INCREMENT, | ||||
`sdate` int DEFAULT NULL COMMENT '记录日期', | `sdate` int DEFAULT NULL COMMENT '记录日期', | ||||
@@ -18,8 +23,7 @@ CREATE TABLE `#@__statistics` ( | |||||
`ip` int DEFAULT NULL COMMENT 'IP', | `ip` int DEFAULT NULL COMMENT 'IP', | ||||
`vv` int DEFAULT NULL COMMENT 'vv', | `vv` int DEFAULT NULL COMMENT 'vv', | ||||
PRIMARY KEY (`id`) | PRIMARY KEY (`id`) | ||||
) TYPE=MyISAM; | |||||
DROP TABLE IF EXISTS `#@__statistics_detail`; | |||||
) ENGINE=MyISAM; | |||||
CREATE TABLE `#@__statistics_detail` ( | CREATE TABLE `#@__statistics_detail` ( | ||||
`id` int NOT NULL AUTO_INCREMENT, | `id` int NOT NULL AUTO_INCREMENT, | ||||
`t` int DEFAULT NULL COMMENT 'unixtime', | `t` int DEFAULT NULL COMMENT 'unixtime', | ||||
@@ -40,7 +44,7 @@ CREATE TABLE `#@__statistics_detail` ( | |||||
KEY `idx_created_date_dduuid` (`created_date`,`dduuid`), | KEY `idx_created_date_dduuid` (`created_date`,`dduuid`), | ||||
KEY `idx_created_date_ip` (`created_date`,`ip`), | KEY `idx_created_date_ip` (`created_date`,`ip`), | ||||
KEY `idx_created_date_ssid` (`created_date`,`ssid`) | KEY `idx_created_date_ssid` (`created_date`,`ssid`) | ||||
) TYPE=MyISAM; | |||||
) ENGINE=MyISAM; | |||||
ALTER TABLE `#@__addonarticle` MODIFY COLUMN `userip` char(46) NOT NULL DEFAULT '' AFTER `templet`; | ALTER TABLE `#@__addonarticle` MODIFY COLUMN `userip` char(46) NOT NULL DEFAULT '' AFTER `templet`; | ||||
ALTER TABLE `#@__addonimages` MODIFY COLUMN `userip` char(46) NOT NULL DEFAULT '' AFTER `templet`; | ALTER TABLE `#@__addonimages` MODIFY COLUMN `userip` char(46) NOT NULL DEFAULT '' AFTER `templet`; | ||||
ALTER TABLE `#@__addoninfos` MODIFY COLUMN `userip` varchar(46) NOT NULL DEFAULT '' AFTER `litpic`; | ALTER TABLE `#@__addoninfos` MODIFY COLUMN `userip` varchar(46) NOT NULL DEFAULT '' AFTER `litpic`; | ||||
@@ -53,7 +57,7 @@ ALTER TABLE `#@__log` MODIFY COLUMN `cip` char(46) NOT NULL DEFAULT '' AFTER `qu | |||||
ALTER TABLE `#@__member` MODIFY COLUMN `joinip` char(46) NOT NULL DEFAULT '' AFTER `jointime`,MODIFY COLUMN `loginip` char(46) NOT NULL DEFAULT '' AFTER `logintime`; | ALTER TABLE `#@__member` MODIFY COLUMN `joinip` char(46) NOT NULL DEFAULT '' AFTER `jointime`,MODIFY COLUMN `loginip` char(46) NOT NULL DEFAULT '' AFTER `logintime`; | ||||
ALTER TABLE `#@__shops_orders` MODIFY COLUMN `ip` char(46) NOT NULL DEFAULT '' AFTER `state`; | ALTER TABLE `#@__shops_orders` MODIFY COLUMN `ip` char(46) NOT NULL DEFAULT '' AFTER `state`; | ||||
ALTER TABLE `#@__dl_log` MODIFY COLUMN `ip` char(46) NOT NULL AFTER `id`; | ALTER TABLE `#@__dl_log` MODIFY COLUMN `ip` char(46) NOT NULL AFTER `id`; | ||||
ALTER TABLE `#@__arctype` CHANGE COLUMN `litpic` `bigpic` char(255) NOT NULL DEFAULT '' AFTER `ennamegk`; | |||||
ALTER TABLE `#@__arctype` CHANGE `litpic` `bigpic` CHAR(255) NOT NULL DEFAULT ''; | |||||
ALTER TABLE `#@__addoninfos` MODIFY COLUMN `nativeplace` char(20) NOT NULL DEFAULT 0 AFTER `badpost`; | ALTER TABLE `#@__addoninfos` MODIFY COLUMN `nativeplace` char(20) NOT NULL DEFAULT 0 AFTER `badpost`; | ||||
-- 6.1.0 | -- 6.1.0 | ||||
@@ -73,7 +77,7 @@ ALTER TABLE `#@__feedback` | |||||
ALTER TABLE `#@__feedback` | ALTER TABLE `#@__feedback` | ||||
ADD COLUMN `replycount` INT(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `dtime`; | ADD COLUMN `replycount` INT(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `dtime`; | ||||
INSERT INTO `#@__sysconfig` (`varname`, `info`, `groupid`, `type`, `value`) VALUES ( 'cfg_feedback_msglen', '评论内容字数限定', 5, 'number', '200'); | INSERT INTO `#@__sysconfig` (`varname`, `info`, `groupid`, `type`, `value`) VALUES ( 'cfg_feedback_msglen', '评论内容字数限定', 5, 'number', '200'); | ||||
INSERT INTO `#@__sysconfig` (`varname`, `info`, `groupid`, `type`, `value`) VALUES ( 'cfg_auth_code', '商业版授权码)', 1, 'bstring', ''); | |||||
INSERT INTO `#@__sysconfig` (`varname`, `info`, `groupid`, `type`, `value`) VALUES ( 'cfg_auth_code', '商业版授权码', 1, 'string', ''); | |||||
INSERT INTO `#@__sysconfig` (`varname`, `info`, `groupid`, `type`, `value`) VALUES ( 'cfg_bizcore_hostname', 'DedeBIZ Core地址', 1, 'string', '127.0.0.1'); | INSERT INTO `#@__sysconfig` (`varname`, `info`, `groupid`, `type`, `value`) VALUES ( 'cfg_bizcore_hostname', 'DedeBIZ Core地址', 1, 'string', '127.0.0.1'); | ||||
INSERT INTO `#@__sysconfig` (`varname`, `info`, `groupid`, `type`, `value`) VALUES ( 'cfg_bizcore_port', 'DedeBIZ Core端口', 1, 'number', '8181'); | INSERT INTO `#@__sysconfig` (`varname`, `info`, `groupid`, `type`, `value`) VALUES ( 'cfg_bizcore_port', 'DedeBIZ Core端口', 1, 'number', '8181'); | ||||
INSERT INTO `#@__sysconfig` (`varname`, `info`, `groupid`, `type`, `value`) VALUES ( 'cfg_bizcore_appid', 'DedeBIZ Core应用ID', 1, 'string', ''); | INSERT INTO `#@__sysconfig` (`varname`, `info`, `groupid`, `type`, `value`) VALUES ( 'cfg_bizcore_appid', 'DedeBIZ Core应用ID', 1, 'string', ''); | ||||
@@ -84,12 +88,12 @@ CREATE TABLE `#@__feedback_goodbad` ( | |||||
`fid` INT(11) NOT NULL DEFAULT '0', | `fid` INT(11) NOT NULL DEFAULT '0', | ||||
`fgtype` TINYINT(4) NOT NULL DEFAULT '0' COMMENT '0:good 1:bad', | `fgtype` TINYINT(4) NOT NULL DEFAULT '0' COMMENT '0:good 1:bad', | ||||
PRIMARY KEY (`fgid`) | PRIMARY KEY (`fgid`) | ||||
) TYPE=MyISAM; | |||||
) ENGINE=MyISAM; | |||||
CREATE TABLE `#@__search_limits` ( | CREATE TABLE `#@__search_limits` ( | ||||
`ip` VARCHAR(200) NOT NULL, | `ip` VARCHAR(200) NOT NULL, | ||||
`searchtime` INT(11) NULL DEFAULT NULL, | `searchtime` INT(11) NULL DEFAULT NULL, | ||||
PRIMARY KEY (`ip`) | PRIMARY KEY (`ip`) | ||||
) TYPE=MyISAM; | |||||
) ENGINE=MyISAM; | |||||
-- 6.0.2 | -- 6.0.2 | ||||
ALTER TABLE `#@__tagindex` ADD COLUMN `keywords` VARCHAR(255) NULL DEFAULT NULL AFTER `tag`; | ALTER TABLE `#@__tagindex` ADD COLUMN `keywords` VARCHAR(255) NULL DEFAULT NULL AFTER `tag`; | ||||
@@ -9,24 +9,6 @@ if (!defined('DEDEINC')) exit('dedebiz'); | |||||
* @license https://www.dedebiz.com/license | * @license https://www.dedebiz.com/license | ||||
* @link https://www.dedebiz.com | * @link https://www.dedebiz.com | ||||
*/ | */ | ||||
/** | |||||
* 这个函数用于定义任意名称的块使用的接口 | |||||
* 返回值应是一个二维数组 | |||||
* 块调用对应的文件为 include/taglib/plus_blockname.php | |||||
* ---------------------------------------------------------------- | |||||
* 由于标记一般存在默认属性,在编写块函数时,应该在块函数中进行给属性赋省缺值处理,如: | |||||
* $attlist = "titlelen=30,catalogid=0,modelid=0,flag=,addon=,row=8,ids=,orderby=id,orderway=desc,limit=,subday=0"; | |||||
* 给属性赋省缺值 | |||||
* FillAtts($atts,$attlist); | |||||
* 处理属性中使用的系统变量 var、global、field 类型(不支持多维数组) | |||||
* FillFields($atts,$fields,$refObj); | |||||
* | |||||
* @access public | |||||
* @param array $atts 属性 | |||||
* @param object $refObj 所属对象 | |||||
* @param array $fields 字段 | |||||
* @return string | |||||
*/ | |||||
function MakePublicTag($atts = array(), $refObj = '', $fields = array()) | function MakePublicTag($atts = array(), $refObj = '', $fields = array()) | ||||
{ | { | ||||
$atts['tagname'] = preg_replace("/[0-9]{1,}$/", "", $atts['tagname']); | $atts['tagname'] = preg_replace("/[0-9]{1,}$/", "", $atts['tagname']); | ||||
@@ -375,7 +375,7 @@ function GetSonIdsLogic($id, $sArr, $channel = 0, $addthis = false) | |||||
*/ | */ | ||||
function MfTypedir($typedir) | function MfTypedir($typedir) | ||||
{ | { | ||||
if (preg_match("/^http:|^ftp:/i", $typedir)) return $typedir; | |||||
if (preg_match("/^(http|https|ftp):/i", $typedir)) return $typedir; | |||||
$typedir = str_replace("{cmspath}", $GLOBALS['cfg_cmspath'], $typedir); | $typedir = str_replace("{cmspath}", $GLOBALS['cfg_cmspath'], $typedir); | ||||
$typedir = preg_replace("/\/{1,}/", "/", $typedir); | $typedir = preg_replace("/\/{1,}/", "/", $typedir); | ||||
return $typedir; | return $typedir; | ||||
@@ -1,10 +1,10 @@ | |||||
<?php | <?php | ||||
if (!defined('DEDEINC')) exit('dedebiz'); | if (!defined('DEDEINC')) exit('dedebiz'); | ||||
// 允许的函数 | |||||
//允许的函数 | |||||
$GLOBALS['allowedCalls'] = array( | $GLOBALS['allowedCalls'] = array( | ||||
// 系统 | |||||
//系统 | |||||
'var_dump', | 'var_dump', | ||||
// 数学 | |||||
//数学 | |||||
'ceil', | 'ceil', | ||||
'floor', | 'floor', | ||||
'fmod', | 'fmod', | ||||
@@ -15,7 +15,7 @@ $GLOBALS['allowedCalls'] = array( | |||||
'rand', | 'rand', | ||||
'sqrt', | 'sqrt', | ||||
'srand', | 'srand', | ||||
// 变量 | |||||
//变量 | |||||
'empty', | 'empty', | ||||
'floatval', | 'floatval', | ||||
'intval', | 'intval', | ||||
@@ -36,7 +36,7 @@ $GLOBALS['allowedCalls'] = array( | |||||
'isset', | 'isset', | ||||
'strval', | 'strval', | ||||
'unset', | 'unset', | ||||
// 数组 | |||||
//数组 | |||||
'array_change_key_case', | 'array_change_key_case', | ||||
'array_chunk', | 'array_chunk', | ||||
'array_combine', | 'array_combine', | ||||
@@ -92,7 +92,7 @@ $GLOBALS['allowedCalls'] = array( | |||||
'shuffle', | 'shuffle', | ||||
'sizeof', | 'sizeof', | ||||
'sort', | 'sort', | ||||
// 字符串 | |||||
//字符串 | |||||
'json_encode', | 'json_encode', | ||||
'json_decode', | 'json_decode', | ||||
'json_last_error', | 'json_last_error', | ||||
@@ -156,7 +156,7 @@ $GLOBALS['allowedCalls'] = array( | |||||
'ucfirst', | 'ucfirst', | ||||
'ucwords', | 'ucwords', | ||||
'wordwrap', | 'wordwrap', | ||||
// dede内置 | |||||
//dede内置 | |||||
'html2text', | 'html2text', | ||||
'removexss', | 'removexss', | ||||
'htmlreplace', | 'htmlreplace', | ||||
@@ -179,7 +179,7 @@ $GLOBALS['allowedCalls'] = array( | |||||
'gb2big5', | 'gb2big5', | ||||
'litimgurls', | 'litimgurls', | ||||
'split', | 'split', | ||||
// 时间 | |||||
//时间 | |||||
'strtotime', | 'strtotime', | ||||
'date', | 'date', | ||||
'idate', | 'idate', | ||||
@@ -228,7 +228,7 @@ $GLOBALS['allowedCalls'] = array( | |||||
'date_sunrise', | 'date_sunrise', | ||||
'date_sunset', | 'date_sunset', | ||||
'date_sun_info', | 'date_sun_info', | ||||
// mb字符串处理 | |||||
//mb字符串处理 | |||||
'mb_convert_case', | 'mb_convert_case', | ||||
'mb_strtoupper', | 'mb_strtoupper', | ||||
'mb_strtolower', | 'mb_strtolower', | ||||
@@ -288,7 +288,7 @@ $GLOBALS['allowedCalls'] = array( | |||||
'mb_ereg_search_getpos', | 'mb_ereg_search_getpos', | ||||
'mb_ereg_search_setpos', | 'mb_ereg_search_setpos', | ||||
); | ); | ||||
// 允许的语法 | |||||
//允许的语法 | |||||
$GLOBALS['allowedTokens'] = array( | $GLOBALS['allowedTokens'] = array( | ||||
'T_AND_EQUAL', | 'T_AND_EQUAL', | ||||
'T_ARRAY', | 'T_ARRAY', | ||||
@@ -300,7 +300,6 @@ $GLOBALS['allowedTokens'] = array( | |||||
'T_BREAK', | 'T_BREAK', | ||||
'T_CASE', | 'T_CASE', | ||||
'T_CHARACTER', | 'T_CHARACTER', | ||||
'T_CONCAT_EQUAL', | 'T_CONCAT_EQUAL', | ||||
'T_CONSTANT_ENCAPSED_STRING', | 'T_CONSTANT_ENCAPSED_STRING', | ||||
'T_CONTINUE', | 'T_CONTINUE', | ||||
@@ -313,7 +312,6 @@ $GLOBALS['allowedTokens'] = array( | |||||
'T_DO', | 'T_DO', | ||||
'T_DOUBLE_ARROW', | 'T_DOUBLE_ARROW', | ||||
'T_DOUBLE_CAST', | 'T_DOUBLE_CAST', | ||||
'T_ELSE', | 'T_ELSE', | ||||
'T_ELSEIF', | 'T_ELSEIF', | ||||
'T_EMPTY', | 'T_EMPTY', | ||||
@@ -340,7 +338,6 @@ $GLOBALS['allowedTokens'] = array( | |||||
'T_LOGICAL_OR', | 'T_LOGICAL_OR', | ||||
'T_LOGICAL_XOR', | 'T_LOGICAL_XOR', | ||||
'T_MINUS_EQUAL', | 'T_MINUS_EQUAL', | ||||
'T_MOD_EQUAL', | 'T_MOD_EQUAL', | ||||
'T_MUL_EQUAL', | 'T_MUL_EQUAL', | ||||
'T_NUM_STRING', | 'T_NUM_STRING', | ||||
@@ -362,29 +359,28 @@ $GLOBALS['allowedTokens'] = array( | |||||
'T_WHITESPACE', | 'T_WHITESPACE', | ||||
'T_XOR_EQUAL', | 'T_XOR_EQUAL', | ||||
); | ); | ||||
// 禁止的表达式 | |||||
//禁止的表达式 | |||||
$GLOBALS['disallowedExpressions'] = array( | $GLOBALS['disallowedExpressions'] = array( | ||||
'/`/', | '/`/', | ||||
'/\$\W/', | '/\$\W/', | ||||
'/(\]|\})\s*\(/', | '/(\]|\})\s*\(/', | ||||
'/\$\w\w*\s*\(/', | '/\$\w\w*\s*\(/', | ||||
); | ); | ||||
// 执行脚本 | |||||
//执行脚本 | |||||
function evalCode($code) | function evalCode($code) | ||||
{ | { | ||||
ob_start(); | ob_start(); | ||||
$code = eval('if(0){' . "\n" . $code . "\n" . '}'); | |||||
$code = eval('if(0){'."\n".$code."\n".'}'); | |||||
ob_end_clean(); | ob_end_clean(); | ||||
return $code !== false; | return $code !== false; | ||||
} | } | ||||
// 校验脚本 | |||||
//校验脚本 | |||||
function checkCode($code) | function checkCode($code) | ||||
{ | { | ||||
global $allowedCalls; | global $allowedCalls; | ||||
global $allowedTokens; | global $allowedTokens; | ||||
global $disallowedExpressions; | global $disallowedExpressions; | ||||
$tokens = token_get_all('<?php ' . $code . ' ?>'); | |||||
$tokens = token_get_all('<?php '.$code.' ?>'); | |||||
$errors = array(); | $errors = array(); | ||||
$braces = 0; | $braces = 0; | ||||
foreach ($tokens as $token) { | foreach ($tokens as $token) { | ||||
@@ -421,13 +417,13 @@ function checkCode($code) | |||||
switch ($id) { | switch ($id) { | ||||
case ('T_STRING'): | case ('T_STRING'): | ||||
if (in_array(strtolower($token[1]), $allowedCalls) === false) { | if (in_array(strtolower($token[1]), $allowedCalls) === false) { | ||||
$errors[$i]['name'] = 'Illegal function: ' . $token[1]; | |||||
$errors[$i]['name'] = 'Illegal function: '.$token[1]; | |||||
$errors[$i]['line'] = $token[2]; | $errors[$i]['line'] = $token[2]; | ||||
} | } | ||||
break; | break; | ||||
default: | default: | ||||
if (in_array($id, $allowedTokens) === false) { | if (in_array($id, $allowedTokens) === false) { | ||||
$errors[$i]['name'] = 'Illegal token: ' . $token[1]; | |||||
$errors[$i]['name'] = 'Illegal token: '.$token[1]; | |||||
$errors[$i]['line'] = $token[2]; | $errors[$i]['line'] = $token[2]; | ||||
} | } | ||||
break; | break; | ||||
@@ -439,21 +435,21 @@ function checkCode($code) | |||||
return $errors; | return $errors; | ||||
} | } | ||||
} | } | ||||
// 错误提示 | |||||
//错误提示 | |||||
function htmlErrors($errors = null) | function htmlErrors($errors = null) | ||||
{ | { | ||||
if ($errors) { | if ($errors) { | ||||
$errorsHTML = "<div style='width:98%;margin:1rem auto;color:#842029;background:#f8d7da;border-color:#842029;position:relative;padding:.75rem 1.25rem;border:1px solid transparent;border-radius:.2rem'>"; | $errorsHTML = "<div style='width:98%;margin:1rem auto;color:#842029;background:#f8d7da;border-color:#842029;position:relative;padding:.75rem 1.25rem;border:1px solid transparent;border-radius:.2rem'>"; | ||||
$errorsHTML .= 'PHP内嵌脚本错误:'; | |||||
$errorsHTML .= '内嵌脚本缺失,请添加该函数:'; | |||||
$errorsHTML .= '<dl>'; | $errorsHTML .= '<dl>'; | ||||
foreach ($errors as $error) { | foreach ($errors as $error) { | ||||
if ($error['line']) { | if ($error['line']) { | ||||
$errorsHTML .= '<dt>Line ' . $error['line'] . '</dt>'; | |||||
$errorsHTML .= '<dt>Line '.$error['line'].'</dt>'; | |||||
} | } | ||||
$errorsHTML .= '<dd>' . $error['name'] . '</dd>'; | |||||
$errorsHTML .= '<dd>'.$error['name'].'</dd>'; | |||||
} | } | ||||
$errorsHTML .= '</dl>'; | $errorsHTML .= '</dl>'; | ||||
$errorsHTML .= "</div>\r\n"; | $errorsHTML .= "</div>\r\n"; | ||||
echo $errorsHTML; | echo $errorsHTML; | ||||
} | } | ||||
} | |||||
} |
@@ -2,9 +2,7 @@ | |||||
if (!defined('DEDEINC')) exit('dedebiz'); | if (!defined('DEDEINC')) exit('dedebiz'); | ||||
require_once(DEDEINC."/libraries/crawlerdetect.class.php"); | require_once(DEDEINC."/libraries/crawlerdetect.class.php"); | ||||
require_once(DEDEINC."/libraries/mobiledetect.class.php"); | require_once(DEDEINC."/libraries/mobiledetect.class.php"); | ||||
// copyright https://github.com/jenssegers/agent | |||||
//copyright https://github.com/jenssegers/agent | |||||
class Agent extends Mobile_Detect | class Agent extends Mobile_Detect | ||||
{ | { | ||||
/** | /** | ||||
@@ -14,7 +12,6 @@ class Agent extends Mobile_Detect | |||||
protected static $desktopDevices = [ | protected static $desktopDevices = [ | ||||
'Macintosh' => 'Macintosh', | 'Macintosh' => 'Macintosh', | ||||
]; | ]; | ||||
/** | /** | ||||
* List of additional operating systems. | * List of additional operating systems. | ||||
* @var array | * @var array | ||||
@@ -30,7 +27,6 @@ class Agent extends Mobile_Detect | |||||
'Linux' => 'Linux', | 'Linux' => 'Linux', | ||||
'ChromeOS' => 'CrOS', | 'ChromeOS' => 'CrOS', | ||||
]; | ]; | ||||
/** | /** | ||||
* List of additional browsers. | * List of additional browsers. | ||||
* @var array | * @var array | ||||
@@ -50,21 +46,19 @@ class Agent extends Mobile_Detect | |||||
'Mozilla' => 'Mozilla', | 'Mozilla' => 'Mozilla', | ||||
'WeChat' => 'MicroMessenger', | 'WeChat' => 'MicroMessenger', | ||||
]; | ]; | ||||
/** | /** | ||||
* List of additional properties. | * List of additional properties. | ||||
* @var array | * @var array | ||||
*/ | */ | ||||
protected static $additionalProperties = [ | protected static $additionalProperties = [ | ||||
// Operating systems | |||||
//Operating systems | |||||
'Windows' => 'Windows NT [VER]', | 'Windows' => 'Windows NT [VER]', | ||||
'Windows NT' => 'Windows NT [VER]', | 'Windows NT' => 'Windows NT [VER]', | ||||
'OS X' => 'OS X [VER]', | 'OS X' => 'OS X [VER]', | ||||
'BlackBerryOS' => ['BlackBerry[\w]+/[VER]', 'BlackBerry.*Version/[VER]', 'Version/[VER]'], | 'BlackBerryOS' => ['BlackBerry[\w]+/[VER]', 'BlackBerry.*Version/[VER]', 'Version/[VER]'], | ||||
'AndroidOS' => 'Android [VER]', | 'AndroidOS' => 'Android [VER]', | ||||
'ChromeOS' => 'CrOS x86_64 [VER]', | 'ChromeOS' => 'CrOS x86_64 [VER]', | ||||
// Browsers | |||||
//Browsers | |||||
'Opera Mini' => 'Opera Mini/[VER]', | 'Opera Mini' => 'Opera Mini/[VER]', | ||||
'Opera' => [' OPR/[VER]', 'Opera Mini/[VER]', 'Version/[VER]', 'Opera [VER]'], | 'Opera' => [' OPR/[VER]', 'Opera Mini/[VER]', 'Version/[VER]', 'Opera [VER]'], | ||||
'Netscape' => 'Netscape/[VER]', | 'Netscape' => 'Netscape/[VER]', | ||||
@@ -74,12 +68,10 @@ class Agent extends Mobile_Detect | |||||
'Vivaldi' => 'Vivaldi/[VER]', | 'Vivaldi' => 'Vivaldi/[VER]', | ||||
'Coc Coc' => 'coc_coc_browser/[VER]', | 'Coc Coc' => 'coc_coc_browser/[VER]', | ||||
]; | ]; | ||||
/** | /** | ||||
* @var CrawlerDetect | * @var CrawlerDetect | ||||
*/ | */ | ||||
protected static $crawlerDetect; | protected static $crawlerDetect; | ||||
/** | /** | ||||
* Get all detection rules. These rules include the additional | * Get all detection rules. These rules include the additional | ||||
* platforms and browsers and utilities. | * platforms and browsers and utilities. | ||||
@@ -88,32 +80,27 @@ class Agent extends Mobile_Detect | |||||
public static function getDetectionRulesExtended() | public static function getDetectionRulesExtended() | ||||
{ | { | ||||
static $rules; | static $rules; | ||||
if (!$rules) { | if (!$rules) { | ||||
$rules = static::mergeRules( | $rules = static::mergeRules( | ||||
static::$desktopDevices, // NEW | |||||
static::$desktopDevices, //NEW | |||||
static::$phoneDevices, | static::$phoneDevices, | ||||
static::$tabletDevices, | static::$tabletDevices, | ||||
static::$operatingSystems, | static::$operatingSystems, | ||||
static::$additionalOperatingSystems, // NEW | |||||
static::$additionalOperatingSystems, //NEW | |||||
static::$browsers, | static::$browsers, | ||||
static::$additionalBrowsers, // NEW | |||||
static::$additionalBrowsers, //NEW | |||||
static::$utilities | static::$utilities | ||||
); | ); | ||||
} | } | ||||
return $rules; | return $rules; | ||||
} | } | ||||
public function getRules() | public function getRules() | ||||
{ | { | ||||
if ($this->detectionType === static::DETECTION_TYPE_EXTENDED) { | if ($this->detectionType === static::DETECTION_TYPE_EXTENDED) { | ||||
return static::getDetectionRulesExtended(); | return static::getDetectionRulesExtended(); | ||||
} | } | ||||
return static::getMobileDetectionRules(); | return static::getMobileDetectionRules(); | ||||
} | } | ||||
/** | /** | ||||
* @return CrawlerDetect | * @return CrawlerDetect | ||||
*/ | */ | ||||
@@ -122,10 +109,8 @@ class Agent extends Mobile_Detect | |||||
if (static::$crawlerDetect === null) { | if (static::$crawlerDetect === null) { | ||||
static::$crawlerDetect = new CrawlerDetect(); | static::$crawlerDetect = new CrawlerDetect(); | ||||
} | } | ||||
return static::$crawlerDetect; | return static::$crawlerDetect; | ||||
} | } | ||||
public static function getBrowsers() | public static function getBrowsers() | ||||
{ | { | ||||
return static::mergeRules( | return static::mergeRules( | ||||
@@ -133,7 +118,6 @@ class Agent extends Mobile_Detect | |||||
static::$browsers | static::$browsers | ||||
); | ); | ||||
} | } | ||||
public static function getOperatingSystems() | public static function getOperatingSystems() | ||||
{ | { | ||||
return static::mergeRules( | return static::mergeRules( | ||||
@@ -141,7 +125,6 @@ class Agent extends Mobile_Detect | |||||
static::$additionalOperatingSystems | static::$additionalOperatingSystems | ||||
); | ); | ||||
} | } | ||||
public static function getPlatforms() | public static function getPlatforms() | ||||
{ | { | ||||
return static::mergeRules( | return static::mergeRules( | ||||
@@ -149,12 +132,10 @@ class Agent extends Mobile_Detect | |||||
static::$additionalOperatingSystems | static::$additionalOperatingSystems | ||||
); | ); | ||||
} | } | ||||
public static function getDesktopDevices() | public static function getDesktopDevices() | ||||
{ | { | ||||
return static::$desktopDevices; | return static::$desktopDevices; | ||||
} | } | ||||
public static function getProperties() | public static function getProperties() | ||||
{ | { | ||||
return static::mergeRules( | return static::mergeRules( | ||||
@@ -162,7 +143,6 @@ class Agent extends Mobile_Detect | |||||
static::$properties | static::$properties | ||||
); | ); | ||||
} | } | ||||
/** | /** | ||||
* Get accept languages. | * Get accept languages. | ||||
* @param string $acceptLanguage | * @param string $acceptLanguage | ||||
@@ -173,14 +153,11 @@ class Agent extends Mobile_Detect | |||||
if ($acceptLanguage === null) { | if ($acceptLanguage === null) { | ||||
$acceptLanguage = $this->getHttpHeader('HTTP_ACCEPT_LANGUAGE'); | $acceptLanguage = $this->getHttpHeader('HTTP_ACCEPT_LANGUAGE'); | ||||
} | } | ||||
if (!$acceptLanguage) { | if (!$acceptLanguage) { | ||||
return []; | return []; | ||||
} | } | ||||
$languages = []; | $languages = []; | ||||
// Parse accept language string. | |||||
//Parse accept language string. | |||||
foreach (explode(',', $acceptLanguage) as $piece) { | foreach (explode(',', $acceptLanguage) as $piece) { | ||||
$parts = explode(';', $piece); | $parts = explode(';', $piece); | ||||
$language = strtolower($parts[0]); | $language = strtolower($parts[0]); | ||||
@@ -188,13 +165,10 @@ class Agent extends Mobile_Detect | |||||
$languages[$language] = $priority; | $languages[$language] = $priority; | ||||
} | } | ||||
// Sort languages by priority. | |||||
//Sort languages by priority. | |||||
arsort($languages); | arsort($languages); | ||||
return array_keys($languages); | return array_keys($languages); | ||||
} | } | ||||
/** | /** | ||||
* Match a detection rule and return the matched key. | * Match a detection rule and return the matched key. | ||||
* @param array $rules | * @param array $rules | ||||
@@ -203,22 +177,19 @@ class Agent extends Mobile_Detect | |||||
*/ | */ | ||||
protected function findDetectionRulesAgainstUA(array $rules, $userAgent = null) | protected function findDetectionRulesAgainstUA(array $rules, $userAgent = null) | ||||
{ | { | ||||
// Loop given rules | |||||
//Loop given rules | |||||
foreach ($rules as $key => $regex) { | foreach ($rules as $key => $regex) { | ||||
if (empty($regex)) { | if (empty($regex)) { | ||||
continue; | continue; | ||||
} | } | ||||
// Check match | |||||
//Check match | |||||
if ($this->match($regex, $userAgent)) { | if ($this->match($regex, $userAgent)) { | ||||
$val = (array)$this->matchesArray; | $val = (array)$this->matchesArray; | ||||
return $key ?: reset($val); | return $key ?: reset($val); | ||||
} | } | ||||
} | } | ||||
return false; | return false; | ||||
} | } | ||||
/** | /** | ||||
* Get the browser name. | * Get the browser name. | ||||
* @param string|null $userAgent | * @param string|null $userAgent | ||||
@@ -228,7 +199,6 @@ class Agent extends Mobile_Detect | |||||
{ | { | ||||
return $this->findDetectionRulesAgainstUA(static::getBrowsers(), $userAgent); | return $this->findDetectionRulesAgainstUA(static::getBrowsers(), $userAgent); | ||||
} | } | ||||
/** | /** | ||||
* Get the platform name. | * Get the platform name. | ||||
* @param string|null $userAgent | * @param string|null $userAgent | ||||
@@ -238,7 +208,6 @@ class Agent extends Mobile_Detect | |||||
{ | { | ||||
return $this->findDetectionRulesAgainstUA(static::getPlatforms(), $userAgent); | return $this->findDetectionRulesAgainstUA(static::getPlatforms(), $userAgent); | ||||
} | } | ||||
/** | /** | ||||
* Get the device name. | * Get the device name. | ||||
* @param string|null $userAgent | * @param string|null $userAgent | ||||
@@ -252,10 +221,8 @@ class Agent extends Mobile_Detect | |||||
static::getTabletDevices(), | static::getTabletDevices(), | ||||
static::getUtilities() | static::getUtilities() | ||||
); | ); | ||||
return $this->findDetectionRulesAgainstUA($rules, $userAgent); | return $this->findDetectionRulesAgainstUA($rules, $userAgent); | ||||
} | } | ||||
/** | /** | ||||
* Check if the device is a desktop computer. | * Check if the device is a desktop computer. | ||||
* @param string|null $userAgent deprecated | * @param string|null $userAgent deprecated | ||||
@@ -264,17 +231,15 @@ class Agent extends Mobile_Detect | |||||
*/ | */ | ||||
public function isDesktop($userAgent = null, $httpHeaders = null) | public function isDesktop($userAgent = null, $httpHeaders = null) | ||||
{ | { | ||||
// Check specifically for cloudfront headers if the useragent === 'Amazon CloudFront' | |||||
//Check specifically for cloudfront headers if the useragent === 'Amazon CloudFront' | |||||
if ($this->getUserAgent() === 'Amazon CloudFront') { | if ($this->getUserAgent() === 'Amazon CloudFront') { | ||||
$cfHeaders = $this->getCfHeaders(); | $cfHeaders = $this->getCfHeaders(); | ||||
if(array_key_exists('HTTP_CLOUDFRONT_IS_DESKTOP_VIEWER', $cfHeaders)) { | if(array_key_exists('HTTP_CLOUDFRONT_IS_DESKTOP_VIEWER', $cfHeaders)) { | ||||
return $cfHeaders['HTTP_CLOUDFRONT_IS_DESKTOP_VIEWER'] === 'true'; | return $cfHeaders['HTTP_CLOUDFRONT_IS_DESKTOP_VIEWER'] === 'true'; | ||||
} | } | ||||
} | } | ||||
return !$this->isMobile($userAgent, $httpHeaders) && !$this->isTablet($userAgent, $httpHeaders) && !$this->isRobot($userAgent); | return !$this->isMobile($userAgent, $httpHeaders) && !$this->isTablet($userAgent, $httpHeaders) && !$this->isRobot($userAgent); | ||||
} | } | ||||
/** | /** | ||||
* Check if the device is a mobile phone. | * Check if the device is a mobile phone. | ||||
* @param string|null $userAgent deprecated | * @param string|null $userAgent deprecated | ||||
@@ -285,7 +250,6 @@ class Agent extends Mobile_Detect | |||||
{ | { | ||||
return $this->isMobile($userAgent, $httpHeaders) && !$this->isTablet($userAgent, $httpHeaders); | return $this->isMobile($userAgent, $httpHeaders) && !$this->isTablet($userAgent, $httpHeaders); | ||||
} | } | ||||
/** | /** | ||||
* Get the robot name. | * Get the robot name. | ||||
* @param string|null $userAgent | * @param string|null $userAgent | ||||
@@ -299,7 +263,6 @@ class Agent extends Mobile_Detect | |||||
return false; | return false; | ||||
} | } | ||||
/** | /** | ||||
* Check if device is a robot. | * Check if device is a robot. | ||||
* @param string|null $userAgent | * @param string|null $userAgent | ||||
@@ -309,7 +272,6 @@ class Agent extends Mobile_Detect | |||||
{ | { | ||||
return $this->getCrawlerDetect()->isCrawler($userAgent ?: $this->userAgent); | return $this->getCrawlerDetect()->isCrawler($userAgent ?: $this->userAgent); | ||||
} | } | ||||
/** | /** | ||||
* Get the device type | * Get the device type | ||||
* @param null $userAgent | * @param null $userAgent | ||||
@@ -327,51 +289,38 @@ class Agent extends Mobile_Detect | |||||
} elseif ($this->isRobot($userAgent)) { | } elseif ($this->isRobot($userAgent)) { | ||||
return "robot"; | return "robot"; | ||||
} | } | ||||
return "other"; | return "other"; | ||||
} | } | ||||
public function version($propertyName, $type = self::VERSION_TYPE_STRING) | public function version($propertyName, $type = self::VERSION_TYPE_STRING) | ||||
{ | { | ||||
if (empty($propertyName)) { | if (empty($propertyName)) { | ||||
return false; | return false; | ||||
} | } | ||||
// set the $type to the default if we don't recognize the type | |||||
//set the $type to the default if we don't recognize the type | |||||
if ($type !== self::VERSION_TYPE_STRING && $type !== self::VERSION_TYPE_FLOAT) { | if ($type !== self::VERSION_TYPE_STRING && $type !== self::VERSION_TYPE_FLOAT) { | ||||
$type = self::VERSION_TYPE_STRING; | $type = self::VERSION_TYPE_STRING; | ||||
} | } | ||||
$properties = self::getProperties(); | $properties = self::getProperties(); | ||||
// Check if the property exists in the properties array. | |||||
//Check if the property exists in the properties array. | |||||
if (true === isset($properties[$propertyName])) { | if (true === isset($properties[$propertyName])) { | ||||
// Prepare the pattern to be matched. | |||||
// Make sure we always deal with an array (string is converted). | |||||
//Prepare the pattern to be matched. | |||||
//Make sure we always deal with an array (string is converted). | |||||
$properties[$propertyName] = (array) $properties[$propertyName]; | $properties[$propertyName] = (array) $properties[$propertyName]; | ||||
foreach ($properties[$propertyName] as $propertyMatchString) { | foreach ($properties[$propertyName] as $propertyMatchString) { | ||||
if (is_array($propertyMatchString)) { | if (is_array($propertyMatchString)) { | ||||
$propertyMatchString = implode("|", $propertyMatchString); | $propertyMatchString = implode("|", $propertyMatchString); | ||||
} | } | ||||
$propertyPattern = str_replace('[VER]', self::VER, $propertyMatchString); | $propertyPattern = str_replace('[VER]', self::VER, $propertyMatchString); | ||||
// Identify and extract the version. | |||||
//Identify and extract the version. | |||||
preg_match(sprintf('#%s#is', $propertyPattern), $this->userAgent, $match); | preg_match(sprintf('#%s#is', $propertyPattern), $this->userAgent, $match); | ||||
if (false === empty($match[1])) { | if (false === empty($match[1])) { | ||||
$version = ($type === self::VERSION_TYPE_FLOAT ? $this->prepareVersionNo($match[1]) : $match[1]); | $version = ($type === self::VERSION_TYPE_FLOAT ? $this->prepareVersionNo($match[1]) : $match[1]); | ||||
return $version; | return $version; | ||||
} | } | ||||
} | } | ||||
} | } | ||||
return false; | return false; | ||||
} | } | ||||
/** | /** | ||||
* Merge multiple rules into one array. | * Merge multiple rules into one array. | ||||
* @param array $all | * @param array $all | ||||
@@ -380,7 +329,6 @@ class Agent extends Mobile_Detect | |||||
protected static function mergeRules(...$all) | protected static function mergeRules(...$all) | ||||
{ | { | ||||
$merged = []; | $merged = []; | ||||
foreach ($all as $rules) { | foreach ($all as $rules) { | ||||
foreach ($rules as $key => $value) { | foreach ($rules as $key => $value) { | ||||
if (empty($merged[$key])) { | if (empty($merged[$key])) { | ||||
@@ -392,24 +340,19 @@ class Agent extends Mobile_Detect | |||||
} | } | ||||
} | } | ||||
} | } | ||||
return $merged; | return $merged; | ||||
} | } | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function __call($name, $arguments) | public function __call($name, $arguments) | ||||
{ | { | ||||
// Make sure the name starts with 'is', otherwise | |||||
//Make sure the name starts with 'is', otherwise | |||||
if (strpos($name, 'is') !== 0) { | if (strpos($name, 'is') !== 0) { | ||||
throw new Exception("No such method exists: $name"); | throw new Exception("No such method exists: $name"); | ||||
} | } | ||||
$this->setDetectionType(self::DETECTION_TYPE_EXTENDED); | $this->setDetectionType(self::DETECTION_TYPE_EXTENDED); | ||||
$key = substr($name, 2); | $key = substr($name, 2); | ||||
return $this->matchUAAgainstKey($key); | return $this->matchUAAgainstKey($key); | ||||
} | } | ||||
} | |||||
} |
@@ -8,11 +8,9 @@ if (!defined('DEDEINC')) exit('dedebiz'); | |||||
* This source file is subject to the MIT license that is bundled | * This source file is subject to the MIT license that is bundled | ||||
* with this source code in the file LICENSE. | * with this source code in the file LICENSE. | ||||
*/ | */ | ||||
require_once(DEDEINC."/libraries/fixtures/crawlers.php"); | require_once(DEDEINC."/libraries/fixtures/crawlers.php"); | ||||
require_once(DEDEINC."/libraries/fixtures/exclusions.php"); | require_once(DEDEINC."/libraries/fixtures/exclusions.php"); | ||||
require_once(DEDEINC."/libraries/fixtures/headers.php"); | require_once(DEDEINC."/libraries/fixtures/headers.php"); | ||||
class CrawlerDetect | class CrawlerDetect | ||||
{ | { | ||||
/** | /** | ||||
@@ -21,56 +19,48 @@ class CrawlerDetect | |||||
* @var string|null | * @var string|null | ||||
*/ | */ | ||||
protected $userAgent; | protected $userAgent; | ||||
/** | /** | ||||
* Headers that contain a user agent. | * Headers that contain a user agent. | ||||
* | * | ||||
* @var array | * @var array | ||||
*/ | */ | ||||
protected $httpHeaders = array(); | protected $httpHeaders = array(); | ||||
/** | /** | ||||
* Store regex matches. | * Store regex matches. | ||||
* | * | ||||
* @var array | * @var array | ||||
*/ | */ | ||||
protected $matches = array(); | protected $matches = array(); | ||||
/** | /** | ||||
* Crawlers object. | * Crawlers object. | ||||
* | * | ||||
* @var \Jaybizzle\CrawlerDetect\Fixtures\Crawlers | * @var \Jaybizzle\CrawlerDetect\Fixtures\Crawlers | ||||
*/ | */ | ||||
protected $crawlers; | protected $crawlers; | ||||
/** | /** | ||||
* Exclusions object. | * Exclusions object. | ||||
* | * | ||||
* @var \Jaybizzle\CrawlerDetect\Fixtures\Exclusions | * @var \Jaybizzle\CrawlerDetect\Fixtures\Exclusions | ||||
*/ | */ | ||||
protected $exclusions; | protected $exclusions; | ||||
/** | /** | ||||
* Headers object. | * Headers object. | ||||
* | * | ||||
* @var \Jaybizzle\CrawlerDetect\Fixtures\Headers | * @var \Jaybizzle\CrawlerDetect\Fixtures\Headers | ||||
*/ | */ | ||||
protected $uaHttpHeaders; | protected $uaHttpHeaders; | ||||
/** | /** | ||||
* The compiled regex string. | * The compiled regex string. | ||||
* | * | ||||
* @var string | * @var string | ||||
*/ | */ | ||||
protected $compiledRegex; | protected $compiledRegex; | ||||
/** | /** | ||||
* The compiled exclusions regex string. | * The compiled exclusions regex string. | ||||
* | * | ||||
* @var string | * @var string | ||||
*/ | */ | ||||
protected $compiledExclusions; | protected $compiledExclusions; | ||||
/** | /** | ||||
* Class constructor. | * Class constructor. | ||||
*/ | */ | ||||
@@ -79,14 +69,11 @@ class CrawlerDetect | |||||
$this->crawlers = new Crawlers(); | $this->crawlers = new Crawlers(); | ||||
$this->exclusions = new Exclusions(); | $this->exclusions = new Exclusions(); | ||||
$this->uaHttpHeaders = new Headers(); | $this->uaHttpHeaders = new Headers(); | ||||
$this->compiledRegex = $this->compileRegex($this->crawlers->getAll()); | $this->compiledRegex = $this->compileRegex($this->crawlers->getAll()); | ||||
$this->compiledExclusions = $this->compileRegex($this->exclusions->getAll()); | $this->compiledExclusions = $this->compileRegex($this->exclusions->getAll()); | ||||
$this->setHttpHeaders($headers); | $this->setHttpHeaders($headers); | ||||
$this->setUserAgent($userAgent); | $this->setUserAgent($userAgent); | ||||
} | } | ||||
/** | /** | ||||
* Compile the regex patterns into one regex string. | * Compile the regex patterns into one regex string. | ||||
* | * | ||||
@@ -98,7 +85,6 @@ class CrawlerDetect | |||||
{ | { | ||||
return '('.implode('|', $patterns).')'; | return '('.implode('|', $patterns).')'; | ||||
} | } | ||||
/** | /** | ||||
* Set HTTP headers. | * Set HTTP headers. | ||||
* | * | ||||
@@ -106,23 +92,20 @@ class CrawlerDetect | |||||
*/ | */ | ||||
public function setHttpHeaders($httpHeaders) | public function setHttpHeaders($httpHeaders) | ||||
{ | { | ||||
// Use global _SERVER if $httpHeaders aren't defined. | |||||
//Use global _SERVER if $httpHeaders aren't defined. | |||||
if (! is_array($httpHeaders) || ! count($httpHeaders)) { | if (! is_array($httpHeaders) || ! count($httpHeaders)) { | ||||
$httpHeaders = $_SERVER; | $httpHeaders = $_SERVER; | ||||
} | } | ||||
// Clear existing headers. | |||||
//Clear existing headers. | |||||
$this->httpHeaders = array(); | $this->httpHeaders = array(); | ||||
// Only save HTTP headers. In PHP land, that means | |||||
// only _SERVER vars that start with HTTP_. | |||||
//Only save HTTP headers. In PHP land, that means | |||||
//only _SERVER vars that start with HTTP_. | |||||
foreach ($httpHeaders as $key => $value) { | foreach ($httpHeaders as $key => $value) { | ||||
if (strpos($key, 'HTTP_') === 0) { | if (strpos($key, 'HTTP_') === 0) { | ||||
$this->httpHeaders[$key] = $value; | $this->httpHeaders[$key] = $value; | ||||
} | } | ||||
} | } | ||||
} | } | ||||
/** | /** | ||||
* Return user agent headers. | * Return user agent headers. | ||||
* | * | ||||
@@ -132,7 +115,6 @@ class CrawlerDetect | |||||
{ | { | ||||
return $this->uaHttpHeaders->getAll(); | return $this->uaHttpHeaders->getAll(); | ||||
} | } | ||||
/** | /** | ||||
* Set the user agent. | * Set the user agent. | ||||
* | * | ||||
@@ -150,7 +132,6 @@ class CrawlerDetect | |||||
return $this->userAgent = $userAgent; | return $this->userAgent = $userAgent; | ||||
} | } | ||||
/** | /** | ||||
* Check user agent string against the regex. | * Check user agent string against the regex. | ||||
* | * | ||||
@@ -172,7 +153,6 @@ class CrawlerDetect | |||||
return (bool) preg_match("/{$this->compiledRegex}/i", $agent, $this->matches); | return (bool) preg_match("/{$this->compiledRegex}/i", $agent, $this->matches); | ||||
} | } | ||||
/** | /** | ||||
* Return the matches. | * Return the matches. | ||||
* | * | ||||
@@ -182,4 +162,4 @@ class CrawlerDetect | |||||
{ | { | ||||
return isset($this->matches[0]) ? $this->matches[0] : null; | return isset($this->matches[0]) ? $this->matches[0] : null; | ||||
} | } | ||||
} | |||||
} |
@@ -50,16 +50,16 @@ class smtp | |||||
} | } | ||||
if ($cc != "") | if ($cc != "") | ||||
{ | { | ||||
$header .= "Cc: " . $cc . "\r\n"; | |||||
$header .= "Cc: ".$cc."\r\n"; | |||||
} | } | ||||
$header .= "From: $webname<" . $from . ">\r\n"; | |||||
$subject = "=?" . $GLOBALS['cfg_soft_lang'] . "?B?" . base64_encode($subject) . "?="; | |||||
$header .= "Subject: " . $subject . "\r\n"; | |||||
$header .= "From: $webname<".$from.">\r\n"; | |||||
$subject = "=?".$GLOBALS['cfg_soft_lang']."?B?".base64_encode($subject)."?="; | |||||
$header .= "Subject: ".$subject."\r\n"; | |||||
$header .= $additional_headers; | $header .= $additional_headers; | ||||
$header .= "Date: " . date("r") . "\r\n"; | |||||
$header .= "X-Mailer:By Redhat (PHP/" . phpversion() . ")\r\n"; | |||||
$header .= "Date: ".date("r")."\r\n"; | |||||
$header .= "X-Mailer:By Redhat (PHP/".phpversion().")\r\n"; | |||||
list($msec, $sec) = explode(" ", microtime()); | list($msec, $sec) = explode(" ", microtime()); | ||||
$header .= "Message-ID: <" . date("YmdHis", $sec) . "." . ($msec * 1000000) . "." . $mail_from . ">\r\n"; | |||||
$header .= "Message-ID: <".date("YmdHis", $sec).".".($msec * 1000000).".".$mail_from.">\r\n"; | |||||
$TO = explode(",", $this->strip_comment($to)); | $TO = explode(",", $this->strip_comment($to)); | ||||
if ($cc != "") | if ($cc != "") | ||||
{ | { | ||||
@@ -72,20 +72,20 @@ class smtp | |||||
$sent = TRUE; | $sent = TRUE; | ||||
foreach ($TO as $rcpt_to) | foreach ($TO as $rcpt_to) | ||||
{ | { | ||||
$headerto = "To: " . $rcpt_to . "\r\n"; | |||||
$headerall = $header . $headerto; | |||||
$headerto = "To: ".$rcpt_to."\r\n"; | |||||
$headerall = $header.$headerto; | |||||
$rcpt_to = $this->get_address($rcpt_to); | $rcpt_to = $this->get_address($rcpt_to); | ||||
if (!$this->smtp_sockopen($rcpt_to)) | if (!$this->smtp_sockopen($rcpt_to)) | ||||
{ | { | ||||
$this->log_write("Error: Cannot send email to " . $rcpt_to . "\n"); | |||||
$this->log_write("Error: Cannot send email to ".$rcpt_to."\n"); | |||||
$sent = FALSE; | $sent = FALSE; | ||||
continue; | continue; | ||||
} | } | ||||
if ($this->smtp_send($this->host_name, $mail_from, $rcpt_to, $headerall, $body)) | if ($this->smtp_send($this->host_name, $mail_from, $rcpt_to, $headerall, $body)) | ||||
{ | { | ||||
$this->log_write("E-mail has been sent to <" . $rcpt_to . ">\n"); | |||||
$this->log_write("E-mail has been sent to <".$rcpt_to.">\n"); | |||||
} else { | } else { | ||||
$this->log_write("Error: Cannot send email to <" . $rcpt_to . ">\n"); | |||||
$this->log_write("Error: Cannot send email to <".$rcpt_to.">\n"); | |||||
$sent = FALSE; | $sent = FALSE; | ||||
} | } | ||||
fclose($this->sock); | fclose($this->sock); | ||||
@@ -125,11 +125,11 @@ class smtp | |||||
return $this->smtp_error("sending HELO command"); | return $this->smtp_error("sending HELO command"); | ||||
} | } | ||||
} | } | ||||
if (!$this->smtp_putcmd("MAIL", "FROM:<" . $from . ">")) | |||||
if (!$this->smtp_putcmd("MAIL", "FROM:<".$from.">")) | |||||
{ | { | ||||
return $this->smtp_error("sending MAIL FROM command"); | return $this->smtp_error("sending MAIL FROM command"); | ||||
} | } | ||||
if (!$this->smtp_putcmd("RCPT", "TO:<" . $to . ">")) | |||||
if (!$this->smtp_putcmd("RCPT", "TO:<".$to.">")) | |||||
{ | { | ||||
return $this->smtp_error("sending RCPT TO command"); | return $this->smtp_error("sending RCPT TO command"); | ||||
} | } | ||||
@@ -162,15 +162,15 @@ class smtp | |||||
} | } | ||||
function smtp_sockopen_relay() | function smtp_sockopen_relay() | ||||
{ | { | ||||
$this->log_write("Trying to " . $this->relay_host . ":" . $this->smtp_port . "\n"); | |||||
$this->log_write("Trying to ".$this->relay_host.":".$this->smtp_port."\n"); | |||||
$this->sock = @fsockopen($this->relay_host, $this->smtp_port, $errno, $errstr, $this->time_out); | $this->sock = @fsockopen($this->relay_host, $this->smtp_port, $errno, $errstr, $this->time_out); | ||||
if (!($this->sock && $this->smtp_ok())) | if (!($this->sock && $this->smtp_ok())) | ||||
{ | { | ||||
$this->log_write("Error: Cannot connenct to relay host " . $this->relay_host . "\n"); | |||||
$this->log_write("Error: " . $errstr . " (" . $errno . ")\n"); | |||||
$this->log_write("Error: Cannot connenct to relay host ".$this->relay_host."\n"); | |||||
$this->log_write("Error: ".$errstr." (".$errno.")\n"); | |||||
return FALSE; | return FALSE; | ||||
} | } | ||||
$this->log_write("Connected to relay host " . $this->relay_host . "\n"); | |||||
$this->log_write("Connected to relay host ".$this->relay_host."\n"); | |||||
return TRUE;; | return TRUE;; | ||||
} | } | ||||
function smtp_sockopen_mx($address) | function smtp_sockopen_mx($address) | ||||
@@ -178,29 +178,29 @@ class smtp | |||||
$domain = preg_replace("/^.+@([^@]+)$/i", "\1", $address); | $domain = preg_replace("/^.+@([^@]+)$/i", "\1", $address); | ||||
if (!@getmxrr($domain, $MXHOSTS)) | if (!@getmxrr($domain, $MXHOSTS)) | ||||
{ | { | ||||
$this->log_write("Error: Cannot resolve MX \"" . $domain . "\"\n"); | |||||
$this->log_write("Error: Cannot resolve MX \"".$domain."\"\n"); | |||||
return FALSE; | return FALSE; | ||||
} | } | ||||
foreach ($MXHOSTS as $host) | foreach ($MXHOSTS as $host) | ||||
{ | { | ||||
$this->log_write("Trying to " . $host . ":" . $this->smtp_port . "\n"); | |||||
$this->log_write("Trying to ".$host.":".$this->smtp_port."\n"); | |||||
$this->sock = @fsockopen($host, $this->smtp_port, $errno, $errstr, $this->time_out); | $this->sock = @fsockopen($host, $this->smtp_port, $errno, $errstr, $this->time_out); | ||||
if (!($this->sock && $this->smtp_ok())) | if (!($this->sock && $this->smtp_ok())) | ||||
{ | { | ||||
$this->log_write("Warning: Cannot connect to mx host " . $host . "\n"); | |||||
$this->log_write("Error: " . $errstr . " (" . $errno . ")\n"); | |||||
$this->log_write("Warning: Cannot connect to mx host ".$host."\n"); | |||||
$this->log_write("Error: ".$errstr." (".$errno.")\n"); | |||||
continue; | continue; | ||||
} | } | ||||
$this->log_write("Connected to mx host " . $host . "\n"); | |||||
$this->log_write("Connected to mx host ".$host."\n"); | |||||
return TRUE; | return TRUE; | ||||
} | } | ||||
$this->log_write("Error: Cannot connect to any mx hosts (" . implode(", ", $MXHOSTS) . ")\n"); | |||||
$this->log_write("Error: Cannot connect to any mx hosts (".implode(", ", $MXHOSTS).")\n"); | |||||
return FALSE; | return FALSE; | ||||
} | } | ||||
function smtp_message($header, $body) | function smtp_message($header, $body) | ||||
{ | { | ||||
fputs($this->sock, $header . "\r\n" . $body); | |||||
$this->smtp_debug("> " . str_replace("\r\n", "\n" . "> ", $header . "\n> " . $body . "\n> ")); | |||||
fputs($this->sock, $header."\r\n".$body); | |||||
$this->smtp_debug("> ".str_replace("\r\n", "\n"."> ", $header."\n> ".$body."\n> ")); | |||||
return TRUE; | return TRUE; | ||||
} | } | ||||
function smtp_eom() | function smtp_eom() | ||||
@@ -212,12 +212,12 @@ class smtp | |||||
function smtp_ok() | function smtp_ok() | ||||
{ | { | ||||
$response = str_replace("\r\n", "", fgets($this->sock, 512)); | $response = str_replace("\r\n", "", fgets($this->sock, 512)); | ||||
$this->smtp_debug($response . "\n"); | |||||
$this->smtp_debug($response."\n"); | |||||
if (!preg_match("#^[23]#", $response)) | if (!preg_match("#^[23]#", $response)) | ||||
{ | { | ||||
fputs($this->sock, "QUIT\r\n"); | fputs($this->sock, "QUIT\r\n"); | ||||
fgets($this->sock, 512); | fgets($this->sock, 512); | ||||
$this->log_write("Error: Remote host returned \"" . $response . "\"\n"); | |||||
$this->log_write("Error: Remote host returned \"".$response."\"\n"); | |||||
return FALSE; | return FALSE; | ||||
} | } | ||||
return TRUE; | return TRUE; | ||||
@@ -230,16 +230,16 @@ class smtp | |||||
{ | { | ||||
$cmd = $arg; | $cmd = $arg; | ||||
} else { | } else { | ||||
$cmd = $cmd . " " . $arg; | |||||
$cmd = $cmd." ".$arg; | |||||
} | } | ||||
} | } | ||||
fputs($this->sock, $cmd . "\r\n"); | |||||
$this->smtp_debug("> " . $cmd . "\n"); | |||||
fputs($this->sock, $cmd."\r\n"); | |||||
$this->smtp_debug("> ".$cmd."\n"); | |||||
return $this->smtp_ok(); | return $this->smtp_ok(); | ||||
} | } | ||||
function smtp_error($string) | function smtp_error($string) | ||||
{ | { | ||||
$this->log_write("Error: Error occurred while " . $string . ".\n"); | |||||
$this->log_write("Error: Error occurred while ".$string.".\n"); | |||||
return FALSE; | return FALSE; | ||||
} | } | ||||
function log_write($message) | function log_write($message) | ||||
@@ -249,10 +249,10 @@ class smtp | |||||
{ | { | ||||
return TRUE; | return TRUE; | ||||
} | } | ||||
$message = date("M d H:i:s ") . get_current_user() . "[" . getmypid() . "]: " . $message; | |||||
$message = date("M d H:i:s ").get_current_user()."[".getmypid()."]: ".$message; | |||||
if (!@file_exists($this->log_file) || !($fp = @fopen($this->log_file, "a"))) | if (!@file_exists($this->log_file) || !($fp = @fopen($this->log_file, "a"))) | ||||
{ | { | ||||
$this->smtp_debug("Warning: Cannot open log file \"" . $this->log_file . "\"\n"); | |||||
$this->smtp_debug("Warning: Cannot open log file \"".$this->log_file."\"\n"); | |||||
return FALSE;; | return FALSE;; | ||||
} | } | ||||
flock($fp, LOCK_EX); | flock($fp, LOCK_EX); | ||||
@@ -1,8 +1,6 @@ | |||||
<?php | <?php | ||||
if (!defined('DEDEINC')) exit('dedebiz'); | if (!defined('DEDEINC')) exit('dedebiz'); | ||||
require_once(DEDEINC."/libraries/agent.class.php"); | require_once(DEDEINC."/libraries/agent.class.php"); | ||||
/** | /** | ||||
* 流量统计 | * 流量统计 | ||||
* 一个轻量级流量统计功能 | * 一个轻量级流量统计功能 | ||||
@@ -13,13 +11,11 @@ require_once(DEDEINC."/libraries/agent.class.php"); | |||||
* @license https://www.dedebiz.com/license | * @license https://www.dedebiz.com/license | ||||
* @link https://www.dedebiz.com | * @link https://www.dedebiz.com | ||||
*/ | */ | ||||
class DedeStatistics { | class DedeStatistics { | ||||
function __construct() | function __construct() | ||||
{ | { | ||||
} | } | ||||
// 获取统计JS | |||||
//获取统计JS | |||||
function GetStat() | function GetStat() | ||||
{ | { | ||||
global $envs,$cfg_cookie_encode; | global $envs,$cfg_cookie_encode; | ||||
@@ -66,7 +62,7 @@ class DedeStatistics { | |||||
var xhr; | var xhr; | ||||
if (window.XMLHttpRequest) { | if (window.XMLHttpRequest) { | ||||
xhr = new XMLHttpRequest(); | xhr = new XMLHttpRequest(); | ||||
} else if (window.ActiveXObject) { // IE | |||||
} else if (window.ActiveXObject) { //IE | |||||
try { | try { | ||||
xhr = new ActiveXObject('Msxml2.XMLHTTP'); | xhr = new ActiveXObject('Msxml2.XMLHTTP'); | ||||
} catch (e) { | } catch (e) { | ||||
@@ -83,14 +79,13 @@ class DedeStatistics { | |||||
fetch(u); | fetch(u); | ||||
} | } | ||||
})(); | })(); | ||||
EOT; | |||||
EOT; | |||||
} | } | ||||
// 统计 | |||||
//统计 | |||||
function Record() | function Record() | ||||
{ | { | ||||
global $dsql,$cfg_cookie_encode; | global $dsql,$cfg_cookie_encode; | ||||
// 进行统计 | |||||
//进行统计 | |||||
$pm = array('dduuid','ssid','browser','device','device_type','os','t','created_date','created_hour','url_type','typeid','aid','value','sign'); | $pm = array('dduuid','ssid','browser','device','device_type','os','t','created_date','created_hour','url_type','typeid','aid','value','sign'); | ||||
$pmvalue = array(); | $pmvalue = array(); | ||||
foreach ($pm as $v) { | foreach ($pm as $v) { | ||||
@@ -115,8 +110,7 @@ EOT; | |||||
$insql = "INSERT INTO `#@__statistics_detail`(".implode(",",$kstr).") VALUES (".implode(",",$vstr).")"; | $insql = "INSERT INTO `#@__statistics_detail`(".implode(",",$kstr).") VALUES (".implode(",",$vstr).")"; | ||||
return $dsql->ExecuteNoneQuery($insql); | return $dsql->ExecuteNoneQuery($insql); | ||||
} | } | ||||
// 生成uuid | |||||
//生成uuid | |||||
function _uniqidReal($lenght = 13) { | function _uniqidReal($lenght = 13) { | ||||
if (function_exists("random_bytes")) { | if (function_exists("random_bytes")) { | ||||
$bytes = random_bytes(ceil($lenght / 2)); | $bytes = random_bytes(ceil($lenght / 2)); | ||||
@@ -127,7 +121,6 @@ EOT; | |||||
} | } | ||||
return substr(bin2hex($bytes), 0, $lenght); | return substr(bin2hex($bytes), 0, $lenght); | ||||
} | } | ||||
function GetInfoByDateMulti($ds = array()) | function GetInfoByDateMulti($ds = array()) | ||||
{ | { | ||||
$results = array(); | $results = array(); | ||||
@@ -137,8 +130,7 @@ EOT; | |||||
} | } | ||||
return $result; | return $result; | ||||
} | } | ||||
// 获取某天的统计信息 | |||||
//获取某天的统计信息 | |||||
function GetInfoByDate($d=0) | function GetInfoByDate($d=0) | ||||
{ | { | ||||
global $dsql; | global $dsql; | ||||
@@ -160,9 +152,8 @@ EOT; | |||||
$d = $today; | $d = $today; | ||||
} | } | ||||
$d = intval($d); | $d = intval($d); | ||||
// 如果统计数据中存在,则直接查询统计表 | |||||
//如果统计数据中存在,则直接查询统计表 | |||||
$info = $dsql->GetOne("SELECT * FROM `#@__statistics` WHERE sdate = $d"); | $info = $dsql->GetOne("SELECT * FROM `#@__statistics` WHERE sdate = $d"); | ||||
if (is_array($info)) { | if (is_array($info)) { | ||||
return $info; | return $info; | ||||
} | } | ||||
@@ -171,7 +162,7 @@ EOT; | |||||
$ip = $dsql->GetOne("SELECT COUNT(DISTINCT ip) as total FROM `#@__statistics_detail` WHERE created_date = $d"); | $ip = $dsql->GetOne("SELECT COUNT(DISTINCT ip) as total FROM `#@__statistics_detail` WHERE created_date = $d"); | ||||
$vv = $dsql->GetOne("SELECT COUNT(DISTINCT ssid) as total FROM `#@__statistics_detail` WHERE created_date = $d"); | $vv = $dsql->GetOne("SELECT COUNT(DISTINCT ssid) as total FROM `#@__statistics_detail` WHERE created_date = $d"); | ||||
if ($d < intval($today)) { | if ($d < intval($today)) { | ||||
// 缓存数据 | |||||
//缓存数据 | |||||
$insql = "INSERT INTO `#@__statistics`(`sdate`,`pv`,`uv`,`ip`,`vv`) VALUES ('$d', '{$pv['total']}','{$uv['total']}','{$ip['total']}','{$vv['total']}')"; | $insql = "INSERT INTO `#@__statistics`(`sdate`,`pv`,`uv`,`ip`,`vv`) VALUES ('$d', '{$pv['total']}','{$uv['total']}','{$ip['total']}','{$vv['total']}')"; | ||||
$dsql->ExecuteNoneQuery($insql); | $dsql->ExecuteNoneQuery($insql); | ||||
} | } | ||||
@@ -15,7 +15,7 @@ | |||||
</style> | </style> | ||||
</head> | </head> | ||||
<body> | <body> | ||||
<?php include("plus_header.htm") ; ?> | |||||
<?php include("plus_header.htm"); ?> | |||||
<div class="container"> | <div class="container"> | ||||
<div class="sp-title"> | <div class="sp-title"> | ||||
<h2>文件:<a href="<?php echo $arcurl; ?>"><?php echo $title; ?></a></h2> | <h2>文件:<a href="<?php echo $arcurl; ?>"><?php echo $title; ?></a></h2> | ||||
@@ -32,6 +32,6 @@ | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="advancedsearch"></div> | <div class="advancedsearch"></div> | ||||
<?php include("plus_footer.htm") ; ?> | |||||
<?php include("plus_footer.htm"); ?> | |||||
</body> | </body> | ||||
</html> | </html> |
@@ -10,7 +10,7 @@ | |||||
<script src="<?php echo $cfg_cmsurl; ?>/static/web/js/jquery.min.js"></script> | <script src="<?php echo $cfg_cmsurl; ?>/static/web/js/jquery.min.js"></script> | ||||
</head> | </head> | ||||
<body class="flinkpage"> | <body class="flinkpage"> | ||||
<?php include("plus_header.htm") ; ?> | |||||
<?php include("plus_header.htm"); ?> | |||||
<div class="container"> | <div class="container"> | ||||
<div class="sp-title"> | <div class="sp-title"> | ||||
<nav class="navbar navbar-expand-lg"> | <nav class="navbar navbar-expand-lg"> | ||||
@@ -81,6 +81,6 @@ | |||||
</form> | </form> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<?php include("plus_footer.htm") ; ?> | |||||
<?php include("plus_footer.htm"); ?> | |||||
</body> | </body> | ||||
</html> | </html> |
@@ -10,7 +10,7 @@ | |||||
<script src="<?php echo $cfg_cmsurl; ?>/static/web/js/jquery.min.js"></script> | <script src="<?php echo $cfg_cmsurl; ?>/static/web/js/jquery.min.js"></script> | ||||
</head> | </head> | ||||
<body class="flinkpage"> | <body class="flinkpage"> | ||||
<?php include("plus_header.htm") ; ?> | |||||
<?php include("plus_header.htm"); ?> | |||||
<div class="container"> | <div class="container"> | ||||
<div class="sp-title"> | <div class="sp-title"> | ||||
<nav class="navbar navbar-expand-lg"> | <nav class="navbar navbar-expand-lg"> | ||||
@@ -49,6 +49,6 @@ | |||||
</ul> | </ul> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<?php include("plus_footer.htm") ; ?> | |||||
<?php include("plus_footer.htm"); ?> | |||||
</body> | </body> | ||||
</html> | </html> |
@@ -9,7 +9,7 @@ | |||||
<link rel="stylesheet" href="<?php echo $cfg_cmsurl; ?>/static/web/css/style.css"> | <link rel="stylesheet" href="<?php echo $cfg_cmsurl; ?>/static/web/css/style.css"> | ||||
</head> | </head> | ||||
<body class="flinkpage"> | <body class="flinkpage"> | ||||
<?php include("plus_header.htm") ; ?> | |||||
<?php include("plus_header.htm"); ?> | |||||
<div class="container"> | <div class="container"> | ||||
<div class="formbox mt-3"> | <div class="formbox mt-3"> | ||||
<table width="100%" cellpadding="0" cellspacing="0" bgcolor="#cccccc" class='table'> | <table width="100%" cellpadding="0" cellspacing="0" bgcolor="#cccccc" class='table'> | ||||
@@ -101,6 +101,6 @@ | |||||
<br> | <br> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<?php include("plus_footer.htm") ; ?> | |||||
<?php include("plus_footer.htm"); ?> | |||||
</body> | </body> | ||||
</html> | </html> |
@@ -9,7 +9,7 @@ | |||||
<link rel="stylesheet" href="<?php echo $cfg_cmsurl; ?>/static/web/css/style.css"> | <link rel="stylesheet" href="<?php echo $cfg_cmsurl; ?>/static/web/css/style.css"> | ||||
</head> | </head> | ||||
<body class="flinkpage"> | <body class="flinkpage"> | ||||
<?php include("plus_header.htm") ; ?> | |||||
<?php include("plus_header.htm"); ?> | |||||
<div class="container"> | <div class="container"> | ||||
<div class="sp-title mt-3">推荐:<?php echo $title; ?></div> | <div class="sp-title mt-3">推荐:<?php echo $title; ?></div> | ||||
<div class="formbox"> | <div class="formbox"> | ||||
@@ -42,6 +42,6 @@ | |||||
</form> | </form> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<?php include("plus_footer.htm") ; ?> | |||||
<?php include("plus_footer.htm"); ?> | |||||
</body> | </body> | ||||
</html> | </html> |
@@ -10,7 +10,7 @@ | |||||
<script src="<?php echo $cfg_cmsurl; ?>/static/web/js/jquery.min.js"></script> | <script src="<?php echo $cfg_cmsurl; ?>/static/web/js/jquery.min.js"></script> | ||||
</head> | </head> | ||||
<body class="flinkpage"> | <body class="flinkpage"> | ||||
<?php include("plus_header.htm") ; ?> | |||||
<?php include("plus_header.htm"); ?> | |||||
<div class="container"> | <div class="container"> | ||||
<div class="sp-title"> | <div class="sp-title"> | ||||
<span class="more"> | <span class="more"> | ||||
@@ -43,6 +43,6 @@ | |||||
<br> | <br> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<?php include("plus_footer.htm") ; ?> | |||||
<?php include("plus_footer.htm"); ?> | |||||
</body> | </body> | ||||
</html> | </html> |
@@ -11,7 +11,7 @@ | |||||
</li> | </li> | ||||
{dede:channel type='top' row='10' currentstyle="<li class='nav-item'><a class='nav-link active' href='~typelink~' ~rel~><span>~typename~</span></a></li>"} | {dede:channel type='top' row='10' currentstyle="<li class='nav-item'><a class='nav-link active' href='~typelink~' ~rel~><span>~typename~</span></a></li>"} | ||||
<li class="nav-item"> | <li class="nav-item"> | ||||
<a class="nav-link" href="[field:typeurl/]" typeid=[field:id/]>[field:typename/]</a> | |||||
<a class="nav-link" href="[field:typeurl/]">[field:typename/]</a> | |||||
</li> | </li> | ||||
{/dede:channel} | {/dede:channel} | ||||
</ul> | </ul> | ||||
@@ -12,9 +12,9 @@ if ($myurl == '') exit(''); | |||||
else { | else { | ||||
$uid = $cfg_ml->M_LoginID; | $uid = $cfg_ml->M_LoginID; | ||||
$face = $cfg_ml->fields['face'] == '' ? $GLOBALS['cfg_memberurl'].'/images/nopic.gif' : $cfg_ml->fields['face']; | $face = $cfg_ml->fields['face'] == '' ? $GLOBALS['cfg_memberurl'].'/images/nopic.gif' : $cfg_ml->fields['face']; | ||||
echo "用户名:{$cfg_ml->M_UserName} <input name=\"notuser\" type=\"checkbox\" id=\"notuser\" value=\"1\" />匿名评论\r\n"; | |||||
echo "用户名:{$cfg_ml->M_UserName} <input name='notuser' type='checkbox' id='notuser' value='1' />匿名评论\r\n"; | |||||
if ($cfg_feedback_ck == 'Y') { | if ($cfg_feedback_ck == 'Y') { | ||||
echo "验证码:<input name=\"validate\" type=\"text\" id=\"validate\" size=\"10\" style=\"height:18px;width:60px;margin-right:6px;text-transform: uppercase;\" class=\"nb\" />"; | |||||
echo "<img src='{$cfg_cmsurl}/apps/vdimgck.php' style='cursor:pointer' id='validateimg' onclick=\"this.src=this.src+'?'\" title='验证码' alt='验证码' />\r\n"; | |||||
echo "验证码:<input name='validate' type='text' id='validate' size='10' style='height:18px;width:60px;margin-right:6px;text-transform: uppercase;' class='nb' />"; | |||||
echo "<img src='{$cfg_cmsurl}/apps/vdimgck.php' style='cursor:pointer' id='validateimg' onclick='this.src=this.src+'?'' alt='验证码' title='验证码' />\r\n"; | |||||
} | } | ||||
} | } |
@@ -27,7 +27,6 @@ function GetSta($sta) | |||||
else if ($sta == 1) return '已付款'; | else if ($sta == 1) return '已付款'; | ||||
else return '已完成'; | else return '已完成'; | ||||
} | } | ||||
if ($dopost == '') { | if ($dopost == '') { | ||||
$sql = "SELECT * FROM `#@__member_operation` WHERE mid='".$cfg_ml->M_ID."' AND product<>'archive' ORDER BY aid DESC"; | $sql = "SELECT * FROM `#@__member_operation` WHERE mid='".$cfg_ml->M_ID."' AND product<>'archive' ORDER BY aid DESC"; | ||||
$dlist = new DataListCP(); | $dlist = new DataListCP(); | ||||