skycaiji/SkycaijiApp/admin/view/release/set.html

338 lines
15 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

{extend name="common:main" /}
{block name="cssjs"}
<script type="text/javascript" src="__PUBLIC__/static/js/admin/release.js?{$Think.config.html_v}"></script>
{/block}
{block name="content"}
<form id="form_rele" class="form-item" method="post" ajax-submit="true" action="{:url('Release/set')}">
<input type="hidden" name="task_id" value="{$taskData['id']}" />
<input type="hidden" name="release_id" value="" />
<div class="form-group">
<div class="input-group">
<label class="input-group-addon">{$Think.lang.rele_module}</label>
<select name="module" class="form-control">
<option value="">{$Think.lang.select_first}</option>
{foreach name="Think.config.release_modules" item="rele_module"}
<option value="{$rele_module}">{:lang('rele_module_'.$rele_module)}</option>
{/foreach}
</select>
<div class="input-group-btn"><button class="btn btn-default" type="button" id="btn_import_release">导入配置</button></div>
</div>
</div>
<div class="rele-module" id="rele_module_cms" module="cms" style="display:none;">
<ul id="cms_tab" class="nav nav-tabs">
<li class="active"><a href="#cms_tab_detect" data-toggle="tab">检测CMS程序</a></li>
<li><a href="#cms_tab_bind" data-toggle="tab">数据绑定</a></li>
<li style="float:right"><a href="{:url('Develop/releaseCms')}">开发插件</a></li>
</ul>
<div id="cms_tab_content" class="tab-content" style="margin-top:-1px">
<div class="tab-pane fade in active" id="cms_tab_detect">
<div class="panel panel-default">
<div class="panel-body">
<div class="form-group">
<button type="button" class="btn btn-default btn-cms-detect">{$Think.lang.rele_btn_detect}</button>
</div>
<div class="form-group" id="cms_list"></div>
</div>
</div>
</div>
<div class="tab-pane fade" id="cms_tab_bind">
<div class="panel panel-default">
<div class="panel-body">
<div class="form-group" id="cms_info">
<div class="input-group">
<div class="input-group-addon">
<a href="javascript:;" onclick="modal('CMS路径',$(this).text());" class="glyphicon glyphicon-info-sign" style="width:16px;overflow:hidden;">
注意是CMS程序在硬盘中的路径并非网址URL蓝天采集器所在路径为{:config('root_path')}
</a>
<b>{$Think.lang.rele_cms_path}</b>
</div>
<input type="text" name="cms[path]" class="form-control" value="{$config['cms']['path']}" />
<span class="input-group-btn"><button class="btn btn-default btn-cms-bind" type="button">开始绑定</button></span>
</div>
</div>
<div class="form-group" id="cms_bind">
</div>
</div>
</div>
</div>
</div>
</div>
<div class="rele-module" module="db" style="display:none;">
<ul id="db_tab" class="nav nav-tabs">
<li class="active"><a href="#db_tab_config" data-toggle="tab">数据库配置</a></li>
<li><a href="#db_tab_table" data-toggle="tab">数据表</a></li>
</ul>
<div id="db_tab_content" class="tab-content" style="margin-top:-1px">
<div class="tab-pane fade in active" id="db_tab_config">
<div class="panel panel-default">
<div class="panel-body">
<div class="form-group">
<label>{$Think.lang.rele_db_type}</label>
<select name="db[type]" class="form-control">
<option value="mysql">mysql</option>
<option value="oracle">oracle</option>
<option value="sqlsrv">sql server</option>
</select>
</div>
<div class="form-group">
<label>{$Think.lang.rele_db_host}</label>
<input name="db[host]" class="form-control" value="{$config['db']['host']?$config['db']['host']:'localhost'}">
</div>
<div class="form-group">
<label>{$Think.lang.rele_db_port}</label>
<input name="db[port]" class="form-control" value="{$config['db']['port']?$config['db']['port']:3306}">
</div>
<div class="form-group">
<label>{$Think.lang.rele_db_charset}</label>
<input name="db[charset]" class="form-control" value="{$config['db']['charset']}">
</div>
<div class="form-group">
<label>{$Think.lang.rele_db_name}</label>
<div class="input-group">
<input name="db[name]" class="form-control" value="{$config['db']['name']}">
<div class="input-group-btn"><button type="button" class="btn btn-default btn-db-names">选择数据库</button></div>
</div>
</div>
<div class="form-group">
<label>{$Think.lang.rele_db_user}</label>
<input name="db[user]" class="form-control" value="{$config['db']['user']}">
</div>
<div class="form-group">
<label>{$Think.lang.rele_db_pwd}</label>
<input type="password" name="db[pwd]" class="form-control" value="{$config['db']['pwd']}">
</div>
<div class="form-group">
<button type="button" class="btn btn-default btn-db-connect">测试连接到数据库</button>
<div class="rele-db-error"></div>
</div>
</div>
</div>
</div>
<div class="tab-pane fade" id="db_tab_table">
<div class="panel panel-default">
<div class="panel-body">
{if condition="empty($releData['config']['db'])"}
请先保存“数据库配置”
{else /}
<div class="form-group">
<div class="input-group db-table-list">
</div>
<div class="db-table-binding" style="margin-top:15px;"></div>
</div>
<div class="form-group">
<div class="panel-group" id="db_table_bind_list"></div>
{if condition="$releData['config']['db']['type'] eq 'oracle'"}
<p class="help-block">Oracel表的自增主键需绑定序列号才能获取自增值自增字段选择“自定义内容”输入“sequence@序列号”例如“sequence@seq_123”</p>
{/if}
<p class="help-block">如需获取表的自增主键值选择“自定义内容”输入“auto_id@表名”例如“auto_id@table1”如果要拼接内容则在表名结尾加#例如“123auto_id@table1#456”<br>注意:表是按顺序插入数据,前面的表不能获取后面表的自增主键值</p>
</div>
{/if}
</div>
</div>
</div>
</div>
</div>
<div class="rele-module" id="rele_module_file" module="file" style="display:none;">
<div class="box box-default">
<div class="box-body">
<div class="form-group">
<label>文件存放目录</label>
<div class="input-group">
<div class="input-group-addon">{:config('root_path')}\data\</div>
<input type="text" class="form-control" name="file[path]" />
<div class="input-group-btn">
<button type="button" class="btn btn-default btn-file-rand-path">随机目录</button>
</div>
</div>
<p class="help-block">请务必输入一个复杂的目录以防止他人破解目录下载数据!</p>
</div>
<div class="form-group">
<label>文件格式</label>
<div class="row">
<div class="col-sm-4" style="padding-top:7px;">
<label class="radio-inline">
<input type="radio" name="file[type]" value="xlsx"> Excel2007(.xlsx格式)
</label>
</div>
<div class="col-sm-4" style="padding-top:7px;">
<label class="radio-inline">
<input type="radio" name="file[type]" value="xls"> Excel2003(.xls格式)
</label>
</div>
<div class="col-sm-4">
<div class="input-group">
<div class="input-group-addon" style="border:0;padding-left:0;">
<label class="radio-inline">
<input type="radio" name="file[type]" value="txt"> txt文本字段分隔符
</label>
</div>
<input type="text" class="form-control" name="file[txt_implode]" placeholder="默认制表符" />
</div>
</div>
</div>
</div>
{if !empty($collFields)}
<div class="form-group">
<label>隐藏采集字段</label>
<div>
{foreach $collFields as $v}
<label class="checkbox-inline"><input type="checkbox" name="file[hide_fields][]" value="{$v}" />{$v}</label>
{/foreach}
</div>
<p class="help-block">勾选的字段不写入文件</p>
</div>
{/if}
</div>
</div>
</div>
<div class="rele-module" id="rele_module_api" module="api" style="display:none;">
<div class="box box-default">
<div class="box-body">
<div class="form-group">
<label>api地址</label>
<div class="input-group">
<div class="input-group-addon">{:config('root_website')}/api_task/{$releData['task_id']}/</div>
<input type="text" class="form-control" name="api[url]" />
<div class="input-group-btn">
<button type="button" class="btn btn-default btn-api-rand-url">随机字符串</button>
</div>
</div>
<p class="help-block">
请务必输入一个复杂的字符串以防止他人破解api下载数据
<br />
{if condition="!empty($releData['config']['api']['url'])"}
API网址<a href="{$apiRootUrl}/api_task/{$releData['task_id']}/{$releData['config']['api']['url']}" target="_blank">{$apiRootUrl}/api_task/{$releData['task_id']}/{$releData['config']['api']['url']}</a>
{/if}
</p>
</div>
<div class="form-group">
<label>数据缓存时间(分钟)</label>
<input type="number" class="form-control" name="api[cache_time]" />
<p class="help-block">留空或0表示实时抓取</p>
</div>
{if !empty($collFields)}
<div class="form-group">
<label>隐藏采集字段</label>
<div>
{foreach $collFields as $v}
<label class="checkbox-inline"><input type="checkbox" name="api[hide_fields][]" value="{$v}" />{$v}</label>
{/foreach}
</div>
<p class="help-block">勾选的字段不显示,默认显示所有字段</p>
</div>
{/if}
</div>
</div>
</div>
<div class="rele-module" id="rele_module_diy" module="diy" style="display:none;">
<input type="hidden" name="diy[type]" value="app">
<ul id="diy_tab" class="nav nav-tabs">
<li class="active"><a href="#diy_tab_app" data-toggle="tab" data-type="app">使用插件</a></li>
<li><a href="#diy_tab_code" data-toggle="tab" data-type="code">使用代码</a></li>
</ul>
<div id="diy_tab_content" class="tab-content" style="margin-top:-1px">
<div class="tab-pane fade in active" id="diy_tab_app">
<div class="panel panel-default">
<div class="panel-body">
<div class="form-group">
<label>插件名</label>
<input type="text" class="form-control" name="diy[app]" />
<p class="help-block">
自定义插件适用于任何网站的数据发布或开发其他发布功能<br>
请在网站根目录/plugin/release/diy目录中创建<b></b>插件可参考目录中的Demo.php文件
</p>
</div>
</div>
</div>
</div>
<div class="tab-pane fade" id="diy_tab_code">
<div class="panel panel-default">
<div class="panel-body">
{if condition="!config('OPEN_DIY_CODE')"}
出于安全考虑,如需开启该功能,请在根目录配置文件"data/config.php"中添加设置
<b>'OPEN_DIY_CODE'=>TRUE</b>
{else /}
<div class="form-group">
<div class="table-responsive">
<table>
<thead>
<tr>
<th>数据库类型</th>
<th>服务器</th>
<th>库名称</th>
<th>用户名</th>
<th>密码</th>
<th>端口</th>
<th>表前缀</th>
<th>编码</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<select name="diy[db_type]" class="form-control">
<option value="mysql">mysql/mysqli</option>
<option value="sqlserver">mssql/sqlsrv</option>
<option value="oracle">oracle</option>
<option value="mongo">mongo</option>
<option value="sqlite">sqlite</option>
<option value="ibase">ibase</option>
<option value="pgsql">pgsql</option>
<option value="PDO">PDO</option>
</select>
</td>
<td><input type="text" name="diy[db_host]" value="localhost" class="form-control" /></td>
<td><input type="text" name="diy[db_name]" class="form-control" /></td>
<td><input type="text" name="diy[db_user]" class="form-control" /></td>
<td><input type="text" name="diy[db_pwd]" class="form-control" /></td>
<td><input type="text" name="diy[db_port]" value="3306" class="form-control" /></td>
<td><input type="text" name="diy[db_prefix]" class="form-control" /></td>
<td><input type="text" name="diy[db_charset]" value="utf8" class="form-control" /></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="form-group">
<label>PHP代码</label>
<textarea name="diy[code]" class="form-control" rows="5"></textarea>
<div class="help-block">
可用变量:$fields = 采集到的字段数据列表,$url = 采集的页面网址,$this->db() = 数据库操作, 可参考thinkphp5的数据库操作
<br>获取字段值必须使用 $this->get_field_val($field);方法(可处理图片本地化等),否则使用$field['value']调用字段原始值
<p style="border-top:dashed 1px #ccc;padding-top:10px;margin-top:10px;">
必须以数组形式返回:
<br>* id必填表示入库返回的自增id或状态
<br>target可选记录入库的数据位置发布的网址等
<br>desc可选记录入库的数据位置附加信息
<br>error可选入库的错误信息
<br>return array('id'=>0,'target'=>'','desc'=>'','error'=>'');
</p>
入库的信息可在“已采集数据”中查看
</div>
</div>
{/if}
</div>
</div>
</div>
</div>
</div>
{if condition="!empty($releData['config'])"}
<a href="{:url('Release/test?id='.$releData['id'])}" target="_blank" onclick="windowIframe('测试',$(this).attr('href'),{lg:1});return false;" class="btn btn-default btn-block" style="margin-bottom:10px;">测试发布(需先保存设置)</a>
{/if}
<div class="form-group">
<button type="submit" class="btn btn-primary btn-block">{$Think.lang.save}</button>
</div>
</form>
{if condition="$taskData"}
{include file="task:stepsbar" /}
{/if}
<script type="text/javascript">
var releaseClass=new ReleaseClass('form_rele',{$releData["id"]|intval});
releaseClass.init();
{if condition="!empty($releData)"}
releaseClass.load({$releData|json_encode});
{/if}
</script>
{/block}