PITS /
01122: {[foxdelrange button]} and {[foxdelline button]} does not work
Summary: {[foxdelrange button]} and {[foxdelline button]} does not work
Created: 2009-07-22 16:12
Status: Open
Category: Cookbook
From: Marcello Nuccio
Assigned:
Priority: 3
Version: 2.2.2
OS: Linux/Apache/5.2
Description: Using the following template with Fox, the generated PmWiki markup is not correct
#foxbegin#
{[foxdelrange button]}
Some text...
#foxend#
There are two problems:
- str_replace() is called two times on the same string - Markup() regexp does not recognize the " button" argument to "foxdelrange"
The same is true for "foxdelline".
The following patch fixes it:
diff --git a/cookbook/fox/fox.php b/cookbook/fox/fox.php
index 06ff05d..2566760 100644
--- a/cookbook/fox/fox.php
+++ b/cookbook/fox/fox.php
@@ -1121,14 +1121,7 @@ function FoxTemplateEngine( $pn, $template, $fx, $targ, $linekeyseed=NULL, $call
if (preg_match("/\\{\\[foxdel([^]]+)FullName\\}\\s*\\]\\}/", $entry)) continue;
$linekey = $linekeyseed.'b'.$index;
//adding linekey + pagename to any foxdelete markup for unique id
- // Add linekey to delete button for line delete
- $entry = str_replace( '{[foxdelline button', "{[foxdelline button $linekey {\$FullName} ", $entry );
- // Add linekey to delete link for line delete
- $entry = str_replace( '{[foxdelline', "{[foxdelline $linekey {\$FullName} ", $entry );
- // Add linekey to delete button for range delete
- $entry = str_replace( '{[foxdelrange button', "{[foxdelrange button $linekey {\$FullName} ", $entry );
- // Add linekey to delete link for range delete
- $entry = str_replace( '{[foxdelrange', "{[foxdelrange $linekey {\$FullName} ", $entry );
+ $entry = ereg_replace( '\{\[foxdel(line|range)( button)?', "\\0 $linekey {\$FullName} ", $entry );
//Add line-key to delete range begin marker
$entry = str_replace( '#foxbegin#', "#foxbegin $linekey#", $entry );
// Add line-key to delete range end marker
@@ -1794,4 +1787,4 @@ function InputDefault2($pagename, $type, $args) {
return '';
} //}}}
-///EOF
\ No newline at end of file
+///EOF
diff --git a/cookbook/fox/foxdelete.php b/cookbook/fox/foxdelete.php
index 68ba6be..5c51b5d 100644
--- a/cookbook/fox/foxdelete.php
+++ b/cookbook/fox/foxdelete.php
@@ -49,11 +49,11 @@ function FoxHandleDelete($pagename) {
} //}}}
-Markup('foxdelete','directives','/\{\[foxdel(line|range) ?(|button)\\s*(.*?)\\s*\]}/e',
- "Keep(FoxDeleteMarkup(\$pagename, '$1', '$2', PSS('$3') ))");
+Markup('foxdelete','directives','/\{\[foxdel(?:line|range) (button)?\s*(.+)\s*\]\}/e',
+ "Keep(FoxDeleteMarkup(\$pagename, '$1', PSS('$2') ))");
# Creates the HTML code for delete links {[foxdelline]}, {[foxdelrange]}
# and delete buttons {[foxdelline button]} and {[foxdelrange button]}
-function FoxDeleteMarkup($pagename, $range, $type, $args) {
+function FoxDeleteMarkup($pagename, $type, $args) {
global $ScriptUrl, $EnablePathInfo, $EnableFoxDeleteMsg, $FoxDeleteMsg, $FoxDeleteSummaryMsg;
SDV($EnableFoxDeleteMsg, false); //set to true to enable post delete confirmation
SDV($FoxDeleteMsg, '$[Please confirm: Do you want to delete this post?]');