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

📄 upgradefunctions.inc.php.svn-base

📁 PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。
💻 SVN-BASE
📖 第 1 页 / 共 5 页
字号:
                'built_in' => true,                );        $res = DBUtil::autoInsert($sPermissionsTable, $aPermissionInfo);        if (PEAR::isError($res)) {            return $res;        }        $iDeletePermissionId = $res;        $sQuery = "SELECT id FROM $sPermissionsTable WHERE name = ?";        $aParams = array("ktcore.permissions.write");        $iWritePermissionId = DBUtil::getOneResultKey(array($sQuery, $aParams), "id");        $sPermissionAssignmentsTable = KTUtil::getTableName('permission_assignments');        $sQuery = "SELECT permission_object_id, permission_descriptor_id FROM $sPermissionAssignmentsTable WHERE permission_id = ?";        $aParams = array($iWritePermissionId);        $aRows = DBUtil::getResultArray(array($sQuery, $aParams));        foreach ($aRows as $aRow) {            $aRow['permission_id'] = $iSecurityPermissionId;            DBUtil::autoInsert($sPermissionAssignmentsTable, $aRow);            $aRow['permission_id'] = $iDeletePermissionId;            DBUtil::autoInsert($sPermissionAssignmentsTable, $aRow);        }        $sDocumentTable = KTUtil::getTableName('documents');        $sFolderTable = KTUtil::getTableName('folders');        DBUtil::runQuery("UPDATE $sDocumentTable SET permission_lookup_id = NULL");        DBUtil::runQuery("UPDATE $sFolderTable SET permission_lookup_id = NULL");    }    // }}}    // {{{ addTransactionTypes3013    function addTransactionTypes3013() {        $sTable = KTUtil::getTableName('transaction_types');        $aTypes = array(                'ktcore.transactions.permissions_change' => 'Permissions changed',                'ktcore.transactions.role_allocations_change' => 'Role allocations changed',                );        foreach ($aTypes as $sNamespace => $sName) {            $res = DBUtil::autoInsert($sTable, array(                        'namespace' => $sNamespace,                        'name' => $sName,                        ));        }    }    // }}}    // {{{ createWorkflowPermission    function createWorkflowPermission() {        $sPermissionsTable = KTUtil::getTableName('permissions');        $aPermissionInfo = array(                'human_name' => 'Core: Manage workflow',                'name' => 'ktcore.permissions.workflow',                'built_in' => true,                );        $res = DBUtil::autoInsert($sPermissionsTable, $aPermissionInfo);        if (PEAR::isError($res)) {            return $res;        }        $iWorkflowPermissionId = $res;        $sQuery = "SELECT id FROM $sPermissionsTable WHERE name = ?";        $aParams = array("ktcore.permissions.security");        $iSecurityPermissionId = DBUtil::getOneResultKey(array($sQuery, $aParams), "id");        $sPermissionAssignmentsTable = KTUtil::getTableName('permission_assignments');        $sQuery = "SELECT permission_object_id, permission_descriptor_id FROM $sPermissionAssignmentsTable WHERE permission_id = ?";        $aParams = array($iSecurityPermissionId);        $aRows = DBUtil::getResultArray(array($sQuery, $aParams));        foreach ($aRows as $aRow) {            $aRow['permission_id'] = $iWorkflowPermissionId;            DBUtil::autoInsert($sPermissionAssignmentsTable, $aRow);        }        $sDocumentTable = KTUtil::getTableName('documents');        $sFolderTable = KTUtil::getTableName('folders');        DBUtil::runQuery("UPDATE $sDocumentTable SET permission_lookup_id = NULL");        DBUtil::runQuery("UPDATE $sFolderTable SET permission_lookup_id = NULL");    }    // }}}    // {{{ fixDocumentRoleAllocation    function fixDocumentRoleAllocation() {        $sUpgradesTable = KTUtil::getTableName('upgrades');        $f = array(                'descriptor' => 'sql*3.0.2*0*3.0.2/document_role_allocations.sql',                'result' => true,                );        $res = DBUtil::autoInsert($sUpgradesTable, $f);        return;    }    // }}}    // {{{ createFolderDetailsPermission    function createFolderDetailsPermission() {        $sPermissionsTable = KTUtil::getTableName('permissions');        $bExists = DBUtil::getOneResultKey("SELECT COUNT(id) AS cnt FROM $sPermissionsTable WHERE name = 'ktcore.permissions.folder_details'", 'cnt');        if ($bExists) {            return;        }        DBUtil::startTransaction();        $aPermissionInfo = array(                'human_name' => 'Core: Folder Details',                'name' => 'ktcore.permissions.folder_details',                'built_in' => true,                );        $res = DBUtil::autoInsert($sPermissionsTable, $aPermissionInfo);        if (PEAR::isError($res)) {            return $res;        }        $iFolderDetailsPermissionId = $res;        $sQuery = "SELECT id FROM $sPermissionsTable WHERE name = ?";        $aParams = array("ktcore.permissions.read");        $iReadPermissionId = DBUtil::getOneResultKey(array($sQuery, $aParams), "id");        $sPermissionAssignmentsTable = KTUtil::getTableName('permission_assignments');        $sQuery = "SELECT permission_object_id, permission_descriptor_id FROM $sPermissionAssignmentsTable WHERE permission_id = ?";        $aParams = array($iReadPermissionId);        $aRows = DBUtil::getResultArray(array($sQuery, $aParams));        foreach ($aRows as $aRow) {            $aRow['permission_id'] = $iFolderDetailsPermissionId;            DBUtil::autoInsert($sPermissionAssignmentsTable, $aRow);        }        $sDocumentTable = KTUtil::getTableName('documents');        $sFolderTable = KTUtil::getTableName('folders');        DBUtil::runQuery("UPDATE $sDocumentTable SET permission_lookup_id = NULL");        DBUtil::runQuery("UPDATE $sFolderTable SET permission_lookup_id = NULL");        DBUtil::commit();    }    //  }}}    // {{{ generateWorkflowTriggers    function generateWorkflowTriggers() {        require_once(KT_LIB_DIR . '/workflow/workflowutil.inc.php');        // get all the transitions, and add a trigger to the util with the appropriate settings.        $KTWFTriggerReg =& KTWorkflowTriggerRegistry::getSingleton();        $aTransitions = KTWorkflowTransition::getList();        foreach ($aTransitions as $oTransition) {            // guard perm            $iGuardPerm = $oTransition->getGuardPermissionId();            if (!is_null($iGuardPerm)) {                $sNamespace = 'ktcore.workflowtriggers.permissionguard';                $oPerm = KTPermission::get($iGuardPerm);                $oTrigger = $KTWFTriggerReg->getWorkflowTrigger($sNamespace);                $oTriggerConfig = KTWorkflowTriggerInstance::createFromArray(array(                            'transitionid' => KTUtil::getId($oTransition),                            'namespace' =>  $sNamespace,                            'config' => array('perms' => array($oPerm->getName())),                            ));            }            // guard group            $iGuardGroup = $oTransition->getGuardGroupId();            if (!is_null($iGuardGroup)) {                $sNamespace = 'ktcore.workflowtriggers.groupguard';                $oTrigger = $KTWFTriggerReg->getWorkflowTrigger($sNamespace);                $oTriggerConfig = KTWorkflowTriggerInstance::createFromArray(array(                            'transitionid' => KTUtil::getId($oTransition),                            'namespace' =>  $sNamespace,                            'config' => array('group_id' => $iGuardGroup),                            ));            }            // guard role            $iGuardRole = $oTransition->getGuardRoleId();            if (!is_null($iGuardRole)) {                $sNamespace = 'ktcore.workflowtriggers.roleguard';                $oTrigger = $KTWFTriggerReg->getWorkflowTrigger($sNamespace);                $oTriggerConfig = KTWorkflowTriggerInstance::createFromArray(array(                            'transitionid' => KTUtil::getId($oTransition),                            'namespace' =>  $sNamespace,                            'config' => array('role_id' => $iGuardRole),                            ));            }            // guard condition            $iGuardCondition = $oTransition->getGuardConditionId();            if (!is_null($iGuardCondition)) {                $sNamespace = 'ktcore.workflowtriggers.conditionguard';                $oTrigger = $KTWFTriggerReg->getWorkflowTrigger($sNamespace);                $oTriggerConfig = KTWorkflowTriggerInstance::createFromArray(array(                            'transitionid' => KTUtil::getId($oTransition),                            'namespace' =>  $sNamespace,                            'config' => array('condition_id' => $iGuardCondition),                            ));            }        }    }    //  }}}    // {{{ rebuildAllPermissions    function rebuildAllPermissions() {        $oRootFolder = Folder::get(1);        KTPermissionUtil::updatePermissionLookupRecursive($oRootFolder);    }    // }}}    // {{{ _upgradeSavedSearch    function _upgradeSavedSearch($aSearch) {        $aMapping = array('-1' =>  'ktcore.criteria.name',                '-6' =>  'ktcore.criteria.id',                '-2' =>  'ktcore.criteria.title',                '-3' =>  'ktcore.criteria.creator',                '-4' =>  'ktcore.criteria.datecreated',                '-5' =>  'ktcore.criteria.documenttype',                '-7' =>  'ktcore.criteria.datemodified',                '-8' =>  'ktcore.criteria.size',                '-9' =>  'ktcore.criteria.content',                '-10' =>  'ktcore.criteria.workflowstate',                '-13' =>  'ktcore.criteria.discussiontext',                '-12' =>  'ktcore.criteria.searchabletext',                '-11' =>  'ktcore.criteria.transactiontext');        $aFieldsets =& KTFieldset::getList('disabled != true');        foreach($aFieldsets as $oFieldset) {            $aFields =& DocumentField::getByFieldset($oFieldset);            foreach($aFields as $oField) {                $sNamespace = $oFieldset->getNamespace() . '.' . $oField->getName();                $sId = (string) $oField->getId();                $aMapping[$sId] = $sNamespace;            }        }        foreach(array_keys($aSearch['subgroup']) as $sgkey) {            $sg =& $aSearch['subgroup'][$sgkey];            foreach(array_keys($sg['values']) as $vkey) {                $item =& $sg['values'][$vkey];                $type = $item['type'];                $toreplace = 'bmd' . ((int)$type < 0 ? '_' : '') . abs((int)$type);                $item['type'] = $aMapping[$type];                $nData = array();                foreach($item['data'] as $k=>$v) {                    $k = str_replace($toreplace, $aMapping[$type], $k);                    $nData[$k] = $v;                }                $item['data'] = $nData;            }        }        return $aSearch;    }    // }}}    // {{{ upgradeSavedSearches    function upgradeSavedSearches() {        foreach(KTSavedSearch::getSearches() as $oS) {            $sS = $oS->getSearch();            $aSearch = UpgradeFunctions::_upgradeSavedSearch($sS);            $oS->setSearch($aSearch);            $oS->update();        }    }    // }}}    // {{{ cleanupGroupMembership    function cleanupGroupMembership() {        // 4 cases.        $child_query = 'select L.id as link_id FROM groups_groups_link as L left outer join groups_lookup as G on (L.member_group_id = G.id) WHERE G.id IS NULL';        $parent_query = 'select L.id as link_id FROM groups_groups_link as L left outer join groups_lookup as G on (L.parent_group_id = G.id) WHERE G.id IS NULL';        $group_query = 'select L.id as link_id FROM users_groups_link as L left outer join groups_lookup as G on (L.group_id = G.id) WHERE G.id IS NULL';        $user_query = 'select L.id as link_id FROM users_groups_link as L left outer join users as U on (L.user_id = U.id) WHERE U.id IS NULL';        $bad_group_links = array();        $res = DBUtil::getResultArrayKey(array($child_query, null), 'link_id');        if (PEAR::isError($res)) {            return $res;        } else {            $bad_group_links = $res;        }        $res = DBUtil::getResultArrayKey(array($parent_query, null), 'link_id');

⌨️ 快捷键说明

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