r3342 index.php: employ call_user_func() for callback
authorDenis Ovsienko <infrastation@yandex.ru>
Sat, 13 Mar 2010 10:14:42 +0000 (10:14 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Sat, 13 Mar 2010 10:14:42 +0000 (10:14 +0000)
showTabs(): idem
redirectIfNecessary(): idem
process.php: idem

ChangeLog
inc/functions.php
inc/interface.php
index.php
process.php

index cf2a95ee610edf0457a4897e26f41b8a8326adcb..4530ce983eb66e389a62d2b7830ef6fb301a92bb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
 0.17.10
        update: make object form messages consistent (by Tyler J. Wagner)
        update: sort object ports in a more reasonable manner
+       update: enable class methods as handlers (by James Tutton)
        bugfix: completely fix ticket:211
        bugfix: declare charset in HTTP header (#312)
 0.17.9 2010-02-17
index 4763da389e90becf1b74ee87a68669b3c85e3552..9da0cc656d50d9ec6bba4b8a3e4f1c991a8f7ae6 100644 (file)
@@ -1112,7 +1112,11 @@ function redirectIfNecessary ()
        if (isset ($tmap[$pageno][$tabno]))
                redirectUser ($pageno, $tmap[$pageno][$tabno]);
        // check if we accidentaly got on a dynamic tab that shouldn't be shown for this object
-       if (isset ($trigger[$pageno][$tabno]) and !strlen ($trigger[$pageno][$tabno] ()))
+       if
+       (
+               isset ($trigger[$pageno][$tabno]) and
+               !strlen (call_user_func ($trigger[$pageno][$tabno]))
+       )
                redirectUser ($pageno, 'default');
 }
 
index d6947d92cb3e43305381207d52ae0faf58e95870..e61990ba7d02fd7226d1c9ab3e3e3a3aa0791903 100644 (file)
@@ -6064,7 +6064,7 @@ function showTabs ($pageno, $tabno)
                // Dynamic tabs should only be shown in certain cases (trigger exists and returns true).
                if (!isset ($trigger[$pageno][$tabidx]))
                        $tabclass = 'std';
-               elseif (!strlen ($tabclass = $trigger[$pageno][$tabidx] ()))
+               elseif (!strlen ($tabclass = call_user_func ($trigger[$pageno][$tabidx])))
                        continue;
                if ($tabidx == $tabno)
                       $tabclass = 'current'; // override any class for an an active selection
index 4f02a061d2e0340d98087705a18cce225229f8e2..139d8b54e63cc1b6abe6f4572ca88c9897d20b7b 100644 (file)
--- a/index.php
+++ b/index.php
@@ -79,12 +79,12 @@ if (isset ($tabhandler[$pageno][$tabno]))
                                throw new RuntimeException ('Dispatching error for bypass parameter');
                }
                showMessageOrError();
-               $tabhandler[$pageno][$tabno] ($_REQUEST[$page[$pageno]['bypass']]);
+               call_user_func ($tabhandler[$pageno][$tabno], $_REQUEST[$page[$pageno]['bypass']]);
        }
        else
        {
                showMessageOrError();
-               $tabhandler[$pageno][$tabno] ();
+               call_user_func ($tabhandler[$pageno][$tabno]);
        }
 }
 elseif (isset ($page[$pageno]['handler']))
index d022e5f664ea929fae61e43d058ab4ce66c93fad..c1f741bb6a5a474052b2bdd32576c448dad0d834 100644 (file)
@@ -27,7 +27,7 @@ if (!isset ($delayauth[$pageno][$tabno][$op]) and !permitted())
        $location = buildWideRedirectURL (oneLiner (157)); // operation not permitted
 else
 {
-       $location = $ophandler[$pageno][$tabno][$op]();
+       $location = call_user_func ($ophandler[$pageno][$tabno][$op]);
        if (!strlen ($location))
        {
                throw new RuntimeException('Operation handler failed to return its status');