public static function _($key) { list($key, $prefix, $file, $func) = self::extract($key); if (array_key_exists($key, self::$registry)) { $function = self::$registry[$key]; $args = func_get_args(); // Remove function name from arguments array_shift($args); return MHtml::call($function, $args); } $className = $prefix . ucfirst($file); if (!class_exists($className)) { mimport('framework.filesystem.path'); self::addIncludePath(MPATH_MIWI . '/proxy/html/html'); if ($path = MPath::find(MHtml::$includePaths, strtolower($file) . '.php')) { require_once $path; if (!class_exists($className)) { MError::raiseError(500, MText::sprintf('MLIB_HTML_ERROR_NOTFOUNDINFILE', $className, $func)); return false; } } else { MError::raiseError(500, MText::sprintf('MLIB_HTML_ERROR_NOTSUPPORTED_NOFILE', $prefix, $file)); return false; } } $toCall = array($className, $func); if (is_callable($toCall)) { MHtml::register($key, $toCall); $args = func_get_args(); // Remove function name from arguments array_shift($args); return MHtml::call($toCall, $args); } else { MError::raiseError(500, MText::sprintf('MLIB_HTML_ERROR_NOTSUPPORTED', $className, $func)); return false; } }