如何在Moodle中获取活动的周期?

时间:2014-10-31 07:18:01

标签: php moodle

我在特定的周节Moodle中添加活动(比如分配)。现在考虑我只能访问该活动。我怎么知道该活动的开始和结束日期?

考虑我在

下添加活动
30 September - 6 October.

我怎样才能得到这个日期?

我知道登录的用户详细信息在 $ USER 对象中可用,并且可以从任何页面访问。

同样,我必须从某些页面获取活动的日期位置。我怎么能得到这个。我认为问题很清楚,任何帮助都很棒......

1 个答案:

答案 0 :(得分:0)

这是可用性API的一部分:https://docs.moodle.org/dev/Availability_API

这取决于您想要获取这些信息的上下文。

例如,Assign活动包含数据库字段duedateallowsubmissionsfromdate,可让您获取活动的开始日期和结束日期。

这可能是如上所述的查询:

global $DB;
$query = 'SELECT id, duedate, allowsubmissionsfromdate FROM {assign} WHERE id = :id';
$results = $DB->get_record_sql($query, array('id' => 1));

编辑:

您应该查看mdl_course_sections表。周课程格式定义了两个日期availablefromavailableuntil

获得课程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 |
+-----+---------------+----------------+