function loadSubCapsule($path, $params = '', $sname = null) { // echo " [loading subCapsule $path with $params] "; $name = strtolower($path); if (!file_exists(CAPSULES_PATH . $path . '.view')) { if (file_exists(CAPSULES_PATH . $path . '/' . $path . '.view')) { $path = $path . '/' . $path; } } if (strstr($path, '/')) { $a = explode('/', $path); $controller = ucwords($a[count($a) - 1]); $name = strtolower($controller); } else { $controller = ucwords($path); } if (file_exists(CAPSULES_PATH . $path . '.controller')) { require_once CAPSULES_PATH . $path . '.controller'; } else { if (DEFAULT_BUFFERTIME > 0) { loadLib('bufferedcapsule'); $controller = 'Bufferedcapsule'; $params = name2url($path); } else { $controller = 'Capsule'; } } $view = $path . '.view'; $capsuleobject = new $controller($view); $capsuleobject->init($params); if (!is_null($sname)) { $name = $sname; } // echo " [name=$name] "; $this->params[$name] = $capsuleobject->getHtml(); return $capsuleobject; }
function getCapsuleFromAutomapping($surl) { if (strlen($surl) == 0) { return array(); } if ($surl[0] == '/') { $surl = substr($surl, 1); } //accept only existing Capsules $aurlparts = explode("/", $surl); $capsulename = $aurlparts[0]; if (!is_dir(CAPSULES_PATH . $capsulename)) { return array(); } $params = ''; $nurlparts = count($aurlparts); if ($nurlparts == 2) { //url like /capsulename/view $path_parts = pathinfo($surl); $filename = $path_parts['basename']; $filename = str_replace(' ', '_', $filename); $filename = str_replace('%20', '_', $filename); $capspath = CAPSULES_PATH . $capsulename . '/' . $filename . '.controller'; if (file_exists($capspath)) { return array('capsule' => $capsulename, 'controller' => $filename, 'view' => $filename, 'params' => ''); } $viewpath = CAPSULES_PATH . $capsulename . '/' . $filename . '.view'; if (DEFAULT_BUFFERTIME > 0) { loadLib('bufferedcapsule'); $controller = 'bufferedcapsule'; $params = name2url($path); } else { $controller = 'capsule'; } if (file_exists($viewpath)) { return array('capsule' => $capsulename, 'controller' => $controller, 'view' => $filename, 'params' => $params); } } if ($nurlparts == 1) { //url like /capsulename $viewpath = CAPSULES_PATH . $capsulename . '/' . $capsulename . '.view'; // echo " mapping $capsulename "; if (file_exists(CAPSULES_PATH . $capsulename . '/' . $capsulename . '.controller')) { $controller = $capsulename; } else { if (DEFAULT_BUFFERTIME > 0) { loadLib('bufferedcapsule'); $controller = 'bufferedcapsule'; $params = name2url($path); } else { $controller = 'capsule'; } } if (file_exists($viewpath)) { return array('capsule' => $capsulename, 'controller' => $controller, 'view' => $capsulename, 'params' => $params); } if (file_exists(CAPSULES_PATH . $capsulename . '/' . $capsulename . '.controller')) { return array('capsule' => $capsulename, 'controller' => $controller, 'view' => $capsulename, 'params' => $params); } } return array(); }