aBreadcrumbs[] = array('action' => 'dashboard', 'name' => _kt('Dashboard')); $this->aBreadcrumbs[] = array('name' => _kt('Help')); parent::KTStandardDispatcher(); } function is_replacement() { return $this->bIsReplacement; } function do_main() { // store referer $sBackKey = KTUtil::arrayGet($_REQUEST, 'back_key', false); if(!$sBackKey) { $sReferer = KTUtil::arrayGet($_SERVER ,'HTTP_REFERER'); $sBackKey = KTUtil::randomString(); $_SESSION[$sBackKey] = $sReferer; } $pathinfo = KTUtil::arrayGet($_SERVER, 'PATH_INFO'); if (empty($pathinfo)) { $this->oPage->setTitle(_kt('No help page specified.')); $this->oPage->addError(_kt('No help page specified.')); return ' '; } $can_edit = Permission::userIsSystemAdministrator($_SESSION['userID']); $help_path = KTHelp::getHelpSubPath($pathinfo); if ($help_path == false) { $this->oPage->setTitle(_kt('Invalid help location specified.')); $this->oPage->addError(_kt('Invalid help location specified.')); return ' '; } // We now check for substitute help files. try to generate an error. $oReplacementHelp = KTHelpReplacement::getByName($help_path); if (KTHelp::isImageFile($help_path)) { KTHelp::outputHelpImage($help_path); } else { // not an image, so: $aHelpInfo = KTHelp::getHelpFromFile($pathinfo); } // NORMAL users never see edit-option. if (!$can_edit) { if (!PEAR::isError($oReplacementHelp)) { $this->oPage->setTitle($oReplacementHelp->getTitle()); //return $oReplacementHelp->getDescription(); } elseif ($aHelpInfo != false) { $this->oPage->setTitle($aHelpInfo['title']); //return $aHelpInfo['body']; } else { $this->oPage->setTitle(_kt('Invalid help location specified.')); $this->oPage->addError(_kt('Invalid help location specified.')); return ' '; } } if (!PEAR::isError($oReplacementHelp)) { $aHelpInfo['title'] = $oReplacementHelp->getTitle(); $aHelpInfo['body'] = $oReplacementHelp->getDescription(); } // we now _can_ edit. $this->oPage->setTitle($aHelpInfo['title']); $this->aBreadcrumbs[] = array('url' => $_SERVER['PHP_SELF'], 'name' => $aHelpInfo['title']); $oTemplating =& KTTemplating::getSingleton(); $oTemplate = $oTemplating->loadTemplate("ktcore/help_with_edit"); $aTemplateData = array( "context" => $this, "help_body" => $aHelpInfo['body'], "target_name" => $_SERVER['PATH_INFO'], "back_key" => $sBackKey, 'can_edit' => $can_edit, ); return $oTemplate->render($aTemplateData); } function do_go_back() { // get referer $sBackKey = KTUtil::arrayGet($_REQUEST, 'back_key', false); if($sBackKey) { $sReferer = $_SESSION[$sBackKey]; redirect($sReferer); exit(0); } else { $this->errorRedirectToMain(_kt("Invalid return key from help system.")); } } } $oDispatcher = new HelpDispatcher(); $oDispatcher->dispatch(); ?>