Michael-Milette/moodle-local_contact

Moodle联系表单插件允许您创建网页表单,当支持电子邮件地址未定义时,这些表单将发送到站点的支持电子邮件地址或主要管理员。

v1.4.0 2024-04-26 16:02 UTC

This package is auto-updated.

Last update: 2024-10-03 06:45:05 UTC


README

Moodle本地联系表单插件

PHP Moodle GitHub Issues Contributions welcome License

目录

基本概述

Moodle联系表单插件处理通过网页表单提交的信息,并通过电子邮件发送。

此插件的一些示例用途包括

  • 联系我们表单;
  • 支持请求表单;
  • 课程请求表单;
  • 信息请求表单;
  • 潜在客户生成表单;
  • 会员申请表单。
  • 测验问题报告表单。

FilterCodes插件配合使用时,提供几个预配置的模板。包括

  • {formquickquestion}
  • {formcontactus}
  • {formcourserequest}
  • {formsupport}
  • {formcheckin}

请参阅快速简便方法以获取详细信息。

(回到顶部)

需求

此插件需要来自https://moodle.org的Moodle 3.0+。

它可能与Moodle 2.7及之前的版本兼容,但尚未进行测试。如果您使用它,请告诉我们。提示:您可能需要修改version.php,以便Moodle允许您在早期版本上安装它。

(回到顶部)

下载Moodle联系表单

Moodle联系表单的最新稳定版本可在以下位置获得:https://moodle.org/plugins/local_contact

Moodle联系表单的最新开发版本可在以下位置找到:https://github.com/michael-milette/moodle-local_contact

(回到顶部)

安装

像任何其他插件一样,将插件安装到以下文件夹

/local/contact

有关安装Moodle插件的详细信息,请参阅https://docs.moodle.org/en/Installing_plugins

(回到顶部)

使用

开始之前

  • 请确保在Moodle中正确配置了电子邮件设置。
  • 请确保您已在Moodle中配置了支持名称和电子邮件地址。

创建新表单

快速简便方法

到目前为止,最快开始的方式是使用FilterCodes Moodle插件。截至版本1.3.0,它包括几个纯文本标签,您可以轻松地复制并粘贴到任何Atto编辑器中。标签包括

  • {formquickquestion}:向您的课程添加“快速问题”表单。表单仅包括主题和消息字段。注意:用户必须登录,否则表单将不会显示。
  • {formcontactus}:向您的站点添加“联系我们”表单(例如:在页面中)。表单包括姓名、电子邮件地址、主题和消息字段。
  • {formcourserequest}:将“课程请求”表单添加到您的网站(例如:在页面中)。与Moodle的请求创建课程功能不同,您可以通过此标签请求创建您感兴趣的课程。也可以用来请求参加课程。表单包括姓名、电子邮件地址、课程名称、课程描述。
  • {formsupport}:将“支持请求”表单添加到您的网站(例如:在页面中)。表单包括姓名、电子邮件地址、预先确定的主题、特定主题、URL和消息字段。
  • {formcheckin}:在您的课程中添加“我在这里!”按钮。表单不包含其他字段。注意:用户必须登录,否则按钮将不会显示。

自定义方法

此插件适用于略懂HTML表单的管理员。您只需简单复制并粘贴Wiki中的示例即可开始。

要在您的网站上创建新的网页表单,首先添加一个Moodle页面或HTML块。在输入或粘贴以下类似的HTML代码之前,请确保切换到Moodle Atto WYSIWYG编辑器的源代码视图按钮。

<form action="../../local/contact/index.php" method="post" class="contact-us">
    <fieldset>
        <label for="name" id="namelabel">Your name <strong class="required">(required)</strong></label><br>
        <input id="name" name="name" type="text" size="57" maxlength="45" pattern="[A-zÀ-ž]([A-zÀ-ž\s]){2,}"
                title="Minimum 3 letters/spaces." required="required" value=""><br>
        <label for="email" id="emaillabel">Email address <strong class="required">(required)</strong></label><br>
        <input id="email" name="email" type="email" size="57" maxlength="60" required="required" value=""><br>
        <label for="subject" id="subjectlabel">Subject <strong class="required">(required)</strong></label><br>
        <input id="subject" name="subject" type="text" size="57" maxlength="80" minlength="5"
                title="Minimum 5 characters." required="required"><br>
        <label for="message" id="messagelabel">Message <strong class="required">(required)</strong></label><br>
        <textarea id="message" name="message" rows="5" cols="58" minlength="5"
                title="Minimum 5 characters." required="required"></textarea><br>
        <input type="hidden" id="sesskey" name="sesskey" value="">
        <script>document.getElementById('sesskey').value = M.cfg.sesskey;</script>
    </fieldset>
    <div>
        <input type="submit" name="submit" id="submit" value="Send">
    </div>
</form>

就这样。只需保存即可。

注意:如果您将表单放入块中,您需要调整表单的"../.."部分,以便它相对于Moodle网站的webroot。如果您使用FilterCodes插件,您可以直接使用{wwwroot},这样无论表单在哪里(页面或块),都可以正常工作。

示例

<form action="{wwwroot}/local/contact/index.php" method="post" class="contact-us">
:       :       :       :       :

要查看上述表单的完整示例,请参阅使用FilterCodes的“联系我们”示例

自定义表单

您可以根据特定需求自定义表单。您需要熟悉如何创建基本的HTML5网页表单。如果您不熟悉,请查看HTML5表单教程

表单中包含的几乎所有HTML字段类型都会自动出现在电子邮件中。例如:文本、密码、文本区域、单选按钮、复选框、下拉选择、隐藏字段等。请参阅限制部分。

在前面的示例中,表单的类"contact-us"不是必需的,但包含它是为了帮助您应用CSS样式到表单。您可以根据喜好随意更改。

必填字段:以下输入字段是必需的,以避免内置的反垃圾邮件保护。如果这些输入字段不在表单中,则无法正常工作

  1. name - 您可以通过编辑Moodle语言编辑器中的field-name字符串为此字段名称创建别名。如果用户已登录,则此字段将被忽略,并将使用Moodle中注册的用户全名。如果用户当前已登录(非访客),则如果存在,此字段将被忽略,并将使用用户个人资料信息(名、姓)。
  2. email - 您可以通过编辑Moodle语言编辑器中的field-email字符串为此字段名称创建别名。如果用户当前已登录(非访客),则如果存在,此字段将被忽略,并将使用用户个人资料信息(名、姓)。
  3. sesskey - 必须包含隐藏的sesskey字段及其下面的SCRIPT行。
  4. submit - 按钮的名称。

您的表单标签必须将操作设置为../../local/contact/index.php,并将方法设置为post

可选字段:虽然不是必需的,以下字段对联系表单有特殊意义

  • 主题:如果您希望电子邮件的主题包含提交的网页表单中的内容,您的表单必须包含一个名为 主题 的字段。您可以通过编辑 Moodle 语言编辑器中的 field-subject 字符串来为此字段名称创建别名。
  • 消息:如果您希望一个文本区域字段,如消息字段,在插入电子邮件时格式正确,该字段必须命名为 消息。您可以通过编辑 Moodle 语言编辑器中的 field-message 字符串来为此字段名称创建别名。
  • 收件人:如果您想指定除 Moodle 支持电子邮件地址之外的收件人,请添加此字段。此字段必须包含别名,而不是电子邮件地址。请参阅本文档中有关配置收件人列表的部分。

您还可以通过在您的表单中添加以下内容来添加引用 URL,即用户在前往表单之前所在的页面

<input type="hidden" id="referrer" name="referrer" value="">
<script>document.getElementById('referrer').value = document.referrer;</script>

包含这两行的一个额外好处是,在您提交表单后出现的 继续 按钮将用户带回到表单的引用 URL 而不是网站的前页。

如果您希望 继续 按钮将用户带回到表单本身,只需将 document.referrer 替换为 document.location.href。因此,上述两行将变为

<input type="hidden" id="referrer" name="referrer" value="">
<script>document.getElementById('referrer').value = document.location.href;</script>

这将导致将表单的地址插入到电子邮件中的引用字段

如果您希望 继续 按钮始终将用户带到不同的页面,您可以在输入字段中指定 URL。只需确保该页面位于 Moodle 网站上。继续按钮不允许您将用户带到不同的网站。示例

<input type="hidden" id="referrer" name="referrer" value="https://moodle.example.com/mod/page/view.php?id=21">

请注意,在这两个最后示例中,引用字段将不再实际引用用户在提交表单之前实际来自的页面,这可能有点误导。对于支持页面,建议使用带有脚本标签的 document.referrer 来提交他们来自的页面的 URL。当学生提交类似“课程第 2 课不起作用”的内容,但没有提供他们当时所在课程的信息时,这将非常有用。

将学生返回到提交表单之前所在的页面也有帮助,如果返回到他们之前所在的位置比较复杂,这尤其重要。如果您正在处理可能存在无障碍问题问题的学生,这尤为重要。

其他提示

如果您想在字段名称中插入空格,请在表单字段 id 和 name 中使用下划线 "_"。Moodle 联系表单将在将字段名称插入电子邮件消息之前将这些替换为空格。

字段 id/名称令牌必须以字母开头。它们还可以包含字母(a-z)、数字(0-9)、下划线、破折号、点和冒号(_-:.)的任意组合。它们不区分大小写。

配置电子邮件消息

要编辑语言字符串,包括要发送给用户的电子邮件消息,您需要使用 Moodle 语言编辑器进行更改。为此

  1. 以管理员身份登录 Moodle
  2. 导航到 首页 > 站点管理 > 语言 > 语言定制
  3. 选择您要修改的语言,然后单击 打开语言包进行编辑 按钮。
  4. 从列表中选择 local_contact.php,然后单击 显示字符串 按钮。

有关使用语言编辑器的更多信息,请参阅Moodle 语言定制的文档

消息可以包含以下标签,这些标签将在发送消息时进行替换

  • 发件人邮箱:用户在网页表单中输入的邮箱地址或登录用户的注册邮箱地址。
  • 发件人姓名:用户在网页表单中输入的姓名或登录用户的注册名和姓。
  • 来源页面URL:生成电子邮件的网页表单页面的URL。
  • 用户代理:浏览器。
  • 语言:用户在提交表单时查看网站所用的语言。
  • 网站全名:网站的全名。
  • 网站简称:网站的简称。
  • 网站URL:网站的URL。
  • 支持邮箱:网站的支持邮箱地址。
  • 支持名称:网站的支持名称。
  • 用户IP:尽可能确定用户的IP地址。如果用户位于防火墙后面,将会是防火墙地址。
  • 用户状态:如果用户为Moodle网站所知(无论是通过登录还是通过邮箱地址),将显示用户的当前状态。

注意,将来,电子邮件消息将在插件的设置中进行配置。

Moodle设置可选联系表单

Moodle联系表单包含以下设置。这些设置可在插件设置页面找到,方法是:

网站管理 > 插件 > 本地插件 > 联系表单

覆盖发送者的(FROM)邮箱地址

您可以指定一个邮箱地址,用于发送电子邮件。如果此字段为空,默认情况下电子邮件将来自无回复邮箱地址。

配置收件人列表

默认情况下,从Moodle联系表单发送的消息将发送到您的Moodle支持联系邮箱地址。但是,您可以按表单指定不同的收件人。配置此要求两个额外的简单步骤

步骤1 - 创建可用收件人列表

首先,在插件设置中指定一个可用收件人列表。

每个收件人的格式是别名|电子邮件地址|姓名。您应该每行只输入一个收件人。输入错误和不正确的行以及空白行将被忽略。

例如

tech support|support@example.com|Joe Fixit
webmaster|admin@example.com|Mr. Moodle
electrical|nikola.tesla@example.com|Nikola
history|charles.darwin@example.com|Mr. Darwin
law|issac.newton@example.com|Isaac Newton
math|galileo.galilei@example.com|Galileo
english|mark.twain@example.com|Mark Twain
physics|albert.einstein@example.com|Albert
science|thomas.edison@example.com|Mr. Edison
philosophy|aristotle@example.com|Aristotle

注意,此列表不会自动填充到表单中。您需要在下一步中手动完成。

步骤2 - 在您的表单中添加一个字段。

单个收件人 - 这可以通过在表单中指定收件人别名的方式在“隐藏”类型的输入字段中完成。例如

<input type="hidden" name="recipient" id="recipient" value="webmaster">

多个收件人之一 - 您也可以在表单中创建一个下拉(选择)列表,并让用户指定收件人。例如

<select name="recipient" id="recipient" required>
    <option value="">Please select...</option>
    <option value="tech support">Technical support</option>
    <option value="webmaster">Moodle administrator</option>
</select>

同一网站上的不同表单可能具有

<select name="recipient" id="recipient" required>
    <option value="">Please select...</option>
    <option value="history">History teacher</option>
    <option value="math">Math teacher</option>
    <option value="english">English teacher</option>
    <option value="philosophy">Philosophy teacher</option>
</select>

注意,您可以在表单的下拉列表中包括任何数量的收件人。您不需要包括所有这些。如果指定的别名不在可用收件人列表中,电子邮件消息将默认发送到Moodle网站的支持邮箱地址。

选择多个项目

如果您正在使用允许选择多个项目的选择表单,所有选定的项目都将合并在一起,以逗号/空格分隔的列表。例如

<select multiple name="cars[]" id="cars">
    <option value="">Please select...</option>
    <option value="TOYOTA">Toyota</option>
    <option value="GM">General Motors</option>
    <option value="VOLKSWAGEN">Volkswagen</option>
    <option value="NISSAN">Nissan</option>
    <option value="HYUNDAI">Hyundai</option>
    <option value="FORD">Ford</option>
    <option value="CHRYSLER">Chrysler</option>
    <option value="HONDA">Honda</option>
    <option value="BMW">BMW</option>
</select>

重要:不要忘记以[]结束字段的名称,否则您将只能看到最后一个选定的项目。

配置reCAPTCHA

注意:如果Moodle的reCAPTCHA未配置,您将看不到此设置。

要在联系表单中使用reCAPTCHA,您必须

  • 配置Moodle的reCAPTCHA设置。请参阅网站管理 > 插件 > 认证 > 管理认证。这些设置在页面底部附近。
  • 安装并启用filter_filtercodes插件。
  • 在您的表单中添加 {recaptcha} 标签,通常位于 发送 按钮之前。当表单显示时,这将转换为 HTML 代码。有关插入 {recaptha} 标签的更多信息,请参阅 FilterCodes 文档

然而,即使启用了 reCAPTCHA,您也可以让 Moodle 的联系表单不使用它。只需进入联系表单的设置,勾选 不使用 reCAPTCHA 复选框并保存。在这种情况下,您不需要在表单中包含 {recaptcha} 标签。示例

<form action="../../local/contact/index.php" method="post" class="template-form">
    <fieldset>
        <label for="name" id="namelabel">Your name <strong class="required">(required)</strong></label><br>
        <input id="name" name="name" type="text" pattern="[A-zÀ-ž]([A-zÀ-ž\s]){2,}" title="Minimum 3 letters/spaces." required="required" value="" style="width:100%;"><br>
        <label for="email" id="emaillabel">Email address <strong class="required">(required)</strong></label><br>
        <input id="email" name="email" type="email" required="required" value="" style="width:100%;"><br>
        <input type="hidden" id="sesskey" name="sesskey" value="">
        <script>document.getElementById('sesskey').value = M.cfg.sesskey;</script>
        **{recaptcha}**
    </fieldset>
    <div>
        <input type="submit" name="submit" id="submit" value="Send">
    </div>
</form>

添加附件支持

为了在您的表单中添加对单个附件的支持,您必须

  1. 在联系表单插件设置中启用附件。否则,即使您在表单中有该字段,附件也将被忽略。如果您尝试提交附件但收到消息 未启用文件附件。,则表示您没有启用此功能。
  2. enctype="multipart/form-data" 添加到标签。
  3. 在表单中添加以下两个标签。您可以更改 附件 文件 中的单词,但其他一切必须保持不变。
<label for="attachment" id="attachmentlabel">Attachment a file</label><br>
<input type="file" id="attachment" name="attachment">

以下是一个修改后的上一段联系我们的表单示例,但包含这些更改

您的姓名 (必填)

电子邮件地址 (必填)

主题 (必填)

消息 (必填)
<textarea id="message" name="message" rows="5" cols="58" minlength="5" title="最少5个字符。" required="required"></textarea>
附件 文件
<script>document.getElementById('sesskey').value = M.cfg.sesskey;</script>

需要登录

需要登录 设置要求用户登录后才能提交表单。如果提交表单的用户未登录,他们将被重定向到登录页面。如果您要求用户登录,也强烈建议您将表单放在仅对已登录用户可访问的页面上。访客用户不被视为已登录。

(回到顶部)

更新

更新插件无需特殊考虑。

第一个公共 BETA 版本于 2016-12-05 发布。有关此后发布的信息,请参阅 CHANGELOG.md

(回到顶部)

卸载

通过以下方式卸载插件

主页 > 管理 > 网站管理 > 插件 > 管理插件 > 联系表单

...然后点击卸载。您可能还需要手动删除以下文件夹

/local/contact

(回到顶部)

限制

这不是一个表单构建器。

该插件目前不支持多个 textarea 类型字段。额外的 textarea 仍然可以工作,但它们的格式可能不会很好。

输入的任何 HTML 都将被转义。您不能使用任何类型的 HTML 格式或标记/Markdown,除了在段落末尾按 ENTER。

您不能根据每个表单配置联系表单电子邮件处理器。您网站上的所有联系表单都将共享

  • 消息发送后显示给用户的消息。
  • 包含额外用户信息的电子邮件页脚。
  • 启用/禁用自动回复。
  • 自动回复消息(如果已启用)。

Web 表单限制为 1024 个字段,包括隐藏字段和提交按钮。提交的总大小可能不超过 256 KB。

(回到顶部)

语言支持

此插件包括对英语的支持。如果已安装一个或多个额外的 Moodle 语言包,则支持包括法语在内的其他语言。

如果您的语言有语言包可用,某些核心字段可能会有所不同。例如,在法语 Moodle 网站上(英文网站上的字段名 > 法语网站上的字段名)

  • email => courriel
  • message => message
  • name => nom
  • subject => objet

在法语网站上,您需要使用字段的法语版本,否则联系表单将无法识别它们。更多信息,请参阅名为“自定义表单”的部分。自定义表单

小技巧:创建多语言Moodle网站?使用FilterCodes {getstring} 标签来填充正确的字段名称。示例

注意:如果您的语言没有可用的语言包,则插件将默认使用英语语言包。但是,如果您需要尚未支持的语言,请使用Moodle AMOS翻译工具包在以下网址贡献翻译

https://lang.moodle.org/

此插件尚未测试右对左(RTL)语言支持。如果您想使用此插件与RTL语言一起使用并且它不按预期工作,请随意准备一个pull request并将其提交到项目页面

https://github.com/michael-milette/moodle-local_contact

(回到顶部)

常见问题解答(FAQ)

常见问题的答案

我如何使此表单对所有人可用,即使他们未登录?

假设您没有在Moodle设置中启用“强制用户登录”,最简单的方法是将页面或块添加到您的Moodle首页(也称为主页)。

  1. 以Moodle管理员身份登录。
  2. 转到您的首页。
  3. 开启编辑模式。
  4. 添加一个页面类型的活动/资源。
  5. 将您的HTML表单或相关的FilterCode(如果您正在使用它)插入到内容字段中并保存。如果您粘贴HTML代码,请确保WYSIWYG编辑器处于HTML模式。

由于您不需要登录到您的Moodle首页才能查看它,因此您的表单也将对您的站点的访客(包括未登录的访客和以访客身份登录的访客)以及常规登录用户可用。如果此选项对您不可用,则过程稍微复杂一些,因为它涉及将课程对访客开放,并让Moodle自动将其登录为访客。

为什么我的表单不起作用?

在Moodle中创建Web表单的快速简单方法是简单地安装FilterCodes并使用其标签。务必在Moodle的“管理过滤”设置中将过滤器设置为开启,并将其设置为过滤内容和大标题。内置的表单包括{formquickquestion}、{formcontactus}、{formcourserequest}、{formsupport}、{formcheckin}。有关FilterCodes方法的更多信息,请参阅更多信息

如果您没有使用FilterCodes,请确保替换HTML表单中可能找到的任何类似{tagname}的标签引用。有关HTML方法的更多信息。例如,如果您的表单包含{wwwroot}并且您的Moodle网站的webroot是https://example.com,则将{wwwroot}/local/contact/替换为https://example.com/local/contact/。检查您的表单,因为可能会有其他依赖于您基于其构建的示例代码。

每次您的表单不工作时,请务必在设置为英语的Boost主题的Moodle页面或块中使用它进行测试。如果在那里它工作,那么很可能是您正在使用的主题或插件导致了问题,而不是FilterCodes或Contact for Moodle。与Static Pages插件一样(见下文),您可能会发现需要更改的设置。如果没有,请联系插件的作者/维护者,并要求他们在他们的主题或插件中添加过滤支持。

如果表单在英语中工作但在您首选的语言中不工作,您可能需要翻译一些字段的名称。如果您希望字段名称以您的语言显示在电子邮件中,则此操作是必需的。有关语言支持更多信息

Sesskey错误

如果您遇到提及sesskey的错误,您可能忘记在表单中包含JavaScript片段

<input type="hidden" id="sesskey" name="sesskey" value="">
<script>document.getElementById('sesskey').value = M.cfg.sesskey;</script>

如果您已安装FilterCodes,您只需将上述所有代码替换为表单中的相应代码即可

{formsesskey}

如果JavaScript在您的表单中不起作用,您可以替换上述代码为以下HTML。请注意,这将覆盖Contact Form中内置的几个反垃圾邮件保护措施(需要FilterCodes)

<input type="hidden" id="sesskey" name="sesskey" value="{sesskey}">

静态页面插件兼容性

在Moodle中使用联系方式的推荐方法是创建一个页面或块中的网页表单。然而,可能存在您可能更愿意使用local_staticpage插件的情况。为了使其工作,您需要配置其几个设置

  • 启用静态页面插件的处理过滤器(processfilters)设置以启用FilterCodes的处理。
  • 禁用其清理HTML代码(cleanhtml)设置以防止StaticPage删除或过滤掉表单中的一些所需HTML代码。

此示例演示了如何使用静态页面和FilterCode联系人表单模板创建一个快速的联系我们表单。首先,将以下代码复制到名为contact.html的文本文件中并保存

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Contact Us</title>
</head>
<body>
    <h1>Contact Us</h1>
    {formcontactus}
</body>
</html>

接下来,只需将contact.html文件上传到静态页面,以便在您的Moodle网站上提供。

我在提交表单后只看到“禁止访问”或空白屏幕。我该怎么办?

此插件已进行了大量测试。如果您仍然遇到此错误,则可能需要修复您的表单并/或启用Moodle调试。或者,您可以尝试以Moodle管理员身份登录表单。这将启用显示附加诊断信息。

当在Moodle网站上提交时,邮件去哪里了?

邮件将发送到支持电子邮件地址。以Moodle管理员身份登录,您可以通过访问以下内容找到电子邮件地址

管理 > 网站管理 > 服务器 > 支持联系人

如果字段为空,请记住指示的默认电子邮件地址。

为什么我在Moodle网站上提交的邮件没有投递?

请确保Moodle电子邮件正在运行。我们建议您使用eMailTest插件测试Moodle电子邮件系统

https://moodle.org/plugins/local_mailtest

我的网站已成功完成eMailTest过程。为什么它仍然不起作用?

如果您仍然无法使您的网页表单正常工作,问题可能出在您的表单上。请尝试使用使用部分中包含的HTML示例表单。然后将其自定义以满足您的需求。

我仍然通过我的网页表单收到大量垃圾邮件。我能阻止某些IP地址吗?

您可以通过几种方式将IP地址列入黑名单。最佳方式是将它们添加到您的Web服务器设置中。有关更多信息,请参阅您的Web服务器文档。如果您无法访问这些设置,Moodle管理员可以将IP地址添加到Moodle IP阻止器设置中。有关更多信息,请参阅

https://docs.moodle.org/en/IP_blocker

为什么用户IP地址([userip])在收到表单提交的邮件时显示为"::1"或0:0:0:0:0:1,而不是显示真实IP地址?

::1 和 0:0:0:0:0:1 等同于 127.0.0.1(本地主机)。这种情况仅在您的网页浏览器与网页服务器位于同一台计算机上时才会发生。否则,您应该看到真实的IP地址。

我可以在表单中包含我最喜欢的验证码吗?

不行。只有Moodle的reCAPTCHA才能工作。有关更多信息,请参阅使用部分。

Moodle的reCAPTCHA已启用。我需要在联系表单中使用它吗?

不是必须的。但是,如果您不想使用它,您必须在插件设置中勾选不使用reCAPTCHA复选框。

我可以在用户提交表单之前添加一个必须勾选的复选框,例如接受隐私政策吗?

当然可以。有关如何做到这一点的信息将在未来提供。(提示:需要JavaScript代码片段)

我的Moodle站点是多语言的。为什么某些语言的表单能正常工作,而另一些语言则不行?

每个语言文件定义了您的表单字段名称。为了使表单适用于所有语言,通过编辑Moodle语言编辑器中的“field-”字符串,将每个语言的字段名称更改相同,与您在表单中使用的一致。

我如何更改出现在电子邮件中的字段名称?

在您的表单中,将“label for=”的值更改为您想要的单词。在下一行,将id=和name=更改为与“label for=”相同。最后,如果字段是“name”、“email”、“subject”或“message”,您还需要在Moodle语言编辑器中编辑相关的“field-*”字符串。

哪些类型的网页表单不应该使用联系表单实现?

此插件不适用于任何应该不进入电子邮件收件箱的数据表单。例如,Moodle原生支持几种出色的表单处理器,如反馈、调查和数据库。除非您的电子商务解决方案涉及低量半手动处理,否则这可能最好由考虑此因素设计的应用程序处理。注册邮件列表订阅应通过Aweber、Constant Contact、MailChimp和其他类似服务完成。

注意:除了Moodle和FilterCodes之外的第三方产品提及并不代表推荐或认可。它们只是作为示例提供。

我如何使表单仅对登录用户可用?

要只为登录用户显示表单,请确保它位于一个只有登录用户才能查看的Moodle页面上。用户对页面和块的访问由Moodle控制,而不是此插件控制。考虑到这一点,如果您在表单中不包括姓名和电子邮件地址字段,只有注册并登录到Moodle站点的用户才能提交表单。另一种选择是使用FilterCodes插件中的{if...}{/if...}条件标签来控制谁可以查看表单。

为什么我在表单中输入的姓名和/或电子邮件地址在提交时会被更改?

这仅在用户已登录的情况下发生。在这种情况下,将使用他们的注册姓名和电子邮件地址,而不是表单中输入的姓名和电子邮件地址。

我可以在电子邮件页脚和确认电子邮件消息中包含用户配置文件字段和自定义配置文件字段吗?

是的。并非所有配置文件字段都可用,但您可以通过插入FilterCodes标签来实现。

为什么“继续”按钮总是把我带回到主页,而不是返回到引用URL?

这可能在几种情况下发生

  1. 如果您在表单中手动指定了引用URL而不是使用推荐的JavaScript片段,这可能会工作,但引用URL必须是完全限定的,来自Moodle站点,并且以主页地址开始($CFG->wwwroot)。
  2. 如果您试图通过手动指定来自不同网站的URL来欺骗它,该URL将被忽略,并且您的用户将被重定向到主页。
  3. 如果您通过手动输入URL或使用书签来访问,由于这会导致没有可用的引用URL,继续按钮仍然会将您带回到主页。

为什么每次我在Moodle中保存我的表单时,表单字段都会消失?

答案1:如果使用的是Moodle中的旧TinyMCE编辑器而不是较新的Atto编辑器,就会发生这种情况。使用默认设置,TinyMCE编辑器会在保存时过滤掉HTML表单标签。

简单的解决方案是将您首选的编辑器切换到Atto编辑器,然后编辑并保存您的表单。表单字段应该保持完好。一旦您使用Atto编辑器保存表单,就可以将首选编辑器切换回TinyMCE,表单将继续对所有人正常工作。然而,如果有一天您或其他人忘记并使用TinyMCE编辑器编辑表单,字段将再次消失。

如果您出于任何原因确实想使用TinyMCE编辑器,您仍然可以使其工作,但需要修改Moodle配置设置以允许HTML表单字段标签。

附加信息

答案2:如果您遇到的是StaticPages插件的具体问题,请进入其配置选项,将“清理HTML代码”设置为“不,不清理HTML代码”。否则,插件将过滤掉包括您所有表单标签在内的HTML标签。(感谢Alex Ferrer提供此解决方案)

我可以在Moodle登录页面上添加表单吗?

这绝对可能。以下是需要做的操作

  1. 转到网站管理 > 插件 > 身份验证 > 管理身份验证。
  2. 滚动到说明字段。
  3. 将表单插入此字段。
  4. 在页面底部点击保存更改。

就这样!您的表单现在将出现在Moodle登录页面上“这是您第一次来吗?”部分。

话虽如此,如果您真正想要的是能够批准网站上任何注册请求的能力,您可能会对查看“基于电子邮件的自助注册和管理员确认”插件感兴趣。新用户将完成自助注册流程。然而,在可以访问网站之前,Moodle管理员将收到一封电子邮件并需要批准。您可以通过转到https://moodle.org/plugins/auth_emailadmin找到此插件。

有什么安全考虑吗?

目前没有已知的安全考虑。

其他问题

这里没有涵盖您的问题?请查看我们维基的故障排除部分。如果您仍然找不到答案,请将问题提交到Moodle论坛或在GitHub上打开一个新问题:

https://github.com/michael-milette/moodle-local_contact/issues

(回到顶部)

贡献

如果您有兴趣提供帮助,请查看我们关于贡献的指南,以了解我们的行为准则和向我们提交拉取请求的过程。

贡献者

Michael Milette - 作者和主要开发者

非常感谢以下贡献者。(如果您在名单中遗漏了,请告诉我)

  • geoffreyvanwyk: 修复了文档中的链接(2023年)。
  • alexmorrisnz: 添加了对附件的支持(2023年)。
  • HirotoKagotani: 使用系统级设置显示全名(2021年)。
  • kmoouni: 限制插件仅供登录用户使用(2017年)。

感谢所有请求功能、测试和报告错误的人。

待办功能

我们正在考虑在未来版本中包含的一些功能包括

  • 在电子邮件消息正文中添加指定自定义配置文件字段的能力。
  • 启用自动回复/确认消息的选项。
  • 自动回复将在插件设置中可编辑。
  • 将更多网络表单示例添加到文档中(请参阅Wiki)。
  • 创建基本表单构建器。
  • 使所有提交的网络表单字段都可作为您可以插入到消息模板中的标记标签使用。
  • 添加一些已发送消息的Moodle日志。
  • 添加电子邮件地址的白名单和黑名单。
  • 添加电子邮件域的白名单和黑名单。
  • 添加对表单特定自定义自动回复的支持。
  • 添加对表单特定自定义确认消息的支持。
  • 添加可选地仅使用自动回复功能而不发送主要电子邮件消息的支持。

如果您可以使用这些功能或有任何其他需求,请考虑贡献或雇用我们以加速开发。

(回到顶部)

此插件的动力

该项目的初始开发由l'Action ontarienne contre la violence aux femmes及其合作伙伴TNG Consulting Inc.赞助。

(回到顶部)

更多信息

有关local_contact插件、支持或报告错误的更多信息,请访问以下项目页面:

https://github.com/michael-milette/moodle-local_contact

(回到顶部)

许可证

版权所有 © 2016-2024 TNG Consulting Inc. - https://www.tngconsulting.ca/

此文件是Moodle联系表单插件的一部分 - https://moodle.org/plugins/local_contact/

联系表单是免费软件:您可以在自由软件基金会发布的GNU通用公共许可证的条款下重新分发和/或修改它,许可证版本为3,或(根据您的选择)任何较新版本。

联系表单是在希望它可能是有用的前提下分发的,但没有任何保证;甚至没有关于适销性或特定用途的隐含保证。有关详细信息,请参阅GNU通用公共许可证。

您应该已收到GNU通用公共许可证的副本,与联系表单一起。如果没有,请参阅https://gnu.ac.cn/licenses/

(回到顶部)