检测用户是否是第一次访问 Moodle 2.7 中的某些页面以向他显示界面上发生了一些变化

Detecting if it is the first time a user access some pages in Moodle 2.7 to show him that something changed on the interface

以下是我对此任务的限制:

所以我需要确定用户是否是在界面更新后第一次访问 Moodle 上的某些页面以向他们展示新内容。我想在更新页面时做一些像 Google 那样的事情。

'Ow, what is new? this, this and that. Okay? End of story and you will never see me again.'

我在文件 'columns3.php' 中找到了 'Object' '$USER'文件夹“layout”。 这个 '$USER' 提供了很多有用的信息,也许对我有用。

是否可以使用引用的 'Objet' 中的任何信息来让我只为用户显示一次上下文帮助?或者,是否有任何其他地方可以找到一些我可以用于我的目的的数据?

将通过前端文件 运行 呈现新内容的上下文帮助,并且已经准备好实施。

您可以采用以下方法: 在该界面将指向 运行 的任何页面上,使用以下条件对 mdl_log table 进行查询:

  1. userid 列值 = $USER->id
  2. url 列值 = 任何可能的 url 使用该接口的地方。
  3. 并且 time 列值 > 更新日期 界面

如果该查询 returns 0 个结果,那么这意味着自您安装该页面以来用户还没有访问过该页面,因此显示您的通知框或其他任何内容,否则不要显示您的通知框。

另一种可能的方法是在接口代码上进行验证,这样无论何时使用它都会检查:

  1. 当前$USER->id invoked之前有此代码吗? (您可以添加一个 mdl_user table 的布尔字段并简单地存储一个值 (1 或 0)跟踪用户是否在更新后使用了界面)。
  2. 声明一个全局 $VISITED 变量并根据步骤 1 的结果分配适当的值,以备后用 在您的 php 查看代码(html)
  3. 在你的phphtml文件中做:(If $VISITED == 0) THEN show_notice_box ELSE do nothing