هک افزودن فیلد به فرم تماس با ما
امکانات:
- افزودن فیلد دلخواه به فرم تماس با ما
- تعیین نوع ورودی در فیلد
- نامحدود بودن از نظر تعداد فیلدها
آموزش نصب
1. فایل engine/modules/feedback.php را باز کنید،
2. کد زیر را پیدا کنید:
حالا می توانید با قرار دادن کد زیر در مشخصه Name فیلد دلخواه خود را به فرم تماس با ما اضافه کنید:
چند نمونه از فیلد ها:
فیلد کوچک (یک خطی):
فیلد بزرگ:
فهرست:
می توانید هر کدام از این کد ها را در محل مناسبی در فایل feedback.tpl قالبتان قرار دهید.
2. کد زیر را پیدا کنید:
include_once ENGINE_DIR . '/classes/mail.class.php';
قبل از آن کد زیر را قرار دهید: if(isset($_POST["custom_feedback"])){
$custom_feedback = $_POST["custom_feedback"];
$message .= "\n";
foreach($custom_feedback as $custom_name => $custom_value){
if($custom_value) $message .= "\n" . $custom_name . ": ".strip_tags( stripslashes($custom_value) );
}
}
$custom_feedback = $_POST["custom_feedback"];
$message .= "\n";
foreach($custom_feedback as $custom_name => $custom_value){
if($custom_value) $message .= "\n" . $custom_name . ": ".strip_tags( stripslashes($custom_value) );
}
}
حالا می توانید با قرار دادن کد زیر در مشخصه Name فیلد دلخواه خود را به فرم تماس با ما اضافه کنید:
name="custom_feedback[Your Field Name]"
چند نمونه از فیلد ها:
فیلد کوچک (یک خطی):
<input type="text" value="Default Value" maxlength="14" name="custom_feedback[Phone Number]"/>
فیلد بزرگ:
<textarea name="custom_feedback[Description]" />Default Text</textarea>
فهرست:
<select name="custom_feedback[Harchi Deletoon Mikhad]">
<option selected="selected" value="Default Value 1">One</option>
<option value="Default Value 2">Two</option>
<option value="Default Value 3">Three</option>
</select>
<option selected="selected" value="Default Value 1">One</option>
<option value="Default Value 2">Two</option>
<option value="Default Value 3">Three</option>
</select>
می توانید هر کدام از این کد ها را در محل مناسبی در فایل feedback.tpl قالبتان قرار دهید.
سوالات متداول
چرا این هک روی نسخه های بالاتر از 9.2 کار نمی کند؟
در نسخه های بالا تر از 9.2 فرم تماس با ما بصورت ای جکس ارسال می شود و این عمل مانع ارسال فیلد اضافی می شود.
برای غیر فعال کردن ای جکس فایل engine/modules/feedback.php را باز کنید،
کد زیر را پیدا کنید و حذف کنید:
در نسخه های بالا تر از 9.2 فرم تماس با ما بصورت ای جکس ارسال می شود و این عمل مانع ارسال فیلد اضافی می شود.
برای غیر فعال کردن ای جکس فایل engine/modules/feedback.php را باز کنید،
کد زیر را پیدا کنید و حذف کنید:
$(function(){
$('#sendmail').submit(function() {
if(document.sendmail.subject.value == '' || document.sendmail.message.value == '') {
DLEalert('{$lang['comm_req_f']}', dle_info);
return false;
}
var params = {};
$.each($('#sendmail').serializeArray(), function(index,value) {
params[value.name] = value.value;
});
params['skin'] = dle_skin;
ShowLoading('');
$.post(dle_root + "engine/ajax/feedback.php", params, function(data){
HideLoading('');
if (data) {
if (data.status == "ok") {
$('#dle-content').html(data.text);
} else {
if ( document.sendmail.sec_code ) {
document.sendmail.sec_code.value = '';
reload();
} else {
Recaptcha.reload();
}
DLEalert(data.text, dle_info);
}
}
}, "json");
return false;
});
});
$('#sendmail').submit(function() {
if(document.sendmail.subject.value == '' || document.sendmail.message.value == '') {
DLEalert('{$lang['comm_req_f']}', dle_info);
return false;
}
var params = {};
$.each($('#sendmail').serializeArray(), function(index,value) {
params[value.name] = value.value;
});
params['skin'] = dle_skin;
ShowLoading('');
$.post(dle_root + "engine/ajax/feedback.php", params, function(data){
HideLoading('');
if (data) {
if (data.status == "ok") {
$('#dle-content').html(data.text);
} else {
if ( document.sendmail.sec_code ) {
document.sendmail.sec_code.value = '';
reload();
} else {
Recaptcha.reload();
}
DLEalert(data.text, dle_info);
}
}
}, "json");
return false;
});
});