是否可以使用Magento中的页面来获得可自定义的联系表单?
如果可能的话:
表单我正在使用我的页面:
<form action="" method="post">
<input type="hidden" name="formID" value="20642064378453">
<div class="form-all">
<ul class="form-section">
<li class="form-line" id="id_8">
<label class="form-label-left" id="label_8" for="input_8"> Full Name </label>
<div id="cid_8" class="form-input"><span class="form-sub-label-container"><input class="form-textbox" type="text" size="10" name="q8_fullName8[first]" id="first_8">
<label class="form-sub-label" for="first_8" id="sublabel_first"> First Name </label></span><span class="form-sub-label-container"><input class="form-textbox" type="text" size="15" name="q8_fullName8[last]" id="last_8">
<label class="form-sub-label" for="last_8" id="sublabel_last"> Last Name </label></span>
</div>
</li>
<li class="form-line" id="id_1">
<label class="form-label-left" id="label_1" for="input_1">
Name<span class="form-required">*</span>
</label>
<div id="cid_1" class="form-input">
<input type="text" class="form-textbox validate[required]" id="input_1" name="q1_name" size="20">
</div>
</li>
<li class="form-line" id="id_3">
<label class="form-label-left" id="label_3" for="input_3">
Email<span class="form-required">*</span>
</label>
<div id="cid_3" class="form-input">
<input type="text" class="form-textbox validate[required]" id="input_3" name="q3_email" size="20">
</div>
</li>
<li class="form-line" id="id_4">
<label class="form-label-left" id="label_4" for="input_4"> Topics </label>
<div id="cid_4" class="form-input">
<select class="form-dropdown" style="width:150px" id="input_4" name="q4_topics">
<option> </option>
<option value="Option 1"> Option 1 </option>
<option value="Option 2"> Option 2 </option>
<option value="Option 3"> Option 3 </option>
</select>
</div>
</li>
<li class="form-line" id="id_5">
<label class="form-label-left" id="label_5" for="input_5"> Other Options </label>
<div id="cid_5" class="form-input">
<div class="form-single-column"><span class="form-radio-item" style="clear:left;"><input type="radio" class="form-radio" id="input_5_0" name="q5_otherOptions" value="Option 1">
<label for="input_5_0"> Option 1 </label></span><span class="clearfix"></span><span class="form-radio-item" style="clear:left;"><input type="radio" class="form-radio" id="input_5_1" name="q5_otherOptions" value="Option 2">
<label for="input_5_1"> Option 2 </label></span><span class="clearfix"></span><span class="form-radio-item" style="clear:left;"><input type="radio" class="form-radio" id="input_5_2" name="q5_otherOptions" value="Option 3">
<label for="input_5_2"> Option 3 </label></span><span class="clearfix"></span>
</div>
</div>
</li>
<li class="form-line" id="id_7">
<label class="form-label-left" id="label_7" for="input_7"> Message </label>
<div id="cid_7" class="form-input">
<textarea id="input_7" class="form-textarea" name="q7_message" cols="40" rows="6"></textarea>
</div>
</li>
<li class="form-line" id="id_2">
<div id="cid_2" class="form-input-wide">
<div style="margin-left:156px" class="form-buttons-wrapper">
<button id="input_2" type="submit" class="form-submit-button">
Submit Form
</button>
</div>
</div>
</li>
<li style="display:none">
Should be Empty:
<input type="text" name="website" value="">
</li>
</ul>
</div>
<input type="hidden" id="simple_spc" name="simple_spc" value="20642064378453-20642064378453">
<script type="text/javascript">
document.getElementById("si" + "mple" + "_spc").value = "20642064378453-20642064378453";
</script>
</form>
谢谢!
答案 0 :(得分:1)
Mage_Contacts_IndexController::postAction()
方法可以处理自定义联系表单
发布的数据需要满足一些基本要求:
// Excerpt from Mage_Contacts_IndexController::postAction()
$postObject = new Varien_Object();
$postObject->setData($post);
$error = false;
if (!Zend_Validate::is(trim($post['name']) , 'NotEmpty')) {
$error = true;
}
if (!Zend_Validate::is(trim($post['comment']) , 'NotEmpty')) {
$error = true;
}
if (!Zend_Validate::is(trim($post['email']), 'EmailAddress')) {
$error = true;
}
if (Zend_Validate::is(trim($post['hideit']), 'NotEmpty')) {
$error = true;
}
if ($error) {
throw new Exception();
}
此代码显示您的表单需要满足哪些条件,控制器操作与您的数据开箱即用。
首先,必须发布数据(不通过GET发送)
然后,需要存在非空name
字段,email
字段(具有语法正确的电子邮件),非空hideit
字段和comment
字段。
表单需要发布到网址/contacts/index/post
在Magento中生成URL的最佳方法是echo Mage::getUrl('contacts/index/post')
。
发布的数据通过{{ var data}}
变量在联系人电子邮件中提供
电子邮件模板可以通过 System&gt;下的管理界面进行调整。交易电子邮件。
默认情况下,模板非常基本,但可以轻松扩展。例如,要将名为q5_otherOptions
的字段的值添加到电子邮件中,请使用`{{var data.q5_otherOptions}}作为占位符。
答案 1 :(得分:0)
操作必须为$this->getUrl('module/controller/action')
,其中module
是您的自定义模块的名称,controller
是您模块中的控制器,而action
是其中的操作控制器。您需要为此创建自己的自定义模块。您应该阅读http://alanstorm.com/category/magento的前几篇文章,了解如何执行此操作。
答案 2 :(得分:0)
这是我写的一篇文章,详细介绍了一个非常基本的自定义联系表单设置。这可能会也可能不符合您的要求,但如果您只想在联系表单中添加一些其他字段,这是一个不错的方法。