我在特定的周节Moodle
中添加活动(比如分配)。现在考虑我只能访问该活动。我怎么知道该活动的开始和结束日期?
考虑我在
下添加活动30 September - 6 October.
我怎样才能得到这个日期?
我知道登录的用户详细信息在 $ USER 对象中可用,并且可以从任何页面访问。
同样,我必须从某些页面获取活动的日期位置。我怎么能得到这个。我认为问题很清楚,任何帮助都很棒......
答案 0 :(得分:0)
这是可用性API的一部分:https://docs.moodle.org/dev/Availability_API
这取决于您想要获取这些信息的上下文。
例如,Assign活动包含数据库字段duedate
和allowsubmissionsfromdate
,可让您获取活动的开始日期和结束日期。
这可能是如上所述的查询:
global $DB;
$query = 'SELECT id, duedate, allowsubmissionsfromdate FROM {assign} WHERE id = :id';
$results = $DB->get_record_sql($query, array('id' => 1));
编辑:
您应该查看mdl_course_sections
表。周课程格式定义了两个日期availablefrom
和availableuntil
。
获得课程ID后(有不同的方法)
$context = context_course::instance($course->id);
您可以使用acitivity ID进行查询,如:
$section = 'select section from {course_modules} WHERE id = :id';
$results = $DB->get_record_sql($section, array('id' => xxx));
然后使用上一个查询中的部分ID查询mdl_course_sections
表:
$dates = 'select availablefrom, availableuntil from {course_modules} WHERE id = :sectionid';
查看那些提供时间戳值的样本结果,使您能够获得该部分的一周:
mysql> select id, availablefrom, availableuntil
from mdl_course_modules
where availablefrom <> 0
and availableuntil <> 0;
+-----+---------------+----------------+
| id | availablefrom | availableuntil |
+-----+---------------+----------------+
| 590 | 1414713600 | 1417392000 |
| 591 | 1414713600 | 1419984000 |
+-----+---------------+----------------+