在使用织梦采集功能设置采集规则时,经常会用到过滤规则,而且织梦自带的正则在使用过程中,不是很奏效,每次点击过来总是要修改。一气之下,于是乎,把他给改了,改动后,更适合我自己使用。朋友们可以随自己喜好去改,方法如下:
找到文件:
/dede_zheshiwodemulu/templets/co_trimrule.html
晒下我改过的代码,之后再说修改应注意事项,有喜欢的可以直接复制。
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>规则选择框</title> <style type="text/css"> * { font-size:14px; line-height:150%; padding:0px; margin:0px auto; } td { padding-left:10px; } body { margin-top:6px; background-color: #E6E4D5; } .bt { height:24px; width:60px; border-bottom:1px solid #726B36; border-right:1px solid #726B36; border-left:1px solid #DAD5B1; border-top:1px solid #DAD5B1; } </style> <script language='javascript'> function SelOK() { var okstr = ''; var tmpvalue = ''; var totalbox = 12; var selid = location.search.replace('?',''); for(var i=1;i<=totalbox;i++) { if(document.getElementById('font'+i).checked) { tmpvalue = document.getElementById('font'+i).value; tmpvalue = tmpvalue.replace(/</,'<'); tmpvalue = tmpvalue.replace(/>/,'>'); okstr += (okstr=='' ? "{dede:trim replace=''}"+tmpvalue+"{/dede:trim}" : "\r\n{dede:trim replace=''}"+tmpvalue+"{/dede:trim}"); } } if(okstr!='') { var nobj = window.opener.document.getElementById(selid); if(nobj != null) nobj.value = (nobj.value=='' ? okstr : "\r\n"+okstr); } window.opener = true; window.close(); } </script> </head> <body> <form id="form1" name="form1" method="post" action=""> <table width="300" border="0" cellpadding="1" cellspacing="1" bgcolor="#BCC083"> <!-- a --> <tr> <td width="149" bgcolor="#FFFFFF"> <input name="font1" type="checkbox" id="font1" value="<a(.*)>" /> <a(.*)></td> <td width="151" bgcolor="#FFFFFF"><input name="font7" type="checkbox" id="font7" value="</a>" /> </a></td> </tr> <!-- div --> <tr> <td bgcolor="#FFFFFF"><input name="font2" type="checkbox" id="font2" value="<div(.*)>" /> <div(.*)></td> <td bgcolor="#FFFFFF"><input name="font8" type="checkbox" id="font8" value="</div>" /> </div></td> </tr> <!-- span --> <tr> <td bgcolor="#FFFFFF"><input name="font3" type="checkbox" id="font3" value="<span(.*)>" /> <span(.*)></td> <td width="151" bgcolor="#FFFFFF"><input name="font9" type="checkbox" id="font9" value="</span&a;" /> </span></td> </tr> <!-- style|img --> <tr> <td bgcolor="#FFFFFF"><input name="font4" type="checkbox" id="font4" value="<style(.*)>(.*)</style>" /> style</td> <td bgcolor="#FFFFFF"><input name="font10" type="checkbox" id="font10" value="<img(.*)>" /> img</td> </tr> <!-- javascript|iframe --> <tr> <td bgcolor="#FFFFFF"><input name="font5" type="checkbox" id="font5" value="<script(.*)>(.*)</script>" /> javascript脚本</td> <td bgcolor="#FFFFFF"><input name="font11" type="checkbox" id="font11" value="<iframe(.*)>(.*)</iframe>" /> iframe</td> </tr> <!-- table|空格 --> <tr> <td bgcolor="#FFFFFF"><input name="font6" type="checkbox" id="font6" value="\s" /> \s 定格</td> <td bgcolor="#FFFFFF"><input name="font12" type="checkbox" id="font12" value="<\d</\d>" /> 空标签</td> </tr> <tr> <td height="32" colspan="2" align="center" bgcolor="#FFFFFF"> <input type="button" name="sb" id="sb" value="确定" class='bt' onclick="SelOK();" /> </td> </tr> </table> </form> </body> </html> |
修改注意事项:
- 我使用的是织梦5.7 UTF-8版本,源码中charset=<?php echo $cfg_soft_lang; ?>没有调用出utf-8,所以乱码,我直接写上了。
- 先看一段截取的代码:
01234567891011121314<!-- a --><tr><td width="149" bgcolor="#FFFFFF"><input name="font1" type="checkbox" id="font1" value="<a(.*)>" /><a(.*)></td><td width="151" bgcolor="#FFFFFF"><input name="font7" type="checkbox" id="font7" value="</a>" /></a></td></tr><!-- div --><tr><td bgcolor="#FFFFFF"><input name="font2" type="checkbox" id="font2" value="<div(.*)>" /><div(.*)></td><td bgcolor="#FFFFFF"><input name="font8" type="checkbox" id="font8" value="</div>" /></div></td></tr>
注意看他的“name=”xxx””和“id=”xxx””,刚才开始我没注意,所以结果是在后台采集功能点击确定后不能输出规则,如果自己要增加更多项时,如果总数是18条,那么第一段tr中两项td中的name和id的值要分别改为name=”font1″ id=”font1″和name=”font10″ id=”font10″,这就它的规律。别弄错就好。
另外,如果你会经常写规则,而且某些规则又是几乎每次都用,每次都要手动的输入,那么你可以这么改:
找到织梦源码的新增采集节点文件:
/dede_zheshiwodemulu/templets/co_add_step2.htm.html
把常用的规则直接写到textarea标签里,如:<textarea>[内容]</textarea>
下面是我改后的代码的一部分,过滤规则也加进去了,如下:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<tr id="tsource"> <td height="24"> <input type='checkbox' name='fields[]' checked='1' value='source' style='display:none' /> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="18%" height="80">匹配规则:</td> <td height="20" colspan="2"><textarea name="match_source" rows="4" id="match_source" style="width:90%"></[内容]></textarea> </td> </tr> <tr> <td height="63">过滤规则:</td> <td width="53%" height="63"><textarea name="trim_source" cols="20" rows="3" id="trim_source" style="width:90%">{dede:trim replace="ny1.wang"}^(.*)${/dede:trim}</textarea> </td> <td height="63"><input type="button" name="button4" id="button4" value="常用规则" onclick="selTrim('trim_source')" /> </td> </tr> </table> </td> </tr> |
如果是input标签,可以加入加到value元素中,
<input name=”notename” type=”text” id=”notename” value=”【】” style=”width:250px” />
注意:
如果要加入”<”或”>”,不能直接加,要使用转义字符,如:<a(.*)>
这是左尖括号<,这是右尖括号>
好了,就到这吧,发现问题就记下来,也为自己备忘。