⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 control.inc.svn-base

📁 PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。
💻 SVN-BASE
字号:
<?php/** * $Id$ * * Contains the controller helper functions. * * KnowledgeTree Community Edition * Document Management Made Simple * Copyright (C) 2008 KnowledgeTree Inc. * Portions copyright The Jam Warehouse Software (Pty) Limited *  * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License version 3 as published by the * Free Software Foundation. *  * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more * details. *  * You should have received a copy of the GNU General Public License * along with this program.  If not, see <http://www.gnu.org/licenses/>. *  * You can contact KnowledgeTree Inc., PO Box 7775 #87847, San Francisco,  * California 94120-7775, or email info@knowledgetree.com. *  * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU General Public License version 3. *  * In accordance with Section 7(b) of the GNU General Public License version 3, * these Appropriate Legal Notices must retain the display of the "Powered by * KnowledgeTree" logo and retain the original copyright notice. If the display of the  * logo is not reasonably feasible for technical reasons, the Appropriate Legal Notices * must display the words "Powered by KnowledgeTree" and retain the original  * copyright notice. * Contributor( s): ______________________________________ *//** * Redirects to the specified URL * * @param string the URL to forward to */function redirect($url) {    header("Location: $url");}/** * Performs a redirect through the controller. * Takes a controller action and queryString and builds url. * * @param string the controller action * @param string additional querystring vars */function controllerRedirect($sAction, $sQueryString = "") {    global $default;    // generate url    $url = generateControllerUrl($sAction, $sQueryString);    // now redirect    if (KTLOG_CACHE) $default->log->debug("controllerRedirect: redirect to $url");    redirect($url);    exit(0);}/** * Generates a link * * @param string the url to link to * @param string the querystring * @param string the link text (optional) * @return string the html link if the link text is specified, otherwise just the url */function generateLink($sTargetPage, $sQueryString = "", $sLinkText = "", $bLinkUrl = false) {    global $default;    $sLink = "http" . ($default->sslEnabled ? "s" : "") . "://" . $default->serverName .             ((substr($sTargetPage, 0, strlen($default->rootUrl)) != $default->rootUrl) ? $default->rootUrl : "") .             (substr($sTargetPage, 0, 1) == "/" ? "" : "/") .             $sTargetPage;    $sLink = KTUtil::addQueryString($sLink, $sQueryString);	if($bLinkUrl == true){		$sLinkText = $sLink;	}    return (strlen($sLinkText) > 0) ? "<a href=\"$sLink\">$sLinkText</a>" : $sLink;}/** * Returns a controller url. * * @param string the controller action to generate a url for * @param string additional querystring parameters (optional) * @return string the controller url, empty string if no action is supplied */function generateControllerUrl($sAction, $sQueryString = "", $bReturnLink = true) {    global $default;    $qs = "";    if (!empty($sQueryString)) {        $qs = 'qs=' . urlencode($sQueryString);    }    if (strlen($sAction) > 0) {        if ($bReturnLink) {            return generateLink("/control.php?action=$sAction", $qs);        } else {            if (empty($qs)) {                return $default->rootUrl .  "/control.php?action=$sAction";            } else {                return $default->rootUrl .  "/control.php?action=$sAction&$qs";            }        }    } else {        return "";    }}/** * Generates a link via the control page, with the passed action * * @param string the controller action to generate a link for * @param string the text of the link * @param string the querystring (optional) * @return string the generated href */function generateControllerLink($sAction, $sQueryString = "", $sLinkText = "", $bLinkUrl = false) {    $qs = "";    if (!empty($sQueryString)) {        $qs = 'qs=' . urlencode($sQueryString);    }    return generateLink("/control.php?action=$sAction", $qs, $sLinkText, $bLinkUrl);}/** * Checks the current session and redirects to the login page * if the redirect parameter is true. * * @param boolean whether to automatically redirect to the login page on session verification failure * @param boolean optional parameter set if we're downloading a file */function checkSessionAndRedirect($bRedirect, $bDownload = false) {    global $default;    $session = new Session();    $sessionStatus = $session->verify();    if ($sessionStatus === true) {        if (KTLOG_CACHE) $default->log->debug("checkSession:: returning true");        return true;    }    // verification failed    if (KTLOG_CACHE) $default->log->debug("checkSession:: session check failed");    if (empty($bRedirect)) {        return $sessionStatus;    }    $sErrorMessage = "";    if (PEAR::isError($sessionStatus)) {        $sErrorMessage = $sessionStatus->getMessage();    }    $oKTConfig = KTConfig::getSingleton();    $dest = 'login';    if ($oKTConfig->get('allowAnonymousLogin', false)) { $dest = 'dashboard'; }    // redirect to login with error message    if ($sErrorMessage) {        // session timed out        $url = generateControllerUrl($dest, "errorMessage=" . urlencode($sErrorMessage));    } else {        $url = generateControllerUrl($dest);    }    $redirect = urlencode(KTUtil::addQueryStringSelf($_SERVER["QUERY_STRING"]));    if ((strlen($redirect) > 1)) {        if (KTLOG_CACHE) $default->log->debug("checkSession:: redirect url=$redirect");        // this session verification failure represents either the first visit to        // the site OR a session timeout etc. (in which case we still want to bounce        // the user to the login page, and then back to whatever page they're on now)        $url = $url . "&redirect=" . $redirect;    }    if (KTLOG_CACHE) $default->log->debug("checkSession:: about to redirect to $url");    redirect($url);    exit;}/** * Verifies the current session * Automatically redirects to the login page on session verification failure * @param boolean optional parameter set if we're downloading a file */function checkSession($bDownload = false, $bHandleNoAccess = true) {    global $default;    if (checkSessionAndRedirect(true, $bDownload)) {        if (KTLOG_CACHE) $default->log->debug("control.inc: print the session variables: " . arrayToString($_SESSION));        // the session is cool, now check if we access to this page        $pageName = KTUtil::getRequestScriptName($_SERVER);        if (KTLOG_CACHE) $default->log->debug("control.inc: page=" . $pageName . " ? " . $_SESSION["pageAccess"][$pageName]);        if ($_SESSION["pageAccess"][$pageName]) {            return true;        } else {            if ($bHandleNoAccess === true) {                print "Access restricted\n";                exit(0);            }            return false;        }    }    // if the check session fails, we'll be redirected to the login page}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -