- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试更改 2.6 版本中的 Moodle。我想做这样的事情:当用户登录时,他有权观看所有 Material ,但仅当他的帐户处于事件状态时。我想编辑 sql 数据库以添加 1 个字段“is_active”并在那里设置日期时间戳。例如,我有用户 John Doe,我将 2014 年 2 月 25 日的“is_active”字段放入数据库中,他可以观看 2014 年 2 月 25 日之前的所有类(class)和内容,之后他的帐户将停用,当他尝试登录时,他将获得信息他的帐户未激活,他必须与管理员联系。
你能告诉我当用户尝试登录时数据库查询会发生变化以检查该权限吗?我认为解决方案是从服务器获取当前日期并与数据库中的日期进行检查。如果系统日期较低,则数据库用户有权访问,如果日期较高,则用户无权访问,但他会获取信息。
如果有人不明白,抱歉我的英语写在评论中,我会尝试描述更多。
最佳答案
我将创建一个用户配置文件字段“is_active”,选择日期时间并将其设置为“不可见”
网站管理员 -> 用户 -> 帐户 -> 用户个人资料字段
http://docs.moodle.org/26/en/User_profile_fields
然后创建一个本地插件,使用 cron 检查日期并将用户设置为暂停
在/local/is_active/version.php - http://docs.moodle.org/dev/version.php
defined('MOODLE_INTERNAL') || die();
$plugin->version = 201402301; // Plugin version
$plugin->requires = 2013051402; // Moodle version.
$plugin->component = 'local_is_active'; // Component name
$plugin->cron = 1; // In seconds - how often should this be run?
在/local/is_active/lang/en/local_is_active.php
$string['pluginname'] = 'Is active';
在/local/is_active/lib.php 中有一个 cron 函数 local_xxx_cron() ,该函数将用户表更新为挂起。我还没有测试过 SQL,但是类似这样
defined('MOODLE_INTERNAL') || die();
function local_is_active_cron() {
$sql = "UPDATE {user}
SET suspended = :suspended
WHERE EXISTS (SELECT userid
FROM {user_info_field} f
JOIN {user_info_data} d ON d.fieldid = f.id
AND d.data < :now
AND d.userid = mdl_user
WHERE f.shortname = :shortname)";
$params = array('suspended' => 1,
'now' => time(),
'shortname' => 'is_active');
$DB->execute($sql, $params);
}
编辑:忘记添加您需要转到通知来安装插件 - 站点管理 -> 通知 - 然后 Moodle 将在 cron 运行时自动调用 cron 函数。
您可以通过转到/admin/cron.php手动运行cron
作为网站管理员,您可以通过用户个人资料编辑日期 - 转到网站管理 -> 用户 -> 帐户 -> 浏览用户列表 -> 然后单击用户个人资料旁边的铅笔
或者使用类似的方法更新日期 - 数据字段需要是 unix 时间戳而不是字符串类型日期
$activedate = strtotime('2014-02-23'); // Timestamp
$fieldid = $DB->get_field('user_info_field', 'id', array('shortname' => 'is_active'));
$params = array('fieldid' => $fieldid, 'userid' => $userid);
if ($DB->record_exists('user_info_data', $params)) {
$DB->set_field('user_info_data', 'data', $activedate, $params);
} else {
$data = new stdClass();
$data->fieldid = $fieldid;
$data->userid = $userid;
$data->data = $activedate;
$data->dataformat = 0;
$DB->insert_record('user_info_data', $data);
}
关于mysql - 如何编辑moodle sql来定时访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21972654/
我正在为 Moodle 开发自定义登录应用程序。 我只想知道Moodle用什么算法来加密密码?这样,我就可以在我的登录应用程序上对 Moodle 用户进行身份验证。 最佳答案 这取决于 Moodle
Moodle的日历可以显示用户自己的所有事件。 我想要这样的功能:我是 Moodle 网站的网络管理员,我想获取所有事件,详细说明用户的所有事件。 如何在 Moodle 的日历上获取用户的所有事件?
我为 guest 打开了测验,获得了查看、预览尝试测验的权限,但 guest 使用仍然无法运行测试。那么为什么在测验级别为 guest 提到了权限。 最佳答案 没有。测验模块明确检查以确保用户已登录。
我想在 Moodle 3.1.7 注册后禁用用户修改他们的电子邮件帐户 我试过没有运气https://moodle.org/mod/forum/discuss.php?d=169041 最佳答案 作为
我想要一个更好的工作流程来调试上传的 SCO。事实上,我必须在事件中编辑一个文件,重新打包、上传和测试。通常,我只需要更改一行代码。如果能够在服务器上编辑那个文件,那行代码,那就太好了。到目前为止,我
来自Moodle doc : A context is a space in Moodle where roles can be assigned. 据我所知,上下文是用于管理 Moodle 对象的逻
我想要一个更好的工作流程来调试上传的 SCO。事实上,我必须在事件中编辑一个文件,重新打包、上传和测试。通常,我只需要更改一行代码。如果能够在服务器上编辑那个文件,那行代码,那就太好了。到目前为止,我
我是 Moodle 新手。我的客户需要一些特殊的注册表格。我想知道如何更改通过 Moodle 仪表板创建的注册表单的代码? 最佳答案 选项 1(针对开发人员)。创建您自己的身份验证插件 https:/
我在使用 Moodle 表单实现 Moodle 上传机制时遇到了一些困难。我的目标是让用户/管理员上传图像、存储它们并稍后在 block 中访问。 目前,我的形式是这样的: $mform->addEl
我已经检查了 mod/quiz/db/services.php ,但找不到相同的 API。 注意:测验数据,如问题、答案详情。 最佳答案 是的,如果您使用的是 moodle 网络服务,则可以使用 mo
我创建了一个自定义页面,其中显示所有可用类(class)。我还上传了类(class)的图像,现在想要显示类(class)的名称和图像。我可以从数据库中获取类(class)名称,但如何获取图像。 最佳答
我想从 moodle 函数或数据库查询中列出我的类(class)部分中的模块(事件)的名称。 我可以从 mdl_course_sections 和 mdl_course_modules 表中获取部分详
我想从 moodle 函数或数据库查询中列出我的类(class)部分中的模块(事件)的名称。 我可以从 mdl_course_sections 和 mdl_course_modules 表中获取部分详
所以我想像 moodleApp 这样用 flutter 构建移动应用程序,这样应用程序就可以从现有的 moodle web 中获取 api,那么,moodle是否提供了可以自由使用的API呢?还是其他
我已经为我的网站构建了 moodle 移动定制应用程序。我成功地在浏览器中运行了该应用程序。 Command cordova serve 但是当我为 android 构建这个应用程序时,它卡在屏幕上“
我希望在每个 Moodle 类(class)中包含指向外部站点的 URL。我想将用户 ID 和类(class) ID 作为 URL 中的 GET 参数传递给其他站点。 moodle 中是否有将替换为
我被要求创建一个引擎,该引擎将从我们的本地数据库中获取类(class)(名称、简称、类别)并将其添加到moodle。 我正在考虑为此使用 Moodle API。 我尝试使用网络服务但没有运气。 我需要
我正在尝试通过 Keycloak 服务改进 Moodle 登录。 我在本地实例上安装了这个插件( https://moodle.org/plugins/auth_oidc ),安装后我开始编译所有字段
如何识别在 Moodle 中完全阅读/查看特定类(class)的所有类(class)的用户? 我创建了一门类(class)并注册了 3 个用户,创建的类(class)有 10 个主题,每个主题都包含一
我正在两个系统之间进行集成,从我的系统 PHP 中,我必须在 Moodle 上添加一个用户,在特定类(class)上添加此用户后,我已经知道 Moodle 上的类(class) ID,我不知道如何做和
我是一名优秀的程序员,十分优秀!