コード例 #1
0
/**
 * 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);
}
コード例 #2
0
 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;
     }
 }
コード例 #3
0
 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>&nbsp;</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'>&nbsp;</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;
 }
コード例 #4
0
 function redirect404()
 {
     fvDispatcher::getInstance()->redirect(fvSite::$fvConfig->get('page_404'), 0, 404);
 }
コード例 #5
0
ファイル: index.php プロジェクト: newnamecomua/engineown
<?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>";*/