/** * defaultPluginHandler * NOTE: Registered in constructor * * @param string $name * @param string $type * @param string $template * @param string $callback * @param string $script * @return boolean true on success, false on failure */ public function defaultPluginHandler($name, $type, $template, &$callback, &$script, &$cachable) { debug_buffer('', "Start Load Smarty Plugin {$name}/{$type}"); $cachable = TRUE; $config = cmsms()->GetConfig(); $fn = cms_join_path($config['root_path'], 'plugins', $type . '.' . $name . '.php'); if (file_exists($fn)) { // plugins with the smarty_cms_function require_once $fn; $func = 'smarty_cms_' . $type . '_' . $name; $script = $fn; if (function_exists($func)) { $callback = $func; $cachable = FALSE; debug_buffer('', "End Load Smarty Plugin {$name}/{$type}"); return TRUE; } $func = 'smarty_' . $type . '_' . $name; $script = $fn; if (function_exists($func)) { $callback = $func; $cachable = TRUE; debug_buffer('', "End Load Smarty Plugin {$name}/{$type}"); return TRUE; } } if (cmsms()->is_frontend_request()) { $row = cms_module_smarty_plugin_manager::load_plugin($name, $type); if (is_array($row) && is_array($row['callback']) && count($row['callback']) == 2 && is_string($row['callback'][0]) && is_string($row['callback'][1])) { $cachable = $row['cachable']; $callback = $row['callback'][0] . '::' . $row['callback'][1]; return TRUE; } } return FALSE; }