1
1
<?php
2
2
/*
3
3
* Created on 2008/03/25 by nao-pon http://hypweb.net/
4
- * $Id: replacer.inc.php,v 1.5 2011/11/26 12:03:10 nao-pon Exp $
5
4
*/
6
5
7
6
class xpwiki_plugin_replacer extends xpwiki_plugin {
@@ -241,6 +240,16 @@ function doit() {
241
240
}
242
241
243
242
if ($ dh = opendir ($ base )) {
243
+ $ root =& $ this ->root ;
244
+
245
+ // save for reload rules.ini.php
246
+ $ _saves = array (
247
+ 'page ' => $ root ->vars ['page ' ],
248
+ 'datetime_rules ' => $ root ->datetime_rules ,
249
+ 'str_rules ' => $ root ->str_rules ,
250
+ 'str_rules_callback ' => $ root ->str_rules_callback ,
251
+ );
252
+
244
253
while (($ file = readdir ($ dh )) !== false && $ max > $ this ->found ) {
245
254
if (preg_match ('/^([a-f0-9]+)\.txt$/i ' , $ file , $ match )) {
246
255
$ page = $ this ->func ->decode ($ match [1 ]);
@@ -250,6 +259,11 @@ function doit() {
250
259
$ src = file_get_contents ($ base . $ file );
251
260
$ src = $ this ->func ->remove_pginfo ($ src );
252
261
if (preg_match_all ($ reg , $ src , $ target , PREG_PATTERN_ORDER )) {
262
+ $ root ->vars ['page ' ] = $ page ;
263
+
264
+ // reload rules.ini.php for make_str_rules()
265
+ require ($ this ->cont ['DATA_HOME ' ] . 'private/ini/rules.ini.php ' );
266
+
253
267
$ this ->found ++;
254
268
$ ret [$ page ]['src ' ] = $ src ;
255
269
$ ret [$ page ]['from ' ] = array ();
@@ -266,6 +280,7 @@ function doit() {
266
280
}
267
281
$ ret [$ page ]['src ' ] = $ src ;
268
282
$ src = preg_replace ($ reg , $ rep , $ src );
283
+ $ src = $ this ->func ->make_str_rules ($ src );
269
284
$ ret [$ page ]['result ' ] = $ src ;
270
285
if ($ this ->vars ['pcmd ' ] === 'do ' ) {
271
286
$ this ->func ->page_write ($ page , $ src , $ this ->vars ['nt ' ]);
@@ -275,6 +290,12 @@ function doit() {
275
290
}
276
291
}
277
292
closedir ($ dh );
293
+
294
+ // restore
295
+ $ root ->vars ['page ' ] = $ _saves ['page ' ];
296
+ $ root ->datetime_rules = $ _saves ['datetime_rules ' ];
297
+ $ root ->str_rules = $ _saves ['str_rules ' ];
298
+ $ root ->str_rules_callback = $ _saves ['str_rules_callback ' ];
278
299
}
279
300
if ($ this ->found ) {
280
301
if ($ this ->vars ['pcmd ' ] === 'test ' ) {
@@ -360,5 +381,20 @@ function myErrorHandler($errno, $errstr) {
360
381
}
361
382
return false ;
362
383
}
384
+
385
+ ////////////////////////////////
386
+ // functions for rules.ini.php
387
+
388
+ private function format_date ($ var ) {
389
+ return $ this ->func ->format_date ($ var );
390
+ }
391
+
392
+ private function get_date ($ var ) {
393
+ return $ this ->func ->get_date ($ var );
394
+ }
395
+
396
+ private function htmlspecialchars ($ str , $ flags = ENT_COMPAT , $ encoding = null , $ double_encode = true ) {
397
+ return $ this ->func ->get_date ($ str , $ flags , $ encoding , $ double_encode );
398
+ }
363
399
}
364
400
?>
0 commit comments