Browse Source

完善jsonq标签

tags/6.2.7
tianya 1 year ago
parent
commit
be83d21dcf
4 changed files with 60 additions and 6 deletions
  1. +10
    -0
      src/admin/catalog_do.php
  2. +33
    -4
      src/system/archive/listview.class.php
  3. +12
    -1
      src/system/taglib/jsonq.lib.php
  4. +5
    -1
      src/system/typelink/typeunit.class.admin.php

+ 10
- 0
src/admin/catalog_do.php View File

@@ -265,5 +265,15 @@ else if ($dopost == 'moveCatalog') {
ShowMsg('成功移动目录', 'catalog_main.php');
exit();
}
} //查看API
else if ($dopost == 'viewAPI') {
require_once(DEDEINC.'/typelink/typelink.class.php');
$typeid = isset($typeid) ? intval($typeid) : 0;
$tl = new TypeLink($typeid);
$timestamp = time();
$sign = sha1($typeid.$timestamp.$tl->TypeInfos['apikey'].'1'.'10');
$u = "tid={$typeid}&mod=1&timestamp={$timestamp}&PageNo=1&PageSize=10&sign={$sign}";
header('HTTP/1.1 301 Moved Permanently');
header("Location:../apps/list.php?{$u}");
}
?>

+ 33
- 4
src/system/archive/listview.class.php View File

@@ -34,6 +34,7 @@ class ListView
var $IsReplace;
var $remoteDir;
var $mod;
var $_parms = array('tid','TotalResult','PageNo','PageSize','mod','timestamp','sign');
/**
* php5构造函数
*
@@ -74,13 +75,41 @@ class ListView
//添加联动单筛选
if (isset($_REQUEST['tid'])) {
foreach($_GET as $key => $value) {
if ($key!="tid" && $key!="TotalResult" && $key!="PageNo" && $key!="PageSize" && $key!="mod") {
if (!in_array($key,$this->_parms)) {
$this->Fields[string_filter($key)] = string_filter(urldecode($value));
}
}
}
//设置一些全局参数的值
foreach ($GLOBALS['PubFields'] as $k => $v) $this->Fields[$k] = $v;
//API相关逻辑处理
if ($this->mod == 1 && empty($this->Fields['apikey'])) {
echo json_encode(array(
"code" => -1,
"msg" => "api key is empty",
));
exit;
}
if($this->mod == 1){
if (empty($GLOBALS['sign'])) {
echo json_encode(array(
"code" => -1,
"msg" => "sign is empty",
));
exit;
}
//验签算法 sha1(typeid+timestamp+apikey+PageNo+PageSize)
$sign = sha1($this->TypeID.$GLOBALS['timestamp'].$this->Fields['apikey'].$GLOBALS['PageNo'].$GLOBALS['PageSize']);
if ($sign !== $GLOBALS['sign']) {
echo json_encode(array(
"code" => -1,
"msg" => "sign check failed",
));
exit;
}
}
$this->Fields['rsslink'] = $GLOBALS['cfg_cmsurl']."/static/rss/".$this->TypeID.".xml";
//设置环境变量
SetSysEnv($this->TypeID, $this->Fields['typename'], 0, '', 'list');
@@ -151,7 +180,7 @@ class ListView
}
if (isset($_REQUEST['tid'])) {
foreach ($_GET as $key => $value) {
$filtersql .= ($key!="tid" && $key!="TotalResult" && $key!="PageNo" && $key!="PageSize" && $key!="mod") ? " AND $addtable.".string_filter($key)." = '".string_filter(urldecode($value))."'" : '';
$filtersql .= (!in_array($key,$this->_parms)) ? " AND $addtable.".string_filter($key)." = '".string_filter(urldecode($value))."'" : '';
}
}
} else {
@@ -428,7 +457,7 @@ class ListView
if (isset($_REQUEST['tid'])) {
foreach($_GET as $key => $value)
{
$filtersql .= ($key!="tid" && $key!="TotalResult" && $key!="PageNo" && $key!="PageSize" && $key !="mod") ? " AND $addtable.".string_filter($key)." = '".string_filter(urldecode($value))."'" : '';
$filtersql .= (!in_array($key,$this->_parms)) ? " AND $addtable.".string_filter($key)." = '".string_filter(urldecode($value))."'" : '';
}
}
} else {
@@ -837,7 +866,7 @@ class ListView
if (isset($_REQUEST['tid'])) {
foreach($_GET as $key => $value)
{
$filtersql .= ($key!="tid" && $key!="TotalResult" && $key!="PageNo" && $key!="PageSize" && $key!="mod") ? " AND $addtable.".string_filter($key)." = '".string_filter(urldecode($value))."'" : '';
$filtersql .= (!in_array($key,$this->_parms)) ? " AND $addtable.".string_filter($key)." = '".string_filter(urldecode($value))."'" : '';
}
}
} else {


+ 12
- 1
src/system/taglib/jsonq.lib.php View File

@@ -12,14 +12,25 @@ require_once(DEDEINC . "/libraries/jsonq/Jsonq.php");
helper('cache');
function lib_jsonq(&$ctag, &$refObj)
{
$attlist = "url|,path|,cachetime|3600";
$attlist = "url|,path|,typeid|,row|,apikey|,cachetime|3600";
FillAttsDefault($ctag->CAttribute->Items, $attlist);
extract($ctag->CAttribute->Items, EXTR_SKIP);
$Innertext = trim($ctag->GetInnerText());
if ($url == '' || $Innertext == '') return '';
if (!empty($typeid)) {
$typeid = intval($typeid);
}
if ($typeid > 0) {
$timestamp = time();
$sign = sha1($typeid.$timestamp.$apikey.'1'.'10');
$u = "tid={$typeid}&mod=1&timestamp={$timestamp}&PageNo=1&PageSize={$row}&sign={$sign}";
$url = $url."/apps/list.php?{$u}";
$path = "$.lists";
}
$key = md5($url);
try {
if ($path=='') {
//选择器获取某个特定值
$jsonq = new Jsonq($url);
$revalue = GetCache("tagjsonq2", $key);
if (!empty($revalue)) {


+ 5
- 1
src/system/typelink/typeunit.class.admin.php View File

@@ -90,7 +90,7 @@ class TypeUnit
$admin_catalogs = explode(',', $admin_catalog);
$admin_catalogs = array_unique($admin_catalogs);
}
$this->dsql->SetQuery("SELECT id,typedir,typename,ispart,sortrank,ishidden FROM `#@__arctype` WHERE reid=0 ORDER BY sortrank");
$this->dsql->SetQuery("SELECT id,typedir,typename,ispart,sortrank,ishidden,apienabled FROM `#@__arctype` WHERE reid=0 ORDER BY sortrank");
$this->dsql->Execute(0);
$i = 0;
while ($row = $this->dsql->GetObject(0)) {
@@ -114,6 +114,8 @@ class TypeUnit
echo "<td class='admin-td'><table width='98%' cellspacing='0' cellpadding='0'><tr><td width='50%'><i id='img".$id."' onClick=\"LoadSuns('suns".$id."',$id);\" class='fa fa-plus-square'></i><input type='checkbox' name='tids[]' value='{$id}' class='mr-3 ml-3'><span class='btn btn-success btn-xs'>列表</span>{$nss}<a href='catalog_do.php?cid=".$id."&dopost=listArchives' class='mr-3 ml-3'>".$typeName."</a>[id:".$id."](文档数:".$this->GetTotalArc($id).")";
echo "</td>";
echo "<td align='right'><a href='{$GLOBALS['cfg_phpurl']}/list.php?tid={$id}' target='_blank' title='预览' class='btn btn-light btn-sm'><i class='fa fa-eye'></i></a>";
$apidisabled = $row->apienabled == 1? '' : ' disabled';
echo "<a href='catalog_do.php?dopost=viewAPI&typeid={$id}' target='_blank' title='接口' class='btn btn-light btn-sm{$apidisabled}'><i class='fa fa-bolt'></i></a>";
echo "<a href='catalog_do.php?cid={$id}&dopost=listArchives' title='文档' class='btn btn-light btn-sm'><i class='fa fa-file-text'></i></a>";
echo "<a href='catalog_add.php?id={$id}' title='添加' class='btn btn-light btn-sm'><i class='fa fa-plus-circle'></i></a>";
echo "<a href='catalog_edit.php?id={$id}' title='修改' class='btn btn-light btn-sm'><i class='fa fa-pencil-square'></i></a>";
@@ -197,6 +199,8 @@ class TypeUnit
echo "$step<i id='img".$id."' onClick=\"LoadSuns('suns".$id."',$id);\" class='fa fa-plus-square'></i><input type='checkbox' name='tids[]' value='{$id}' class='mr-3 ml-3'><span class='btn btn-success btn-xs'>列表</span>{$nss}<a href='catalog_do.php?cid=".$id."&dopost=listArchives' class='mr-3 ml-3'>".$typeName."</a>[id:".$id."](文档数:".$this->GetTotalArc($id).")";
echo "</td>";
echo "<td align='right'><a href='{$GLOBALS['cfg_phpurl']}/list.php?tid={$id}' target='_blank' title='预览' class='btn btn-light btn-sm'><i class='fa fa-eye'></i></a>";
$apidisabled = $row->apienabled == 1? '' : ' disabled';
echo "<a href='catalog_do.php?dopost=viewAPI&typeid={$id}' target='_blank' title='接口' class='btn btn-light btn-sm{$apidisabled}'><i class='fa fa-bolt'></i></a>";
echo "<a href='catalog_do.php?cid={$id}&dopost=listArchives' title='文档' class='btn btn-light btn-sm'><i class='fa fa-file-text'></i></a>";
echo "<a href='catalog_add.php?id={$id}' title='添加' class='btn btn-light btn-sm'><i class='fa fa-plus-circle'></i></a>";
echo "<a href='catalog_edit.php?id={$id}' title='修改' class='btn btn-light btn-sm'><i class='fa fa-pencil-square'></i></a>";


Loading…
Cancel
Save