Why-Assumptions-How-Troubleshooting
留言发送mail
1、首先配置 dispatch 这里应该是webmachine(还没具体看), 在此确定了url和模板
{contact_url, ["contact"], resource_template, [ {template, "contact.tpl"} ]},
2、创建模板,添加适当的内容即可。这里的wire很关键,目前还完全明白。
注意delegate="resource_default_contact",这个与下面的 resource_default_conatact对应
{% wire id="contact-form" type="submit" postback={contact} delegate="resource_default_contact" %}
<form id="contact-form" method="post" action="postback">
<label for="name">Name</label>
<input type="text" name="name" id="name" />
<label for="email">E-mail</label>
<input type="text" name="mail" id="mail" />
{% validate id="mail" type={presence} type={email} %}
<label for="message">Message</label>
<textarea name="message" id="message" cols="60" rows="8"></textarea>
{% validate id="message" type={presence} %}
<input type="submit" value="Send" />
</form>
3、在priv/sites/default/resources/resource_default_contact.erl 创建
-module(resource_default_contact).
-export([event/2]).
-include_lib("zotonic.hrl").
event({submit, {contact, []}, _TriggerId, _TargetId}, Context) ->
Vars = [{mail, z_context:get_q("mail", Context)},
{name, z_context:get_q("name", Context)},
{message, z_context:get_q("message", Context)}],
z_email:send_render(z_email:get_admin_email(Context), "_email_contact.tpl", Vars, Context),
z_render:update("contact-form", "<p>The form has been submitted! Thank you, we'll get in touch soon.</p>", Context).
4、在添加 priv/sites/default/templates/_email_contact.tpl:模板
主要是配置URL\创建模板\创建处理event事件的resource
详细见来自官方的例子http://zotonic.com/documentation/807/implementing-a-simple-contact-form
分享到:
相关推荐
接触程序提供的定量分析,有助于决策者在众多方案中找到最优解,从而实现经济性和安全性的最佳平衡。 总的来说,“接触”程序是铁路工程中不可或缺的工具,它通过对轮轨接触和磨耗的精细化模拟,帮助工程师们理解这...
通过编写自定义函数,用户可以根据自己的实验数据定制计算流程,实现接触角的精确测量和表面能的有效评估。此外,程序可能还包含了错误处理和用户交互功能,以提高使用的便捷性和可靠性。 总的来说,MATLAB在接触角...
4. **用户交互(User Interaction)**:使用 `scanf()` 或 `fgets()` 获取用户输入,用 `printf()` 显示输出信息。 5. **循环与条件判断(Loops and Conditional Statements)**:在实现添加、修改、删除等功能时,...
**Contact ID协议**是安防行业中广泛使用的一种电话报警通信协议,主要用于报警主机与接警中心接收设备之间的数据传输。此协议由Ademco集团(现为Honeywell的一部分)开发,并在1999年由Security Industry ...
总的来说,BS Contact 6.22作为一款领先的VRML和X3D浏览器,集强大的功能、优秀的性能和友好的用户界面于一体,是探索虚拟现实世界、实现3D互动体验的理想选择。无论是专业人士还是业余爱好者,都能从中找到无尽的...
【标题】"contact_us_demo:已实现ContactUs的演示Rails应用程序"揭示了这是一个基于Ruby on Rails框架的示例项目,其主要目的是展示如何在Rails应用中集成和使用Contact Us功能。这个应用程序允许用户通过填写表单来...
5. **简化工作流程**:对于初学者或者小团队,`grunt-contact`可能简化了常见的前端构建任务,使其更易于理解和使用。 为了充分利用`grunt-contact`,你需要: 1. 全局安装`grunt-cli`,确保在命令行可以调用`...
总结来说,"Contact_List.zip_Contact_List_contact" 是一个使用Struts2框架开发的Java Web应用,主要用于管理个人或团队的联系人信息,具备常见的增删改查功能。它的实现涉及了数据库设计、MVC架构、OGNL表达式以及...
小程序的客服系统,是微信做的非常成功的一个功能,开发者可以很方便的通过一行代码,就可实现客服功能。 1. 普通客服按钮添加 <button open-type='contact' session-from=''>客服-联系我们</button> ...
根据压缩包子文件的文件名称"contact_id.doc",我们可以推测文档可能详细解释了“contact_id”的概念、如何配置和使用,可能还包括故障排查、接警中心的设置步骤,以及如何通过安定宝协议进行通信的实例。...
在Java中,可以使用序列化机制将对象转化为字节流,实现数据的持久化,以便在程序重启后仍能恢复联系人信息。 3. 库文件:"lib"目录通常包含项目所需的外部依赖库,这些库可能包括网络通信、数据解析或UI组件等,...
- **易用性**:Avored 提供了开箱即用的 Contact 功能,只需简单配置即可快速启动。 - **可定制化**:模块的设计允许开发者根据项目需求进行定制,如修改表单字段、自定义邮件模板等。 - **集成验证**:内置的...
"BS+Contact+VRML+-+用户手册.doc"文档很可能是针对上述技术的详细指南,包含如何使用这些技术进行WEB3D开发,如何集成Contact组件进行碰撞检测,以及如何利用VRML创建和展示3D场景等内容。用户手册通常会提供步骤...
综上所述,《DC-05_Contact_ID.rar_contact_contact ID》所涵盖的知识点主要围绕联系人管理、报警系统的实现、数据库设计以及可能涉及到的API开发。理解并熟练运用这些概念和技术,对于构建一个高效、可靠的报警系统...
本文将深入探讨EDEM的默认接触模型,并基于"Plug-in_Contact_Model"这一插件,讲解如何运用EDEM的API进行程序编写,以实现自定义的接触行为。 一、EDEM接触模型基础 EDEM的核心在于其接触模型,它描述了颗粒间的...
2. **API调用**:使用获取的访问令牌,向Google Contact API发送请求,通常会使用`gapi.client.load('contacts', 'v3')`加载API,然后调用`gapi.client.contacts.contacts.list()`获取联系人列表。 3. **数据解析**...
前面曾发表过一篇WordPress自定义表单插件cformsII,它的功能也比较强大,功能也比较多,但是,在使用时这款插件有点小复杂,如果不仔细研究下,肯定会有的晕的.....O(∩_∩)O~,今天在官网又看到了一款类似的插件,...
在`laravel-contact`项目中,某些控制器方法可能使用了如`auth`或`web`等内置中间件,确保只有已登录用户才能访问联系人管理功能。 6. **表单验证(Form Validation)**:Laravel提供了一套强大的表单验证机制。在`...
【ContactManager】是一款基于编程技术实现的通讯录应用,它主要功能是管理和组织个人或组织的联系信息。从描述来看,这个项目可能还处于开发阶段,已经完成了一部分功能。作为一个专业的IT大师,我们将深入探讨...
综上所述,Android 8.0系统自带的Contact应用在联系人管理上实现了智能化、个性化和安全性的全面提升,不仅满足了用户的基本需求,也为开发者提供了更多可能性。通过不断的更新和优化,Contact应用成为Android生态...