/** * Smarty {show_module} plugin * * Type: function<br> * Name: show_module<br> * Purpose: get module view result * @param array * @param Smarty * @return string */ function smarty_function_show_module($params, &$smarty) { if (empty($params["module"])) { $smarty->_trigger_fatal_error("[plugin] parameter 'module' cannot be empty"); } if (empty($params["view"])) { $smarty->_trigger_fatal_error("[plugin] parameter 'view' cannot be empty"); } $module_name = $params["module"]; $module_view = $params["view"]; unset($params["module"]); unset($params["view"]); $module = fvDispatcher::getInstance()->getModule($module_name, 'module'); if ($module === false) { $smarty->_trigger_fatal_error("[plugin] module '{$module_name}' does not exists"); } return $module->showModule($module_view, $params); }
public function execute() { $currentModule = fvRoute::getInstance()->getModuleName(); $currentAction = fvRoute::getInstance()->getActionName(); if ($currentModule == fvSite::$fvConfig->get("access.login_module")) { return true; } if (fvSite::$fvConfig->get("access.enable") || fvSite::$fvConfig->get("modules.{$currentModule}.access.enable")) { if ($LoggedUser = fvSite::$fvSession->getUser()) { if (fvSite::$fvConfig->get("access.login_acl") && $LoggedUser->check_acl(fvSite::$fvConfig->get("access.login_acl"))) { if (!is_array(fvSite::$fvConfig->get("modules.{$currentModule}.access.acl")) || $LoggedUser->check_acl(fvSite::$fvConfig->get("modules.{$currentModule}.access.acl"), $currentAction)) { return true; } else { fvDispatcher::getInstance()->redirect(fvSite::$fvConfig->get("access.deny_page")); } } else { fvDispatcher::getInstance()->redirect(fvSite::$fvConfig->get("access.deny_page")); } } fvSite::$fvSession->set("login/redirectURL", fvRequest::getInstance()->getRequestParameter('requestURL')); fvDispatcher::getInstance()->forward(fvSite::$fvConfig->get("access.login_page")); return false; } }
private function _parseNode($node) { $result = ''; $childNodes = array(); foreach ($node->childNodes as $childNode) { $childNodes[] = $childNode; } usort($childNodes, array($this, '__cmp')); switch ($node->nodeName) { case 'module': $moduleName = $node->getAttribute('name'); $moduleView = $node->getAttribute('view'); $moduleParams = unserialize($node->getAttribute('parameters')); $module = fvDispatcher::getInstance()->getModule($moduleName, "module"); return $module->showModule($moduleView, $moduleParams, $node->getAttribute("id")); case 'current_module': return $this->getModuleResult(); case 'vertical_layoult': $data = ''; $data .= "<table style='width: 100%' valign='top'>"; $heights = explode(',', $node->getAttribute('size')); $spacer = $node->getAttribute('spacer'); foreach ($childNodes as $key => $childNode) { $data .= "<tr" . ($heights[$key] != "*" ? " height='{$heights[$key]}'" : '') . "><td>" . $this->_parseNode($childNode) . "</td></tr>"; if ($spacer) { $data .= "<tr height='{$spacer}px'><td> </td></tr>"; } } $data .= "</table>"; return $data; case 'horisontal_layoult': $data = ''; $data .= "<table style='width: 100%' valign='top'><tr>"; $widths = explode(',', $node->getAttribute('size')); $spacer = $node->getAttribute('spacer'); foreach ($childNodes as $key => $childNode) { $data .= "<td valign=\"top\"" . ($widths[$key] != "*" ? " width='{$widths[$key]}'" : '') . ">" . $this->_parseNode($childNode) . "</td>"; if ($spacer && $key < count($childNodes) - 1) { $data .= "<td width='{$spacer}px'> </td>"; } } $data .= "</tr></table>"; return $data; case 'content_part': foreach ($childNodes as $childNode) { $result .= $this->_parseNode($childNode); } break; case 'div': $attrs = unserialize($node->getAttribute('attr')); $attrString = ""; $hasStylePropery = false; if (is_array($attrs)) { foreach ($attrs as $attr) { if ($attr["name"] == 'style') { $hasStylePropery = true; $style = $attr["value"]; $style .= $this->setStyle($node); $attrString .= " style=\"{$style}\" "; } else { $attrString .= " {$attr['name']}=\"{$attr['value']}\" "; } } } if (!$hasStylePropery) { $attrString .= "style = \"{$this->setStyle($node)}\""; } $data = "<div {$attrString}>"; foreach ($childNodes as $key => $childNode) { $data .= $this->_parseNode($childNode); } $data .= '</div>'; return $data; break; } return $result; }
function redirect404() { fvDispatcher::getInstance()->redirect(fvSite::$fvConfig->get('page_404'), 0, 404); }
<?php $stime = microtime(true); try { define("FV_APP", "backend"); require_once "../../config.inc.php"; fvDispatcher::getInstance()->process(); } catch (Exception $e) { errorHandler($e); } /*if (!fvRequest::getInstance()->isXmlHttpRequest()) echo "<CENTER><TT>" . (sprintf("%.4f", (microtime(true) - $stime))) . "</TT></CENTER>";*/