15

有没有办法只使用“教师”级别的访问权限来获取 Moodle 网站的版本信息?似乎此功能在 1.9.7 及更高版本中已删除。我正在尝试自动化上传测试的过程并且拥有版本信息会非常方便。

4

7 回答 7

57

为了查看moodle的当前版本,你只需要阅读这个文件: http://yourmoodlesite/lib/upgrade.txt

以下是有关它的更多信息: https ://github.com/moodle/moodle/blob/MOODLE_29_STABLE/lib/upgrade.txt

于 2015-07-30T08:27:08.097 回答
10

抱歉,这些说明可能看起来有些晦涩难懂,但这是我能找到的获得只有“教师”级别访问权限的 Moodle 版本的唯一方法。

作为一名教师,您应该能够创建任何课程的备份(尽管此功能可能已在您使用的 Moodle 中删除)。备份只是 zip 文件,但具有 .mbz 扩展名。如果将此扩展名更改为 .zip,您将能够提取 zip。解压缩 zip 后,打开“moodle_backup.xml”,在那里您应该在顶部附近的某处找到“moodle_release”项目,为您提供用于创建备份的 Moodle 版本。

于 2012-07-26T05:20:04.210 回答
1

当没有管理员或文件访问权限时,最肮脏的做法是与版本之间的公共文件不同。例如,index.php 文件在 v1.x 上可以是 1024Kb 长度,在 1.2 版本上可以是 1033Kb 长度。

此外,检查一组文件的存在/不存在是一种常用方法(css、html、js、图标等)

如果我找到特定的解决方案,我将再次编辑。

第一次编辑:对于 19 或更高版本,您可以直接从https://github.com/moodle/moodle/blob/MOODLE_19_STABLE/README.txt 的 readme.txt 文件中检查版本

于 2014-12-15T12:58:28.837 回答
1

作为一名助教,我不想搞乱备份,这听起来很奇怪,但考虑到我独特的位置,合理(对我来说)。

在我使用的具有 TA 权限的 moodle 的实现中,页面底部有一个指向 moodle 文档的链接,如果您打开此链接,它会将您带到带有moodle_url/moodle_version/___.

也许这是我的系统所特有的,但我相信这是默认设置。

于 2015-03-17T09:39:14.133 回答
1

如果您甚至没有实例上的帐户,您仍然可以找到版本。API 中的任何身份验证错误都将返回以下形式的错误消息:

[{
   "error":true,
   "exception":{
       "message":"Course or activity not accessible.",
       "errorcode":"requireloginerror",
       "link":"https:\/\/moodle.example.com\/",
       "moreinfourl":"http:\/\/docs.moodle.org\/36\/en\/error\/moodle\/requireloginerror"
   }
}]

moreinfourl 包含一个近似的版本号(在本例中为 3.6)。对我来说,当我访问实例的登录页面时请求了这个页面 - 一个 POST 请求

https://moodle.example.com/lib/ajax/service.php?sesskey=JQrdIcgMn4&info=core_fetch_notifications
于 2019-11-27T01:37:12.140 回答
0

我的辅助函数在这里: https ://gist.github.com/tigusigalpa/af051a9112512b1b0369572b5dbea2fd

function checkMoodleVersion($version, $checkfor = 'all', $compare = '<=') {
    global $CFG;

    $versions = [
        '3.1' => [
            'version' => '2016052300',
            'release' => '3.1'
        ],
        '3.2' => [
            'version' => '2016120500',
            'release' => '3.2'
        ],
        '3.3' => [
            'version' => '2017051500',
            'release' => '3.3'
        ],
        '3.4' => [
            'version' => '2017111300',
            'release' => '3.4'
        ],
        '3.5' => [
            'version' => '2018051700',
            'release' => '3.5'
        ],
        '3.6' => [
            'version' => '2018120300',
            'release' => '3.6'
        ]
    ];
    switch ($checkfor) {
        case 'all':
            if (isset($versions[$version]['version'])) {
                return version_compare($versions[$version]['version'], $CFG->version, $compare) &&
                    version_compare($version, $CFG->release, $compare);
            }
            break;
        case 'version':
        case 'release':
            if (isset($versions[$version][$checkfor])) {
                return version_compare($versions[$version][$checkfor], $CFG->$checkfor, $compare);
            }
            break;
    }
    return false;

}

于 2019-03-10T08:54:25.170 回答
-1

默认情况下不是,因为这可用于收集过时的 Moodle 站点。

您可以创建一个脚本来相当容易地做到这一点,例如:

<?php
require_once('config.php');
echo 'Version: '.$CFG->version;
echo 'Humand readable release: '.$CFG->release;
于 2012-07-19T04:19:27.063 回答