获取moodle版本信息,无管理员访问权限

时间:2012-07-18 18:39:16

标签: moodle

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

7 个答案:

答案 0 :(得分:27)

要查看当前版本的moodle,您只需阅读此文件: http://yourmoodlesite/lib/upgrade.txt

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

答案 1 :(得分:6)

很抱歉,这些说明可能看起来有些模糊,但这是我能找到只获得“老师”级访问权限的Moodle版本的唯一方式。

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

答案 2 :(得分:1)

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

此外,检查一组文件的存在/不存在是一种常见的方式(css,html,js,icon等)

如果找到具体的解决方案,我会再次编辑。

首先编辑: 对于版本19或更高版本,您可以从https://github.com/moodle/moodle/blob/MOODLE_19_STABLE/README.txt

的readme.txt文件中直接检查版本

答案 3 :(得分:1)

作为TA,我不想乱用备份听起来很奇怪,但考虑到我的独特地位,合理(对我而言)。

关于我使用的moodle的实现,使用TA权限,页面底部会出现moodle docs的链接,如果你打开这个链接,它会带你到moodle docs页面moodle_url/moodle_version/___

也许这对我的系统来说很特殊,但我相信这是默认的设置。

答案 4 :(得分: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;

}

答案 5 :(得分:0)

如果您甚至在该实例上都没有帐户,则仍然可以找到版本。 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

答案 6 :(得分:-1)

不是默认情况下,因为这可以用来收获过时的moodle网站。

您可以创建一个相当容易的脚本,例如:

<?php
require_once('config.php');
echo 'Version: '.$CFG->version;
echo 'Humand readable release: '.$CFG->release;