40fd47a54e136f4596a0c87d4dddd396.php 49 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909
  1. <?php if (!defined('THINK_PATH')) exit(); /*a:8:{s:85:"F:\docker_www\cjq.wngluo.org.cn_YAZSE\vendor\skycaiji\app\admin\view\release\set.html";i:1750210657;s:85:"F:\docker_www\cjq.wngluo.org.cn_YAZSE\vendor\skycaiji\app\admin\view\common\main.html";i:1750210657;s:94:"F:\docker_www\cjq.wngluo.org.cn_YAZSE\vendor\skycaiji\app\admin\view\common\header_public.html";i:1750210657;s:87:"F:\docker_www\cjq.wngluo.org.cn_YAZSE\vendor\skycaiji\app\admin\view\task\stepsbar.html";i:1750210657;s:87:"F:\docker_www\cjq.wngluo.org.cn_YAZSE\vendor\skycaiji\app\admin\view\common\footer.html";i:1750210657;s:94:"F:\docker_www\cjq.wngluo.org.cn_YAZSE\vendor\skycaiji\app\admin\view\common\footer_public.html";i:1750210657;s:96:"F:\docker_www\cjq.wngluo.org.cn_YAZSE\vendor\skycaiji\app\common\view\common\browser_is_old.html";i:1750210657;s:97:"F:\docker_www\cjq.wngluo.org.cn_YAZSE\vendor\skycaiji\app\common\view\common\page_translator.html";i:1750210657;}*/ ?>
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5. <meta charset="utf-8">
  6. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  7. <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
  8. <title><?php echo g_sc('html_tag_title')?(g_sc('html_tag_title').' - '):''; ?>蓝天采集器后台管理</title>
  9. <meta name="generator" content="skycaiji" />
  10. <meta http-equiv="x-dns-prefetch-control" content="on">
  11. <link rel="icon" href="data:image/ico;base64,aWNv">
  12. <!-- Bootstrap 3.3.7 -->
  13. <link rel="stylesheet" href="/public/bootstrap/css/bootstrap.min.css?<?php echo \think\Config::get('html_v'); ?>">
  14. <!-- Font Awesome -->
  15. <link rel="stylesheet" href="/public/addon/font-awesome/css/font-awesome.min.css?<?php echo \think\Config::get('html_v'); ?>">
  16. <!-- Ionicons -->
  17. <link rel="stylesheet" href="/public/addon/Ionicons/css/ionicons.min.css?<?php echo \think\Config::get('html_v'); ?>">
  18. <!-- Theme style -->
  19. <link rel="stylesheet" href="/public/adminlte/dist/css/AdminLTE.min.css?<?php echo \think\Config::get('html_v'); ?>">
  20. <link rel="stylesheet" href="/public/adminlte/dist/css/skins/_all-skins.min.css?<?php echo \think\Config::get('html_v'); ?>">
  21. <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
  22. <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
  23. <!--[if lt IE 9]>
  24. <script src="/public/addon/adminlte/html5shiv.min.js?<?php echo \think\Config::get('html_v'); ?>"></script>
  25. <script src="/public/addon/adminlte/respond.min.js?<?php echo \think\Config::get('html_v'); ?>"></script>
  26. <![endif]-->
  27. <!-- Google Font -->
  28. <!-- <link rel="stylesheet" href="/public/addon/adminlte/google-font.css?<?php echo \think\Config::get('html_v'); ?>"> -->
  29. <!-- jQuery -->
  30. <script src="/public/jquery/jquery.min.js?<?php echo \think\Config::get('html_v'); ?>"></script>
  31. <!-- else -->
  32. <script type="text/javascript" src="/public/static/js/base64.min.js?<?php echo \think\Config::get('html_v'); ?>"></script>
  33. <link href="/public/static/css/toastr.css?<?php echo \think\Config::get('html_v'); ?>" rel="stylesheet" type="text/css">
  34. <script src="/public/static/js/toastr.js?<?php echo \think\Config::get('html_v'); ?>"></script>
  35. <!-- jQuery UI -->
  36. <script src="/public/addon/adminlte/jquery-ui.min.js?<?php echo \think\Config::get('html_v'); ?>"></script>
  37. <!-- Bootstrap 3.3.7 -->
  38. <script src="/public/bootstrap/js/bootstrap.min.js?<?php echo \think\Config::get('html_v'); ?>"></script>
  39. <!-- FastClick -->
  40. <script src="/public/addon/adminlte/fastclick.js?<?php echo \think\Config::get('html_v'); ?>"></script>
  41. <!-- AdminLTE App -->
  42. <script src="/public/adminlte/dist/js/adminlte.min.js?<?php echo \think\Config::get('html_v'); ?>"></script>
  43. <!-- custom -->
  44. <script src="/public/static/js/common.js?<?php echo \think\Config::get('html_v'); ?>"></script>
  45. <script src="/public/static/js/admin.js?<?php echo \think\Config::get('html_v'); ?>"></script>
  46. <link href="/public/static/css/admin.css?<?php echo \think\Config::get('html_v'); ?>" rel="stylesheet" type="text/css">
  47. <script type="text/javascript" src="/public/static/js/langs/<?php echo \think\Config::get('DEFAULT_LANG'); ?>.js?<?php echo \think\Config::get('html_v'); ?>"></script>
  48. <script type="text/javascript">var site_config={root:"",pub:"/public",usertoken:"<?php echo g_sc('usertoken'); ?>",clientinfo:"<?php echo g_sc('clientinfo'); ?>",admincp:<?php echo json_encode(g_sc_c('admincp')); ?>};</script>
  49. <link rel="stylesheet" href="/public/static/css/release.css?<?php echo \think\Config::get('html_v'); ?>">
  50. <script type="text/javascript" src="/public/static/js/admin/release.js?<?php echo \think\Config::get('html_v'); ?>"></script>
  51. </head>
  52. <body class="skin-blue" data-spy="scroll" data-target="#scrollspy">
  53. <div class="wrapper">
  54. <header class="main-header">
  55. <!-- <a href="<?php echo url('admin/backstage/index'); ?>" class="logo">-->
  56. <!-- 采-->
  57. <!-- </a>-->
  58. <nav class="navbar navbar-static-top" role="navigation">
  59. <a href="#" class="sidebar-toggle" data-toggle="push-menu" role="button">
  60. <span class="sr-only"> </span>
  61. <span class="icon-bar"></span>
  62. <span class="icon-bar"></span>
  63. <span class="icon-bar"></span>
  64. </a>
  65. <!-- <div class="navbar-custom-menu">-->
  66. <!-- <ul class="nav navbar-nav">-->
  67. <!-- <li class="dropdown tasks-menu">-->
  68. <!-- <a href="javascript:;" id="menu_backstage_task">-->
  69. <!-- <i class="fa fa-flag-o"></i>-->
  70. <!-- <span class="label label-warning"></span>-->
  71. <!-- </a>-->
  72. <!-- </li>-->
  73. <!-- <li class="dropdown user user-menu">-->
  74. <!-- <a href="#" class="dropdown-toggle" data-toggle="dropdown">-->
  75. <!-- <span class="glyphicon glyphicon-user"></span>-->
  76. <!-- <span><?php echo g_sc('user','username'); ?></span>-->
  77. <!-- </a>-->
  78. <!-- <ul class="dropdown-menu">-->
  79. <!-- <li><a href="<?php echo url('user/edit?uid='.g_sc('user','uid')); ?>"><?php echo \think\Lang::get('user_edit'); ?></a></li>-->
  80. <!-- <li><a href="<?php echo url('admin/index/logout'); ?>"><?php echo \think\Lang::get('logout'); ?></a></li>-->
  81. <!-- </ul>-->
  82. <!-- </li>-->
  83. <!-- </ul>-->
  84. <!-- </div>-->
  85. </nav>
  86. </header>
  87. <?php $curMenu=array(strtolower(request()->controller())=>' menu-open cur-menu'); $curSubm=array(strtolower(request()->action())=>' menu-open cur-menu'); ?>
  88. <aside class="main-sidebar">
  89. <section class="sidebar">
  90. <ul class="sidebar-menu">
  91. <li class="treeview<?php echo $curMenu['setting']; ?>">
  92. <a href="#">
  93. <i class="fa fa-cog"></i> <span><?php echo \think\Lang::get('setting'); ?></span>
  94. <span class="pull-right-container">
  95. <i class="fa fa-angle-left pull-right"></i>
  96. </span>
  97. </a>
  98. <ul class="treeview-menu">
  99. <li><a href="<?php echo url('admin/setting/caiji'); ?>"><i class="fa fa-circle-o"></i> <?php echo \think\Lang::get('setting_caiji'); ?></a></li>
  100. <li><a href="<?php echo url('admin/setting/site'); ?>"><i class="fa fa-circle-o"></i> <?php echo \think\Lang::get('setting_site'); ?></a></li>
  101. <!-- <li><a href="<?php echo url('admin/setting/store'); ?>"><i class="fa fa-circle-o"></i> <?php echo \think\Lang::get('setting_store'); ?></a></li>-->
  102. <!-- <li><a href="<?php echo url('admin/setting/email'); ?>"><i class="fa fa-circle-o"></i> <?php echo \think\Lang::get('setting_email'); ?></a></li>-->
  103. </ul>
  104. </li>
  105. <li class="treeview<?php echo $curMenu['task']; ?><?php echo $curMenu['taskgroup']; ?><?php echo $curMenu['collector']; ?><?php echo $curMenu['release']; ?><?php echo $curMenu['collected']; ?>">
  106. <a href="#">
  107. <i class="fa fa-th-list"></i> <span><?php echo \think\Lang::get('task'); ?></span>
  108. <span class="pull-right-container">
  109. <i class="fa fa-angle-left pull-right"></i>
  110. </span>
  111. </a>
  112. <ul class="treeview-menu">
  113. <li><a href="<?php echo url('admin/task/list'); ?>"><i class="fa fa-circle-o"></i> <?php echo \think\Lang::get('task_list'); ?></a></li>
  114. <li><a href="<?php echo url('admin/task/set'); ?>"><i class="fa fa-circle-o"></i> <?php echo \think\Lang::get('task_add'); ?></a></li>
  115. <li><a href="<?php echo url('admin/taskgroup/list'); ?>"><i class="fa fa-circle-o"></i> <?php echo \think\Lang::get('taskgroup'); ?></a></li>
  116. <li><a href="<?php echo url('admin/collected/list'); ?>"><i class="fa fa-circle-o"></i> 已采集数据</a></li>
  117. </ul>
  118. </li>
  119. <!-- <li class="treeview<?php echo $curMenu['dataset']; ?><?php echo $curMenu['dataapi']; ?>">-->
  120. <!-- <a href="#">-->
  121. <!-- <i class="fa fa-database"></i> <span>数据</span>-->
  122. <!-- <span class="pull-right-container">-->
  123. <!-- <i class="fa fa-angle-left pull-right"></i>-->
  124. <!-- </span>-->
  125. <!-- </a>-->
  126. <!-- <ul class="treeview-menu">-->
  127. <!-- <li><a href="<?php echo url('admin/dataset/list'); ?>"><i class="fa fa-circle-o"></i> 数据集</a></li>-->
  128. <!-- <li><a href="<?php echo url('admin/dataapi/list'); ?>"><i class="fa fa-circle-o"></i> 数据接口</a></li>-->
  129. <!-- </ul>-->
  130. <!-- </li>-->
  131. <!-- <li class="treeview<?php echo $curMenu['store']; ?><?php echo $curMenu['mystore']; ?><?php echo $curMenu['provider']; ?><?php echo $curMenu['develop']; ?>">-->
  132. <!-- <a href="#">-->
  133. <!-- <i class="fa fa-cloud"></i> <span>云端</span>-->
  134. <!-- <span class="pull-right-container">-->
  135. <!-- <i class="fa fa-angle-left pull-right"></i>-->
  136. <!-- </span>-->
  137. <!-- </a>-->
  138. <!-- <ul class="treeview-menu">-->
  139. <!-- <li><a href="<?php echo url('admin/mystore/store'); ?>" target="_blank"><i class="fa fa-circle-o"></i> 云平台</a></li>-->
  140. <!-- <li><a href="<?php echo url('admin/provider/list'); ?>"><i class="fa fa-circle-o"></i> 第三方</a></li>-->
  141. <!-- <li class="treeview<?php echo !empty($curMenu['develop'])?'':' menu-open cur-menu'; ?>">-->
  142. <!-- <a href="#"><i class="fa fa-circle-o"></i> 仓库-->
  143. <!-- <span class="pull-right-container">-->
  144. <!-- <i class="fa fa-angle-left pull-right"></i>-->
  145. <!-- </span>-->
  146. <!-- </a>-->
  147. <!-- <ul class="treeview-menu">-->
  148. <!-- <li><a href="<?php echo url('admin/mystore/rule'); ?>"><i class="fa fa-circle-o"></i> 采集规则</a></li>-->
  149. <!-- <li><a href="<?php echo url('admin/mystore/funcApp'); ?>"><i class="fa fa-circle-o"></i> 函数插件</a></li>-->
  150. <!-- <li><a href="<?php echo url('admin/mystore/apiApp'); ?>"><i class="fa fa-circle-o"></i> 接口插件</a></li>-->
  151. <!-- <li><a href="<?php echo url('admin/mystore/releaseApp'); ?>"><i class="fa fa-circle-o"></i> 发布插件</a></li>-->
  152. <!-- <li><a href="<?php echo url('admin/mystore/app'); ?>"><i class="fa fa-circle-o"></i> 应用程序</a></li>-->
  153. <!-- </ul>-->
  154. <!-- </li>-->
  155. <!-- <li class="treeview<?php echo $curMenu['develop']; ?>">-->
  156. <!-- <a href="#"><i class="fa fa-circle-o"></i> 开发-->
  157. <!-- <span class="pull-right-container">-->
  158. <!-- <i class="fa fa-angle-left pull-right"></i>-->
  159. <!-- </span>-->
  160. <!-- </a>-->
  161. <!-- <ul class="treeview-menu">-->
  162. <!-- <li><a href="<?php echo url('admin/develop/func'); ?>"><i class="fa fa-circle-o"></i> 函数插件</a></li>-->
  163. <!-- <li><a href="<?php echo url('admin/develop/api'); ?>"><i class="fa fa-circle-o"></i> 接口插件</a></li>-->
  164. <!-- <li><a href="<?php echo url('admin/develop/releaseCms'); ?>"><i class="fa fa-circle-o"></i> 发布插件</a></li>-->
  165. <!-- <li><a href="<?php echo url('admin/develop/app'); ?>"><i class="fa fa-circle-o"></i> 应用程序</a></li>-->
  166. <!-- <li><a href="<?php echo url('admin/develop/editor'); ?>"><i class="fa fa-edit"></i> 插件编辑器</a></li>-->
  167. <!-- </ul>-->
  168. <!-- </li>-->
  169. <!-- </ul>-->
  170. <!-- </li>-->
  171. <!-- <li class="treeview<?php echo $curMenu['user']; ?>">-->
  172. <!-- <a href="#">-->
  173. <!-- <i class="fa fa-user"></i> <span><?php echo \think\Lang::get('user'); ?></span>-->
  174. <!-- <span class="pull-right-container">-->
  175. <!-- <i class="fa fa-angle-left pull-right"></i>-->
  176. <!-- </span>-->
  177. <!-- </a>-->
  178. <!-- <ul class="treeview-menu">-->
  179. <!-- <li><a href="<?php echo url('admin/user/list'); ?>"><i class="fa fa-circle-o"></i> <?php echo \think\Lang::get('user_list'); ?></a></li>-->
  180. <!-- </ul>-->
  181. <!-- </li>-->
  182. <li class="treeview<?php echo $curMenu['tool']; ?>">
  183. <a href="#">
  184. <i class="fa fa-wrench"></i> <span>工具</span>
  185. <span class="pull-right-container">
  186. <i class="fa fa-angle-left pull-right"></i>
  187. </span>
  188. </a>
  189. <ul class="treeview-menu">
  190. <!-- <li><a href="<?php echo url('admin/tool/fileManager'); ?>"><i class="fa fa-circle-o"></i> 文件管理</a></li>-->
  191. <li><a href="<?php echo url('admin/tool/preview'); ?>"><i class="fa fa-circle-o"></i> 解析预览</a></li>
  192. <li><a href="<?php echo url('admin/tool/logs'); ?>"><i class="fa fa-circle-o"></i> 错误日志</a></li>
  193. <li class="treeview<?php echo $curSubm['checkfile']; ?><?php echo $curSubm['checkdb']; ?>">
  194. <a href="#"><i class="fa fa-circle-o"></i> 校验
  195. <span class="pull-right-container">
  196. <i class="fa fa-angle-left pull-right"></i>
  197. </span>
  198. </a>
  199. <ul class="treeview-menu">
  200. <li><a href="<?php echo url('admin/tool/checkfile'); ?>"><i class="fa fa-circle-o"></i> 文件</a></li>
  201. <li><a href="<?php echo url('admin/tool/checkdb'); ?>"><i class="fa fa-circle-o"></i> 数据库</a></li>
  202. </ul>
  203. </li>
  204. <li class="treeview">
  205. <a href="#" id="treeview_skins"><i class="fa fa-circle-o"></i> <?php echo \think\Lang::get('admincp_style'); ?>
  206. <span class="pull-right-container">
  207. <i class="fa fa-angle-left pull-right"></i>
  208. </span>
  209. </a>
  210. <ul class="treeview-menu treeview-skins" style="display:none;">
  211. <li>
  212. <div class="checkbox"><label><input id="chk_sidebar_mini" type="checkbox"> <?php echo \think\Lang::get('admincp_sidebar_mini'); ?></label></div>
  213. <div class="checkbox"><label><input id="chk_sidebar_fixed" type="checkbox"> 菜单侧边栏固定</label></div>
  214. <div class="checkbox"><label><input id="chk_sidebar_narrow" type="checkbox"> 窄屏显示</label></div>
  215. </li>
  216. <li>
  217. <div id="sidebar_skins"></div>
  218. </li>
  219. </ul>
  220. </li>
  221. </ul>
  222. </li>
  223. </ul>
  224. </section>
  225. </aside>
  226. <script type="text/javascript">admincpOp.init();</script>
  227. <div class="content-wrapper">
  228. <section class="content-header">
  229. <h1><?php echo g_sc('html_tag_name'); ?></h1>
  230. <ol class="breadcrumb">
  231. <li><a href="<?php echo url('admin/backstage/index'); ?>"><i class="fa fa-dashboard"></i> <?php echo \think\Lang::get('admincp'); ?></a></li>
  232. <?php echo g_sc('html_tag_nav'); ?>
  233. </ol>
  234. </section>
  235. <section class="content">
  236. <form id="form_rele" class="form-item" method="post" action="<?php echo url('release/set'); ?>">
  237. <?php echo html_usertoken(); ?>
  238. <input type="hidden" name="task_id" value="<?php echo $taskData['id']; ?>" />
  239. <input type="hidden" name="release_import" value="" />
  240. <div class="form-group">
  241. <div class="input-group">
  242. <label class="input-group-addon"><?php echo \think\Lang::get('rele_module'); ?></label>
  243. <select name="module" class="form-control">
  244. <option value=""><?php echo \think\Lang::get('select_first'); ?></option>
  245. <?php if(is_array(\think\Config::get('release_modules')) || \think\Config::get('release_modules') instanceof \think\Collection || \think\Config::get('release_modules') instanceof \think\Paginator): if( count(\think\Config::get('release_modules'))==0 ) : echo "" ;else: foreach(\think\Config::get('release_modules') as $key=>$rele_module): ?>
  246. <option value="<?php echo $rele_module; ?>"><?php echo lang('rele_module_'.$rele_module); ?></option>
  247. <?php endforeach; endif; else: echo "" ;endif; ?>
  248. </select>
  249. <div class="input-group-btn dropdown">
  250. <button class="btn btn-default dropdown-toggle" type="button" id="btn_import_release" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  251. 导入配置 <span class="caret"></span>
  252. </button>
  253. <ul class="dropdown-menu dropdown-menu-right" aria-labelledby="btn_import_release">
  254. <li><a href="javascript:;" onclick="windowModal('导入配置会覆盖当前任务的发布设置,且不可恢复','<?php echo url("release/import"); ?>');">其它任务设置</a></li>
  255. <li><a href="javascript:;" onclick="windowModal('导入配置会覆盖当前任务的发布设置,且不可恢复','<?php echo url("mystore/upload?type=release&from_task=1"); ?>');">导入文件</a></li>
  256. <?php if(!empty($releData)): ?>
  257. <li role="separator" class="divider"></li>
  258. <li><a href="<?php echo url('release/export?task_id='.$releData['task_id']); ?>" target="_blank">另存为</a></li>
  259. <?php endif; ?>
  260. </ul>
  261. </div>
  262. </div>
  263. </div>
  264. <div class="rele-module" id="rele_module_dataset" module="dataset" style="display:none;">
  265. <div class="form-group">
  266. <input type="hidden" name="dataset[auto_create]" class="form-control" value="" />
  267. <div class="dropdown">
  268. <button class="btn btn-default btn-block dropdown-toggle" type="button" id="btn_dataset" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  269. 设置数据集 <span class="caret"></span>
  270. </button>
  271. <ul class="dropdown-menu" style="width:100%;text-align:center;" aria-labelledby="btn_dataset">
  272. <li><a href="javascript:" id="btn_dataset_list">选择数据集</a></li>
  273. <li><a href="javascript:" id="btn_dataset_create">自动创建数据集</a></li>
  274. </ul>
  275. </div>
  276. </div>
  277. <div id="dataset_config" style="display:none;">
  278. </div>
  279. </div>
  280. <div class="rele-module" id="rele_module_cms" module="cms" style="display:none;">
  281. <ul id="cms_tab" class="nav nav-tabs">
  282. <li class="active"><a href="#cms_tab_detect" data-toggle="tab">检测CMS程序</a></li>
  283. <li><a href="#cms_tab_bind" data-toggle="tab">数据绑定</a></li>
  284. <li style="float:right"><a href="<?php echo url('develop/releaseCms'); ?>">开发插件</a></li>
  285. </ul>
  286. <div id="cms_tab_content" class="tab-content" style="margin-top:-1px">
  287. <div class="tab-pane fade in active" id="cms_tab_detect">
  288. <div class="panel panel-default">
  289. <div class="panel-body">
  290. <div class="form-group">
  291. <button type="button" class="btn btn-default btn-cms-detect"><?php echo \think\Lang::get('rele_btn_detect'); ?></button>
  292. </div>
  293. <div class="form-group" id="cms_list"></div>
  294. </div>
  295. </div>
  296. </div>
  297. <div class="tab-pane fade" id="cms_tab_bind">
  298. <div class="panel panel-default">
  299. <div class="panel-body">
  300. <div class="form-group" id="cms_info">
  301. <div class="input-group">
  302. <div class="input-group-addon">
  303. <b><?php echo \think\Lang::get('rele_cms_path'); ?></b>
  304. <a href="javascript:;" onclick="modal('CMS路径',$(this).html());" class="glyphicon glyphicon-info-sign icon-info-tips" style="width:14px;overflow:hidden;">
  305. 注意是CMS程序在硬盘中的路径并非网址URL,蓝天采集器所在路径为:<?php echo config('root_path'); ?>
  306. </a>
  307. </div>
  308. <input type="text" name="cms[path]" class="form-control" value="<?php echo $config['cms']['path']; ?>" />
  309. <span class="input-group-btn"><button class="btn btn-default btn-cms-bind" type="button">开始绑定</button></span>
  310. </div>
  311. </div>
  312. <div class="form-group" id="cms_bind">
  313. </div>
  314. </div>
  315. </div>
  316. </div>
  317. </div>
  318. </div>
  319. <div class="rele-module" module="db" style="display:none;">
  320. <ul id="db_tab" class="nav nav-tabs">
  321. <li class="active"><a href="#db_tab_config" data-toggle="tab">数据库配置</a></li>
  322. <li><a href="#db_tab_table" data-toggle="tab">数据表</a></li>
  323. </ul>
  324. <div id="db_tab_content" class="tab-content" style="margin-top:-1px">
  325. <div class="tab-pane fade in active" id="db_tab_config">
  326. <div class="panel panel-default">
  327. <div class="panel-body">
  328. <div class="form-group">
  329. <label><?php echo \think\Lang::get('rele_db_type'); ?></label>
  330. <select name="db[type]" class="form-control">
  331. <option value="mysql">mysql</option>
  332. <option value="oracle">oracle</option>
  333. <option value="sqlsrv">sql server</option>
  334. </select>
  335. </div>
  336. <div class="form-group">
  337. <label><?php echo \think\Lang::get('rele_db_host'); ?></label>
  338. <input name="db[host]" class="form-control" value="<?php echo !empty($config['db']['host'])?$config['db']['host']:'localhost'; ?>">
  339. </div>
  340. <div class="form-group">
  341. <label><?php echo \think\Lang::get('rele_db_port'); ?></label>
  342. <input name="db[port]" class="form-control" value="<?php echo !empty($config['db']['port'])?$config['db']['port']:3306; ?>">
  343. </div>
  344. <div class="form-group">
  345. <label><?php echo \think\Lang::get('rele_db_charset'); ?></label>
  346. <div class="input-group">
  347. <input name="db[charset]" class="form-control" value="<?php echo $config['db']['charset']; ?>">
  348. <div class="input-group-btn">
  349. <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><em style="font-style:normal">常用编码</em> <span class="caret"></span></button>
  350. <ul class="dropdown-menu dropdown-menu-right dm-db-charset">
  351. <li><span data-val="utf8">utf8</span> <span data-val="utf8mb4">utf8mb4</span> <span data-val="utf32">utf32</span> <span data-val="utf16le">utf16le</span> <span data-val="utf16">utf16</span></li>
  352. <li><span data-val="gbk">gbk</span> <span data-val="gb2312">gb2312</span> <span data-val="gb18030">gb18030</span></li>
  353. <li role="separator" class="divider"></li>
  354. <li><span data-val="ascii">ascii</span> <span data-val="armscii8">armscii8</span> <span data-val="binary">binary</span> <span data-val="big5">big5</span></li>
  355. <li><span data-val="cp932">cp932</span> <span data-val="cp866">cp866</span> <span data-val="cp852">cp852</span> <span data-val="cp850">cp850</span></li>
  356. <li><span data-val="cp1257">cp1257</span> <span data-val="cp1256">cp1256</span> <span data-val="cp1251">cp1251</span> <span data-val="cp1250">cp1250</span></li>
  357. <li><span data-val="dec8">dec8</span> <span data-val="euckr">euckr</span> <span data-val="eucjpms">eucjpms</span></li>
  358. <li><span data-val="greek">greek</span> <span data-val="geostd8">geostd8</span> <span data-val="hp8">hp8</span> <span data-val="hebrew">hebrew</span></li>
  359. <li><span data-val="keybcs2">keybcs2</span> <span data-val="koi8u">koi8u</span> <span data-val="koi8r">koi8r</span></li>
  360. <li><span data-val="latin7">latin7</span> <span data-val="latin5">latin5</span> <span data-val="latin2">latin2</span> <span data-val="latin1">latin1</span></li>
  361. <li><span data-val="macroman">macroman</span> <span data-val="macce">macce</span> <span data-val="swe7">swe7</span> <span data-val="sjis">sjis</span></li>
  362. <li><span data-val="tis620">tis620</span> <span data-val="ujis">ujis</span> <span data-val="ucs2">ucs2</span></li>
  363. </ul>
  364. </div>
  365. </div>
  366. </div>
  367. <div class="form-group">
  368. <label><?php echo \think\Lang::get('rele_db_name'); ?></label>
  369. <div class="input-group">
  370. <input name="db[name]" class="form-control" value="<?php echo $config['db']['name']; ?>">
  371. <div class="input-group-btn"><button type="button" class="btn btn-default btn-db-names">选择数据库</button></div>
  372. </div>
  373. </div>
  374. <div class="form-group">
  375. <label><?php echo \think\Lang::get('rele_db_user'); ?></label>
  376. <input name="db[user]" class="form-control" value="<?php echo $config['db']['user']; ?>">
  377. </div>
  378. <div class="form-group">
  379. <label><?php echo \think\Lang::get('rele_db_pwd'); ?></label>
  380. <input type="password" name="db[pwd]" class="form-control" autocomplete="off" value="<?php echo $config['db']['pwd']; ?>">
  381. </div>
  382. <div class="form-group">
  383. <button type="button" class="btn btn-default btn-db-connect">测试连接到数据库</button>
  384. <div class="rele-db-error"></div>
  385. </div>
  386. </div>
  387. </div>
  388. </div>
  389. <div class="tab-pane fade" id="db_tab_table">
  390. <div class="panel panel-default">
  391. <div class="panel-body">
  392. <?php if(empty($releData['config']['db'])): ?>
  393. 请先保存“数据库配置”
  394. <?php else: ?>
  395. <div class="form-group">
  396. <div class="input-group db-table-list">
  397. </div>
  398. <div class="db-table-binding" style="margin-top:15px;"></div>
  399. </div>
  400. <div class="form-group">
  401. <div class="panel-group" id="db_table_bind_list" style="margin-bottom:0;"></div>
  402. </div>
  403. <?php endif; ?>
  404. </div>
  405. </div>
  406. </div>
  407. </div>
  408. </div>
  409. <div class="rele-module" id="rele_module_file" module="file" style="display:none;">
  410. <div class="box box-default">
  411. <div class="box-body">
  412. <div class="form-group">
  413. <label>文件存放目录</label>
  414. <div class="input-group mobile-input-group">
  415. <div class="input-group-addon"><?php echo config('root_path'); ?><?php echo DS; ?>data<?php echo DS; ?></div>
  416. <input type="text" class="form-control" name="file[path]" placeholder="请输入目录名称" />
  417. <div class="input-group-btn">
  418. <button type="button" class="btn btn-default btn-file-rand-path">随机目录</button>
  419. </div>
  420. </div>
  421. <p class="help-block">请务必输入一个复杂的目录以防止他人破解目录下载数据!</p>
  422. </div>
  423. <div class="form-group">
  424. <label>文件格式</label>
  425. <div class="input-group mobile-input-group mobile-input-group1">
  426. <div class="input-group-addon">
  427. <label class="radio-inline"><input type="radio" name="file[type]" value="xlsx"> Excel2007(.xlsx格式)</label>
  428. </div>
  429. <div class="input-group-addon brr_0">
  430. <label class="radio-inline"><input type="radio" name="file[type]" value="xls"> Excel2003(.xls格式)</label>
  431. </div>
  432. <div class="input-group-addon brr_0">
  433. <label class="radio-inline"><input type="radio" name="file[type]" value="txt"> txt文本,字段分隔符</label>
  434. </div>
  435. <input type="text" class="form-control" name="file[txt_implode]" placeholder="默认制表符" />
  436. </div>
  437. </div>
  438. <div class="form-group">
  439. <label>文件最大行数</label>
  440. <input name="file[max_line]" type="number" class="form-control" value="" />
  441. <p class="help-block">文件超过最大行数时创建新的文件并自动编号,填0表示不限制</p>
  442. </div>
  443. <?php if(!empty($collFields)): ?>
  444. <div class="form-group">
  445. <label>隐藏采集字段</label>
  446. <div>
  447. <?php foreach($collFields as $v): ?>
  448. <label class="checkbox-inline"><input type="checkbox" name="file[hide_fields][]" value="<?php echo $v; ?>" /><?php echo $v; ?></label>
  449. <?php endforeach; ?>
  450. </div>
  451. <p class="help-block">勾选的字段不写入文件</p>
  452. </div>
  453. <?php endif; ?>
  454. </div>
  455. </div>
  456. </div>
  457. <div class="rele-module" id="rele_module_api" module="api" style="display:none;">
  458. <div class="box box-default">
  459. <div class="box-body">
  460. <div class="form-group">
  461. <label>API密钥</label>
  462. <div class="input-group">
  463. <input type="text" class="form-control" name="api[key]" placeholder="请输入字符串" autocomplete="off" />
  464. <div class="input-group-btn">
  465. <button type="button" class="btn btn-default btn-api-rand-url">随机字符串</button>
  466. </div>
  467. </div>
  468. <p class="help-block">
  469. 设置一个密钥增加API安全性
  470. <?php if(!empty($releData['config']['api'])): $apiKeyStr=isset($releData['config']['api']['url'])?$releData['config']['api']['url']:md5($releData['config']['api']['key']); ?>
  471. ,API网址:<a href="<?php echo $apiRootUrl; ?>/api_task/<?php echo $taskData['id']; ?>/<?php echo $apiKeyStr; ?>" target="_blank"><?php echo $apiRootUrl; ?>/api_task/<?php echo $taskData['id']; ?>/<?php echo $apiKeyStr; ?></a>
  472. <?php endif; ?>
  473. </p>
  474. </div>
  475. <div class="form-group">
  476. <label>数据缓存时间(分钟)</label>
  477. <input type="number" class="form-control" name="api[cache_time]" />
  478. <p class="help-block">留空或0表示实时抓取</p>
  479. </div>
  480. <?php if(!empty($collFields)): ?>
  481. <div class="form-group">
  482. <label>隐藏采集字段</label>
  483. <div>
  484. <?php foreach($collFields as $v): ?>
  485. <label class="checkbox-inline"><input type="checkbox" name="api[hide_fields][]" value="<?php echo $v; ?>" /><?php echo $v; ?></label>
  486. <?php endforeach; ?>
  487. </div>
  488. <p class="help-block">勾选的字段不显示,默认显示所有字段</p>
  489. </div>
  490. <?php endif; ?>
  491. </div>
  492. </div>
  493. </div>
  494. <div class="rele-module" id="rele_module_toapi" module="toapi" style="display:none;">
  495. <input type="hidden" name="toapi[module]" value="">
  496. <ul id="toapi_tab" class="nav nav-tabs">
  497. <li class="active"><a href="#toapi_tab_" data-toggle="tab" data-module="">自定义</a></li>
  498. <li><a href="#toapi_tab_app" data-toggle="tab" data-module="app">一键导入</a></li>
  499. <li style="float:right"><a href="<?php echo \skycaiji\admin\model\Provider::create_store_url(null,'client/go/toapi'); ?>" target="_blank">远程接口大全</a></li>
  500. </ul>
  501. <div id="toapi_tab_content" class="tab-content" style="margin-top:-1px">
  502. <div class="tab-pane in active" id="toapi_tab_">
  503. <div class="panel panel-default">
  504. <div class="panel-body">
  505. <div class="form-group">
  506. <label>接口地址</label>
  507. <input type="text" name="toapi[url]" class="form-control" />
  508. <div class="help-block">
  509. 以/开头自动补全为<?php echo config('root_website'); ?>/
  510. <select id="toapi_url_field" style="color:#333;margin-left:5px;border:0;width:80px;cursor:pointer;">
  511. <option value="">插入字段</option>
  512. <?php if(!empty($collFields)): foreach($collFields as $v): ?>
  513. <option value="[采集字段:<?php echo $v; ?>]">采集字段:<?php echo $v; ?></option>
  514. <?php endforeach; endif; ?>
  515. </select>
  516. </div>
  517. </div>
  518. <div class="form-group">
  519. <label>网页编码</label>
  520. <div class="input-group input-select-custom">
  521. <div class="input-group-btn">
  522. <select name="toapi[charset]" class="form-control">
  523. <option value="">utf-8</option>
  524. <option value="gbk">gbk</option>
  525. <option value="gb2312">gb2312</option>
  526. <option value="custom">自定义</option>
  527. </select>
  528. </div>
  529. <input type="text" class="form-control" name="toapi[charset_custom]">
  530. </div>
  531. </div>
  532. <div class="form-group">
  533. <label>内容解压缩</label>
  534. <div class="input-group input-select-custom">
  535. <div class="input-group-btn">
  536. <select name="toapi[encode]" class="form-control">
  537. <option value="">系统默认</option>
  538. <option value="gzip">gzip</option>
  539. <option value="br">br</option>
  540. <option value="compress">compress</option>
  541. <option value="deflate">deflate</option>
  542. <option value="identity">identity</option>
  543. <option value="custom">自定义</option>
  544. </select>
  545. </div>
  546. <input type="text" class="form-control" name="toapi[encode_custom]">
  547. </div>
  548. </div>
  549. <div class="form-group">
  550. <label>请求方式</label>
  551. <select name="toapi[type]" class="form-control">
  552. <option value="post">POST</option>
  553. <option value="">GET</option>
  554. </select>
  555. </div>
  556. <div class="form-group toapi-content-type">
  557. <label>POST数据类型 <a href="javascript:;" class="glyphicon glyphicon-info-sign icon-info-tips" onclick="globalOp.tipsCurlPost()"></a></label>
  558. <select name="toapi[content_type]" class="form-control">
  559. <option value="">默认表单数据:application/x-www-form-urlencoded</option>
  560. <option value="application/json">JSON数组:application/json</option>
  561. <option value="multipart/form-data">表单上传:multipart/form-data</option>
  562. </select>
  563. </div>
  564. <div class="form-group">
  565. <label>发送数据</label>
  566. <a href="javascript:;" class="glyphicon glyphicon-plus toapi-add-param" title="添加"></a>
  567. <div class="toapi-param-table">
  568. <table class="table table-bordered table-hover">
  569. <thead>
  570. <tr>
  571. <td>名称</td>
  572. <td>值</td>
  573. <td>删除</td>
  574. </tr>
  575. </thead>
  576. <tbody>
  577. <tr class="toapi-param-tpl" style="display:none;">
  578. <td>
  579. <input type="text" name="toapi[param_name][]" class="form-control" autocomplete="off" />
  580. </td>
  581. <td>
  582. <div class="input-group toapi-field-txt">
  583. <input type="text" name="toapi[param_val][]" class="form-control" autocomplete="off" />
  584. <div class="input-group-addon">
  585. <a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">字段 <span class="caret"></span></a>
  586. <ul class="dropdown-menu dropdown-menu-right">
  587. <?php if(!empty($collFields)): foreach($collFields as $v): ?>
  588. <li><a href="javascript:;" data-val="[采集字段:<?php echo $v; ?>]">采集字段:<?php echo $v; ?></a></li>
  589. <?php endforeach; endif; ?>
  590. </ul>
  591. </div>
  592. </div>
  593. </td>
  594. <td>
  595. <a href="javascript:;" class="glyphicon glyphicon-remove toapi-del-param" style="margin-top:8px;"></a>
  596. </td>
  597. </tr>
  598. </tbody>
  599. </table>
  600. </div>
  601. </div>
  602. <div class="form-group">
  603. <label>请求头信息</label>
  604. <a href="javascript:;" class="glyphicon glyphicon-plus toapi-add-header" title="添加"></a>
  605. <div class="toapi-header-table">
  606. <table class="table table-bordered table-hover">
  607. <thead>
  608. <tr>
  609. <td>名称</td>
  610. <td>值</td>
  611. <td>删除</td>
  612. </tr>
  613. </thead>
  614. <tbody>
  615. <tr class="toapi-header-tpl" style="display:none;">
  616. <td>
  617. <input type="text" name="toapi[header_name][]" class="form-control" autocomplete="off" />
  618. </td>
  619. <td>
  620. <div class="input-group toapi-field-txt">
  621. <input type="text" name="toapi[header_val][]" class="form-control" autocomplete="off" />
  622. <div class="input-group-addon">
  623. <a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">字段 <span class="caret"></span></a>
  624. <ul class="dropdown-menu dropdown-menu-right">
  625. <?php if(!empty($collFields)): foreach($collFields as $v): ?>
  626. <li><a href="javascript:;" data-val="[采集字段:<?php echo $v; ?>]">采集字段:<?php echo $v; ?></a></li>
  627. <?php endforeach; endif; ?>
  628. </ul>
  629. </div>
  630. </div>
  631. </td>
  632. <td>
  633. <a href="javascript:;" class="glyphicon glyphicon-remove toapi-del-header" style="margin-top:8px;"></a>
  634. </td>
  635. </tr>
  636. </tbody>
  637. </table>
  638. </div>
  639. </div>
  640. <div class="form-group">
  641. <div>
  642. <label>响应状态</label>
  643. <small style="margin-left:5px;color:#999;">接口必须返回内容用来记录数据入库的状态,否则会标记为失败</small>
  644. </div>
  645. <div class="table-responsive">
  646. <table class="table table-hover" style="margin-bottom:0;">
  647. <thead>
  648. <tr>
  649. <td style="width:150px;">名称</td>
  650. <td>
  651. 绑定响应的数据
  652. <select name="toapi[response][module]" class="form-control" style="width:110px;height:auto;display:inline;padding:2px 5px;">
  653. <option value="">json提取</option>
  654. <option value="xpath">xpath匹配</option>
  655. <option value="rule">正则匹配</option>
  656. </select>
  657. </td>
  658. </tr>
  659. </thead>
  660. <tbody>
  661. <tr>
  662. <td>id(编号)</td>
  663. <td><input type="text" name="toapi[response][id]" class="form-control" data-placeholder="记录入库的自增id或入库状态" placeholder="记录入库的自增id或入库状态,默认:id" autocomplete="off" /></td>
  664. </tr>
  665. <tr>
  666. <td>target(位置)</td>
  667. <td><input type="text" name="toapi[response][target]" class="form-control" data-placeholder="记录入库的数据位置(发布的网址等)" placeholder="记录入库的数据位置(发布的网址等),默认:target" autocomplete="off" /></td>
  668. </tr>
  669. <tr>
  670. <td>desc(描述)</td>
  671. <td><input type="text" name="toapi[response][desc]" class="form-control" data-placeholder="记录入库的数据位置附加信息" placeholder="记录入库的数据位置附加信息,默认:desc" autocomplete="off" /></td>
  672. </tr>
  673. <tr>
  674. <td>error(错误)</td>
  675. <td><input type="text" name="toapi[response][error]" class="form-control" data-placeholder="记录入库失败的错误信息" placeholder="记录入库失败的错误信息,默认:error" autocomplete="off" /></td>
  676. </tr>
  677. <tr>
  678. <td></td>
  679. <td id="toapi_resp_module_help">
  680. <p class="help-block" data-module="" style="display:block;">直接输入键名,子节点用:a.b.c</p>
  681. <p class="help-block" data-module="xpath">使用xpath规则</p>
  682. <p class="help-block" data-module="rule">
  683. 使用正则表达式
  684. <a href="javascript:;" data-rule-sign="sign_wildcard" title="<?php echo \think\Lang::get('tips_sign_wildcard'); ?>"><?php echo \think\Lang::get('sign_wildcard'); ?></a>
  685. <a href="javascript:;" data-rule-sign="sign_match" title="<?php echo \think\Lang::get('tips_sign_match'); ?>"><?php echo cp_sign('match'); ?></a>
  686. <a href="javascript:;" data-rule-sign="sign_group" title="<?php echo \think\Lang::get('tips_sign_group'); ?>">捕获组</a>
  687. ,规则中有<?php echo cp_sign('match'); ?>标签时将所有<?php echo cp_sign('match'); ?>拼接为结果,否则将完全匹配的值作为结果
  688. <a href="javascript:;" title="提示信息" class="glyphicon glyphicon-info-sign icon-info-tips" onclick="ruleInsertSign.tips()"></a>
  689. </p>
  690. </td>
  691. </tr>
  692. </tbody>
  693. </table>
  694. </div>
  695. </div>
  696. </div>
  697. </div>
  698. </div>
  699. <div class="tab-pane" id="toapi_tab_app">
  700. <div class="panel panel-default">
  701. <div class="panel-body">
  702. <div class="form-group">
  703. <label>接口地址</label>
  704. <div class="input-group">
  705. <input type="text" name="toapi[app_url]" class="form-control" autocomplete="off" />
  706. <div class="input-group-btn"><button class="btn btn-default" type="button" id="btn_toapi_app">一键导入</button></div>
  707. </div>
  708. <div class="help-block">
  709. 以/开头自动补全为<?php echo config('root_website'); ?>/
  710. <select id="toapi_app_url_field" style="color:#333;margin-left:5px;border:0;width:80px;cursor:pointer;">
  711. <option value="">插入字段</option>
  712. <?php if(!empty($collFields)): foreach($collFields as $v): ?>
  713. <option value="[采集字段:<?php echo $v; ?>]">采集字段:<?php echo $v; ?></option>
  714. <?php endforeach; endif; ?>
  715. </select>
  716. </div>
  717. </div>
  718. </div>
  719. </div>
  720. <div id="toapi_app_params"></div>
  721. </div>
  722. </div>
  723. <div class="panel panel-default">
  724. <div class="panel-heading">
  725. <h4 class="panel-title"><a data-toggle="collapse" href="#panel_toapi" aria-expanded="false" class="collapsed">更多设置</a></h4>
  726. </div>
  727. <div class="panel-collapse collapse" id="panel_toapi">
  728. <div class="panel-body">
  729. <div class="form-group">
  730. <label>调用间隔(毫秒,1000毫秒=1秒)</label>
  731. <input type="number" name="toapi[interval]" class="form-control">
  732. <p class="help-block">发布间隔时间</p>
  733. </div>
  734. <div class="form-group">
  735. <label>失败等待(秒)</label>
  736. <input type="number" name="toapi[wait]" class="form-control">
  737. <p class="help-block">发布失败,等待一段时间再继续</p>
  738. </div>
  739. <div class="form-group">
  740. <label>失败重试</label>
  741. <input type="number" name="toapi[retry]" class="form-control">
  742. <p class="help-block">发布失败重试次数,留空或0表示不重试</p>
  743. </div>
  744. </div>
  745. </div>
  746. </div>
  747. </div>
  748. <div class="rele-module" id="rele_module_diy" module="diy" style="display:none;">
  749. <input type="hidden" name="diy[type]" value="app">
  750. <ul id="diy_tab" class="nav nav-tabs">
  751. <li class="active"><a href="#diy_tab_app" data-toggle="tab" data-type="app">使用插件</a></li>
  752. <li><a href="#diy_tab_code" data-toggle="tab" data-type="code">使用代码</a></li>
  753. </ul>
  754. <div id="diy_tab_content" class="tab-content" style="margin-top:-1px">
  755. <div class="tab-pane in active" id="diy_tab_app">
  756. <div class="panel panel-default">
  757. <div class="panel-body">
  758. <div class="form-group">
  759. <label>插件名</label>
  760. <input type="text" class="form-control" name="diy[app]" />
  761. <p class="help-block">
  762. 自定义插件适用于任何网站的数据发布或开发其他发布功能<br>
  763. 请在网站根目录/plugin/release/diy目录中创建<b class="diy-app-name"></b>插件<span class="diy-app-editor" style="display:none;">或者<a href="javascript:;" class="btn_diy_editor" target="_blank">使用插件编辑器</a></span>,可参考目录中的Demo.php文件
  764. </p>
  765. </div>
  766. </div>
  767. </div>
  768. </div>
  769. <div class="tab-pane" id="diy_tab_code">
  770. <div class="panel panel-default">
  771. <div class="panel-body">
  772. <?php if(!config('OPEN_DIY_CODE')): ?>
  773. 出于安全考虑,如需开启该功能,请在根目录配置文件"data/config.php"中添加设置
  774. <b>'OPEN_DIY_CODE'=>TRUE</b>
  775. <?php else: ?>
  776. <div class="form-group">
  777. <div class="table-responsive">
  778. <table class="table">
  779. <thead>
  780. <tr>
  781. <th>数据库类型</th>
  782. <th>服务器</th>
  783. <th>库名称</th>
  784. <th>用户名</th>
  785. <th>密码</th>
  786. <th>端口</th>
  787. <th>表前缀</th>
  788. <th>编码</th>
  789. </tr>
  790. </thead>
  791. <tbody>
  792. <tr>
  793. <td>
  794. <select name="diy[db_type]" class="form-control">
  795. <option value="mysql">mysql/mysqli</option>
  796. <option value="sqlserver">mssql/sqlsrv</option>
  797. <option value="oracle">oracle</option>
  798. <option value="mongo">mongo</option>
  799. <option value="sqlite">sqlite</option>
  800. <option value="ibase">ibase</option>
  801. <option value="pgsql">pgsql</option>
  802. <option value="PDO">PDO</option>
  803. </select>
  804. </td>
  805. <td><input type="text" name="diy[db_host]" value="localhost" class="form-control" style="min-width:100px;" /></td>
  806. <td><input type="text" name="diy[db_name]" class="form-control" style="min-width:100px;" /></td>
  807. <td><input type="text" name="diy[db_user]" class="form-control" style="min-width:100px;" /></td>
  808. <td><input type="text" name="diy[db_pwd]" class="form-control" style="min-width:100px;" /></td>
  809. <td><input type="text" name="diy[db_port]" value="3306" class="form-control" style="min-width:100px;" /></td>
  810. <td><input type="text" name="diy[db_prefix]" class="form-control" style="min-width:100px;" /></td>
  811. <td><input type="text" name="diy[db_charset]" value="utf8" class="form-control" style="min-width:100px;" /></td>
  812. </tr>
  813. </tbody>
  814. </table>
  815. </div>
  816. </div>
  817. <div class="form-group">
  818. <label>PHP代码</label>
  819. <textarea name="diy[code]" class="form-control" style="display:none;"></textarea>
  820. <iframe id="diy_editor_ifr" style="width:100%;height:300px;border:0"></iframe>
  821. <div class="help-block">
  822. 可用变量:$fields = 采集到的字段数据列表,$url = 采集的页面网址,$this->db() = 数据库操作, 可参考thinkphp5的数据库操作
  823. <br>获取字段值必须使用 $this->get_field_val($field);方法(可处理图片、文件本地化等),否则使用$field['value']调用字段原始值
  824. <p style="border-top:dashed 1px #ccc;padding-top:10px;margin-top:10px;">
  825. 必须以数组形式返回:
  826. <br>* id(必填)表示入库返回的自增id或状态
  827. <br>target(可选)记录入库的数据位置(发布的网址等)
  828. <br>desc(可选)记录入库的数据位置附加信息
  829. <br>error(可选)入库的错误信息
  830. <br>return array('id'=>0,'target'=>'','desc'=>'','error'=>'');
  831. </p>
  832. 入库的信息可在“已采集数据”中查看
  833. </div>
  834. </div>
  835. <?php endif; ?>
  836. </div>
  837. </div>
  838. </div>
  839. </div>
  840. </div>
  841. <?php if(!empty($releData['id'])): ?>
  842. <a href="javascript:;" id="btn_rele_test" class="btn btn-default btn-block" style="margin-bottom:10px;">测试发布(需先保存设置)</a>
  843. <?php endif; ?>
  844. <div class="form-group">
  845. <button type="submit" class="btn btn-primary btn-block"><?php echo \think\Lang::get('save'); ?></button>
  846. </div>
  847. </form>
  848. <?php if($taskData): $tplTaskId=$taskData?$taskData['id']:'';$tplCurCtl=array(request()->controller()=>' current'); ?>
  849. <div class="steps-bar">
  850. <div class="step current">
  851. <div class="each">
  852. <a href="<?php echo url('task/set?id='.$tplTaskId); ?>" class="round">1</a>
  853. </div>
  854. <div class="info"><a href="<?php echo url('task/set?id='.$tplTaskId); ?>"><?php echo \think\Lang::get('task_set_task'); ?></a></div>
  855. </div>
  856. <div class="step<?php echo $tplCurCtl['Collector']; ?><?php echo $tplCurCtl['Release']; ?>">
  857. <div class="each">
  858. <a href="<?php echo url('collector/set?task_id='.$tplTaskId); ?>" class="round">2</a>
  859. <div class="bar"></div>
  860. </div>
  861. <div class="info"><a href="<?php echo url('collector/set?task_id='.$tplTaskId); ?>"><?php echo \think\Lang::get('task_set_collector'); ?></a></div>
  862. </div>
  863. <div class="step<?php echo $tplCurCtl['Release']; ?>">
  864. <div class="each">
  865. <a href="<?php echo url('release/set?task_id='.$tplTaskId); ?>" class="round">3</a>
  866. <div class="bar"></div>
  867. </div>
  868. <div class="info"><a href="<?php echo url('release/set?task_id='.$tplTaskId); ?>"><?php echo \think\Lang::get('task_set_release'); ?></a></div>
  869. </div>
  870. </div>
  871. <?php endif; ?>
  872. <script type="text/javascript">
  873. var releaseClass=new ReleaseClass('form_rele',<?php echo intval($releData["id"]); ?>);
  874. releaseClass.init();
  875. <?php if(!empty($releData)): ?>
  876. releaseClass.load(<?php echo json_encode($releData); ?>);
  877. <?php endif; ?>
  878. </script>
  879. </section>
  880. </div>
  881. <div class="control-sidebar-bg"></div>
  882. </div>
  883. <?php if(!is_empty(g_sc('browser_is_old'))): ?>
  884. <div class="alert alert-danger alert-dismissible fade in" role="alert" style="position:fixed;top:0;z-index:9999;width:100%;padding-top:5px;padding-bottom:5px;border-top-left-radius:0;border-top-right-radius:0;">
  885. <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
  886. 您的浏览器版本过低,不能完全展现页面效果,请使用谷歌、火狐或IE10及以上版本的浏览器!
  887. </div>
  888. <?php endif; if(is_empty(g_sc_c('site','closetrans'))): ?>
  889. <script type="text/javascript">
  890. 'use strict';//严格模式
  891. page_translator("/public","<?php echo addslashes($_SERVER['HTTP_ACCEPT_LANGUAGE']); ?>");
  892. </script>
  893. <?php endif; ?>
  894. <footer class="footer-end">
  895. <p>Powered by <a href="https://www.skycaiji.com" target="_blank">蓝天采集器</a></p>
  896. </footer>
  897. </body>
  898. </html>