I may have been not clear enough, you can use a single PPRA() call with
an array with multiple search-replace pairs:
$txt = PPRA(
array(
'/search1/' => 'replace1',
'/search2/' => PCCF("replace2"),
'/search3/' => PCCF("replace3"),
),
PHSC($pg['text'], ENT_NOQUOTES)
);
Otherwise, to evaluate individual search-replace pairs, using PPRE() is
shorter, it is also documented in the Functions page.
Here I'd use PPRA() with an array of the search-replace pairs, not
PPRE().
Petko
On 10.12.2014 01:54, Hans Bracker wrote:
thank you so much, Petko, for the detailed tuition in use of those
helper functions!
I got it working, and uploaded to pmwiki.org
http://www.pmwiki.org/wiki/Cookbook/Attachtable
This is the rewritten section:
foreach( $ls as $pn ) {
$pg = RetrieveAuthPage( $pn, 'read', FALSE, READPAGE_CURRENT );
if ($pg) {
$txt = PHSC( $pg['text'], ENT_NOQUOTES );
## preserved text
$txt =
preg_replace("/(\n[^\\S\n]*)?\\[([=@])(.*?)\\2\\]/s", " ", $txt);
## links to attachments
$txt = PPRA(
array('/\[\[[^\]]*?\bAttach:([^"\]\|]*)/'
=> PCCF("return
'[['.AttachtableCountUploadLinks('$pn','',\$m[1]);")), $txt);
## raw attachments
$txt = PPRA(
array("/\\bAttach:([^\\s$UrlExcludeChars]*[^\\s.,?!$UrlExcludeChars])/"
=> PCCF("return
AttachtableCountUploadLinks('$pn','',\$m[1]);")), $txt);
}
}
There was a note in the function:
## FIXME: these really ought to be cached
Without caching whenever action=upload the references are getting
pulled out of all the pages, which means usually all the pages of the
wiki group, and each page is opened and read and the text processed.
But I would not know how to do the caching.
And sofar I have not found it greatly detrimental without caching.
Mostly a user wants to upload a file, and the Attach Table list is
secondary.
_______________________________________________
pmwiki-users mailing list
[email protected]
http://www.pmichaud.com/mailman/listinfo/pmwiki-users