哆麦CMS留言表单功能开发教程

首页 > 主题开发 > 哆麦CMS留言表单开发

表单是网站和用户交互的重要组成,作为一个营销型网站来说,表单功能至关重要。哆麦CMS提供了简单高效的表单功能,集成了多个颇有用处的功能,例如留言过滤,禁止重复,内容转发,内容扩充,根据需求更改客户端响应等等。本文介绍如何在模版中开发留言功能,本文假设你已经有了一定的HTML知识,了解表单组成和数据提交原理。

一,表单组成

表单提交地址,通过函数“dminfo('feedback_url')”获取。表单提交方法必须为POST,系统支持以下表单字段:

user_name: 用户姓名 必填项

user_email: 用户邮箱

user_mobile: 用户电话

content: 留言内容 必填项

lang: 响应客户端的语言,为空则为网站默认语言,目前支持"zh-cn","en", "ru", "ar", "fr"语言代码。

format: 响应客户端的内容,若为json,则返回json数据,默认返回html内容。

post_ID: 留言的文章ID,非必需

parent: 父留言ID,非必需

group: 留言的分组,系统默认支持'inquiry'和'comment'

系统还会自动获取提交用户的IP,用户代理等。

系统改变了PHP默认的数据处理行为,前台的表单可以通过使用相同的字段获取多个内容而不被覆盖。

一个典型的表单的文件内容可以为:

<form action="<?php dminfo('feedback_url')?>" method="post">
    <p><label for="user_name">姓名:</lable><input type="text" name="user_name" id="user_name" required></p>
    <p><label for="user_email">邮箱:</lable><input type="text" name="user_email" id="user_email" required></p>
    <p><label for="user_mobile">电话:</lable><input type="text" name="user_mobile" id="user_mobile"></p>
    <p><label for="content">内容:</label><textarea name="content" id="content" required></textarea></p>
    <p><input type="submit" value="提交"></p>
</form>

二,高级功能

系统支持2个API,开发者可以通过注册函数在用户提交前对用户提交的数据进行处理,然后提交到系统中,留言提交完成之后,开发者也可以通过注册处理函数改变系统默认返回客户端的数据。这两个API分别是:

过滤器: pre_submit_feedback,处理函数接收一个用户提交的全局数据$_REQUEST

动作:flush_feedback_result,处理函数接收一个包含错误代码和信息数组的参数,你可以根据这个信息,对返回客户端的数据重新处理。

根据需要把处理代码加入到主题的functions.php文件即可,示例用法如下:

1,通过pre_submit_feedback过滤器在用户提交的内容中,增加一个固定的内容,示例如下:

function feedback_content_add_text($feedback){
    $feedback[content] .= "\r\n这是一行所有留言都有的内容";
    return $feedback;
}
add_filter('pre_submit_feedback', 'feedback_content_add_text');

通过这个过滤器,你可以对用户的原始提交数据进行任何更改,常见的应用包括通过JS获取用户的着陆页,然后把着陆页也插入到内容中,分析用户行为,跟踪转化。

2, 让系统支持AMP页面提交的数据。

function amp_response($response){
    $origin = $_SERVER['HTTP_ORIGIN'];
    header('Access-Control-Allow-Origin:$origin');
    header('Access-Control-Allow-Methods:POST');
    header('Access-Control-Allow-Credentials:true');
    header('Access-Control-Expose-Headers:AMP-Access-Control-Allow-Source-Origin');
    header('AMP-Access-Control-Allow-Source-Origin:$origin');
    header('Content-Type:application:json');
    echo json_encode($response);
}
add_action('flush_feedback_result', 'amp_response');


上一篇: 哆麦CMS文章调用标签教程 下一篇: 哆麦CMS图库开发教程
38人阅读过这篇文章,3人喜欢。

发表评论

评论列表