From 26e80bb7c1474e3bcd18b552a9eef2d72a4ccf82 Mon Sep 17 00:00:00 2001 From: e107steved <steved@e107.org> Date: Sun, 2 Mar 2008 21:08:31 +0000 Subject: [PATCH] Handle override of core shortcodes by plugins better --- e107_handlers/shortcode_handler.php | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/e107_handlers/shortcode_handler.php b/e107_handlers/shortcode_handler.php index 05a5d8416..20d7feb20 100644 --- a/e107_handlers/shortcode_handler.php +++ b/e107_handlers/shortcode_handler.php @@ -12,9 +12,9 @@ | GNU General Public License (http://gnu.org). | | $Source: /cvs_backup/e107_0.8/e107_handlers/shortcode_handler.php,v $ -| $Revision: 1.11 $ -| $Date: 2008-02-19 19:33:45 $ -| $Author: mcfly_e107 $ +| $Revision: 1.12 $ +| $Date: 2008-03-02 21:08:31 $ +| $Author: e107steved $ +----------------------------------------------------------------------------+ */ @@ -142,17 +142,22 @@ class e_shortcode } else { - $sc_perms = e_UC_PUBLIC; // Default permissions are 'everybody' if ($this->parseSCFiles == TRUE) { if (is_array($this -> registered_codes) && array_key_exists($code, $this->registered_codes)) { if($this->registered_codes[$code]['type'] == 'plugin') { - if (isset($this->registered_codes[$code]['perms'])) $sc_perms = $this->registered_codes[$code]['perms']; + if (check_class($this->registered_codes[$code]['perms'])) + { // Use the plugin 'override' shortcode $scFile = e_PLUGIN.strtolower($this->registered_codes[$code]['path']).'/'.strtolower($code).'.sc'; } else + { // Look for a core shortcode + $scFile = e_FILE."shortcode/".strtolower($code).".sc"; + } + } + else { $scFile = THEME.strtolower($code).'.sc'; } @@ -161,12 +166,7 @@ class e_shortcode { $scFile = e_FILE."shortcode/".strtolower($code).".sc"; } - if (!check_class($sc_perms)) - { // Mainly to pick up e_UC_NOBODY - $shortcode = 'return;'; - $this->scList[$code] = 'return;'; - } - elseif (file_exists($scFile)) + if (file_exists($scFile)) { $shortcode = file_get_contents($scFile); $this->scList[$code] = $shortcode;