Esempio n. 1
0
 /**
  * Generates URI using provided params.
  *
  * @throws InvalidArgumentException
  * @param string $controller
  * @param string $action
  * @param array $params
  * @return string
  */
 public function generateUri($controller, $action = null, array $params = array())
 {
     if (empty($controller) || empty($action) && !empty($params)) {
         throw new InvalidArgumentException("Can't generate uri for empty controller/action !");
     }
     $ctrlParts = explode('_', $controller);
     $moduleNamePrefix = str_replace('ctrl', '', strtolower($ctrlParts[1]));
     if (strlen($moduleNamePrefix) > 0) {
         $moduleNamePrefix .= '-';
     }
     $controller = trim($controller);
     $action = $action === null ? null : trim($action);
     $paramString = '';
     foreach ($params as $key => $value) {
         $paramString .= trim($key) . '/' . urlencode(trim($value)) . '/';
     }
     $className = str_replace(OW::getAutoloader()->getPackagePointer($controller) . '_', '', $controller);
     $plugin = OW::getPluginManager()->getPlugin(OW::getAutoloader()->getPluginKey($controller));
     if ($action === null) {
         return strtolower($plugin->getModuleName()) . '/' . substr(UTIL_String::capsToDelimiter($className, '-'), 1);
     }
     return $moduleNamePrefix . strtolower($plugin->getModuleName()) . '/' . substr(UTIL_String::capsToDelimiter($className, '-'), 1) . '/' . UTIL_String::capsToDelimiter($action, '-') . '/' . $paramString;
 }
Esempio n. 2
0
 /**
  * Returns file name for provided class name.
  * 
  * Examples:
  * 		`MyNewClass` => `my_new_class.php`
  * 		`OW_MyClass` => `my_class.php`
  * 		`OW_BOL_MyClass` => `my_class.php`
  *
  * @param string $className
  * @param boolean $extension
  * @return string
  */
 public function classToFilename($className, $extension = true)
 {
     // need to remove package pointer
     if (strstr($className, '_')) {
         $className = substr($className, strrpos($className, '_') + 1);
     }
     return substr(UTIL_String::capsToDelimiter($className), 1) . ($extension ? '.php' : '');
 }
Esempio n. 3
-1
 public function display($dbReady)
 {
     $dispatchAttrs = OW::getRouter()->route();
     $controllerClass = $dispatchAttrs['controller'];
     /* @var $controller INSTALL_ActionController */
     $controller = new $controllerClass();
     $controller->init($dispatchAttrs, $dbReady);
     $params = array();
     if (!empty($dispatchAttrs['vars'])) {
         $params[] = $dispatchAttrs['vars'];
     }
     call_user_func_array(array($controller, $dispatchAttrs['action']), $params);
     $template = $controller->getTemplate();
     if (empty($template)) {
         $controllerName = OW::getAutoloader()->classToFilename($controllerClass, false);
         $template = INSTALL_DIR_VIEW_CTRL . $controllerName . '_' . UTIL_String::capsToDelimiter($dispatchAttrs['action'], '_') . '.php';
         $controller->setTemplate($template);
     }
     $content = $controller->render();
     $viewRenderer = INSTALL::getViewRenderer();
     $viewRenderer->assignVars(array('pageBody' => $content, 'pageTitle' => $controller->getPageTitle(), 'pageHeading' => $controller->getPageHeading(), 'pageSteps' => INSTALL::getStepIndicator()->render(), 'pageStylesheetUrl' => INSTALL_URL_VIEW . 'style.css'));
     echo $viewRenderer->render(INSTALL_DIR_VIEW . 'master_page.php');
 }