| 1 | <?xml version="1.0" encoding="UTF-8"?>
|
|---|
| 2 | <dictionary>
|
|---|
| 3 | <item key="custom"/>
|
|---|
| 4 | <item key="data"><![CDATA[<dtml-comment>
|
|---|
| 5 | ################################################################################
|
|---|
| 6 | # Execute
|
|---|
| 7 | ################################################################################
|
|---|
| 8 | </dtml-comment>
|
|---|
| 9 | <dtml-if process>
|
|---|
| 10 |
|
|---|
| 11 | <!-- # Init counter: -->
|
|---|
| 12 | <dtml-unless count>
|
|---|
| 13 | <dtml-call expr="REQUEST.set('count',0)">
|
|---|
| 14 | </dtml-unless>
|
|---|
| 15 |
|
|---|
| 16 | <!-- # Search and replace: -->
|
|---|
| 17 | <dtml-in "getObjAttrs().keys()">
|
|---|
| 18 | <dtml-let key=sequence-item objAttr="getObjAttr(key)">
|
|---|
| 19 | <dtml-if "objAttr['datatype'] in ['string','text']">
|
|---|
| 20 | <dtml-in "getObjVersions()">
|
|---|
| 21 | <dtml-let objVers=sequence-item>
|
|---|
| 22 | <dtml-in "getLangIds()">
|
|---|
| 23 | <dtml-let langId=sequence-item objAttrName="getObjAttrName(objAttr,langId)" objAttrVal="operator_getattr(objVers,objAttrName,None)">
|
|---|
| 24 | <dtml-if objAttrVal>
|
|---|
| 25 | <dtml-try>
|
|---|
| 26 | <dtml-if "len(objAttrVal.split(s_old))>1">
|
|---|
| 27 | <dtml-call "operator_setattr(objVers,objAttrName,objAttrVal.replace(s_old,s_new))">
|
|---|
| 28 | <dtml-call "REQUEST.set('count',REQUEST['count']+len(objAttrVal.split(s_old))-1)">
|
|---|
| 29 | </dtml-if>
|
|---|
| 30 | <dtml-except>
|
|---|
| 31 | </dtml-try>
|
|---|
| 32 | </dtml-if>
|
|---|
| 33 | </dtml-let>
|
|---|
| 34 | </dtml-in>
|
|---|
| 35 | </dtml-let>
|
|---|
| 36 | </dtml-in>
|
|---|
| 37 | </dtml-if>
|
|---|
| 38 | </dtml-let>
|
|---|
| 39 | </dtml-in>
|
|---|
| 40 |
|
|---|
| 41 | <!-- # Recurse child-objects: -->
|
|---|
| 42 | <dtml-in "getChildNodes(REQUEST)">
|
|---|
| 43 | <dtml-call manage_searchReplace>
|
|---|
| 44 | </dtml-in>
|
|---|
| 45 |
|
|---|
| 46 | <!-- # Return with message: -->
|
|---|
| 47 | <dtml-call expr="REQUEST.set('message','%i Vorkommnisse ersetzt.'%REQUEST['count'])">
|
|---|
| 48 | <dtml-return message>
|
|---|
| 49 |
|
|---|
| 50 | <dtml-comment>
|
|---|
| 51 | ################################################################################
|
|---|
| 52 | # Process execution
|
|---|
| 53 | ################################################################################
|
|---|
| 54 | </dtml-comment>
|
|---|
| 55 | <dtml-elif "REQUEST.get('btn','') == ' Ersetzen '">
|
|---|
| 56 |
|
|---|
| 57 | <dtml-var manage_page_header>
|
|---|
| 58 | </head>
|
|---|
| 59 | <dtml-var "manage_tabs(_,_,my_manage_options=[{'label':'Replace...','action':''}])">
|
|---|
| 60 |
|
|---|
| 61 | <div class="form-text">
|
|---|
| 62 | <dtml-var "manage_searchReplace(_,_,process=1)"><br/><br/>
|
|---|
| 63 | [<a href="<dtml-var absolute_url>/manage_main?lang=<dtml-var lang>">ZurÃŒck...</a>]
|
|---|
| 64 | </div>
|
|---|
| 65 |
|
|---|
| 66 | <dtml-var manage_page_footer>
|
|---|
| 67 |
|
|---|
| 68 | <dtml-comment>
|
|---|
| 69 | ################################################################################
|
|---|
| 70 | # Process cancellation
|
|---|
| 71 | ################################################################################
|
|---|
| 72 | </dtml-comment>
|
|---|
| 73 | <dtml-elif "REQUEST.get('btn','') == ' Abbrechen '">
|
|---|
| 74 |
|
|---|
| 75 | <dtml-call "RESPONSE.redirect('%s/manage_main?lang=%s'%(absolute_url(),lang))">
|
|---|
| 76 |
|
|---|
| 77 | <dtml-comment>
|
|---|
| 78 | ################################################################################
|
|---|
| 79 | # Form
|
|---|
| 80 | ################################################################################
|
|---|
| 81 | </dtml-comment>
|
|---|
| 82 | <dtml-else>
|
|---|
| 83 |
|
|---|
| 84 | <dtml-var manage_page_header>
|
|---|
| 85 | </head>
|
|---|
| 86 | <dtml-var "manage_tabs(_,_,my_manage_options=[{'label':'Replace...','action':''}])">
|
|---|
| 87 |
|
|---|
| 88 | <div class="form-text">Sie können jedes oder alle Vorkommen von einem Textmuster im aktuellen Objekt und auch allen Unterobjekten suchen und ersetzen.</div>
|
|---|
| 89 | <form name="form0">
|
|---|
| 90 | <input type="hidden" name="preview" value="preview">
|
|---|
| 91 | <input type="hidden" name="lang" value="<dtml-var lang>">
|
|---|
| 92 | <table cellspacing="1" cellpadding="1" border="0">
|
|---|
| 93 | <tr>
|
|---|
| 94 | <td><div class="form-label">Search for:</div></td>
|
|---|
| 95 | <td><input class="form-element" type="text" name="s_old" value="" size="30"></td>
|
|---|
| 96 | </tr>
|
|---|
| 97 | <tr>
|
|---|
| 98 | <td><div class="form-label">Replace by:</div></td>
|
|---|
| 99 | <td><input class="form-element" type="text" name="s_new" value="" size="30"></td>
|
|---|
| 100 | </tr>
|
|---|
| 101 | <tr>
|
|---|
| 102 | <td></td>
|
|---|
| 103 | <td>
|
|---|
| 104 | <input class="ui-button ui-state-default ui-corner-all" type="submit" name="btn" value=" Ersetzen ">
|
|---|
| 105 | <input class="ui-button ui-state-default ui-corner-all" type="submit" name="btn" value=" Abbrechen ">
|
|---|
| 106 | </td>
|
|---|
| 107 | </tr>
|
|---|
| 108 | </table>
|
|---|
| 109 | </form>
|
|---|
| 110 |
|
|---|
| 111 | <dtml-var manage_page_footer>
|
|---|
| 112 |
|
|---|
| 113 | <dtml-comment>
|
|---|
| 114 | ################################################################################
|
|---|
| 115 | </dtml-comment>
|
|---|
| 116 |
|
|---|
| 117 | </dtml-if>]]>
|
|---|
| 118 | </item>
|
|---|
| 119 | <item key="description"/>
|
|---|
| 120 | <item key="exec" type="int">0</item>
|
|---|
| 121 | <item key="id"><![CDATA[manage_searchReplace]]></item>
|
|---|
| 122 | <item key="meta_type"><![CDATA[DTML Method]]></item>
|
|---|
| 123 | <item key="meta_types" type="list">
|
|---|
| 124 | <list>
|
|---|
| 125 | <item><![CDATA[ZMSGraphic]]></item>
|
|---|
| 126 | <item><![CDATA[ZMSDocument]]></item>
|
|---|
| 127 | <item><![CDATA[ZMSFolder]]></item>
|
|---|
| 128 | <item><![CDATA[ZMS]]></item>
|
|---|
| 129 | </list>
|
|---|
| 130 | </item>
|
|---|
| 131 | <item key="name"><![CDATA[Search+Replace...]]></item>
|
|---|
| 132 | <item key="roles" type="list">
|
|---|
| 133 | <list>
|
|---|
| 134 | <item><![CDATA[ZMSAdministrator]]></item>
|
|---|
| 135 | <item><![CDATA[ZMSAuthor]]></item>
|
|---|
| 136 | <item><![CDATA[ZMSEditor]]></item>
|
|---|
| 137 | </list>
|
|---|
| 138 | </item>
|
|---|
| 139 | </dictionary> |
|---|