【发布时间】:2017-07-15 15:41:31
【问题描述】:
我需要为Moodle 开发一个插件,并且我需要在插件中有一些 js 和 css 文件。但我有下一个问题 - 如何从已安装的插件中使用它们?当然,我可以通过 moodle 结构硬编码他们的路径,但这是一种非常肮脏和糟糕的方式。另外,我知道我可以将所有 js 和 css 代码内联,但我认为这也是一个糟糕的决定。是否有内置的方式从插件提供资产?我试图在文档中找到它,但一无所获。
谢谢
【问题讨论】:
我需要为Moodle 开发一个插件,并且我需要在插件中有一些 js 和 css 文件。但我有下一个问题 - 如何从已安装的插件中使用它们?当然,我可以通过 moodle 结构硬编码他们的路径,但这是一种非常肮脏和糟糕的方式。另外,我知道我可以将所有 js 和 css 代码内联,但我认为这也是一个糟糕的决定。是否有内置的方式从插件提供资产?我试图在文档中找到它,但一无所获。
谢谢
【问题讨论】:
我假设您想知道如何将 CSS 和 JS 文件包含到您的插件中。 您可以通过以下命令包含一个 JS 文件:
$PAGE->requires->js( /relative/path/your_script.js');
页面下载完成后,您可以使用以下命令调用 JS 函数:
$PAGE->requires->js_init_call ( your_JS_function_name, array_of_parameters_here, bool: on DOM ready);
例如:
$PAGE->requires->js_init_call('init', array($USER->lang), true);
请务必首先使用global $PAGE; 提供$PAGE。
您的 CSS 文件可以命名为 styles.css 并放入插件的根文件夹中。该文件将被系统自动读取并包含在内。它将优先于(将覆盖其设置)系统 CSS 文件。之后,您将不得不重新加载主题缓存。
【讨论】: