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

📄 ktentity.inc.svn-base

📁 PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。
💻 SVN-BASE
📖 第 1 页 / 共 3 页
字号:
            $ret = $this->_set($sElement, $sValue);            if (PEAR::isError($ret)) {                return $ret;            }        }        return true;    }    function _set (&$element, &$params) {        $this->$element = $params;        return array(true, true);    }    function &_getElementFromMethod ($sElement) {        // The element is probably lower-case, for various reasons.  Get        // the correct case from the aFieldToSelect dictionary's keys.        //        // If the element isn't in the case array, the method doesn't        // exist.        $sClassName = get_class($this);        $aCache = KTUtil::arrayGet($GLOBALS['_LCASECACHE'], $sClassName);        $sLowerElement = strtolower($sElement);        if ($aCache) {            $r = KTUtil::arrayGet($aCache['fieldnames'], $sLowerElement);            if ($r) { return $r; }        }        $array = array_keys($this->_aFieldToSelect);        if (!$aCache) {            $case = array();            foreach($array as $k) {                $case[strtolower($k)] = $k;            }            foreach($case as $k => $v) {               $case[substr($k, 1)] = $v;            }        } else {            $case = $aCache['fieldnames'];        }        //var_dump($case);        if (!$aCache) {            $aCache = array();            $aCache['fieldnames'] = $case;        }        $GLOBALS['_LCASECACHE'][$sClassName] =& $aCache;        if (array_key_exists($sLowerElement, $case)) {            return $case[$sLowerElement];        }        return PEAR::raiseError(_kt("No such element"));    }    function _fieldValues () {        $aRet = array();        foreach ($this->_aFieldToSelect as $k => $v) {            if ($k === 'iId') {                continue;            }            $aRet[$v] = $this->$k;        }        return $aRet;    }    function updateFromArray ($aOptions) {        $ret = $this->load();        if (PEAR::isError($ret)) {            return $ret;        }        $ret = $this->loadFromArray($aOptions);        if (PEAR::isError($ret)) {            return $ret;        }        $ret = $this->update();        if (PEAR::isError($ret)) {            return $ret;        }        if ($ret === false) {            return PEAR::raiseError(sprintf(_kt("update for class %s failed"), $sClassName));        }        return true;    }    function _ktentityOptions() {        return array(            'orderby' => 'id',        );    }}class KTEntityUtil {    function &getList2($sClassName, $aWhereClause = null, $aOptions = null) {        $sTable = call_user_func(array($sClassName, "_table"));        return KTEntityUtil::getList($sTable, $sClassName, $aWhereClause, $aOptions);    }    function &getList($sTable, $sClassName, $aWhereClause = null, $aOptions = null) {        global $default;        if (is_null($aOptions)) {            $aOptions = array();        }        $aBaseOpts = call_user_func(array($sClassName, "_ktentityOptions"));        $aOptions = KTUtil::meldOptions($aBaseOpts, $aOptions);        $bIDs = false;        $bIDs = KTUtil::arrayGet($aOptions, "ids", false);        $sIDField = 'id';        $cache = KTUtil::arrayGet($aOptions, 'cache', false);        if (!is_array($aWhereClause)) {            $aWhereClause = array($aWhereClause, array());        }        if (!$cache) { // && EVIL_CACHE_GRIND) {            $cache = 'auto';        }        if (isset($GLOBALS['_STOPCACHING'][$sClassName])) {            if ($GLOBALS['_STOPCACHING'][$sClassName] > 5) {                $cache = false;            }        }        if (isset($aOptions['orderby'])) {            $sOrderBy = $aOptions['orderby'];            if (!empty($aWhereClause[0])) {                $aWhereClause[0] .= " ORDER BY " . $sOrderBy;            } else {                $aWhereClause[0] = "ORDER BY " . $sOrderBy;            }        }        $sIDField = KTUtil::arrayGet($aOptions, "idfield", 'id');        $aWhereClause[2] = $sIDField;        if (isset($aOptions['limit'])) {            if (isset($aOptions['offset'])) {                $iOffset = $aOptions['offset'];            } else {                $iOffset = 0;            }            $iLimit = $aOptions['limit'];            if ($iOffset) {                $aWhereClause[0] .= " LIMIT $iOffset, $iLimit";            } else {                $aWhereClause[0] .= " LIMIT $iLimit";            }        }        $fullselect = KTUtil::arrayGet($aOptions, 'fullselect', false);        if ($cache) {            if ($cache === 'auto') {                $vals = serialize($aWhereClause);            } else if (is_array($aWhereClause)) {                $vals = serialize($aWhereClause[1]);            } else {                $vals = serialize($aWhereClause);            }            if (KTLOG_CACHE) $default->log->debug(sprintf("Trying list cache for class %s, %s: %s", $sClassName, $cache, $vals));            $oCache =& KTCache::getSingleton();            $suffix = '';            if ($fullselect) {                $suffix = '_fullselect';            }            $group = sprintf("%s/%s%s", $sClassName, $cache, $suffix);            list($bCached, $mCached) = $oCache->get($group, $vals);        } else {            $bCached = false;        }        if ($cache && !$bCached) {            global $default;            if (KTLOG_CACHE) $default->log->debug(sprintf("No list cache for class %s, %s: %s", $sClassName, $cache, $vals));        }        if ($bCached && EVIL_CACHE_GRIND) {            if (!empty($fullselect)) {                $oObject = new $sClassName;                $select = $oObject->_getSqlSelection();                $sQuery = "SELECT $select FROM " . $sTable;/*ok*/            } else {                $sIDField = KTUtil::arrayGet($aOptions, "idfield", 'id');                $sQuery = "SELECT $sIDField FROM " . $sTable;/*ok*/            }            $aParams = array();            if (!empty($aWhereClause[0])) {                if (is_string($aWhereClause)) {                    if (substr($aWhereClause, 0, 5) != 'WHERE') {                        if (substr($aWhereClause, 0, 5) != 'ORDER') {                            $sQuery .= ' WHERE';                        }                    }                    $sQuery .= ' ' . $aWhereClause;                } else if (is_array($aWhereClause)) {                    if (substr($aWhereClause[0], 0, 5) != 'WHERE') {                        if (substr($aWhereClause[0], 0, 5) != 'ORDER') {                            $sQuery .= ' WHERE';                        }                    }                    $sQuery .= ' ' . $aWhereClause[0];                    $aParams = $aWhereClause[1];                } else {                    return new PEAR_Error('Weird WhereClause passed');                }            }            if (!empty($fullselect)) {                $aIDs = DBUtil::getResultArray(array($sQuery, $aParams));            } else {                $aIDs = DBUtil::getResultArrayKey(array($sQuery, $aParams), $sIDField);            }            // compare mcached == $aIds            if ($aIDs != $mCached) {                /*                print "==================\n\n\n\n\n";                var_dump($aIDs);                print "------\n";                var_dump($mCached);                */                $oCache->alertFailure($group, array('Stored IDS != Cache IDS'));            }        } else if ($bCached) {            if (KTLOG_CACHE) $default->log->debug(sprintf("Using object cache for class %s, %s: %s", $sClassName, $cache, $vals));            $aIDs = $mCached;        /* */        } else {            if (!empty($fullselect)) {                $oObject = new $sClassName;                $select = $oObject->_getSqlSelection();                $sQuery = "SELECT $select FROM " . $sTable;/*ok*/            } else {                $sIDField = KTUtil::arrayGet($aOptions, "idfield", 'id');                $sQuery = "SELECT $sIDField FROM " . $sTable;/*ok*/            }            $aParams = array();            if (!is_null($aWhereClause[0])) {                if (is_string($aWhereClause)) {                    if (substr($aWhereClause, 0, 5) != 'WHERE') {                        if (substr($aWhereClause, 0, 5) != 'ORDER') {                            $sQuery .= ' WHERE';                        }                    }                    $sQuery .= ' ' . $aWhereClause;                } else if (is_array($aWhereClause)) {                    if (substr($aWhereClause[0], 0, 5) != 'WHERE') {                        if (substr($aWhereClause[0], 0, 5) != 'ORDER') {                            $sQuery .= ' WHERE';                        }                    }                    $sQuery .= ' ' . $aWhereClause[0];                    $aParams = $aWhereClause[1];                } else {                    return new PEAR_Error('Weird WhereClause passed');                }            }            if (!empty($fullselect)) {                $aIDs = DBUtil::getResultArray(array($sQuery, $aParams));            } else {                $aIDs = DBUtil::getResultArrayKey(array($sQuery, $aParams), $sIDField);            }        }        if (PEAR::isError($aIDs)) {            return $aIDs;        }        if ($cache && !$bCached) {            if (KTLOG_CACHE) $default->log->debug(sprintf("Setting object cache for class %s, %s, %s", $sClassName, $cache, $vals));            $oCache->set($group, $vals, $aIDs);        }        if ($bIDs === true) {            return $aIDs;        }        if (!empty($fullselect)) {            $aRet =& KTEntityUtil::loadFromArrayMulti($sClassName, $aIDs);            return $aRet;        }        $aRet = array();        foreach ($aIDs as $iId) {            $aRet[] = call_user_func(array($sClassName, 'get'), $iId);        }        return $aRet;    }    function &createFromArray ($sClassName, $aOptions) {        $oObject = new $sClassName;        $ret = $oObject->loadFromArray($aOptions);        if (PEAR::isError($ret)) {            return $ret;        }

⌨️ 快捷键说明

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