Hi Moni!
Op 5-2-2018 om 11:36 schreef Moni Kellermann:
Am 02.02.2018 um 18:51 schrieb Petko Yotov:
Hello. PmWiki version 2.2.107 was published today
Thank you, Petko! :))
I am trying out this skin:
http://www.pmwiki.org/wiki/Skins/Vanilla5
With PmWiki 2.2.107 running on XAMPP/PHP 7.21, I now get the error
Deprecated: Function create_function() is deprecated in
C:\xampp\htdocs\pmwiki-2.2.107\pmwiki.php on line 481
which refers to the section
function PCCF($code, $template = 'default', $args = '$m') {
global $CallbackFnTemplates, $CallbackFunctions;
if (!isset($CallbackFnTemplates[$template]))
Abort("No \$CallbackFnTemplates[$template]).");
$code = sprintf($CallbackFnTemplates[$template], $code);
if (!isset($CallbackFunctions[$code])) {
$fn = create_function($args, $code);
if ($fn) $CallbackFunctions[$code] = $fn;
else StopWatch("Failed to create callback function: ".PHSC($code));
}
return $CallbackFunctions[$code];
}
and specifically the line
$fn = create_function($args, $code);
I understand that create_function is deprecated in PHP 7.21, and that
the fault is with the skin, not with PmWiki, as the standard skins do
not trigger this.
Which means that a) we need to fix both pmwiki.php as well as the skin.
I get the same error with the Twitter Bootstrap skin.
Both those skins work with 2.2.107 when running XAMPP/PHP 5.6.33.
moni k.
As author of the skin Vanilla5, I am feeling obliged to respond here. My
webserver does not use PHP7.2 yet, so I did not encounter any problems
YET. I don't feel confident enough programming in PHP to offer you a
real fix.
In the mean time, you can get it working by commenting out the 2 lines
in the bottom section of "skin.php" which call the Markup_e() function.
It should look like this:
$FmtPV['$SearchBar'] = "\$GLOBALS['TmplDisplay']['PageSearchFmt']";
#Markup_e('nosearch', 'directives', '/\\(:nosearch:\\)/i',
"SetTmplDisplay('PageSearchFmt',0)");
$FmtPV['$TabsBar'] = "\$GLOBALS['TmplDisplay']['PageTabsFmt']";
#Markup_e('notabs', 'directives', '/\\(:notabs:\\)/i',
"SetTmplDisplay('PageTabsFmt',0)");
You loose the functionality of disabling and enabling the (:nosearch:)
and (:notabs:) directives. It should now be working.
with regards,
Paul Wiegmans
_______________________________________________
pmwiki-users mailing list
[email protected]
http://www.pmichaud.com/mailman/listinfo/pmwiki-users