| @@ -23,7 +23,7 @@ $dlist->Display(); | |||
| function GetSta($sta) | |||
| { | |||
| if ($sta == 1) return "正常"; | |||
| else return "<span style='color:#dc3545'>禁用</span>"; | |||
| else return "<span class='text-danger'>禁用</span>"; | |||
| } | |||
| 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"; | |||
| $templist = "{style}/list_{$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','','')"; | |||
| if (empty($savetype)) { | |||
| foreach ($_POST as $k => $v) { | |||
| @@ -176,8 +176,8 @@ else if ($dopost == 'save') { | |||
| 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)) { | |||
| ShowMsg("保存目录数据时失败,请检查您的输入资料是否存在问题", "-1"); | |||
| exit(); | |||
| @@ -33,9 +33,9 @@ if ($dopost == "save") { | |||
| issend='$issend', | |||
| sortrank='$sortrank', | |||
| typename='$typename', | |||
| namegk='$namegk', | |||
| cnoverview='$cnoverview', | |||
| enname='$enname', | |||
| ennamegk='$ennamegk', | |||
| enoverview='$enoverview', | |||
| bigpic='$bigpic', | |||
| litimg='$litimg', | |||
| typedir='$typedir', | |||
| @@ -158,87 +158,87 @@ while ($row = $dsql->GetObject()) { | |||
| PutCookie('lastCid', GetTopid($id), 3600 * 24, "/"); | |||
| 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 | |||
| exit(); | |||
| } else { | |||
| @@ -14,11 +14,11 @@ if (empty($uploadfile)) { | |||
| $uploadfile = ""; | |||
| } | |||
| if (!is_uploaded_file($uploadfile)) { | |||
| ShowMsg("您没有选择上传的文件!", "-1"); | |||
| ShowMsg("您没有选择上传的文件", "-1"); | |||
| exit(); | |||
| } | |||
| if (!preg_match("#^text#", $uploadfile_type)) { | |||
| ShowMsg("您上传的不是文本类型附件!", "-1"); | |||
| ShowMsg("您上传的不是文本类型附件", "-1"); | |||
| exit(); | |||
| } | |||
| 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:top> | |||
| $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_gitUrl' rank='' target='_blank' /> | |||
| </m:top>"; | |||
| @@ -20,9 +20,9 @@ $dlist->display(); | |||
| function GetSta($sta, $id) | |||
| { | |||
| 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 { | |||
| 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) | |||
| @@ -11,9 +11,9 @@ | |||
| require_once(dirname(__FILE__)."/config.php"); | |||
| require_once(DEDEINC."/datalistcp.class.php"); | |||
| 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); | |||
| 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'"); | |||
| $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(); | |||
| @@ -10,13 +10,13 @@ | |||
| */ | |||
| require_once(dirname(__FILE__)."/config.php"); | |||
| 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); | |||
| 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"); | |||
| if (!is_array($rows)) { | |||
| $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'"); | |||
| if (is_array($row)) { | |||
| @@ -26,7 +26,7 @@ | |||
| <tr> | |||
| <td align="center"> | |||
| <table width="98%" cellspacing="0" cellpadding="5"> | |||
| <?php foreach ($row['soniterm'] as $rows) {?> | |||
| <?php foreach ($row['soniterm'] as $rows) { ?> | |||
| <tr> | |||
| <td align="left"><a href="<?php echo $rows['linkurl'] ?>" target="main"><?php echo $rows['title'] ?></a><br><?php echo $rows['description'] ?></td> | |||
| </tr> | |||
| @@ -1,4 +1,4 @@ | |||
| {dede:config.pagesize value='20' /} | |||
| {dede:config.pagesize value='30'/} | |||
| <!DOCTYPE html> | |||
| <html> | |||
| <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?>"> | |||
| <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> | |||
| <?php | |||
| } | |||
| ?> | |||
| } | |||
| ?> | |||
| <input type="hidden" name="idend" value="<?php echo $k?>"> | |||
| <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 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> | |||
| <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> | |||
| </form> | |||
| </table> | |||
| @@ -217,16 +217,16 @@ | |||
| <td class="bline"><input name="typename" type="text" class="iptxt" style="width:260px"></td> | |||
| </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> | |||
| <td class="bline" height="26" style="padding-left:10px">英文名称:</td> | |||
| <td class="bline"><input name="enname" type="text" class="iptxt" style="width:260px"></td> | |||
| </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> | |||
| <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> | |||
| </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> | |||
| <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> | |||
| </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> | |||
| <td class="bline" height="26" style="padding-left:10px">栏目大图:</td> | |||
| @@ -244,7 +244,7 @@ | |||
| </tr> | |||
| <tr> | |||
| <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> | |||
| <td height="26" style="padding-left:10px">栏目列表选项:</td> | |||
| @@ -29,13 +29,13 @@ | |||
| <td width="70%">属性名称</td> | |||
| </tr> | |||
| <?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?>"> | |||
| <tr> | |||
| <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> | |||
| </tr> | |||
| <?php | |||
| } | |||
| ?> | |||
| } | |||
| ?> | |||
| <input type="hidden" name="idend" value="<?php echo $k?>"> | |||
| <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> | |||
| </form> | |||
| </table> | |||
| @@ -258,9 +258,7 @@ | |||
| </td> | |||
| </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> | |||
| </table> | |||
| </td> | |||
| @@ -250,9 +250,7 @@ | |||
| </td> | |||
| </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> | |||
| </table> | |||
| </td> | |||
| @@ -17,7 +17,8 @@ | |||
| <a href="friendlink_main.php">友情链接管理</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='../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 bgcolor="#F8FCF1"> | |||
| <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> | |||
| <html> | |||
| <head> | |||
| @@ -1,4 +1,4 @@ | |||
| {dede:config name='pagesize' value='30' /} | |||
| {dede:config name='pagesize' value='30'/} | |||
| <!DOCTYPE html> | |||
| <html> | |||
| <head> | |||
| @@ -56,9 +56,7 @@ | |||
| </tr>'} | |||
| <tr height="26" align="center" onmousemove="javascript:this.bgColor='#F8FCF1';" onmouseout="javascript:this.bgColor='#ffffff';"> | |||
| <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.addtable function="str_replace('#@__',$cfg_dbprefix,@me)" /}</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> | |||
| <html> | |||
| <head> | |||
| @@ -103,9 +103,7 @@ | |||
| </td> | |||
| </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> | |||
| </table> | |||
| </form> | |||
| @@ -78,9 +78,7 @@ | |||
| </td> | |||
| </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> | |||
| </table> | |||
| </td> | |||
| @@ -38,7 +38,7 @@ | |||
| <table width="100%" cellspacing="0" cellpadding="0"> | |||
| <tr> | |||
| <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 | |||
| if ($cfg_dbtype=="sqlite") { | |||
| $query = "SELECT name FROM sqlite_master WHERE type='table' ORDER BY name;"; | |||
| @@ -61,15 +61,12 @@ | |||
| <td width="2%"></td> | |||
| <td width="63%" valign="bottom"> | |||
| <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> | |||
| </div> | |||
| <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> | |||
| </div> | |||
| </td> | |||
| @@ -94,13 +91,10 @@ | |||
| </td> | |||
| </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> | |||
| <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> | |||
| </form> | |||
| </table> | |||
| @@ -108,7 +108,7 @@ | |||
| <form name="form2" action="tags_main.php" style="display:inline-block"> | |||
| <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> | |||
| <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> | |||
| </td> | |||
| </tr> | |||
| @@ -30,12 +30,12 @@ function checkSubmit() | |||
| </head> | |||
| <body> | |||
| <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> | |||
| </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()"> | |||
| <input type='hidden' name='dopost' value='saveedit'> | |||
| <input type='hidden' name='aid' value='<?php echo $aid?>'> | |||
| @@ -40,8 +40,7 @@ | |||
| <tr> | |||
| <td> | |||
| <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> | |||
| </tr> | |||
| </form> | |||
| @@ -17,7 +17,7 @@ | |||
| </td> | |||
| </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> | |||
| <?php echo $dirinfos; ?> | |||
| <tr bgcolor="#F8FEDA"> | |||
| @@ -1,21 +1,17 @@ | |||
| <?php | |||
| /*--------------------------------------------------------------------------------------------- | |||
| 文件远程发布目录更新配置(config.file.inc.php) | |||
| 说明:本文件主要用于系统后台[生成]-[自动任务]-[远程服务器同步] | |||
| 中的文件夹自定义更新配置所用,使用时候如果有特定目录需要进行同 | |||
| 步,则需要在这个文件中进行配置,配置方式如下: | |||
| 说明:本文件主要用于系统后台[生成]-[自动任务]-[远程服务器同步]文件远程发布目录更新配置(config.file.inc.php) | |||
| 中的文件夹自定义更新配置所用,使用时候如果有特定目录需要进行同步,则需要在这个文件中进行配置,配置方式如下: | |||
| $remotefile[] = array( | |||
| 'filedir' => '/yourdir', //同步文件夹目录 | |||
| 'description' => '这里是文件夹说明', | |||
| 'dfserv' => '0', //默认服务器选项,可以在系统后台[系统设置]-[服务器分布/远程 ]中配置 | |||
| 'state' => '0', //同步状态,0:未同步 1:已同步 | |||
| 'description' => ' //这里是文件夹说明', | |||
| 'dfserv' => '0', //默认服务器选项,可以在系统后台[系统设置]-[服务器分布/远程 ]中配置 | |||
| 'state' => '0', //同步状态,0:未同步 1:已同步 | |||
| ); | |||
| -----------------------------------------------------------------------------------------------*/ | |||
| global $remotefile; | |||
| $remotefile = array(); | |||
| //以下是必备同步配置项 | |||
| //@start_config 不要改动下面<>结构 | |||
| #<s_config> | |||
| $remotefile[0] = array( | |||
| 'filedir'=>'/a', | |||
| 'description'=>'文档HTML默认保存路', | |||
| @@ -24,53 +20,17 @@ $remotefile[0] = array( | |||
| 'issystem'=>1 | |||
| ); | |||
| $remotefile[1] = array( | |||
| 'filedir'=>'/longhoo', | |||
| 'description'=>'文档HTML默认保存路', | |||
| 'filedir'=>'/static', | |||
| 'description'=>'图片上传文件默认路径', | |||
| 'dfserv'=>0, | |||
| 'state'=>1, | |||
| 'issystem'=>1 | |||
| ); | |||
| $remotefile[2] = array( | |||
| 'filedir'=>'/uploads', | |||
| 'description'=>'图片/上传文件默认路径', | |||
| 'dfserv'=>0, | |||
| 'state'=>1, | |||
| 'issystem'=>1 | |||
| ); | |||
| $remotefile[3] = array( | |||
| 'filedir'=>'/special', | |||
| 'filedir'=>'/apps/special', | |||
| 'description'=>'专题目录', | |||
| 'dfserv'=>0, | |||
| 'state'=>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'); | |||
| exit(); | |||
| } | |||
| //自动生成网页版 | |||
| //自动生成网页 | |||
| if (isset($_GET['upcache']) || !file_exists('index.html')) { | |||
| require_once(dirname(__FILE__)."/system/common.inc.php"); | |||
| require_once DEDEINC."/archive/partview.class.php"; | |||
| @@ -4,7 +4,7 @@ $cfg_cmspath = '~basepath~'; | |||
| $cfg_cookie_encode = '~cookieEncode~'; | |||
| $cfg_indexurl = '~indexurl~'; | |||
| $cfg_backup_dir = 'backupdata'; | |||
| $cfg_indexname = '首页'; | |||
| $cfg_indexname = '网站主页'; | |||
| $cfg_webname = '~webname~'; | |||
| $cfg_adminemail = '~adminmail~'; | |||
| $cfg_html_editor = 'ckeditor'; | |||
| @@ -26,7 +26,7 @@ $cfg_fck_xhtml = 'N'; | |||
| $cfg_df_style = 'templets'; | |||
| $cfg_multi_site = 'N'; | |||
| $cfg_dede_log = 'N'; | |||
| $cfg_powerby = 'Copyright © 2022 DedeBIZ 版权所有'; | |||
| $cfg_powerby = 'Copyright © 2022 DedeBIZ 版权所有'; | |||
| $cfg_arcsptitle = 'N'; | |||
| $cfg_arcautosp = 'N'; | |||
| $cfg_arcautosp_size = 5; | |||
| @@ -114,7 +114,7 @@ $cfg_jump_once = 'Y'; | |||
| $cfg_task_pwd = ''; | |||
| $cfg_addon_domainbind = 'N'; | |||
| $cfg_addon_domain = ''; | |||
| $cfg_df_dutyadmin = '网站管理员'; | |||
| $cfg_df_dutyadmin = '管理员'; | |||
| $cfg_mb_allowncarc = 'Y'; | |||
| $cfg_mb_allowreg = 'Y'; | |||
| $cfg_mb_adminlock = 'N'; | |||
| @@ -255,9 +255,9 @@ CREATE TABLE `#@__arctype` ( | |||
| `topid` smallint(5) unsigned NOT NULL default '0', | |||
| `sortrank` smallint(5) unsigned NOT NULL default '50', | |||
| `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 '', | |||
| `litimg` char(255) 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"> | |||
| <h5 class="my-0 mr-md-auto text-success">程序安装</h5> | |||
| <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/service" target="_blank">技术服务</a> | |||
| </nav> | |||
| @@ -59,7 +58,7 @@ | |||
| </div> | |||
| <div class="mb-3"> | |||
| <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 class="mb-3"> | |||
| <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 | |||
| 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`; | |||
| @@ -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`; | |||
| -- 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`; | |||
| -- 6.1.7 | |||
| DROP TABLE IF EXISTS `#@__statistics`; | |||
| CREATE TABLE `#@__statistics` ( | |||
| `id` int NOT NULL AUTO_INCREMENT, | |||
| `sdate` int DEFAULT NULL COMMENT '记录日期', | |||
| @@ -18,8 +23,7 @@ CREATE TABLE `#@__statistics` ( | |||
| `ip` int DEFAULT NULL COMMENT 'IP', | |||
| `vv` int DEFAULT NULL COMMENT 'vv', | |||
| PRIMARY KEY (`id`) | |||
| ) TYPE=MyISAM; | |||
| DROP TABLE IF EXISTS `#@__statistics_detail`; | |||
| ) ENGINE=MyISAM; | |||
| CREATE TABLE `#@__statistics_detail` ( | |||
| `id` int NOT NULL AUTO_INCREMENT, | |||
| `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_ip` (`created_date`,`ip`), | |||
| 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 `#@__addonimages` MODIFY COLUMN `userip` char(46) NOT NULL DEFAULT '' AFTER `templet`; | |||
| 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 `#@__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 `#@__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`; | |||
| -- 6.1.0 | |||
| @@ -73,7 +77,7 @@ ALTER TABLE `#@__feedback` | |||
| ALTER TABLE `#@__feedback` | |||
| 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_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_port', 'DedeBIZ Core端口', 1, 'number', '8181'); | |||
| 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', | |||
| `fgtype` TINYINT(4) NOT NULL DEFAULT '0' COMMENT '0:good 1:bad', | |||
| PRIMARY KEY (`fgid`) | |||
| ) TYPE=MyISAM; | |||
| ) ENGINE=MyISAM; | |||
| CREATE TABLE `#@__search_limits` ( | |||
| `ip` VARCHAR(200) NOT NULL, | |||
| `searchtime` INT(11) NULL DEFAULT NULL, | |||
| PRIMARY KEY (`ip`) | |||
| ) TYPE=MyISAM; | |||
| ) ENGINE=MyISAM; | |||
| -- 6.0.2 | |||
| 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 | |||
| * @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()) | |||
| { | |||
| $atts['tagname'] = preg_replace("/[0-9]{1,}$/", "", $atts['tagname']); | |||
| @@ -375,7 +375,7 @@ function GetSonIdsLogic($id, $sArr, $channel = 0, $addthis = false) | |||
| */ | |||
| 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 = preg_replace("/\/{1,}/", "/", $typedir); | |||
| return $typedir; | |||
| @@ -1,10 +1,10 @@ | |||
| <?php | |||
| if (!defined('DEDEINC')) exit('dedebiz'); | |||
| // 允许的函数 | |||
| //允许的函数 | |||
| $GLOBALS['allowedCalls'] = array( | |||
| // 系统 | |||
| //系统 | |||
| 'var_dump', | |||
| // 数学 | |||
| //数学 | |||
| 'ceil', | |||
| 'floor', | |||
| 'fmod', | |||
| @@ -15,7 +15,7 @@ $GLOBALS['allowedCalls'] = array( | |||
| 'rand', | |||
| 'sqrt', | |||
| 'srand', | |||
| // 变量 | |||
| //变量 | |||
| 'empty', | |||
| 'floatval', | |||
| 'intval', | |||
| @@ -36,7 +36,7 @@ $GLOBALS['allowedCalls'] = array( | |||
| 'isset', | |||
| 'strval', | |||
| 'unset', | |||
| // 数组 | |||
| //数组 | |||
| 'array_change_key_case', | |||
| 'array_chunk', | |||
| 'array_combine', | |||
| @@ -92,7 +92,7 @@ $GLOBALS['allowedCalls'] = array( | |||
| 'shuffle', | |||
| 'sizeof', | |||
| 'sort', | |||
| // 字符串 | |||
| //字符串 | |||
| 'json_encode', | |||
| 'json_decode', | |||
| 'json_last_error', | |||
| @@ -156,7 +156,7 @@ $GLOBALS['allowedCalls'] = array( | |||
| 'ucfirst', | |||
| 'ucwords', | |||
| 'wordwrap', | |||
| // dede内置 | |||
| //dede内置 | |||
| 'html2text', | |||
| 'removexss', | |||
| 'htmlreplace', | |||
| @@ -179,7 +179,7 @@ $GLOBALS['allowedCalls'] = array( | |||
| 'gb2big5', | |||
| 'litimgurls', | |||
| 'split', | |||
| // 时间 | |||
| //时间 | |||
| 'strtotime', | |||
| 'date', | |||
| 'idate', | |||
| @@ -228,7 +228,7 @@ $GLOBALS['allowedCalls'] = array( | |||
| 'date_sunrise', | |||
| 'date_sunset', | |||
| 'date_sun_info', | |||
| // mb字符串处理 | |||
| //mb字符串处理 | |||
| 'mb_convert_case', | |||
| 'mb_strtoupper', | |||
| 'mb_strtolower', | |||
| @@ -288,7 +288,7 @@ $GLOBALS['allowedCalls'] = array( | |||
| 'mb_ereg_search_getpos', | |||
| 'mb_ereg_search_setpos', | |||
| ); | |||
| // 允许的语法 | |||
| //允许的语法 | |||
| $GLOBALS['allowedTokens'] = array( | |||
| 'T_AND_EQUAL', | |||
| 'T_ARRAY', | |||
| @@ -300,7 +300,6 @@ $GLOBALS['allowedTokens'] = array( | |||
| 'T_BREAK', | |||
| 'T_CASE', | |||
| 'T_CHARACTER', | |||
| 'T_CONCAT_EQUAL', | |||
| 'T_CONSTANT_ENCAPSED_STRING', | |||
| 'T_CONTINUE', | |||
| @@ -313,7 +312,6 @@ $GLOBALS['allowedTokens'] = array( | |||
| 'T_DO', | |||
| 'T_DOUBLE_ARROW', | |||
| 'T_DOUBLE_CAST', | |||
| 'T_ELSE', | |||
| 'T_ELSEIF', | |||
| 'T_EMPTY', | |||
| @@ -340,7 +338,6 @@ $GLOBALS['allowedTokens'] = array( | |||
| 'T_LOGICAL_OR', | |||
| 'T_LOGICAL_XOR', | |||
| 'T_MINUS_EQUAL', | |||
| 'T_MOD_EQUAL', | |||
| 'T_MUL_EQUAL', | |||
| 'T_NUM_STRING', | |||
| @@ -362,29 +359,28 @@ $GLOBALS['allowedTokens'] = array( | |||
| 'T_WHITESPACE', | |||
| 'T_XOR_EQUAL', | |||
| ); | |||
| // 禁止的表达式 | |||
| //禁止的表达式 | |||
| $GLOBALS['disallowedExpressions'] = array( | |||
| '/`/', | |||
| '/\$\W/', | |||
| '/(\]|\})\s*\(/', | |||
| '/\$\w\w*\s*\(/', | |||
| ); | |||
| // 执行脚本 | |||
| //执行脚本 | |||
| function evalCode($code) | |||
| { | |||
| ob_start(); | |||
| $code = eval('if(0){' . "\n" . $code . "\n" . '}'); | |||
| $code = eval('if(0){'."\n".$code."\n".'}'); | |||
| ob_end_clean(); | |||
| return $code !== false; | |||
| } | |||
| // 校验脚本 | |||
| //校验脚本 | |||
| function checkCode($code) | |||
| { | |||
| global $allowedCalls; | |||
| global $allowedTokens; | |||
| global $disallowedExpressions; | |||
| $tokens = token_get_all('<?php ' . $code . ' ?>'); | |||
| $tokens = token_get_all('<?php '.$code.' ?>'); | |||
| $errors = array(); | |||
| $braces = 0; | |||
| foreach ($tokens as $token) { | |||
| @@ -421,13 +417,13 @@ function checkCode($code) | |||
| switch ($id) { | |||
| case ('T_STRING'): | |||
| 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]; | |||
| } | |||
| break; | |||
| default: | |||
| 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]; | |||
| } | |||
| break; | |||
| @@ -439,21 +435,21 @@ function checkCode($code) | |||
| return $errors; | |||
| } | |||
| } | |||
| // 错误提示 | |||
| //错误提示 | |||
| function htmlErrors($errors = null) | |||
| { | |||
| 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 .= 'PHP内嵌脚本错误:'; | |||
| $errorsHTML .= '内嵌脚本缺失,请添加该函数:'; | |||
| $errorsHTML .= '<dl>'; | |||
| foreach ($errors as $error) { | |||
| 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 .= "</div>\r\n"; | |||
| echo $errorsHTML; | |||
| } | |||
| } | |||
| } | |||
| @@ -2,9 +2,7 @@ | |||
| if (!defined('DEDEINC')) exit('dedebiz'); | |||
| require_once(DEDEINC."/libraries/crawlerdetect.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 | |||
| { | |||
| /** | |||
| @@ -14,7 +12,6 @@ class Agent extends Mobile_Detect | |||
| protected static $desktopDevices = [ | |||
| 'Macintosh' => 'Macintosh', | |||
| ]; | |||
| /** | |||
| * List of additional operating systems. | |||
| * @var array | |||
| @@ -30,7 +27,6 @@ class Agent extends Mobile_Detect | |||
| 'Linux' => 'Linux', | |||
| 'ChromeOS' => 'CrOS', | |||
| ]; | |||
| /** | |||
| * List of additional browsers. | |||
| * @var array | |||
| @@ -50,21 +46,19 @@ class Agent extends Mobile_Detect | |||
| 'Mozilla' => 'Mozilla', | |||
| 'WeChat' => 'MicroMessenger', | |||
| ]; | |||
| /** | |||
| * List of additional properties. | |||
| * @var array | |||
| */ | |||
| protected static $additionalProperties = [ | |||
| // Operating systems | |||
| //Operating systems | |||
| 'Windows' => 'Windows NT [VER]', | |||
| 'Windows NT' => 'Windows NT [VER]', | |||
| 'OS X' => 'OS X [VER]', | |||
| 'BlackBerryOS' => ['BlackBerry[\w]+/[VER]', 'BlackBerry.*Version/[VER]', 'Version/[VER]'], | |||
| 'AndroidOS' => 'Android [VER]', | |||
| 'ChromeOS' => 'CrOS x86_64 [VER]', | |||
| // Browsers | |||
| //Browsers | |||
| 'Opera Mini' => 'Opera Mini/[VER]', | |||
| 'Opera' => [' OPR/[VER]', 'Opera Mini/[VER]', 'Version/[VER]', 'Opera [VER]'], | |||
| 'Netscape' => 'Netscape/[VER]', | |||
| @@ -74,12 +68,10 @@ class Agent extends Mobile_Detect | |||
| 'Vivaldi' => 'Vivaldi/[VER]', | |||
| 'Coc Coc' => 'coc_coc_browser/[VER]', | |||
| ]; | |||
| /** | |||
| * @var CrawlerDetect | |||
| */ | |||
| protected static $crawlerDetect; | |||
| /** | |||
| * Get all detection rules. These rules include the additional | |||
| * platforms and browsers and utilities. | |||
| @@ -88,32 +80,27 @@ class Agent extends Mobile_Detect | |||
| public static function getDetectionRulesExtended() | |||
| { | |||
| static $rules; | |||
| if (!$rules) { | |||
| $rules = static::mergeRules( | |||
| static::$desktopDevices, // NEW | |||
| static::$desktopDevices, //NEW | |||
| static::$phoneDevices, | |||
| static::$tabletDevices, | |||
| static::$operatingSystems, | |||
| static::$additionalOperatingSystems, // NEW | |||
| static::$additionalOperatingSystems, //NEW | |||
| static::$browsers, | |||
| static::$additionalBrowsers, // NEW | |||
| static::$additionalBrowsers, //NEW | |||
| static::$utilities | |||
| ); | |||
| } | |||
| return $rules; | |||
| } | |||
| public function getRules() | |||
| { | |||
| if ($this->detectionType === static::DETECTION_TYPE_EXTENDED) { | |||
| return static::getDetectionRulesExtended(); | |||
| } | |||
| return static::getMobileDetectionRules(); | |||
| } | |||
| /** | |||
| * @return CrawlerDetect | |||
| */ | |||
| @@ -122,10 +109,8 @@ class Agent extends Mobile_Detect | |||
| if (static::$crawlerDetect === null) { | |||
| static::$crawlerDetect = new CrawlerDetect(); | |||
| } | |||
| return static::$crawlerDetect; | |||
| } | |||
| public static function getBrowsers() | |||
| { | |||
| return static::mergeRules( | |||
| @@ -133,7 +118,6 @@ class Agent extends Mobile_Detect | |||
| static::$browsers | |||
| ); | |||
| } | |||
| public static function getOperatingSystems() | |||
| { | |||
| return static::mergeRules( | |||
| @@ -141,7 +125,6 @@ class Agent extends Mobile_Detect | |||
| static::$additionalOperatingSystems | |||
| ); | |||
| } | |||
| public static function getPlatforms() | |||
| { | |||
| return static::mergeRules( | |||
| @@ -149,12 +132,10 @@ class Agent extends Mobile_Detect | |||
| static::$additionalOperatingSystems | |||
| ); | |||
| } | |||
| public static function getDesktopDevices() | |||
| { | |||
| return static::$desktopDevices; | |||
| } | |||
| public static function getProperties() | |||
| { | |||
| return static::mergeRules( | |||
| @@ -162,7 +143,6 @@ class Agent extends Mobile_Detect | |||
| static::$properties | |||
| ); | |||
| } | |||
| /** | |||
| * Get accept languages. | |||
| * @param string $acceptLanguage | |||
| @@ -173,14 +153,11 @@ class Agent extends Mobile_Detect | |||
| if ($acceptLanguage === null) { | |||
| $acceptLanguage = $this->getHttpHeader('HTTP_ACCEPT_LANGUAGE'); | |||
| } | |||
| if (!$acceptLanguage) { | |||
| return []; | |||
| } | |||
| $languages = []; | |||
| // Parse accept language string. | |||
| //Parse accept language string. | |||
| foreach (explode(',', $acceptLanguage) as $piece) { | |||
| $parts = explode(';', $piece); | |||
| $language = strtolower($parts[0]); | |||
| @@ -188,13 +165,10 @@ class Agent extends Mobile_Detect | |||
| $languages[$language] = $priority; | |||
| } | |||
| // Sort languages by priority. | |||
| //Sort languages by priority. | |||
| arsort($languages); | |||
| return array_keys($languages); | |||
| } | |||
| /** | |||
| * Match a detection rule and return the matched key. | |||
| * @param array $rules | |||
| @@ -203,22 +177,19 @@ class Agent extends Mobile_Detect | |||
| */ | |||
| protected function findDetectionRulesAgainstUA(array $rules, $userAgent = null) | |||
| { | |||
| // Loop given rules | |||
| //Loop given rules | |||
| foreach ($rules as $key => $regex) { | |||
| if (empty($regex)) { | |||
| continue; | |||
| } | |||
| // Check match | |||
| //Check match | |||
| if ($this->match($regex, $userAgent)) { | |||
| $val = (array)$this->matchesArray; | |||
| return $key ?: reset($val); | |||
| } | |||
| } | |||
| return false; | |||
| } | |||
| /** | |||
| * Get the browser name. | |||
| * @param string|null $userAgent | |||
| @@ -228,7 +199,6 @@ class Agent extends Mobile_Detect | |||
| { | |||
| return $this->findDetectionRulesAgainstUA(static::getBrowsers(), $userAgent); | |||
| } | |||
| /** | |||
| * Get the platform name. | |||
| * @param string|null $userAgent | |||
| @@ -238,7 +208,6 @@ class Agent extends Mobile_Detect | |||
| { | |||
| return $this->findDetectionRulesAgainstUA(static::getPlatforms(), $userAgent); | |||
| } | |||
| /** | |||
| * Get the device name. | |||
| * @param string|null $userAgent | |||
| @@ -252,10 +221,8 @@ class Agent extends Mobile_Detect | |||
| static::getTabletDevices(), | |||
| static::getUtilities() | |||
| ); | |||
| return $this->findDetectionRulesAgainstUA($rules, $userAgent); | |||
| } | |||
| /** | |||
| * Check if the device is a desktop computer. | |||
| * @param string|null $userAgent deprecated | |||
| @@ -264,17 +231,15 @@ class Agent extends Mobile_Detect | |||
| */ | |||
| 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') { | |||
| $cfHeaders = $this->getCfHeaders(); | |||
| if(array_key_exists('HTTP_CLOUDFRONT_IS_DESKTOP_VIEWER', $cfHeaders)) { | |||
| return $cfHeaders['HTTP_CLOUDFRONT_IS_DESKTOP_VIEWER'] === 'true'; | |||
| } | |||
| } | |||
| return !$this->isMobile($userAgent, $httpHeaders) && !$this->isTablet($userAgent, $httpHeaders) && !$this->isRobot($userAgent); | |||
| } | |||
| /** | |||
| * Check if the device is a mobile phone. | |||
| * @param string|null $userAgent deprecated | |||
| @@ -285,7 +250,6 @@ class Agent extends Mobile_Detect | |||
| { | |||
| return $this->isMobile($userAgent, $httpHeaders) && !$this->isTablet($userAgent, $httpHeaders); | |||
| } | |||
| /** | |||
| * Get the robot name. | |||
| * @param string|null $userAgent | |||
| @@ -299,7 +263,6 @@ class Agent extends Mobile_Detect | |||
| return false; | |||
| } | |||
| /** | |||
| * Check if device is a robot. | |||
| * @param string|null $userAgent | |||
| @@ -309,7 +272,6 @@ class Agent extends Mobile_Detect | |||
| { | |||
| return $this->getCrawlerDetect()->isCrawler($userAgent ?: $this->userAgent); | |||
| } | |||
| /** | |||
| * Get the device type | |||
| * @param null $userAgent | |||
| @@ -327,51 +289,38 @@ class Agent extends Mobile_Detect | |||
| } elseif ($this->isRobot($userAgent)) { | |||
| return "robot"; | |||
| } | |||
| return "other"; | |||
| } | |||
| public function version($propertyName, $type = self::VERSION_TYPE_STRING) | |||
| { | |||
| if (empty($propertyName)) { | |||
| 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) { | |||
| $type = self::VERSION_TYPE_STRING; | |||
| } | |||
| $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])) { | |||
| // 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]; | |||
| foreach ($properties[$propertyName] as $propertyMatchString) { | |||
| if (is_array($propertyMatchString)) { | |||
| $propertyMatchString = implode("|", $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); | |||
| if (false === empty($match[1])) { | |||
| $version = ($type === self::VERSION_TYPE_FLOAT ? $this->prepareVersionNo($match[1]) : $match[1]); | |||
| return $version; | |||
| } | |||
| } | |||
| } | |||
| return false; | |||
| } | |||
| /** | |||
| * Merge multiple rules into one array. | |||
| * @param array $all | |||
| @@ -380,7 +329,6 @@ class Agent extends Mobile_Detect | |||
| protected static function mergeRules(...$all) | |||
| { | |||
| $merged = []; | |||
| foreach ($all as $rules) { | |||
| foreach ($rules as $key => $value) { | |||
| if (empty($merged[$key])) { | |||
| @@ -392,24 +340,19 @@ class Agent extends Mobile_Detect | |||
| } | |||
| } | |||
| } | |||
| return $merged; | |||
| } | |||
| /** | |||
| * @inheritdoc | |||
| */ | |||
| 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) { | |||
| throw new Exception("No such method exists: $name"); | |||
| } | |||
| $this->setDetectionType(self::DETECTION_TYPE_EXTENDED); | |||
| $key = substr($name, 2); | |||
| 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 | |||
| * with this source code in the file LICENSE. | |||
| */ | |||
| require_once(DEDEINC."/libraries/fixtures/crawlers.php"); | |||
| require_once(DEDEINC."/libraries/fixtures/exclusions.php"); | |||
| require_once(DEDEINC."/libraries/fixtures/headers.php"); | |||
| class CrawlerDetect | |||
| { | |||
| /** | |||
| @@ -21,56 +19,48 @@ class CrawlerDetect | |||
| * @var string|null | |||
| */ | |||
| protected $userAgent; | |||
| /** | |||
| * Headers that contain a user agent. | |||
| * | |||
| * @var array | |||
| */ | |||
| protected $httpHeaders = array(); | |||
| /** | |||
| * Store regex matches. | |||
| * | |||
| * @var array | |||
| */ | |||
| protected $matches = array(); | |||
| /** | |||
| * Crawlers object. | |||
| * | |||
| * @var \Jaybizzle\CrawlerDetect\Fixtures\Crawlers | |||
| */ | |||
| protected $crawlers; | |||
| /** | |||
| * Exclusions object. | |||
| * | |||
| * @var \Jaybizzle\CrawlerDetect\Fixtures\Exclusions | |||
| */ | |||
| protected $exclusions; | |||
| /** | |||
| * Headers object. | |||
| * | |||
| * @var \Jaybizzle\CrawlerDetect\Fixtures\Headers | |||
| */ | |||
| protected $uaHttpHeaders; | |||
| /** | |||
| * The compiled regex string. | |||
| * | |||
| * @var string | |||
| */ | |||
| protected $compiledRegex; | |||
| /** | |||
| * The compiled exclusions regex string. | |||
| * | |||
| * @var string | |||
| */ | |||
| protected $compiledExclusions; | |||
| /** | |||
| * Class constructor. | |||
| */ | |||
| @@ -79,14 +69,11 @@ class CrawlerDetect | |||
| $this->crawlers = new Crawlers(); | |||
| $this->exclusions = new Exclusions(); | |||
| $this->uaHttpHeaders = new Headers(); | |||
| $this->compiledRegex = $this->compileRegex($this->crawlers->getAll()); | |||
| $this->compiledExclusions = $this->compileRegex($this->exclusions->getAll()); | |||
| $this->setHttpHeaders($headers); | |||
| $this->setUserAgent($userAgent); | |||
| } | |||
| /** | |||
| * Compile the regex patterns into one regex string. | |||
| * | |||
| @@ -98,7 +85,6 @@ class CrawlerDetect | |||
| { | |||
| return '('.implode('|', $patterns).')'; | |||
| } | |||
| /** | |||
| * Set HTTP headers. | |||
| * | |||
| @@ -106,23 +92,20 @@ class CrawlerDetect | |||
| */ | |||
| 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)) { | |||
| $httpHeaders = $_SERVER; | |||
| } | |||
| // Clear existing headers. | |||
| //Clear existing headers. | |||
| $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) { | |||
| if (strpos($key, 'HTTP_') === 0) { | |||
| $this->httpHeaders[$key] = $value; | |||
| } | |||
| } | |||
| } | |||
| /** | |||
| * Return user agent headers. | |||
| * | |||
| @@ -132,7 +115,6 @@ class CrawlerDetect | |||
| { | |||
| return $this->uaHttpHeaders->getAll(); | |||
| } | |||
| /** | |||
| * Set the user agent. | |||
| * | |||
| @@ -150,7 +132,6 @@ class CrawlerDetect | |||
| return $this->userAgent = $userAgent; | |||
| } | |||
| /** | |||
| * Check user agent string against the regex. | |||
| * | |||
| @@ -172,7 +153,6 @@ class CrawlerDetect | |||
| return (bool) preg_match("/{$this->compiledRegex}/i", $agent, $this->matches); | |||
| } | |||
| /** | |||
| * Return the matches. | |||
| * | |||
| @@ -182,4 +162,4 @@ class CrawlerDetect | |||
| { | |||
| return isset($this->matches[0]) ? $this->matches[0] : null; | |||
| } | |||
| } | |||
| } | |||
| @@ -50,16 +50,16 @@ class smtp | |||
| } | |||
| 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 .= "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()); | |||
| $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)); | |||
| if ($cc != "") | |||
| { | |||
| @@ -72,20 +72,20 @@ class smtp | |||
| $sent = TRUE; | |||
| 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); | |||
| 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; | |||
| continue; | |||
| } | |||
| 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 { | |||
| $this->log_write("Error: Cannot send email to <" . $rcpt_to . ">\n"); | |||
| $this->log_write("Error: Cannot send email to <".$rcpt_to.">\n"); | |||
| $sent = FALSE; | |||
| } | |||
| fclose($this->sock); | |||
| @@ -125,11 +125,11 @@ class smtp | |||
| 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"); | |||
| } | |||
| if (!$this->smtp_putcmd("RCPT", "TO:<" . $to . ">")) | |||
| if (!$this->smtp_putcmd("RCPT", "TO:<".$to.">")) | |||
| { | |||
| return $this->smtp_error("sending RCPT TO command"); | |||
| } | |||
| @@ -162,15 +162,15 @@ class smtp | |||
| } | |||
| 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); | |||
| 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; | |||
| } | |||
| $this->log_write("Connected to relay host " . $this->relay_host . "\n"); | |||
| $this->log_write("Connected to relay host ".$this->relay_host."\n"); | |||
| return TRUE;; | |||
| } | |||
| function smtp_sockopen_mx($address) | |||
| @@ -178,29 +178,29 @@ class smtp | |||
| $domain = preg_replace("/^.+@([^@]+)$/i", "\1", $address); | |||
| if (!@getmxrr($domain, $MXHOSTS)) | |||
| { | |||
| $this->log_write("Error: Cannot resolve MX \"" . $domain . "\"\n"); | |||
| $this->log_write("Error: Cannot resolve MX \"".$domain."\"\n"); | |||
| return FALSE; | |||
| } | |||
| 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); | |||
| 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; | |||
| } | |||
| $this->log_write("Connected to mx host " . $host . "\n"); | |||
| $this->log_write("Connected to mx host ".$host."\n"); | |||
| 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; | |||
| } | |||
| 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; | |||
| } | |||
| function smtp_eom() | |||
| @@ -212,12 +212,12 @@ class smtp | |||
| function smtp_ok() | |||
| { | |||
| $response = str_replace("\r\n", "", fgets($this->sock, 512)); | |||
| $this->smtp_debug($response . "\n"); | |||
| $this->smtp_debug($response."\n"); | |||
| if (!preg_match("#^[23]#", $response)) | |||
| { | |||
| fputs($this->sock, "QUIT\r\n"); | |||
| 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 TRUE; | |||
| @@ -230,16 +230,16 @@ class smtp | |||
| { | |||
| $cmd = $arg; | |||
| } 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(); | |||
| } | |||
| function smtp_error($string) | |||
| { | |||
| $this->log_write("Error: Error occurred while " . $string . ".\n"); | |||
| $this->log_write("Error: Error occurred while ".$string.".\n"); | |||
| return FALSE; | |||
| } | |||
| function log_write($message) | |||
| @@ -249,10 +249,10 @@ class smtp | |||
| { | |||
| 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"))) | |||
| { | |||
| $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;; | |||
| } | |||
| flock($fp, LOCK_EX); | |||
| @@ -1,8 +1,6 @@ | |||
| <?php | |||
| if (!defined('DEDEINC')) exit('dedebiz'); | |||
| require_once(DEDEINC."/libraries/agent.class.php"); | |||
| /** | |||
| * 流量统计 | |||
| * 一个轻量级流量统计功能 | |||
| @@ -13,13 +11,11 @@ require_once(DEDEINC."/libraries/agent.class.php"); | |||
| * @license https://www.dedebiz.com/license | |||
| * @link https://www.dedebiz.com | |||
| */ | |||
| class DedeStatistics { | |||
| function __construct() | |||
| { | |||
| } | |||
| // 获取统计JS | |||
| //获取统计JS | |||
| function GetStat() | |||
| { | |||
| global $envs,$cfg_cookie_encode; | |||
| @@ -66,7 +62,7 @@ class DedeStatistics { | |||
| var xhr; | |||
| if (window.XMLHttpRequest) { | |||
| xhr = new XMLHttpRequest(); | |||
| } else if (window.ActiveXObject) { // IE | |||
| } else if (window.ActiveXObject) { //IE | |||
| try { | |||
| xhr = new ActiveXObject('Msxml2.XMLHTTP'); | |||
| } catch (e) { | |||
| @@ -83,14 +79,13 @@ class DedeStatistics { | |||
| fetch(u); | |||
| } | |||
| })(); | |||
| EOT; | |||
| EOT; | |||
| } | |||
| // 统计 | |||
| //统计 | |||
| function Record() | |||
| { | |||
| 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'); | |||
| $pmvalue = array(); | |||
| foreach ($pm as $v) { | |||
| @@ -115,8 +110,7 @@ EOT; | |||
| $insql = "INSERT INTO `#@__statistics_detail`(".implode(",",$kstr).") VALUES (".implode(",",$vstr).")"; | |||
| return $dsql->ExecuteNoneQuery($insql); | |||
| } | |||
| // 生成uuid | |||
| //生成uuid | |||
| function _uniqidReal($lenght = 13) { | |||
| if (function_exists("random_bytes")) { | |||
| $bytes = random_bytes(ceil($lenght / 2)); | |||
| @@ -127,7 +121,6 @@ EOT; | |||
| } | |||
| return substr(bin2hex($bytes), 0, $lenght); | |||
| } | |||
| function GetInfoByDateMulti($ds = array()) | |||
| { | |||
| $results = array(); | |||
| @@ -137,8 +130,7 @@ EOT; | |||
| } | |||
| return $result; | |||
| } | |||
| // 获取某天的统计信息 | |||
| //获取某天的统计信息 | |||
| function GetInfoByDate($d=0) | |||
| { | |||
| global $dsql; | |||
| @@ -160,9 +152,8 @@ EOT; | |||
| $d = $today; | |||
| } | |||
| $d = intval($d); | |||
| // 如果统计数据中存在,则直接查询统计表 | |||
| //如果统计数据中存在,则直接查询统计表 | |||
| $info = $dsql->GetOne("SELECT * FROM `#@__statistics` WHERE sdate = $d"); | |||
| if (is_array($info)) { | |||
| return $info; | |||
| } | |||
| @@ -171,7 +162,7 @@ EOT; | |||
| $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"); | |||
| if ($d < intval($today)) { | |||
| // 缓存数据 | |||
| //缓存数据 | |||
| $insql = "INSERT INTO `#@__statistics`(`sdate`,`pv`,`uv`,`ip`,`vv`) VALUES ('$d', '{$pv['total']}','{$uv['total']}','{$ip['total']}','{$vv['total']}')"; | |||
| $dsql->ExecuteNoneQuery($insql); | |||
| } | |||
| @@ -15,7 +15,7 @@ | |||
| </style> | |||
| </head> | |||
| <body> | |||
| <?php include("plus_header.htm") ; ?> | |||
| <?php include("plus_header.htm"); ?> | |||
| <div class="container"> | |||
| <div class="sp-title"> | |||
| <h2>文件:<a href="<?php echo $arcurl; ?>"><?php echo $title; ?></a></h2> | |||
| @@ -32,6 +32,6 @@ | |||
| </div> | |||
| </div> | |||
| <div class="advancedsearch"></div> | |||
| <?php include("plus_footer.htm") ; ?> | |||
| <?php include("plus_footer.htm"); ?> | |||
| </body> | |||
| </html> | |||
| @@ -10,7 +10,7 @@ | |||
| <script src="<?php echo $cfg_cmsurl; ?>/static/web/js/jquery.min.js"></script> | |||
| </head> | |||
| <body class="flinkpage"> | |||
| <?php include("plus_header.htm") ; ?> | |||
| <?php include("plus_header.htm"); ?> | |||
| <div class="container"> | |||
| <div class="sp-title"> | |||
| <nav class="navbar navbar-expand-lg"> | |||
| @@ -81,6 +81,6 @@ | |||
| </form> | |||
| </div> | |||
| </div> | |||
| <?php include("plus_footer.htm") ; ?> | |||
| <?php include("plus_footer.htm"); ?> | |||
| </body> | |||
| </html> | |||
| @@ -10,7 +10,7 @@ | |||
| <script src="<?php echo $cfg_cmsurl; ?>/static/web/js/jquery.min.js"></script> | |||
| </head> | |||
| <body class="flinkpage"> | |||
| <?php include("plus_header.htm") ; ?> | |||
| <?php include("plus_header.htm"); ?> | |||
| <div class="container"> | |||
| <div class="sp-title"> | |||
| <nav class="navbar navbar-expand-lg"> | |||
| @@ -49,6 +49,6 @@ | |||
| </ul> | |||
| </div> | |||
| </div> | |||
| <?php include("plus_footer.htm") ; ?> | |||
| <?php include("plus_footer.htm"); ?> | |||
| </body> | |||
| </html> | |||
| @@ -9,7 +9,7 @@ | |||
| <link rel="stylesheet" href="<?php echo $cfg_cmsurl; ?>/static/web/css/style.css"> | |||
| </head> | |||
| <body class="flinkpage"> | |||
| <?php include("plus_header.htm") ; ?> | |||
| <?php include("plus_header.htm"); ?> | |||
| <div class="container"> | |||
| <div class="formbox mt-3"> | |||
| <table width="100%" cellpadding="0" cellspacing="0" bgcolor="#cccccc" class='table'> | |||
| @@ -101,6 +101,6 @@ | |||
| <br> | |||
| </div> | |||
| </div> | |||
| <?php include("plus_footer.htm") ; ?> | |||
| <?php include("plus_footer.htm"); ?> | |||
| </body> | |||
| </html> | |||
| @@ -9,7 +9,7 @@ | |||
| <link rel="stylesheet" href="<?php echo $cfg_cmsurl; ?>/static/web/css/style.css"> | |||
| </head> | |||
| <body class="flinkpage"> | |||
| <?php include("plus_header.htm") ; ?> | |||
| <?php include("plus_header.htm"); ?> | |||
| <div class="container"> | |||
| <div class="sp-title mt-3">推荐:<?php echo $title; ?></div> | |||
| <div class="formbox"> | |||
| @@ -42,6 +42,6 @@ | |||
| </form> | |||
| </div> | |||
| </div> | |||
| <?php include("plus_footer.htm") ; ?> | |||
| <?php include("plus_footer.htm"); ?> | |||
| </body> | |||
| </html> | |||
| @@ -10,7 +10,7 @@ | |||
| <script src="<?php echo $cfg_cmsurl; ?>/static/web/js/jquery.min.js"></script> | |||
| </head> | |||
| <body class="flinkpage"> | |||
| <?php include("plus_header.htm") ; ?> | |||
| <?php include("plus_header.htm"); ?> | |||
| <div class="container"> | |||
| <div class="sp-title"> | |||
| <span class="more"> | |||
| @@ -43,6 +43,6 @@ | |||
| <br> | |||
| </div> | |||
| </div> | |||
| <?php include("plus_footer.htm") ; ?> | |||
| <?php include("plus_footer.htm"); ?> | |||
| </body> | |||
| </html> | |||
| @@ -11,7 +11,7 @@ | |||
| </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"> | |||
| <a class="nav-link" href="[field:typeurl/]" typeid=[field:id/]>[field:typename/]</a> | |||
| <a class="nav-link" href="[field:typeurl/]">[field:typename/]</a> | |||
| </li> | |||
| {/dede:channel} | |||
| </ul> | |||
| @@ -12,9 +12,9 @@ if ($myurl == '') exit(''); | |||
| else { | |||
| $uid = $cfg_ml->M_LoginID; | |||
| $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') { | |||
| 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 return '已完成'; | |||
| } | |||
| if ($dopost == '') { | |||
| $sql = "SELECT * FROM `#@__member_operation` WHERE mid='".$cfg_ml->M_ID."' AND product<>'archive' ORDER BY aid DESC"; | |||
| $dlist = new DataListCP(); | |||