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

📄 upgradefunctions.inc.php

📁 PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。
💻 PHP
📖 第 1 页 / 共 5 页
字号:
        if (PEAR::isError($res)) {
            return $res;
        } else {
            $bad_group_links = kt_array_merge($bad_group_links, $res);
        }

        foreach ($bad_group_links as $link_id) {
            $res = DBUtil::runQuery(array("DELETE FROM groups_groups_link WHERE id = ?", $link_id));
            if (PEAR::isError($res)) {
                return $res;
            }
        }

        $res = DBUtil::getResultArrayKey(array($group_query, null), 'link_id');
        if (PEAR::isError($res)) {
            return $res;
        } else {
            $bad_user_links = $res;
        }

        $res = DBUtil::getResultArrayKey(array($user_query, null), 'link_id');
        if (PEAR::isError($res)) {
            return $res;
        } else {
            $bad_user_links = kt_array_merge($bad_user_links, $res);
        }

        foreach ($bad_user_links as $link_id) {
            $res = DBUtil::runQuery(array("DELETE FROM users_groups_link WHERE id = ?", $link_id));
            if (PEAR::isError($res)) {
                return $res;
            }
        }

        return true;

    }
    // }}}

    // {{{  cleanupOldKTAdminVersionNotifier
    function cleanupOldKTAdminVersionNotifier() {
        global $default;
        $oldFile = KT_DIR . "/plugins/ktstandard/KTAdminVersionPlugin.php";

        if(file_exists($oldFile)) return unlink($oldFile);

        return true;
    }
    // }}}

    // {{{ updateConfigFile35
    function updateConfigFile35()
    {
        // The following is no longer needed due to defaults now being in place.
        // It also was corrupting the file "sometimes".
        // We leave the function in but do nothing so we don't mess with the upgrades table.

        return;

/*    	$config = KTConfig::getSingleton();
        $configPath = KTConfig::getConfigFilename();
    	$configPath = str_replace(array("\n","\r"), array('',''), $configPath);

        if(file_exists($configPath)) {

            $ini = new Ini($configPath);

            // Webservices Section
            $ini->addItem('webservice', 'uploadDirectory', '${varDirectory}/uploads');
            $ini->addItem('webservice', 'downloadUrl', '${rootUrl}/ktwebservice/download.php');
            $ini->addItem('webservice', 'uploadExpiry', '30');
            $ini->addItem('webservice', 'downloadExpiry', '30');
            $ini->addItem('webservice', 'randomKeyText', 'bkdfjhg23yskjdhf2iu');
            $ini->addItem('webservice', 'validateSessionCount', 'false');

            // externalBinary Section
            $ini->delSection('externalBinary');
            if(OS_WINDOWS){
                $ini->addItem('externalBinary', 'xls2csv', KT_STACK_DIR . '/bin/catdoc/xls2csv.exe', '', 'The following are external binaries that may be used by various parts of knowledgeTree.');
                $ini->addItem('externalBinary', 'pdftotext', KT_STACK_DIR . '/bin/xpdf/pdftotext.exe');
                $ini->addItem('externalBinary', 'catppt', KT_STACK_DIR . '/bin/catdoc/catppt.exe');
                $ini->addItem('externalBinary', 'pstotext', KT_STACK_DIR . '/bin/pstotext/pstotext.exe');
                $ini->addItem('externalBinary', 'catdoc', KT_STACK_DIR . '/bin/catdoc/catdoc.exe');
                $ini->addItem('externalBinary', 'antiword', KT_STACK_DIR . '/bin/antiword/antiword.exe');
                $ini->addItem('externalBinary', 'python', KT_STACK_DIR . '/openoffice/program/python.bat');
                $ini->addItem('externalBinary', 'java', KT_STACK_DIR . '/java/jre/bin/java.exe');
                $ini->addItem('externalBinary', 'php', KT_STACK_DIR . '/php/php.exe');
                $ini->addItem('externalBinary', 'df', KT_STACK_DIR . '/bin/gnuwin32/df.exe');

            } else {
                $ini->addItem('externalBinary', 'xls2csv', KT_STACK_DIR . '/common/bin/xls2csv', '', 'The following are external binaries that may be used by various parts of knowledgeTree.');
                $ini->addItem('externalBinary', 'pdftotext', KT_STACK_DIR . '/common/bin/pdftotext');
                $ini->addItem('externalBinary', 'catppt', KT_STACK_DIR . '/common/bin/catppt');
                $ini->addItem('externalBinary', 'pstotext', KT_STACK_DIR . '/common/bin/pstotext');
                $ini->addItem('externalBinary', 'catdoc', KT_STACK_DIR . '/common/bin/catdoc');
                $ini->addItem('externalBinary', 'antiword', KT_STACK_DIR . '/common/bin/antiword');
                $ini->addItem('externalBinary', 'python', KT_STACK_DIR . '/openoffice/program/python');
                $ini->addItem('externalBinary', 'java', KT_STACK_DIR . '/java/jre/bin/java');
                $ini->addItem('externalBinary', 'php', KT_STACK_DIR . '/php/bin/php');
                $ini->addItem('externalBinary', 'df', ';'. KT_STACK_DIR . '/common/bin/df');
            }

            // search Section
            $ini->addItem('search', 'resultsPerPage', 'default', "The number of results per page\r\n; defaults to 25");
            $ini->addItem('search', 'dateFormat', 'default', "The date format used when making queries using widgets\r\n; defaults to Y-m-d");

            // indexer Section
            $ini->addItem('indexer', 'coreClass', 'JavaXMLRPCLuceneIndexer', "The core indexing class\r\n;coreClass=PHPLuceneIndexer");
            $ini->addItem('indexer', 'batchDocuments', 'default', "The number of documents to be indexed in a cron session\r\n; defaults to 20");
            $ini->addItem('indexer', 'batchMigrateDocuments', 'default', "The number of documents to be migrated in a cron session\r\n; defaults to 500");
            $ini->addItem('indexer', 'luceneDirectory', '${varDirectory}/indexes', "The location of the lucene indexes");
            $ini->addItem('indexer', 'javaLuceneURL', 'default', "The url for the Java Lucene Server. This should match up with the Lucene Server configuration.\r\n; defaults to http://127.0.0.1:8875");

            // openoffice Section
            $ini->addItem('openoffice', 'host', 'default', "The host on which open office is installed\r\n; defaults to 127.0.0.1");
            $ini->addItem('openoffice', 'port', 'default', "The port on which open office is listening\r\n; defaults to 8100");

            // user_prefs Section
            $ini->addItem('user_prefs', 'passwordLength', '6', "The minimum password length on password-setting\r\n; could be moved into DB-auth-config");
            $ini->addItem('user_prefs', 'restrictAdminPasswords', 'default', "Apply the minimum password length to admin while creating / editing accounts?\r\n; default is set to \"false\" meaning that admins can create users with shorter passwords.");
            $ini->addItem('user_prefs', 'restrictPreferences', 'false', "Restrict users from accessing their preferences menus?");

            // builtinauth Section
            $ini->addItem('builtinauth', 'password_change_interval', '30', "This would force users that use the built-in authentication provider\r\n; to have to change their passwords every 30 days." ,"This is configuration for the built-in authentication provider");

            // cache Section
            if(OS_WINDOWS){
                $ini->addItem('cache', 'cacheEnabled', 'false', '', "Enable/disable the cache and set the cache location");
            } else {
                $ini->addItem('cache', 'cacheEnabled', 'true', '', "Enable/disable the cache and set the cache location");
            }

            $ini->addItem('cache', 'cacheDirectory', '${varDirectory}/cache');
            $ini->addItem('cache', 'cachePlugins', 'true');

            // KTWebDAVSettings Section
            $ini->addItem('KTWebDAVSettings', 'debug', 'off', '_LOTS_ of debug info will be logged if the following is "on"', 'This section is for KTWebDAV only');
            $ini->addItem('KTWebDAVSettings', 'safemode', 'on', 'To allow write access to WebDAV clients set safe mode to "off" below');

            // BaobabSettings Section
            $ini->addItem('BaobabSettings', 'debug', 'off', '_LOTS_ of debug info will be logged if the following is "on"', 'This section is for Boabab only');
            $ini->addItem('BaobabSettings', 'safemode', 'on', 'To allow write access to WebDAV clients set safe mode to "off" below');

            // backup Section
            $ini->addItem('backup', 'backupDirectory', 'default', "Identify location of kt-backup for database backups\r\n;backupDirectory = c:/kt-backups\r\n;backupDirectory = /tmp/kt-backups");
            $ini->addItem('backup', 'mysqlDirectory', 'default', "Identify the location of the mysql.exe and mysqldump.exe\r\n;mysqlDirectory = c:/program files/ktdms/mysql/bin");

            // clientToolPolicies Section
            $ini->addItem('clientToolPolicies', 'explorerMetadataCapture', 'true', "These two settings control whether or not the client is prompted for metadata when a\r\n;document is added to knowledgetree via KTtools. They default to true.");
            $ini->addItem('clientToolPolicies', 'officeMetadataCapture', 'true');
            $ini->addItem('clientToolPolicies', 'captureReasonsDelete', 'true', "These settings govern whether reasons are asked for in KTtools.");
            $ini->addItem('clientToolPolicies', 'captureReasonsCheckin', 'true');
            $ini->addItem('clientToolPolicies', 'captureReasonsCheckout', 'true');
            $ini->addItem('clientToolPolicies', 'captureReasonsCancelCheckout', 'true');
            $ini->addItem('clientToolPolicies', 'captureReasonsCopyInKT', 'true');
            $ini->addItem('clientToolPolicies', 'captureReasonsMoveInKT', 'true');
            $ini->addItem('clientToolPolicies', 'allowRememberPassword', 'true');

            // DiskUsage Section
            $ini->addItem('DiskUsage', 'warningThreshold', '10', "When free space in a mount point is less than this percentage,\r\n; the disk usage dashlet will highlight the mount in ORANGE", "settings for the Disk Usage dashlet");
            $ini->addItem('DiskUsage', 'urgentThreshold', '5', "When free space in a mount point is less than this percentage,\r\n; the disk usage dashlet will highlight the mount in RED");

            // CustomErrorMessages Section
            $ini->addItem('CustomErrorMessages', 'customerrormessages', 'on', 'Turn custom error messages on or off here (account wide)');
            $ini->addItem('CustomErrorMessages', 'customerrorpagepath', 'customerrorpage.php', 'Name or url of custom error page');
            $ini->addItem('CustomErrorMessages', 'customerrorhandler', 'on', 'Turn custom error handler on or off');

            // URLS Section
            $ini->delSection('urls');
            $ini->addItem('urls', 'varDirectory', '"'.str_replace('\\', '/', $config->get("urls/varDirectory")).'"', 'directories');
            $ini->addItem('urls', 'logDirectory', '${varDirectory}/log');
            $ini->addItem('urls', 'documentRoot', '"'.str_replace('\\', '/', $config->get("urls/documentRoot")).'"');
            $ini->addItem('urls', 'uiDirectory', '${fileSystemRoot}/presentation/lookAndFeel/knowledgeTree');
            $ini->addItem('urls', 'tmpDirectory', '${varDirectory}/tmp');
            $ini->addItem('urls', 'graphicsUrl', '${rootUrl}/graphics', 'urls');
            $ini->addItem('urls', 'uiUrl', '${rootUrl}/presentation/lookAndFeel/knowledgeTree');
            $ini->addItem('urls', ';dedicatedrsstitle', 'RSS Feed Title', 'RSS dedicated feed url');
            $ini->addItem('urls', ';dedicatedrssurl', '');
            $ini->addItem('urls', 'stopwordsFile', '${fileSystemRoot}/config/stopwords.txt', 'files');

            $ini->write();
        }
*/
    }
      // }}}

    // {{{ registerIndexingTasks
    /**
     * Registers the functions that are required by the indexing sub-system.
     *
     */
    function registerIndexingTasks()
    {
    	$ext = OS_WINDOWS?'bat':'sh';

    	$year = date('Y');
    	$mon = date('m');
    	$day = date('d');
    	$hour = date('H');
    	$min = date('i');
    	$min = floor( $min / 5) * 5;

		$oScheduler = new Scheduler('Indexing');
		$oScheduler->setScriptPath(KT_DIR . '/bin/indexingTask.' . $ext);
		$oScheduler->setFrequency('1min');
		$oScheduler->setFirstRunTime(date('Y-m-d H:i',mktime($hour, $min, 0, $mon, $day, $year)));
		$oScheduler->registerTask();

		$oScheduler = new Scheduler('Index Migration');
		$oScheduler->setScriptPath(KT_DIR . '/bin/indexMigrationTask.' . $ext);
		$oScheduler->setFrequency('5mins');
		$oScheduler->setFirstRunTime(date('Y-m-d H:i',mktime($hour, $min, 0, $mon, $day, $year)));
		$oScheduler->registerTask();

		$oScheduler = new Scheduler('Index Optimisation');
		$oScheduler->setScriptPath(KT_DIR . '/bin/optimizeIndexes.' . $ext);
		$oScheduler->setFrequency('weekly');
		$oScheduler->setFirstRunTime(date('Y-m-d 00:00'));
		$oScheduler->registerTask();
    }
     // }}}

    // {{{  removeAdminVersionNotifier
    function removeAdminVersionNotifier() {
        global $default;
        $oldPath = KT_DIR . "/plugins/ktstandard/AdminVersionPlugin";

        if(file_exists($oldPath)) return rmdir($oldPath);
    }
    // }}}

    // {{{  removeOldSearchPlugins
    function removeOldSearchPlugins() {
        global $default;
        $oldFile = KT_DIR . "/plugins/ktstandard/SearchDashletPlugin.php";
        if(file_exists($oldFile)) unlink($oldFile);
        $oldFile = KT_DIR . "/plugins/ktstandard/SearchDashlet.php";
        if(file_exists($oldFile)) unlink($oldFile);

        // Files MUST be removed before folders and folders MUST be empty
        $oldPath1 = KT_DIR . "/templates/ktstandard/searchdashlet/";
        UpgradeFunctions::rm_recursive($oldPath1);
        $oldPath2 = KT_DIR . "/plugins/generalmetadata/";
        UpgradeFunctions::rm_recursive($oldPath2);

        // FIXME: We should check that they all worked
        return true;
    }

    function rm_recursive($filepath)
    {
        if (is_dir($filepath) && !is_link($filepath))
        {
            if ($dh = opendir($filepath))
            {
                while (($sf = readdir($dh)) !== false)
                {
                    if ($sf == '.' || $sf == '..')
                    {
                        continue;
                    }
                    if (!UpgradeFunctions::rm_recursive($filepath.'/'.$sf))
                    {
                        //throw new Exception( $filepath.'/'.$sf.' could not be deleted.');
                        return false;
                    }
                }
                closedir($dh);
            }
            return rmdir($filepath);
        }
        return unlink($filepath);
    }
    // }}}
}

?>

⌨️ 快捷键说明

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