| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333 |
- <?php if (!defined('THINK_PATH')) exit(); /*a:3:{s:88:"/home/www/wwwroot/cjq.wngluo.org.cn/vendor/skycaiji/app/admin/view/cpattern/process.html";i:1750210657;s:95:"/home/www/wwwroot/cjq.wngluo.org.cn/vendor/skycaiji/app/admin/view/cpattern/process_module.html";i:1750210657;s:92:"/home/www/wwwroot/cjq.wngluo.org.cn/vendor/skycaiji/app/admin/view/cpattern/rule_module.html";i:1750210657;}*/ ?>
- <div id="window_process">
- <div class="form-group">
- <div class="input-group">
- <span class="input-group-addon">处理方式</span>
- <select name="process[module]" class="form-control">
- <option value="">请选择</option>
- <option value="html"><?php echo \think\Lang::get('process_module_html'); ?></option>
- <option value="substr"><?php echo \think\Lang::get('process_module_substr'); ?></option>
- <option value="extract"><?php echo \think\Lang::get('process_module_extract'); ?></option>
- <option value="insert"><?php echo \think\Lang::get('process_module_insert'); ?></option>
- <option value="replace"><?php echo \think\Lang::get('process_module_replace'); ?></option>
- <option value="batch"><?php echo \think\Lang::get('process_module_batch'); ?></option>
- <option value="tool"><?php echo \think\Lang::get('process_module_tool'); ?></option>
- <option value="download"><?php echo \think\Lang::get('process_module_download'); ?></option>
- <option value="translate"><?php echo \think\Lang::get('process_module_translate'); ?></option>
- <option value="filter"><?php echo \think\Lang::get('process_module_filter'); ?></option>
- <option value="if"><?php echo \think\Lang::get('process_module_if'); ?></option>
- <option value="func"><?php echo \think\Lang::get('process_module_func'); ?></option>
- <option value="api"><?php echo \think\Lang::get('process_module_api'); ?></option>
- <option value="apiapp"><?php echo \think\Lang::get('process_module_apiapp'); ?></option>
- </select>
- <span class="input-group-btn">
- <button class="btn btn-default process-add" type="button">添加</button>
- </span>
- </div>
- </div>
- <!-- 数据处理模块 -->
- <div style="display:none;">
- <div class="c-p-process-module" module="extract">
- <section>
- <div class="form-group" style="margin-bottom:0;">
- <label>提取方式</label>
- <select class="form-control" data-process="extract:extract_module">
- <option value="">请选择</option>
- <option value="rule">规则匹配</option>
- <option value="xpath">xpath匹配</option>
- <option value="json">json提取</option>
- </select>
- <p class="help-block">从当前字段的值中提取出内容</p>
- </div>
- <div class="process-extract-module" style="margin-top:15px;" data-extract-module="rule">
- <?php $_tpl_type = 'rule'; $_tpl_name = 'data-process'; $_tpl_name_pre = 'extract:extract_'; $_tpl_allow_loop = '';
- $_tpl_is_process=($_tpl_name=='data-process')?true:false;
- $_tpl_name_id='c_p_'.str_replace(array('[',']'),'_',$_tpl_name).'_'.str_replace(array('[',']'),'_',$_tpl_name_pre);
- if($_tpl_type=='rule'): ?>
- <div class="form-group">
- <label>规则</label>
- <div class="input-group">
- <textarea <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule'); ?> class="form-control" rows="3" placeholder="<?php echo \think\Lang::get('tips_match'); ?>"></textarea>
- <div class="input-group-addon iga-rt">
- <div style="display:inline;"><a href="javascript:;" title="<?php echo \think\Lang::get('tips_sign_wildcard'); ?>" <?php if($_tpl_is_process): ?>data-rule-sign="sign_wildcard"<?php else: ?>onclick="ruleInsertSign.wildcard('[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule]\']')"<?php endif; ?>><?php echo \think\Lang::get('sign_wildcard'); ?></a></div>
- <div style="display:inline;"><a href="javascript:;" title="<?php echo \think\Lang::get('tips_sign_match'); ?>" <?php if($_tpl_is_process): ?>data-rule-sign="sign_match"<?php else: ?>onclick="ruleInsertSign.match('[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule]\']')"<?php endif; ?>><?php echo cp_sign('match'); ?></a></div>
- <div style="display:inline;"><a href="javascript:;" title="<?php echo \think\Lang::get('tips_sign_group'); ?>" class="blk" <?php if($_tpl_is_process): ?>data-rule-sign="sign_group"<?php else: ?>onclick="ruleInsertSign.match('[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule]\']',{group:1})"<?php endif; ?>>捕获组</a></div>
- <div>
- <span title="<?php echo \think\Lang::get('tips_regular'); ?>">正则</span>
- <a href="javascript:;" title="提示信息" class="glyphicon glyphicon-info-sign icon-info-tips" onclick="ruleInsertSign.tips()"></a>
- </div>
- </div>
- </div>
- <p class="help-block">规则中无<?php echo cp_sign('match'); ?>标签时,自动将完全匹配的值保存为<?php echo cp_sign('match'); ?>标签以供拼接调用</p>
- </div>
- <div class="form-group">
- <label>拼接成最终内容</label>
- <div class="input-group">
- <textarea <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule_merge'); ?> class="form-control" rows="2" placeholder="默认拼接规则中所有<?php echo cp_sign('match'); ?>标签,<?php echo \think\Lang::get('tips_matchn'); ?>"></textarea>
- <div class="input-group-addon iga-rt">
- <a href="javascript:;" title="调用当前规则中的内容标签" <?php if($_tpl_is_process): ?>data-rule-sign="sign_match_n"<?php else: ?>onclick="ruleInsertSign.matchN('[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule]\']','[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule_merge]\']',{def:1})"<?php endif; ?>><?php echo cp_sign('match','N'); ?></a>
- </div>
- </div>
- </div>
- <div class="checkbox"><label><input type="checkbox" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule_multi'); ?> value="1"> 允许匹配多个结果</label></div>
- <div class="<?php if($_tpl_is_process): ?>process-extract-rule-multi-str<?php endif; ?>" style="display:none;" <?php if(!$_tpl_is_process): ?>id="<?php echo $_tpl_name_id; ?>rule_multi_str"<?php endif; ?>>
- <?php if($_tpl_allow_loop): ?>
- <select <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule_multi_type'); ?> class="form-control">
- <option value="">拼接为文本</option>
- <option value="loop">循环入库</option>
- <option value="list">列表数据,处理后拼接为文本</option>
- </select>
- <?php endif; ?>
- <div class="input-group box-rule-multi-str" style="margin-top:10px;">
- <input type="text" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule_multi_str'); ?> class="form-control" placeholder="多个结果之间分隔符" />
- <div class="input-group-addon" style="padding-left:9px;padding-right:9px;"><span title="提示信息" class="glyphicon glyphicon-info-sign icon-info-tips" onclick="ruleInsertSign.cpDelimiterTips()"></span></div>
- </div>
- </div>
- <?php elseif($_tpl_type=='xpath'): ?>
- <div class="form-group">
- <label>规则</label>
- <textarea <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath'); ?> class="form-control" rows="3" placeholder="xpath规则"></textarea>
- </div>
- <div class="form-group">
- <label>属性</label>
- <div class="input-group input-select-custom">
- <div class="input-group-btn">
- <select <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_attr'); ?> class="form-control">
- <option value="">无</option>
- <option value="innerHtml">innerHtml</option>
- <option value="outerHtml">outerHtml</option>
- <option value="text">text</option>
- <option value="value">value</option>
- <option value="id">id</option>
- <option value="class">class</option>
- <option value="name">name</option>
- <option value="href">href</option>
- <option value="src">src</option>
- <option value="style">style</option>
- <option value="width">width</option>
- <option value="height">height</option>
- <option value="alt">alt</option>
- <option value="custom">自定义</option>
- </select>
- </div>
- <input type="text" class="form-control" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_attr_custom'); ?> />
- </div>
- </div>
- <div class="checkbox"><label><input type="checkbox" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_multi'); ?> value="1"> 允许匹配多个结果</label></div>
- <div class="<?php if($_tpl_is_process): ?>process-extract-xpath-multi-str<?php endif; ?>" style="display:none;" <?php if(!$_tpl_is_process): ?>id="<?php echo $_tpl_name_id; ?>xpath_multi_str"<?php endif; ?>>
- <?php if($_tpl_allow_loop): ?>
- <select <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_multi_type'); ?> class="form-control">
- <option value="">拼接为文本</option>
- <option value="loop">循环入库</option>
- <option value="list">列表数据,处理后拼接为文本</option>
- </select>
- <?php endif; ?>
- <div class="input-group box-xpath-multi-str" style="margin-top:10px;">
- <input type="text" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_multi_str'); ?> class="form-control" placeholder="多个结果之间分隔符" />
- <div class="input-group-addon" style="padding-left:9px;padding-right:9px;"><span title="提示信息" class="glyphicon glyphicon-info-sign icon-info-tips" onclick="ruleInsertSign.cpDelimiterTips()"></span></div>
- </div>
- </div>
- <?php elseif($_tpl_type=='json'): ?>
- <div class="form-group">
- <label>提取规则</label>
- <input type="text" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'json'); ?> class="form-control" />
- <p class="help-block">直接输入键名,子节点用:a.b.c,通配符*</p>
- </div>
- <?php if($_tpl_allow_loop): ?>
- <div class="form-group">
- <div class="checkbox"><label><input type="checkbox" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'json_loop'); ?> value="1"> 匹配到多个结果允许循环入库</label></div>
- </div>
- <?php endif; ?>
- <div class="form-group">
- <label>结果是数组则转换为</label>
- <select <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'json_arr'); ?> class="form-control">
- <option value="implode">字符串</option>
- <option value="jsonencode">json编码</option>
- <option value="serialize">序列化</option>
- </select>
- <div class="input-group<?php if($_tpl_is_process): ?> process-extract-json-arr-implode<?php endif; ?>" <?php if(!$_tpl_is_process): ?>id="<?php echo $_tpl_name_id; ?>json_arr_implode"<?php endif; ?> style="margin-top:5px;">
- <textarea <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'json_arr_implode'); ?> class="form-control" rows="1" placeholder="输入分隔符"></textarea>
- <div class="input-group-addon" style="padding-left:9px;padding-right:9px;"><span title="提示信息" class="glyphicon glyphicon-info-sign icon-info-tips" onclick="ruleInsertSign.cpDelimiterTips()"></span></div>
- </div>
- </div>
- <?php endif; ?>
- </div>
- <div class="process-extract-module" style="margin-top:15px;" data-extract-module="xpath">
- <?php $_tpl_type = 'xpath'; $_tpl_name = 'data-process'; $_tpl_name_pre = 'extract:extract_'; $_tpl_allow_loop = '';
- $_tpl_is_process=($_tpl_name=='data-process')?true:false;
- $_tpl_name_id='c_p_'.str_replace(array('[',']'),'_',$_tpl_name).'_'.str_replace(array('[',']'),'_',$_tpl_name_pre);
- if($_tpl_type=='rule'): ?>
- <div class="form-group">
- <label>规则</label>
- <div class="input-group">
- <textarea <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule'); ?> class="form-control" rows="3" placeholder="<?php echo \think\Lang::get('tips_match'); ?>"></textarea>
- <div class="input-group-addon iga-rt">
- <div style="display:inline;"><a href="javascript:;" title="<?php echo \think\Lang::get('tips_sign_wildcard'); ?>" <?php if($_tpl_is_process): ?>data-rule-sign="sign_wildcard"<?php else: ?>onclick="ruleInsertSign.wildcard('[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule]\']')"<?php endif; ?>><?php echo \think\Lang::get('sign_wildcard'); ?></a></div>
- <div style="display:inline;"><a href="javascript:;" title="<?php echo \think\Lang::get('tips_sign_match'); ?>" <?php if($_tpl_is_process): ?>data-rule-sign="sign_match"<?php else: ?>onclick="ruleInsertSign.match('[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule]\']')"<?php endif; ?>><?php echo cp_sign('match'); ?></a></div>
- <div style="display:inline;"><a href="javascript:;" title="<?php echo \think\Lang::get('tips_sign_group'); ?>" class="blk" <?php if($_tpl_is_process): ?>data-rule-sign="sign_group"<?php else: ?>onclick="ruleInsertSign.match('[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule]\']',{group:1})"<?php endif; ?>>捕获组</a></div>
- <div>
- <span title="<?php echo \think\Lang::get('tips_regular'); ?>">正则</span>
- <a href="javascript:;" title="提示信息" class="glyphicon glyphicon-info-sign icon-info-tips" onclick="ruleInsertSign.tips()"></a>
- </div>
- </div>
- </div>
- <p class="help-block">规则中无<?php echo cp_sign('match'); ?>标签时,自动将完全匹配的值保存为<?php echo cp_sign('match'); ?>标签以供拼接调用</p>
- </div>
- <div class="form-group">
- <label>拼接成最终内容</label>
- <div class="input-group">
- <textarea <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule_merge'); ?> class="form-control" rows="2" placeholder="默认拼接规则中所有<?php echo cp_sign('match'); ?>标签,<?php echo \think\Lang::get('tips_matchn'); ?>"></textarea>
- <div class="input-group-addon iga-rt">
- <a href="javascript:;" title="调用当前规则中的内容标签" <?php if($_tpl_is_process): ?>data-rule-sign="sign_match_n"<?php else: ?>onclick="ruleInsertSign.matchN('[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule]\']','[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule_merge]\']',{def:1})"<?php endif; ?>><?php echo cp_sign('match','N'); ?></a>
- </div>
- </div>
- </div>
- <div class="checkbox"><label><input type="checkbox" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule_multi'); ?> value="1"> 允许匹配多个结果</label></div>
- <div class="<?php if($_tpl_is_process): ?>process-extract-rule-multi-str<?php endif; ?>" style="display:none;" <?php if(!$_tpl_is_process): ?>id="<?php echo $_tpl_name_id; ?>rule_multi_str"<?php endif; ?>>
- <?php if($_tpl_allow_loop): ?>
- <select <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule_multi_type'); ?> class="form-control">
- <option value="">拼接为文本</option>
- <option value="loop">循环入库</option>
- <option value="list">列表数据,处理后拼接为文本</option>
- </select>
- <?php endif; ?>
- <div class="input-group box-rule-multi-str" style="margin-top:10px;">
- <input type="text" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule_multi_str'); ?> class="form-control" placeholder="多个结果之间分隔符" />
- <div class="input-group-addon" style="padding-left:9px;padding-right:9px;"><span title="提示信息" class="glyphicon glyphicon-info-sign icon-info-tips" onclick="ruleInsertSign.cpDelimiterTips()"></span></div>
- </div>
- </div>
- <?php elseif($_tpl_type=='xpath'): ?>
- <div class="form-group">
- <label>规则</label>
- <textarea <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath'); ?> class="form-control" rows="3" placeholder="xpath规则"></textarea>
- </div>
- <div class="form-group">
- <label>属性</label>
- <div class="input-group input-select-custom">
- <div class="input-group-btn">
- <select <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_attr'); ?> class="form-control">
- <option value="">无</option>
- <option value="innerHtml">innerHtml</option>
- <option value="outerHtml">outerHtml</option>
- <option value="text">text</option>
- <option value="value">value</option>
- <option value="id">id</option>
- <option value="class">class</option>
- <option value="name">name</option>
- <option value="href">href</option>
- <option value="src">src</option>
- <option value="style">style</option>
- <option value="width">width</option>
- <option value="height">height</option>
- <option value="alt">alt</option>
- <option value="custom">自定义</option>
- </select>
- </div>
- <input type="text" class="form-control" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_attr_custom'); ?> />
- </div>
- </div>
- <div class="checkbox"><label><input type="checkbox" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_multi'); ?> value="1"> 允许匹配多个结果</label></div>
- <div class="<?php if($_tpl_is_process): ?>process-extract-xpath-multi-str<?php endif; ?>" style="display:none;" <?php if(!$_tpl_is_process): ?>id="<?php echo $_tpl_name_id; ?>xpath_multi_str"<?php endif; ?>>
- <?php if($_tpl_allow_loop): ?>
- <select <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_multi_type'); ?> class="form-control">
- <option value="">拼接为文本</option>
- <option value="loop">循环入库</option>
- <option value="list">列表数据,处理后拼接为文本</option>
- </select>
- <?php endif; ?>
- <div class="input-group box-xpath-multi-str" style="margin-top:10px;">
- <input type="text" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_multi_str'); ?> class="form-control" placeholder="多个结果之间分隔符" />
- <div class="input-group-addon" style="padding-left:9px;padding-right:9px;"><span title="提示信息" class="glyphicon glyphicon-info-sign icon-info-tips" onclick="ruleInsertSign.cpDelimiterTips()"></span></div>
- </div>
- </div>
- <?php elseif($_tpl_type=='json'): ?>
- <div class="form-group">
- <label>提取规则</label>
- <input type="text" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'json'); ?> class="form-control" />
- <p class="help-block">直接输入键名,子节点用:a.b.c,通配符*</p>
- </div>
- <?php if($_tpl_allow_loop): ?>
- <div class="form-group">
- <div class="checkbox"><label><input type="checkbox" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'json_loop'); ?> value="1"> 匹配到多个结果允许循环入库</label></div>
- </div>
- <?php endif; ?>
- <div class="form-group">
- <label>结果是数组则转换为</label>
- <select <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'json_arr'); ?> class="form-control">
- <option value="implode">字符串</option>
- <option value="jsonencode">json编码</option>
- <option value="serialize">序列化</option>
- </select>
- <div class="input-group<?php if($_tpl_is_process): ?> process-extract-json-arr-implode<?php endif; ?>" <?php if(!$_tpl_is_process): ?>id="<?php echo $_tpl_name_id; ?>json_arr_implode"<?php endif; ?> style="margin-top:5px;">
- <textarea <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'json_arr_implode'); ?> class="form-control" rows="1" placeholder="输入分隔符"></textarea>
- <div class="input-group-addon" style="padding-left:9px;padding-right:9px;"><span title="提示信息" class="glyphicon glyphicon-info-sign icon-info-tips" onclick="ruleInsertSign.cpDelimiterTips()"></span></div>
- </div>
- </div>
- <?php endif; ?>
- </div>
- <div class="process-extract-module" style="margin-top:15px;" data-extract-module="json">
- <?php $_tpl_type = 'json'; $_tpl_name = 'data-process'; $_tpl_name_pre = 'extract:extract_'; $_tpl_allow_loop = '';
- $_tpl_is_process=($_tpl_name=='data-process')?true:false;
- $_tpl_name_id='c_p_'.str_replace(array('[',']'),'_',$_tpl_name).'_'.str_replace(array('[',']'),'_',$_tpl_name_pre);
- if($_tpl_type=='rule'): ?>
- <div class="form-group">
- <label>规则</label>
- <div class="input-group">
- <textarea <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule'); ?> class="form-control" rows="3" placeholder="<?php echo \think\Lang::get('tips_match'); ?>"></textarea>
- <div class="input-group-addon iga-rt">
- <div style="display:inline;"><a href="javascript:;" title="<?php echo \think\Lang::get('tips_sign_wildcard'); ?>" <?php if($_tpl_is_process): ?>data-rule-sign="sign_wildcard"<?php else: ?>onclick="ruleInsertSign.wildcard('[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule]\']')"<?php endif; ?>><?php echo \think\Lang::get('sign_wildcard'); ?></a></div>
- <div style="display:inline;"><a href="javascript:;" title="<?php echo \think\Lang::get('tips_sign_match'); ?>" <?php if($_tpl_is_process): ?>data-rule-sign="sign_match"<?php else: ?>onclick="ruleInsertSign.match('[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule]\']')"<?php endif; ?>><?php echo cp_sign('match'); ?></a></div>
- <div style="display:inline;"><a href="javascript:;" title="<?php echo \think\Lang::get('tips_sign_group'); ?>" class="blk" <?php if($_tpl_is_process): ?>data-rule-sign="sign_group"<?php else: ?>onclick="ruleInsertSign.match('[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule]\']',{group:1})"<?php endif; ?>>捕获组</a></div>
- <div>
- <span title="<?php echo \think\Lang::get('tips_regular'); ?>">正则</span>
- <a href="javascript:;" title="提示信息" class="glyphicon glyphicon-info-sign icon-info-tips" onclick="ruleInsertSign.tips()"></a>
- </div>
- </div>
- </div>
- <p class="help-block">规则中无<?php echo cp_sign('match'); ?>标签时,自动将完全匹配的值保存为<?php echo cp_sign('match'); ?>标签以供拼接调用</p>
- </div>
- <div class="form-group">
- <label>拼接成最终内容</label>
- <div class="input-group">
- <textarea <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule_merge'); ?> class="form-control" rows="2" placeholder="默认拼接规则中所有<?php echo cp_sign('match'); ?>标签,<?php echo \think\Lang::get('tips_matchn'); ?>"></textarea>
- <div class="input-group-addon iga-rt">
- <a href="javascript:;" title="调用当前规则中的内容标签" <?php if($_tpl_is_process): ?>data-rule-sign="sign_match_n"<?php else: ?>onclick="ruleInsertSign.matchN('[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule]\']','[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule_merge]\']',{def:1})"<?php endif; ?>><?php echo cp_sign('match','N'); ?></a>
- </div>
- </div>
- </div>
- <div class="checkbox"><label><input type="checkbox" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule_multi'); ?> value="1"> 允许匹配多个结果</label></div>
- <div class="<?php if($_tpl_is_process): ?>process-extract-rule-multi-str<?php endif; ?>" style="display:none;" <?php if(!$_tpl_is_process): ?>id="<?php echo $_tpl_name_id; ?>rule_multi_str"<?php endif; ?>>
- <?php if($_tpl_allow_loop): ?>
- <select <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule_multi_type'); ?> class="form-control">
- <option value="">拼接为文本</option>
- <option value="loop">循环入库</option>
- <option value="list">列表数据,处理后拼接为文本</option>
- </select>
- <?php endif; ?>
- <div class="input-group box-rule-multi-str" style="margin-top:10px;">
- <input type="text" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule_multi_str'); ?> class="form-control" placeholder="多个结果之间分隔符" />
- <div class="input-group-addon" style="padding-left:9px;padding-right:9px;"><span title="提示信息" class="glyphicon glyphicon-info-sign icon-info-tips" onclick="ruleInsertSign.cpDelimiterTips()"></span></div>
- </div>
- </div>
- <?php elseif($_tpl_type=='xpath'): ?>
- <div class="form-group">
- <label>规则</label>
- <textarea <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath'); ?> class="form-control" rows="3" placeholder="xpath规则"></textarea>
- </div>
- <div class="form-group">
- <label>属性</label>
- <div class="input-group input-select-custom">
- <div class="input-group-btn">
- <select <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_attr'); ?> class="form-control">
- <option value="">无</option>
- <option value="innerHtml">innerHtml</option>
- <option value="outerHtml">outerHtml</option>
- <option value="text">text</option>
- <option value="value">value</option>
- <option value="id">id</option>
- <option value="class">class</option>
- <option value="name">name</option>
- <option value="href">href</option>
- <option value="src">src</option>
- <option value="style">style</option>
- <option value="width">width</option>
- <option value="height">height</option>
- <option value="alt">alt</option>
- <option value="custom">自定义</option>
- </select>
- </div>
- <input type="text" class="form-control" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_attr_custom'); ?> />
- </div>
- </div>
- <div class="checkbox"><label><input type="checkbox" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_multi'); ?> value="1"> 允许匹配多个结果</label></div>
- <div class="<?php if($_tpl_is_process): ?>process-extract-xpath-multi-str<?php endif; ?>" style="display:none;" <?php if(!$_tpl_is_process): ?>id="<?php echo $_tpl_name_id; ?>xpath_multi_str"<?php endif; ?>>
- <?php if($_tpl_allow_loop): ?>
- <select <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_multi_type'); ?> class="form-control">
- <option value="">拼接为文本</option>
- <option value="loop">循环入库</option>
- <option value="list">列表数据,处理后拼接为文本</option>
- </select>
- <?php endif; ?>
- <div class="input-group box-xpath-multi-str" style="margin-top:10px;">
- <input type="text" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_multi_str'); ?> class="form-control" placeholder="多个结果之间分隔符" />
- <div class="input-group-addon" style="padding-left:9px;padding-right:9px;"><span title="提示信息" class="glyphicon glyphicon-info-sign icon-info-tips" onclick="ruleInsertSign.cpDelimiterTips()"></span></div>
- </div>
- </div>
- <?php elseif($_tpl_type=='json'): ?>
- <div class="form-group">
- <label>提取规则</label>
- <input type="text" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'json'); ?> class="form-control" />
- <p class="help-block">直接输入键名,子节点用:a.b.c,通配符*</p>
- </div>
- <?php if($_tpl_allow_loop): ?>
- <div class="form-group">
- <div class="checkbox"><label><input type="checkbox" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'json_loop'); ?> value="1"> 匹配到多个结果允许循环入库</label></div>
- </div>
- <?php endif; ?>
- <div class="form-group">
- <label>结果是数组则转换为</label>
- <select <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'json_arr'); ?> class="form-control">
- <option value="implode">字符串</option>
- <option value="jsonencode">json编码</option>
- <option value="serialize">序列化</option>
- </select>
- <div class="input-group<?php if($_tpl_is_process): ?> process-extract-json-arr-implode<?php endif; ?>" <?php if(!$_tpl_is_process): ?>id="<?php echo $_tpl_name_id; ?>json_arr_implode"<?php endif; ?> style="margin-top:5px;">
- <textarea <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'json_arr_implode'); ?> class="form-control" rows="1" placeholder="输入分隔符"></textarea>
- <div class="input-group-addon" style="padding-left:9px;padding-right:9px;"><span title="提示信息" class="glyphicon glyphicon-info-sign icon-info-tips" onclick="ruleInsertSign.cpDelimiterTips()"></span></div>
- </div>
- </div>
- <?php endif; ?>
- </div>
- </section>
- </div>
- <div class="c-p-process-module" module="html">
- <section>
- <ul class="nav nav-tabs">
- <li class="active"><a href="#p_m_html_allow" data-toggle="tab">保留标签</a></li>
- <li><a href="#p_m_html_filter" data-toggle="tab">过滤标签</a></li>
- </ul>
- <div class="tab-content" style="padding-top:10px;">
- <div class="tab-pane fade in active" id="p_m_html_allow">
- <div class="form-group">
- <input type="text" data-process="html:html_allow" class="form-control" value="p,br,img" />
- <div class="p-m-html-tags" module-html="html_allow">
- <a href="javascript:;" data-val="img"><span>img</span>图片</a>
- <a href="javascript:;" data-val="a"><span>a</span>超链接</a>
- <a href="javascript:;" data-val="p"><span>p</span>段落</a>
- <a href="javascript:;" data-val="br"><span>br</span>换行</a>
- </div>
- </div>
- </div>
- <div class="tab-pane fade" id="p_m_html_filter">
- <div class="form-group">
- <input type="text" data-process="html:html_filter" class="form-control" value="" />
- <div class="p-m-html-tags" module-html="html_filter">
- <a href="javascript:;" data-val="all"><span>all</span>全部标签</a>
- <a href="javascript:;" data-val="a"><span>a</span>超链接</a>
- <a href="javascript:;" data-val="img"><span>img</span>图片</a>
- <a href="javascript:;" data-val="div"><span>div</span>层</a>
- <a href="javascript:;" data-val="p"><span>p</span>段落</a>
- <a href="javascript:;" data-val="br"><span>br</span>换行</a>
- <a href="javascript:;" data-val="form"><span>form</span>表单</a>
- <a href="javascript:;" data-val="iframe"><span>iframe</span>框架</a>
- <a href="javascript:;" data-val="object"><span>object</span>对象</a>
- <a href="javascript:;" data-val="script"><span>script</span>脚本</a>
- <a href="javascript:;" data-val="style"><span>style</span>样式</a>
- <a href="javascript:;" data-val="link"><span>link</span>外部样式</a>
- </div>
- </div>
- </div>
- </div>
- <p class="help-block">其它标签可直接输入,用空格或逗号分隔</p>
- </section>
- </div>
- <div class="c-p-process-module" module="insert">
- <section>
- <div class="form-group">
- <label>位置</label>
- <select data-process="insert:insert_loc" class="form-control">
- <option value="head">开头</option>
- <option value="" selected="selected">结尾</option>
- <option value="rand">随机</option>
- </select>
- <p class="help-block" style="display:none;">随机在换行(<p> <br>)标签中插入内容,没有换行标签则在开头、结尾中随机插入</p>
- </div>
- <div class="form-group">
- <label>内容</label>
- <textarea data-process="insert:insert_txt" rows="3" class="form-control"></textarea>
- <p class="help-block">可输入任何内容或 <select class="p-m-insert-field"><option value="">插入字段</option></select></p>
- </div>
- </section>
- </div>
- <div class="c-p-process-module" module="replace">
- <div class="input-group">
- <textarea data-process="replace:replace_from" rows="3" class="form-control"></textarea>
- <div class="input-group-addon iga-rt">
- <a href="javascript:;" title="<?php echo \think\Lang::get('tips_sign_wildcard'); ?>" class="blk c-p-process-sign-wildcard"><?php echo \think\Lang::get('sign_wildcard'); ?></a>
- <span title="<?php echo \think\Lang::get('tips_regular'); ?>" class="blk">正则</span>
- <a href="javascript:;" title="提示信息" class="glyphicon glyphicon-info-sign icon-info-tips" onclick="ruleInsertSign.tool_tips()"></a>
- </div>
- </div>
- <p style="margin:5px 0;">替换成</p>
- <div class="form-group">
- <textarea data-process="replace:replace_to" rows="3" class="form-control"></textarea>
- <p class="help-block">可使用<b>$数字</b>调用正则捕获组(不包括通配符)的内容</p>
- </div>
- </div>
- <div class="c-p-process-module" module="filter">
- <div class="form-group">
- <label>一行一个关键词</label>
- <textarea data-process="filter:filter_list" rows="3" class="form-control"></textarea>
- </div>
- <div class="form-group">
- <div class="radio"><label><input type="radio" data-process="filter:filter_pass" value="" /> 关键词替换成</label></div>
- <input type="text" data-process="filter:filter_replace" class="form-control" value="" />
- </div>
- <div class="radio"><label><input type="radio" data-process="filter:filter_pass" value="1" /> 检测到关键词将该字段值设为空</label></div>
- <div class="radio"><label><input type="radio" data-process="filter:filter_pass" value="2" /> 检测到关键词不采集该条数据</label></div>
- <div class="radio"><label><input type="radio" data-process="filter:filter_pass" value="3" /> 未检测到关键词将该字段值设为空</label></div>
- <div class="radio"><label><input type="radio" data-process="filter:filter_pass" value="4" /> 未检测到关键词不采集该条数据</label></div>
- <p class="help-block">检测到关键词:包含任意一个关键词即可触发<br>未检测到关键词:所有关键词都不包含才触发,只要包含任意一个关键词就不会触发</p>
- </div>
- <div class="c-p-process-module" module="if">
- <section>
- <div class="form-group">
- <div class="input-group">
- <span class="input-group-addon">判断</span>
- <select data-process="if:if_type" class="form-control">
- <option value="1"><?php echo \think\Lang::get('p_m_if_1'); ?>(<?php echo \think\Lang::get('p_m_if_4'); ?>)</option>
- <option value="2"><?php echo \think\Lang::get('p_m_if_2'); ?>(<?php echo \think\Lang::get('p_m_if_3'); ?>)</option>
- <option value="3"><?php echo \think\Lang::get('p_m_if_3'); ?>(<?php echo \think\Lang::get('p_m_if_2'); ?>)</option>
- <option value="4"><?php echo \think\Lang::get('p_m_if_4'); ?>(<?php echo \think\Lang::get('p_m_if_1'); ?>)</option>
- </select>
- <span class="input-group-addon brl_0 brr_0">中断</span>
- <select data-process="if:if_stop" class="form-control">
- <option value="">遇到中断不采集该条数据</option>
- <option value="collect">遇到中断仍采集但跳出处理</option>
- </select>
- </div>
- </div>
-
- <div class="form-group">
- <div class="table-responsive">
- <table class="table table-bordered table-hover p-m-if-table" style="margin-bottom:0;">
- <thead>
- <tr>
- <th style="width:95px;">逻辑 <a href="javascript:;" class="glyphicon glyphicon-info-sign icon-info-tips p-m-if-info"></a></th>
- <th style="width:150px;">条件</th>
- <th>值</th>
- <th style="width:70px;">操作 <a href="javascript:;" class="glyphicon glyphicon-plus p-m-if-add" title="添加"></a></th>
- </tr>
- </thead>
- <tbody>
- <tr class="p-m-if-table-tpl" style="display:none;">
- <td>
- <select data-process="if:if_logic:" class="form-control">
- <option value="and">并且</option>
- <option value="or">或者</option>
- </select>
- </td>
- <td>
- <select data-process="if:if_cond:" class="form-control">
- <option value="has"><?php echo \think\Lang::get('p_m_if_c_has'); ?></option>
- <option value="nhas"><?php echo \think\Lang::get('p_m_if_c_nhas'); ?></option>
- <option value="eq"><?php echo \think\Lang::get('p_m_if_c_eq'); ?></option>
- <option value="neq"><?php echo \think\Lang::get('p_m_if_c_neq'); ?></option>
- <option value="heq"><?php echo \think\Lang::get('p_m_if_c_heq'); ?></option>
- <option value="nheq"><?php echo \think\Lang::get('p_m_if_c_nheq'); ?></option>
- <option value="gt"><?php echo \think\Lang::get('p_m_if_c_gt'); ?></option>
- <option value="egt"><?php echo \think\Lang::get('p_m_if_c_egt'); ?></option>
- <option value="lt"><?php echo \think\Lang::get('p_m_if_c_lt'); ?></option>
- <option value="elt"><?php echo \think\Lang::get('p_m_if_c_elt'); ?></option>
- <option value="time_eq"><?php echo \think\Lang::get('p_m_if_c_time_eq'); ?></option>
- <option value="time_egt"><?php echo \think\Lang::get('p_m_if_c_time_egt'); ?></option>
- <option value="time_elt"><?php echo \think\Lang::get('p_m_if_c_time_elt'); ?></option>
- <option value="regexp"><?php echo \think\Lang::get('p_m_if_c_regexp'); ?></option>
- <option value="func"><?php echo \think\Lang::get('p_m_if_c_func'); ?></option>
- </select>
- </td>
- <td class="p-m-if-val">
- <div class="p-m-if-val-def">
- <input type="text" data-process="if:if_val:" class="form-control p-m-if-val-ele" />
- </div>
- <div class="p-m-if-val-time input-group" style="display:none;">
- <input type="text" class="form-control p-m-if-val-ele" />
- <div class="input-group-addon" style="padding:0;">
- <div class="form-control-slt p-m-if-val-time-date">
- <select class="form-control">
- <option value="">选择时间</option>
- <option value="now">当前时间</option>
- <option value="today">今天</option>
- <option value="today +1 day">明天</option>
- <option value="today +2 day">后天</option>
- <option value="today -1 day">昨天</option>
- <option value="today -2 day">前天</option>
- <option value="-1 monday">本周一</option>
- <option value="sunday">本周日</option>
- <option value="today -1 week">上周今天</option>
- <option value="-2 monday">上周一</option>
- <option value="-1 sunday">上周日</option>
- <option value="today +1 week">下周今天</option>
- <option value="+1 monday">下周一</option>
- <option value="+2 sunday">下周日</option>
- <option value="today -1 month">上月今天</option>
- <option value="first day of today -1 month">上月第一天</option>
- <option value="last day of today -1 month">上月最后一天</option>
- <option value="today +1 month">下月今天</option>
- <option value="first day of today +1 month">下月第一天</option>
- <option value="last day of today +1 month">下月最后一天</option>
- </select>
- </div>
- </div>
- </div>
- <div class="p-m-if-val-func" style="display:none;">
- <div class="input-group" style="margin-bottom:-1px;">
- <select data-process="if:if_addon:func:" class="form-control">
- <option value="">--选择函数--</option>
- <optgroup label="系统函数">
- <?php foreach(\think\Config::get('allow_process_if') as $k=>$v): ?>
- <option value="<?php echo $k; ?>"><?php echo $k; ?>:<?php echo $v; ?></option>
- <?php endforeach; if(is_array(\think\Config::get('EXTEND_PROCESS_IF'))): foreach(\think\Config::get('EXTEND_PROCESS_IF') as $k=>$v): ?>
- <option value="<?php echo $k; ?>"><?php echo $k; ?>:<?php echo $v; ?></option>
- <?php endforeach; endif; ?>
- </optgroup>
- </select>
- <div class="input-group-btn">
- <select data-process="if:if_addon:turn:" class="form-control">
- <option value="">正常</option>
- <option value="1">取反</option>
- </select>
- </div>
- <div class="input-group-addon" style="padding:0;min-width:31px;width:31px;border-left:0;">
- <a href="javascript:;" class="fa fa-refresh icon-info-tips plugin-func-refresh" title="刷新"></a>
- </div>
- <div class="input-group-addon" style="padding:0;min-width:31px;width:31px;">
- <a href="javascript:;" class="glyphicon glyphicon-info-sign icon-info-tips p-m-if-val-func-info"></a>
- </div>
- </div>
- <div class="input-group">
- <textarea rows="2" data-placeholder="默认传入当前字段" class="form-control p-m-if-val-ele"></textarea>
- <div class="input-group-addon" style="padding:0;">
- <div class="form-control-slt p-m-if-val-func-field">
- <select class="form-control">
- </select>
- </div>
- </div>
- </div>
- </div>
- </td>
- <td class="p-m-if-op">
- <a href="javascript:;" class="glyphicon icon-drag-move"></a>
- <a href="javascript:;" class="glyphicon glyphicon-remove p-m-if-del"></a>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </section>
- </div>
- <div class="c-p-process-module" module="translate">
- <?php if(!empty($transUrl)): ?>
- <a href="<?php echo $transUrl; ?>" target="_blank">请先开启并配置翻译</a>
- <?php endif; ?>
- <div<?php if(!empty($transUrl)): ?> style="display:none;"<?php endif; ?>>
- <div class="form-group">
- <label>源语言</label>
- <div class="input-group input-select-custom">
- <div class="input-group-btn">
- <select data-process="translate:translate_from" class="form-control">
- <option value="">--请选择--</option>
- <option value="auto">自动检测</option>
- <?php foreach($transApiLangs as $k=>$v): ?>
- <option value="<?php echo $k; ?>"><?php echo $v; ?></option>
- <?php endforeach; ?>
- <option value="custom">自定义</option>
- </select>
- </div>
- <input type="text" data-process="translate:translate_from_custom" class="form-control" placeholder="请输入语言代码">
- </div>
- </div>
- <div class="form-group">
- <label>目标语言</label>
- <div class="input-group input-select-custom">
- <div class="input-group-btn">
- <select data-process="translate:translate_to" class="form-control">
- <option value="">--请选择--</option>
- <?php foreach($transApiLangs as $k=>$v): ?>
- <option value="<?php echo $k; ?>"><?php echo $v; ?></option>
- <?php endforeach; ?>
- <option value="custom">自定义</option>
- </select>
- </div>
- <input type="text" data-process="translate:translate_to_custom" class="form-control" placeholder="请输入语言代码">
- </div>
- </div>
- </div>
- </div>
- <div class="c-p-process-module" module="tool">
- <div class="checkbox">
- <label><input type="checkbox" data-process="tool:tool_list" value="trim" />去除前后空格</label>
- <label><input type="checkbox" data-process="tool:tool_list" value="format" />清除文本格式(去除html元素所有样式,如:id、class、style等)</label>
- <label><input type="checkbox" data-process="tool:tool_list" value="url_not_complete" />禁止补全网址</label>
- <label title="将网址替换成重定向后的真实地址"><input type="checkbox" data-process="tool:tool_list" value="url_real" />网址真实地址</label>
- <label title="从html中提取出音视频网址,建议字段的值是渲染后的html"><input type="checkbox" data-process="tool:tool_list" value="vedio_url" />提取音视频网址</label>
- <label title="将文本中的网址补齐为<img src="网址">"><input type="checkbox" data-process="tool:tool_list" value="img_tag" />补齐为<img>标签</label>
- </div>
- </div>
- <div class="c-p-process-module" module="download">
- <section>
- <div class="form-group">
- <label>操作</label>
- <select data-process="download:download_op" class="form-control">
- <option value="">--选择操作--</option>
- <option value="is_img">将文本链接标记为图片</option>
- <option value="is_file">将文本链接标记为文件</option>
- <option value="no_img">不下载图片</option>
- <option value="file">下载文件</option>
- </select>
- <div class="p-m-download-op" data-op="is_img">
- <?php if(!empty($downImgUrl)): ?>
- <a href="<?php echo $downImgUrl; ?>" target="_blank">请先开启并配置图片本地化</a>
- <?php endif; ?>
- <p class="help-block">如果字段的值是完整的url链接,标记为图片后可将其本地化</p>
- </div>
- <div class="p-m-download-op" data-op="is_file">
- <?php if(!empty($downFileUrl)): ?>
- <a href="<?php echo $downFileUrl; ?>" target="_blank">请先开启并配置文件本地化</a>
- <?php endif; ?>
- <p class="help-block">如果字段的值是完整的url链接,标记为文件后可将其本地化</p>
- </div>
- <div class="p-m-download-op" data-op="no_img">
- <?php if(!empty($downImgUrl)): ?>
- <a href="<?php echo $downImgUrl; ?>" target="_blank">请先开启并配置图片本地化</a>
- <?php endif; ?>
- <p class="help-block">默认自动下载<img>标签中的图片,该选项可不下载图片</p>
- </div>
- <div class="p-m-download-op" data-op="file">
- <?php if(!empty($downFileUrl)): ?>
- <a href="<?php echo $downFileUrl; ?>" target="_blank">请先开启并配置文件本地化</a>
- <?php endif; ?>
- <div class="form-group p-m-download-file-tag"<?php if(!empty($downFileUrl)): ?> style="display:none;"<?php endif; ?>>
- <label>下载标签属性中的文件</label>
- <input type="text" data-process="download:download_file_tag" class="form-control" placeholder="" autocomplete="off" />
- <div class="help-block">
- <div class="dropdown" style="display:inline;">
- <a class="dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
- 填入html标签及属性
- <span class="caret"></span>
- </a>
- <ul class="dropdown-menu">
- <li><a href="javascript:;" data-val="object:data">object标签data属性</a></li>
- <li><a href="javascript:;" data-val="embed:src">embed标签src属性</a></li>
- <li><a href="javascript:;" data-val="source:src">source标签src属性</a></li>
- <li><a href="javascript:;" data-val="link:href">link标签href属性</a></li>
- <li><a href="javascript:;" data-val="script:src">script标签src属性</a></li>
- <li><a href="javascript:;" data-val="a:href">a标签href属性</a></li>
- </ul>
- </div>
- 或直接输入<b>标签名:属性名</b>(多个用逗号分隔)可实现自动下载相应标签属性中的文件
- </div>
- <div class="form-group">
- <label>文件网址过滤</label>
- <div class="input-group" style="margin-bottom:7px;">
- <span class="input-group-addon">必须包含</span>
- <input type="text" data-process="download:download_file_must" class="form-control" placeholder="选填,可模糊匹配" autocomplete="off" />
- <div class="input-group-addon iga-rt">
- <a href="javascript:;" title="<?php echo \think\Lang::get('tips_sign_wildcard'); ?>" class="c-p-process-sign-wildcard"><?php echo \think\Lang::get('sign_wildcard'); ?></a>
- <span title="<?php echo \think\Lang::get('tips_regular'); ?>">正则</span>
- </div>
- </div>
- <div class="input-group">
- <span class="input-group-addon">不能包含</span>
- <input type="text" data-process="download:download_file_ban" class="form-control" placeholder="选填,可模糊匹配" autocomplete="off" />
- <div class="input-group-addon iga-rt">
- <a href="javascript:;" title="<?php echo \think\Lang::get('tips_sign_wildcard'); ?>" class="c-p-process-sign-wildcard"><?php echo \think\Lang::get('sign_wildcard'); ?></a>
- <span title="<?php echo \think\Lang::get('tips_regular'); ?>">正则</span>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </section>
- </div>
- <div class="c-p-process-module" module="batch">
- <div class="form-group">
- <label>批量替换</label>
- <textarea data-process="batch:batch_list" rows="5" class="form-control"></textarea>
- <p class="help-block">一行一对替换词,用“=”分隔,例如:aa=bb,即将“aa”替换成“bb”</p>
- </div>
- <div class="form-group">
- <label>替换词分隔符</label>
- <input type="text" data-process="batch:batch_sign" class="form-control" placeholder="默认=" />
- </div>
- </div>
- <div class="c-p-process-module" module="substr">
- <div class="form-group">
- <label>截取长度</label>
- <input type="number" data-process="substr:substr_len" class="form-control" />
- </div>
- <div class="form-group">
- <label>结尾字符</label>
- <input type="text" data-process="substr:substr_end" class="form-control" />
- </div>
- </div>
- <div class="c-p-process-module" module="func">
- <section>
- <div class="form-group">
- <label>PHP函数名</label>
- <a href="javascript:;" class="fa fa-refresh plugin-func-refresh" title="刷新"></a>
- <select data-process="func:func_name" class="form-control">
- <option value="">--请选择--</option>
- <optgroup label="系统函数">
- <?php foreach(\think\Config::get('allow_process_func') as $k=>$v): ?>
- <option value="<?php echo $k; ?>"><?php echo $k; ?>:<?php echo $v; ?></option>
- <?php endforeach; if(is_array(\think\Config::get('EXTEND_PROCESS_FUNC'))): foreach(\think\Config::get('EXTEND_PROCESS_FUNC') as $k=>$v): ?>
- <option value="<?php echo $k; ?>"><?php echo $k; ?>:<?php echo $v; ?></option>
- <?php endforeach; endif; ?>
- </optgroup>
- </select>
- </div>
- <div class="form-group">
- <label>传入参数</label>
- <textarea data-process="func:func_param" rows="2" class="form-control" data-placeholder="默认传入当前字段"></textarea>
- <div class="help-block">
- 一行一个值, 可输入任何内容或<select class="p-m-func-field"><option value="">插入字段</option></select>
- 请按函数传参, 否则运行出错!<a href="javascript:;" onclick="pluginFuncOp.tips('process')">扩展函数</a>
- </div>
- </div>
- </section>
- </div>
- <div class="c-p-process-module" module="api">
- <section>
- <div class="form-group">
- <label>接口地址</label>
- <div class="input-group">
- <input type="text" data-process="api:api_url" class="form-control" />
- <div class="input-group-addon" style="padding:0;">
- <div class="form-control-slt p-m-api-url-field">
- <select class="form-control">
- </select>
- </div>
- </div>
- </div>
- <p class="help-block">以/开头自动补全为<?php echo config('root_website'); ?>/</p>
- </div>
- <div class="form-group">
- <label>网页编码</label>
- <div class="input-group input-select-custom">
- <div class="input-group-btn">
- <select data-process="api:api_charset" class="form-control">
- <option value="">utf-8</option>
- <option value="gbk">gbk</option>
- <option value="gb2312">gb2312</option>
- <option value="custom">自定义</option>
- </select>
- </div>
- <input type="text" class="form-control" data-process="api:api_charset_custom">
- </div>
- </div>
- <div class="form-group">
- <label>内容解压缩</label>
- <div class="input-group input-select-custom">
- <div class="input-group-btn">
- <select data-process="api:api_encode" class="form-control">
- <option value="">系统默认</option>
- <option value="gzip">gzip</option>
- <option value="br">br</option>
- <option value="compress">compress</option>
- <option value="deflate">deflate</option>
- <option value="identity">identity</option>
- <option value="custom">自定义</option>
- </select>
- </div>
- <input type="text" class="form-control" data-process="api:api_encode_custom">
- </div>
- </div>
- <div class="form-group">
- <label>请求方式</label>
- <select data-process="api:api_type" class="form-control">
- <option value="">GET</option>
- <option value="post">POST</option>
- </select>
- </div>
- <div class="form-group p-m-api-content-type" style="display:none;">
- <label>POST数据类型 <a href="javascript:;" class="glyphicon glyphicon-info-sign icon-info-tips" onclick="globalOp.tipsCurlPost()"></a></label>
- <select data-process="api:api_content_type" class="form-control">
- <option value="">默认表单数据:application/x-www-form-urlencoded</option>
- <option value="application/json">JSON数组:application/json</option>
- <option value="multipart/form-data">表单上传:multipart/form-data</option>
- </select>
- </div>
- <div class="form-group">
- <label>发送数据</label>
- <a href="javascript:;" class="glyphicon glyphicon-plus p-m-api-add" title="添加"></a>
- <div class="table-responsive p-m-api-table">
- <table class="table table-bordered table-hover">
- <thead>
- <tr>
- <td>名称</td>
- <td>值</td>
- <td>删除</td>
- </tr>
- </thead>
- <tbody>
- <tr class="p-m-api-table-tpl" style="display:none;">
- <td>
- <input type="text" data-process="api:api_params:name:" class="form-control">
- </td>
- <td>
- <div class="input-group">
- <div class="input-group-btn">
- <select data-process="api:api_params:val:" class="form-control" style="min-width:110px;">
- <option value="">空</option>
- <option value="field">当前字段</option>
- <option value="timestamp">当前时间戳</option>
- <option value="time">当前日期</option>
- <option value="custom">自定义</option>
- </select>
- </div>
- <input type="text" data-process="api:api_params:addon:" class="form-control" style="display:none;">
- <div class="input-group-addon p-m-api-val-field">
- <div class="form-control-slt">
- <select class="form-control">
- </select>
- </div>
- </div>
- </div>
- </td>
- <td>
- <a href="javascript:;" class="glyphicon glyphicon-remove p-m-api-del" style="margin-top:8px;"></a>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- <div class="form-group">
- <label>请求头信息</label>
- <a href="javascript:;" class="glyphicon glyphicon-plus p-m-api-header-add" title="添加"></a>
- <div class="table-responsive p-m-api-header-table">
- <table class="table table-bordered table-hover">
- <thead>
- <tr>
- <td>名称</td>
- <td>值</td>
- <td>删除</td>
- </tr>
- </thead>
- <tbody>
- <tr class="p-m-api-header-table-tpl" style="display:none;">
- <td>
- <input type="text" data-process="api:api_headers:name:" class="form-control">
- </td>
- <td>
- <div class="input-group">
- <div class="input-group-btn">
- <select data-process="api:api_headers:val:" class="form-control" style="min-width:110px;">
- <option value="">空</option>
- <option value="field">当前字段</option>
- <option value="timestamp">当前时间戳</option>
- <option value="time">当前日期</option>
- <option value="custom">自定义</option>
- </select>
- </div>
- <input type="text" data-process="api:api_headers:addon:" class="form-control" style="display:none;">
- <div class="input-group-addon p-m-api-header-field">
- <div class="form-control-slt">
- <select class="form-control">
- </select>
- </div>
- </div>
- </div>
- </td>
- <td>
- <a href="javascript:;" class="glyphicon glyphicon-remove p-m-api-header-del" style="margin-top:8px;"></a>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- <div class="form-group">
- <label>调用间隔(毫秒,1000毫秒=1秒)</label>
- <input type="number" data-process="api:api_interval" class="form-control" placeholder="默认0" />
- <p class="help-block">如接口有频率限制,可设置间隔时间避免调用过快导致失败</p>
- </div>
- <div class="form-group">
- <label>失败等待(秒)</label>
- <input type="number" data-process="api:api_wait" class="form-control" placeholder="默认0" />
- <p class="help-block">一般情况下调用失败都是频繁请求接口导致被禁用,设置该值等待一段时间让接口恢复正常</p>
- </div>
- <div class="form-group">
- <label>失败重试</label>
- <input type="number" data-process="api:api_retry" class="form-control" placeholder="默认0" />
- <p class="help-block">调用失败重试次数,留空或0表示不重试</p>
- </div>
- <div class="form-group">
- <label>获取结果方式</label>
- <select class="form-control" data-process="api:api_rule_module">
- <option value="" checked="checked">json提取</option>
- <option value="rule">规则匹配</option>
- <option value="xpath">xpath匹配</option>
- </select>
- </div>
- <div class="form-group">
- <div class="process-extract-module" data-rule-module="">
- <?php $_tpl_type = 'json'; $_tpl_name = 'data-process'; $_tpl_name_pre = 'api:api_'; $_tpl_allow_loop = '';
- $_tpl_is_process=($_tpl_name=='data-process')?true:false;
- $_tpl_name_id='c_p_'.str_replace(array('[',']'),'_',$_tpl_name).'_'.str_replace(array('[',']'),'_',$_tpl_name_pre);
- if($_tpl_type=='rule'): ?>
- <div class="form-group">
- <label>规则</label>
- <div class="input-group">
- <textarea <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule'); ?> class="form-control" rows="3" placeholder="<?php echo \think\Lang::get('tips_match'); ?>"></textarea>
- <div class="input-group-addon iga-rt">
- <div style="display:inline;"><a href="javascript:;" title="<?php echo \think\Lang::get('tips_sign_wildcard'); ?>" <?php if($_tpl_is_process): ?>data-rule-sign="sign_wildcard"<?php else: ?>onclick="ruleInsertSign.wildcard('[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule]\']')"<?php endif; ?>><?php echo \think\Lang::get('sign_wildcard'); ?></a></div>
- <div style="display:inline;"><a href="javascript:;" title="<?php echo \think\Lang::get('tips_sign_match'); ?>" <?php if($_tpl_is_process): ?>data-rule-sign="sign_match"<?php else: ?>onclick="ruleInsertSign.match('[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule]\']')"<?php endif; ?>><?php echo cp_sign('match'); ?></a></div>
- <div style="display:inline;"><a href="javascript:;" title="<?php echo \think\Lang::get('tips_sign_group'); ?>" class="blk" <?php if($_tpl_is_process): ?>data-rule-sign="sign_group"<?php else: ?>onclick="ruleInsertSign.match('[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule]\']',{group:1})"<?php endif; ?>>捕获组</a></div>
- <div>
- <span title="<?php echo \think\Lang::get('tips_regular'); ?>">正则</span>
- <a href="javascript:;" title="提示信息" class="glyphicon glyphicon-info-sign icon-info-tips" onclick="ruleInsertSign.tips()"></a>
- </div>
- </div>
- </div>
- <p class="help-block">规则中无<?php echo cp_sign('match'); ?>标签时,自动将完全匹配的值保存为<?php echo cp_sign('match'); ?>标签以供拼接调用</p>
- </div>
- <div class="form-group">
- <label>拼接成最终内容</label>
- <div class="input-group">
- <textarea <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule_merge'); ?> class="form-control" rows="2" placeholder="默认拼接规则中所有<?php echo cp_sign('match'); ?>标签,<?php echo \think\Lang::get('tips_matchn'); ?>"></textarea>
- <div class="input-group-addon iga-rt">
- <a href="javascript:;" title="调用当前规则中的内容标签" <?php if($_tpl_is_process): ?>data-rule-sign="sign_match_n"<?php else: ?>onclick="ruleInsertSign.matchN('[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule]\']','[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule_merge]\']',{def:1})"<?php endif; ?>><?php echo cp_sign('match','N'); ?></a>
- </div>
- </div>
- </div>
- <div class="checkbox"><label><input type="checkbox" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule_multi'); ?> value="1"> 允许匹配多个结果</label></div>
- <div class="<?php if($_tpl_is_process): ?>process-extract-rule-multi-str<?php endif; ?>" style="display:none;" <?php if(!$_tpl_is_process): ?>id="<?php echo $_tpl_name_id; ?>rule_multi_str"<?php endif; ?>>
- <?php if($_tpl_allow_loop): ?>
- <select <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule_multi_type'); ?> class="form-control">
- <option value="">拼接为文本</option>
- <option value="loop">循环入库</option>
- <option value="list">列表数据,处理后拼接为文本</option>
- </select>
- <?php endif; ?>
- <div class="input-group box-rule-multi-str" style="margin-top:10px;">
- <input type="text" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule_multi_str'); ?> class="form-control" placeholder="多个结果之间分隔符" />
- <div class="input-group-addon" style="padding-left:9px;padding-right:9px;"><span title="提示信息" class="glyphicon glyphicon-info-sign icon-info-tips" onclick="ruleInsertSign.cpDelimiterTips()"></span></div>
- </div>
- </div>
- <?php elseif($_tpl_type=='xpath'): ?>
- <div class="form-group">
- <label>规则</label>
- <textarea <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath'); ?> class="form-control" rows="3" placeholder="xpath规则"></textarea>
- </div>
- <div class="form-group">
- <label>属性</label>
- <div class="input-group input-select-custom">
- <div class="input-group-btn">
- <select <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_attr'); ?> class="form-control">
- <option value="">无</option>
- <option value="innerHtml">innerHtml</option>
- <option value="outerHtml">outerHtml</option>
- <option value="text">text</option>
- <option value="value">value</option>
- <option value="id">id</option>
- <option value="class">class</option>
- <option value="name">name</option>
- <option value="href">href</option>
- <option value="src">src</option>
- <option value="style">style</option>
- <option value="width">width</option>
- <option value="height">height</option>
- <option value="alt">alt</option>
- <option value="custom">自定义</option>
- </select>
- </div>
- <input type="text" class="form-control" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_attr_custom'); ?> />
- </div>
- </div>
- <div class="checkbox"><label><input type="checkbox" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_multi'); ?> value="1"> 允许匹配多个结果</label></div>
- <div class="<?php if($_tpl_is_process): ?>process-extract-xpath-multi-str<?php endif; ?>" style="display:none;" <?php if(!$_tpl_is_process): ?>id="<?php echo $_tpl_name_id; ?>xpath_multi_str"<?php endif; ?>>
- <?php if($_tpl_allow_loop): ?>
- <select <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_multi_type'); ?> class="form-control">
- <option value="">拼接为文本</option>
- <option value="loop">循环入库</option>
- <option value="list">列表数据,处理后拼接为文本</option>
- </select>
- <?php endif; ?>
- <div class="input-group box-xpath-multi-str" style="margin-top:10px;">
- <input type="text" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_multi_str'); ?> class="form-control" placeholder="多个结果之间分隔符" />
- <div class="input-group-addon" style="padding-left:9px;padding-right:9px;"><span title="提示信息" class="glyphicon glyphicon-info-sign icon-info-tips" onclick="ruleInsertSign.cpDelimiterTips()"></span></div>
- </div>
- </div>
- <?php elseif($_tpl_type=='json'): ?>
- <div class="form-group">
- <label>提取规则</label>
- <input type="text" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'json'); ?> class="form-control" />
- <p class="help-block">直接输入键名,子节点用:a.b.c,通配符*</p>
- </div>
- <?php if($_tpl_allow_loop): ?>
- <div class="form-group">
- <div class="checkbox"><label><input type="checkbox" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'json_loop'); ?> value="1"> 匹配到多个结果允许循环入库</label></div>
- </div>
- <?php endif; ?>
- <div class="form-group">
- <label>结果是数组则转换为</label>
- <select <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'json_arr'); ?> class="form-control">
- <option value="implode">字符串</option>
- <option value="jsonencode">json编码</option>
- <option value="serialize">序列化</option>
- </select>
- <div class="input-group<?php if($_tpl_is_process): ?> process-extract-json-arr-implode<?php endif; ?>" <?php if(!$_tpl_is_process): ?>id="<?php echo $_tpl_name_id; ?>json_arr_implode"<?php endif; ?> style="margin-top:5px;">
- <textarea <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'json_arr_implode'); ?> class="form-control" rows="1" placeholder="输入分隔符"></textarea>
- <div class="input-group-addon" style="padding-left:9px;padding-right:9px;"><span title="提示信息" class="glyphicon glyphicon-info-sign icon-info-tips" onclick="ruleInsertSign.cpDelimiterTips()"></span></div>
- </div>
- </div>
- <?php endif; ?>
- </div>
- <div class="process-extract-module" data-rule-module="rule">
- <?php $_tpl_type = 'rule'; $_tpl_name = 'data-process'; $_tpl_name_pre = 'api:api_'; $_tpl_allow_loop = '';
- $_tpl_is_process=($_tpl_name=='data-process')?true:false;
- $_tpl_name_id='c_p_'.str_replace(array('[',']'),'_',$_tpl_name).'_'.str_replace(array('[',']'),'_',$_tpl_name_pre);
- if($_tpl_type=='rule'): ?>
- <div class="form-group">
- <label>规则</label>
- <div class="input-group">
- <textarea <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule'); ?> class="form-control" rows="3" placeholder="<?php echo \think\Lang::get('tips_match'); ?>"></textarea>
- <div class="input-group-addon iga-rt">
- <div style="display:inline;"><a href="javascript:;" title="<?php echo \think\Lang::get('tips_sign_wildcard'); ?>" <?php if($_tpl_is_process): ?>data-rule-sign="sign_wildcard"<?php else: ?>onclick="ruleInsertSign.wildcard('[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule]\']')"<?php endif; ?>><?php echo \think\Lang::get('sign_wildcard'); ?></a></div>
- <div style="display:inline;"><a href="javascript:;" title="<?php echo \think\Lang::get('tips_sign_match'); ?>" <?php if($_tpl_is_process): ?>data-rule-sign="sign_match"<?php else: ?>onclick="ruleInsertSign.match('[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule]\']')"<?php endif; ?>><?php echo cp_sign('match'); ?></a></div>
- <div style="display:inline;"><a href="javascript:;" title="<?php echo \think\Lang::get('tips_sign_group'); ?>" class="blk" <?php if($_tpl_is_process): ?>data-rule-sign="sign_group"<?php else: ?>onclick="ruleInsertSign.match('[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule]\']',{group:1})"<?php endif; ?>>捕获组</a></div>
- <div>
- <span title="<?php echo \think\Lang::get('tips_regular'); ?>">正则</span>
- <a href="javascript:;" title="提示信息" class="glyphicon glyphicon-info-sign icon-info-tips" onclick="ruleInsertSign.tips()"></a>
- </div>
- </div>
- </div>
- <p class="help-block">规则中无<?php echo cp_sign('match'); ?>标签时,自动将完全匹配的值保存为<?php echo cp_sign('match'); ?>标签以供拼接调用</p>
- </div>
- <div class="form-group">
- <label>拼接成最终内容</label>
- <div class="input-group">
- <textarea <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule_merge'); ?> class="form-control" rows="2" placeholder="默认拼接规则中所有<?php echo cp_sign('match'); ?>标签,<?php echo \think\Lang::get('tips_matchn'); ?>"></textarea>
- <div class="input-group-addon iga-rt">
- <a href="javascript:;" title="调用当前规则中的内容标签" <?php if($_tpl_is_process): ?>data-rule-sign="sign_match_n"<?php else: ?>onclick="ruleInsertSign.matchN('[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule]\']','[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule_merge]\']',{def:1})"<?php endif; ?>><?php echo cp_sign('match','N'); ?></a>
- </div>
- </div>
- </div>
- <div class="checkbox"><label><input type="checkbox" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule_multi'); ?> value="1"> 允许匹配多个结果</label></div>
- <div class="<?php if($_tpl_is_process): ?>process-extract-rule-multi-str<?php endif; ?>" style="display:none;" <?php if(!$_tpl_is_process): ?>id="<?php echo $_tpl_name_id; ?>rule_multi_str"<?php endif; ?>>
- <?php if($_tpl_allow_loop): ?>
- <select <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule_multi_type'); ?> class="form-control">
- <option value="">拼接为文本</option>
- <option value="loop">循环入库</option>
- <option value="list">列表数据,处理后拼接为文本</option>
- </select>
- <?php endif; ?>
- <div class="input-group box-rule-multi-str" style="margin-top:10px;">
- <input type="text" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule_multi_str'); ?> class="form-control" placeholder="多个结果之间分隔符" />
- <div class="input-group-addon" style="padding-left:9px;padding-right:9px;"><span title="提示信息" class="glyphicon glyphicon-info-sign icon-info-tips" onclick="ruleInsertSign.cpDelimiterTips()"></span></div>
- </div>
- </div>
- <?php elseif($_tpl_type=='xpath'): ?>
- <div class="form-group">
- <label>规则</label>
- <textarea <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath'); ?> class="form-control" rows="3" placeholder="xpath规则"></textarea>
- </div>
- <div class="form-group">
- <label>属性</label>
- <div class="input-group input-select-custom">
- <div class="input-group-btn">
- <select <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_attr'); ?> class="form-control">
- <option value="">无</option>
- <option value="innerHtml">innerHtml</option>
- <option value="outerHtml">outerHtml</option>
- <option value="text">text</option>
- <option value="value">value</option>
- <option value="id">id</option>
- <option value="class">class</option>
- <option value="name">name</option>
- <option value="href">href</option>
- <option value="src">src</option>
- <option value="style">style</option>
- <option value="width">width</option>
- <option value="height">height</option>
- <option value="alt">alt</option>
- <option value="custom">自定义</option>
- </select>
- </div>
- <input type="text" class="form-control" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_attr_custom'); ?> />
- </div>
- </div>
- <div class="checkbox"><label><input type="checkbox" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_multi'); ?> value="1"> 允许匹配多个结果</label></div>
- <div class="<?php if($_tpl_is_process): ?>process-extract-xpath-multi-str<?php endif; ?>" style="display:none;" <?php if(!$_tpl_is_process): ?>id="<?php echo $_tpl_name_id; ?>xpath_multi_str"<?php endif; ?>>
- <?php if($_tpl_allow_loop): ?>
- <select <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_multi_type'); ?> class="form-control">
- <option value="">拼接为文本</option>
- <option value="loop">循环入库</option>
- <option value="list">列表数据,处理后拼接为文本</option>
- </select>
- <?php endif; ?>
- <div class="input-group box-xpath-multi-str" style="margin-top:10px;">
- <input type="text" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_multi_str'); ?> class="form-control" placeholder="多个结果之间分隔符" />
- <div class="input-group-addon" style="padding-left:9px;padding-right:9px;"><span title="提示信息" class="glyphicon glyphicon-info-sign icon-info-tips" onclick="ruleInsertSign.cpDelimiterTips()"></span></div>
- </div>
- </div>
- <?php elseif($_tpl_type=='json'): ?>
- <div class="form-group">
- <label>提取规则</label>
- <input type="text" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'json'); ?> class="form-control" />
- <p class="help-block">直接输入键名,子节点用:a.b.c,通配符*</p>
- </div>
- <?php if($_tpl_allow_loop): ?>
- <div class="form-group">
- <div class="checkbox"><label><input type="checkbox" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'json_loop'); ?> value="1"> 匹配到多个结果允许循环入库</label></div>
- </div>
- <?php endif; ?>
- <div class="form-group">
- <label>结果是数组则转换为</label>
- <select <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'json_arr'); ?> class="form-control">
- <option value="implode">字符串</option>
- <option value="jsonencode">json编码</option>
- <option value="serialize">序列化</option>
- </select>
- <div class="input-group<?php if($_tpl_is_process): ?> process-extract-json-arr-implode<?php endif; ?>" <?php if(!$_tpl_is_process): ?>id="<?php echo $_tpl_name_id; ?>json_arr_implode"<?php endif; ?> style="margin-top:5px;">
- <textarea <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'json_arr_implode'); ?> class="form-control" rows="1" placeholder="输入分隔符"></textarea>
- <div class="input-group-addon" style="padding-left:9px;padding-right:9px;"><span title="提示信息" class="glyphicon glyphicon-info-sign icon-info-tips" onclick="ruleInsertSign.cpDelimiterTips()"></span></div>
- </div>
- </div>
- <?php endif; ?>
- </div>
- <div class="process-extract-module" data-rule-module="xpath">
- <?php $_tpl_type = 'xpath'; $_tpl_name = 'data-process'; $_tpl_name_pre = 'api:api_'; $_tpl_allow_loop = '';
- $_tpl_is_process=($_tpl_name=='data-process')?true:false;
- $_tpl_name_id='c_p_'.str_replace(array('[',']'),'_',$_tpl_name).'_'.str_replace(array('[',']'),'_',$_tpl_name_pre);
- if($_tpl_type=='rule'): ?>
- <div class="form-group">
- <label>规则</label>
- <div class="input-group">
- <textarea <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule'); ?> class="form-control" rows="3" placeholder="<?php echo \think\Lang::get('tips_match'); ?>"></textarea>
- <div class="input-group-addon iga-rt">
- <div style="display:inline;"><a href="javascript:;" title="<?php echo \think\Lang::get('tips_sign_wildcard'); ?>" <?php if($_tpl_is_process): ?>data-rule-sign="sign_wildcard"<?php else: ?>onclick="ruleInsertSign.wildcard('[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule]\']')"<?php endif; ?>><?php echo \think\Lang::get('sign_wildcard'); ?></a></div>
- <div style="display:inline;"><a href="javascript:;" title="<?php echo \think\Lang::get('tips_sign_match'); ?>" <?php if($_tpl_is_process): ?>data-rule-sign="sign_match"<?php else: ?>onclick="ruleInsertSign.match('[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule]\']')"<?php endif; ?>><?php echo cp_sign('match'); ?></a></div>
- <div style="display:inline;"><a href="javascript:;" title="<?php echo \think\Lang::get('tips_sign_group'); ?>" class="blk" <?php if($_tpl_is_process): ?>data-rule-sign="sign_group"<?php else: ?>onclick="ruleInsertSign.match('[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule]\']',{group:1})"<?php endif; ?>>捕获组</a></div>
- <div>
- <span title="<?php echo \think\Lang::get('tips_regular'); ?>">正则</span>
- <a href="javascript:;" title="提示信息" class="glyphicon glyphicon-info-sign icon-info-tips" onclick="ruleInsertSign.tips()"></a>
- </div>
- </div>
- </div>
- <p class="help-block">规则中无<?php echo cp_sign('match'); ?>标签时,自动将完全匹配的值保存为<?php echo cp_sign('match'); ?>标签以供拼接调用</p>
- </div>
- <div class="form-group">
- <label>拼接成最终内容</label>
- <div class="input-group">
- <textarea <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule_merge'); ?> class="form-control" rows="2" placeholder="默认拼接规则中所有<?php echo cp_sign('match'); ?>标签,<?php echo \think\Lang::get('tips_matchn'); ?>"></textarea>
- <div class="input-group-addon iga-rt">
- <a href="javascript:;" title="调用当前规则中的内容标签" <?php if($_tpl_is_process): ?>data-rule-sign="sign_match_n"<?php else: ?>onclick="ruleInsertSign.matchN('[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule]\']','[name=\'<?php echo $_tpl_name; ?>[<?php echo $_tpl_name_pre; ?>rule_merge]\']',{def:1})"<?php endif; ?>><?php echo cp_sign('match','N'); ?></a>
- </div>
- </div>
- </div>
- <div class="checkbox"><label><input type="checkbox" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule_multi'); ?> value="1"> 允许匹配多个结果</label></div>
- <div class="<?php if($_tpl_is_process): ?>process-extract-rule-multi-str<?php endif; ?>" style="display:none;" <?php if(!$_tpl_is_process): ?>id="<?php echo $_tpl_name_id; ?>rule_multi_str"<?php endif; ?>>
- <?php if($_tpl_allow_loop): ?>
- <select <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule_multi_type'); ?> class="form-control">
- <option value="">拼接为文本</option>
- <option value="loop">循环入库</option>
- <option value="list">列表数据,处理后拼接为文本</option>
- </select>
- <?php endif; ?>
- <div class="input-group box-rule-multi-str" style="margin-top:10px;">
- <input type="text" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'rule_multi_str'); ?> class="form-control" placeholder="多个结果之间分隔符" />
- <div class="input-group-addon" style="padding-left:9px;padding-right:9px;"><span title="提示信息" class="glyphicon glyphicon-info-sign icon-info-tips" onclick="ruleInsertSign.cpDelimiterTips()"></span></div>
- </div>
- </div>
- <?php elseif($_tpl_type=='xpath'): ?>
- <div class="form-group">
- <label>规则</label>
- <textarea <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath'); ?> class="form-control" rows="3" placeholder="xpath规则"></textarea>
- </div>
- <div class="form-group">
- <label>属性</label>
- <div class="input-group input-select-custom">
- <div class="input-group-btn">
- <select <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_attr'); ?> class="form-control">
- <option value="">无</option>
- <option value="innerHtml">innerHtml</option>
- <option value="outerHtml">outerHtml</option>
- <option value="text">text</option>
- <option value="value">value</option>
- <option value="id">id</option>
- <option value="class">class</option>
- <option value="name">name</option>
- <option value="href">href</option>
- <option value="src">src</option>
- <option value="style">style</option>
- <option value="width">width</option>
- <option value="height">height</option>
- <option value="alt">alt</option>
- <option value="custom">自定义</option>
- </select>
- </div>
- <input type="text" class="form-control" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_attr_custom'); ?> />
- </div>
- </div>
- <div class="checkbox"><label><input type="checkbox" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_multi'); ?> value="1"> 允许匹配多个结果</label></div>
- <div class="<?php if($_tpl_is_process): ?>process-extract-xpath-multi-str<?php endif; ?>" style="display:none;" <?php if(!$_tpl_is_process): ?>id="<?php echo $_tpl_name_id; ?>xpath_multi_str"<?php endif; ?>>
- <?php if($_tpl_allow_loop): ?>
- <select <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_multi_type'); ?> class="form-control">
- <option value="">拼接为文本</option>
- <option value="loop">循环入库</option>
- <option value="list">列表数据,处理后拼接为文本</option>
- </select>
- <?php endif; ?>
- <div class="input-group box-xpath-multi-str" style="margin-top:10px;">
- <input type="text" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'xpath_multi_str'); ?> class="form-control" placeholder="多个结果之间分隔符" />
- <div class="input-group-addon" style="padding-left:9px;padding-right:9px;"><span title="提示信息" class="glyphicon glyphicon-info-sign icon-info-tips" onclick="ruleInsertSign.cpDelimiterTips()"></span></div>
- </div>
- </div>
- <?php elseif($_tpl_type=='json'): ?>
- <div class="form-group">
- <label>提取规则</label>
- <input type="text" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'json'); ?> class="form-control" />
- <p class="help-block">直接输入键名,子节点用:a.b.c,通配符*</p>
- </div>
- <?php if($_tpl_allow_loop): ?>
- <div class="form-group">
- <div class="checkbox"><label><input type="checkbox" <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'json_loop'); ?> value="1"> 匹配到多个结果允许循环入库</label></div>
- </div>
- <?php endif; ?>
- <div class="form-group">
- <label>结果是数组则转换为</label>
- <select <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'json_arr'); ?> class="form-control">
- <option value="implode">字符串</option>
- <option value="jsonencode">json编码</option>
- <option value="serialize">序列化</option>
- </select>
- <div class="input-group<?php if($_tpl_is_process): ?> process-extract-json-arr-implode<?php endif; ?>" <?php if(!$_tpl_is_process): ?>id="<?php echo $_tpl_name_id; ?>json_arr_implode"<?php endif; ?> style="margin-top:5px;">
- <textarea <?php echo \util\Tools::cp_rule_module_name($_tpl_name,$_tpl_name_pre,'json_arr_implode'); ?> class="form-control" rows="1" placeholder="输入分隔符"></textarea>
- <div class="input-group-addon" style="padding-left:9px;padding-right:9px;"><span title="提示信息" class="glyphicon glyphicon-info-sign icon-info-tips" onclick="ruleInsertSign.cpDelimiterTips()"></span></div>
- </div>
- </div>
- <?php endif; ?>
- </div>
- </div>
- </section>
- </div>
- <div class="c-p-process-module" module="apiapp">
- <div class="form-group" style="margin-bottom:0;">
- <label>接口插件</label>
- <a href="javascript:;" class="fa fa-refresh plugin-api-refresh" title="刷新"></a>
- <select class="form-control" data-process="apiapp:apiapp_app">
- <option value="">--请选择--</option>
- </select>
- </div>
- <div class="plugin-api-op-list" style="margin-top:15px;display:none;"></div>
- </div>
- </div>
- <?php if(empty($type)): ?>
- <form id="form_process" method="post" action="<?php echo url('cpattern/process?op=sub'); ?>" style="display:none;">
- <?php echo html_usertoken(); ?>
- <input type="hidden" name="field" value="<?php echo $field; ?>" />
- <input type="hidden" name="objid" value="<?php echo $objid; ?>" />
- <div class="form-group">
- <div class="panel-group c-p-process-accordion">
- </div>
- </div>
- <div class="form-group form-group-sm">
- <button type="submit" class="btn btn-primary btn-block">确定</button>
- </div>
- </form>
- <?php endif; ?>
- </div>
- <script type="text/javascript">
- <?php if(empty($type)): if(!empty($process)): ?>
- c_pattern.cpProcess.init(<?php echo json_encode($process); ?>,false,false);
- <?php else: ?>
- c_pattern.cpProcess.init(null,false,false);
- <?php endif; elseif($type == 'common'): ?>
- c_pattern.cpProcess.init(null,true,false);
- <?php endif; ?>
- </script>
|