Moodle 3.3 - 检查用户是否在Mustache模板

时间:2017-06-25 09:32:03

标签: moodle mustache

我正在为Moodle网站创建一个小胡子模板,并希望在首页上显示一些内容,但前提是用户尚未登录。我希望我能在模板中做到这样的事情:

{{^usernotloggedin}} My content for users not logged in. {{/usernotloggedin}}

但是,如果用户是否经过身份验证,我找不到有关胡须可用的用户变量的任何文档。

任何关于在哪里寻找或如何实现这一点的建议都会很棒。

2 个答案:

答案 0 :(得分:0)

您需要调整调用模板的代码,以将该数据添加到传递给模板的上下文中。在这种情况下,您可以使用isloggedin()函数来设置要传递给模板的值。

答案 1 :(得分:0)

我希望我不会迟到这个问题,无论如何我还要加上我的答案

您的胡子文件是无法执行逻辑的简单模板。你能做的是

在您的控制器或调用渲染函数的文件中(渲染胡须文件并提供HTML),在那里应用检查

if(x[i] > x[j]){
    swap(x[i],x[j])
    swap(y[i],y[j])
}

一旦你应用了检查,你就可以发送带有标志标识符(ONLY TRUE或FALSE)的数组,胡志文件可以理解这些标识符。

例如 在您的控制器/块等中,您可以执行以下操作

require( '/path/to/moodle/config.php' );

if (isloggedin()) {
echo "you are logged in";
}

并在你的胡子文件中

$tagcloud = core_tag_collection::get_tag_cloud($this->config->tagcoll, $this->config->showstandard == core_tag_tag::STANDARD_ONLY, $this->config->numberoftags, 'name', '', $this->page->context->id, $this->config->ctx, $this->config->rec);
$content = $tagcloud->export_for_template($OUTPUT);
require( '/path/to/moodle/config.php' );

$flag = isloggedin() ? TRUE : FALSE;
array_push($content, $flag);
$this->content->text = $OUTPUT->render_from_template('core_tag/search_course_by_tags', $content);