Fa:Snippets-efrom

From MODx Wiki

Jump to: navigation, search
 Eform logo
Eform logo

 MODx Snippet 

eForm v1.4.3
Author 
TobyL
MODx Versions 
>= 0.9.5
Last Updated 
27 June 2007

eForm یک اسنیپت فوق العاده انعطاف پذیر برای پردازش و تجزیه و تحلیل فرم هاست که به شما اجازه می دهد تا فرمهای تحت وب(web forms) را به یک نامه الکترونیکی(Email) تبدیل کنید و آن را توسط ایمیل به کاربرانی که در خود اسنیپت و یا در فرم مشخص شده اند، ارسال کنید. بخشی از ویژگی های برجسته عبارتند از:
- اعتبارسنجی فرم(Form Validation) با استفاده از قوانین اعتبارسنجی قدرتمند.
- حفاظت از فیلدهای مخفی(Hidden Fields) در مقابل نفوذها(Tampering).
- پشتیبانی از CAPTCHA.
- پشتیبانی از فایل های الصاقی(Attach Files)و نامه های تحت وب(HTML Emails).
- تولید اطلاعیه و صفحه بصورت انعطاف پذیر با استفاده از Placeholderها.
- قابلیت اطلاع رسانی توسط دستگاه های قابل حمل(Mobile Devices).
- دارای سیستم پاسخگویی خودکار ایمیل.
- پشتیبانی از فیلدهای CC و BCC.

دانلود

آخرین نسخه EForm را می توانید از مخزن MODx دریافت کنید.

نصب

- فایل فشرده EForm را در مسیر assets/snippet/ از حالت فشرده خارج کنید(Unzip کنید). شما در حال حاضر باید یک پوشه جداگانه با نام eform داشته باشید.
- یک اسنیپت جدید ایجاد کنید، نام آن را eform بگذارید و محتویات فایل eform.snippet.tpl را داخل آن کپی کنید.
- برای مشاهده مثال ها و اطلاعات بیشتر، فایل eform/docs/eform.htm را مطالعه کنید.
- این اسنیپت را به همراه پارامترهایی که نیاز دارید در صفحه ای که مایل هستید، وارد کنید.



راهنمای استفاده

پارامترها

&formid – اجباری
شناسه(Id) فرم در صفحه ای که توسط این اسنیپت مدیریت می شود. برای نمونه:<form id=”formid”>
&tpl – اجباری
نام چانک یا شناسه پرونده ای که به عنوان قالب استفاده خواهد شد.
&report – اجباری
نام چانک یا شناسه پرونده ای که در زمان تولید اطلاعیه ها(Reports) استفاده می شود. درصورت استفاده از پارامتر &noemail نیازی به استفاده از این پارامتر نیست.
More to come...

پیشامدها

eFormOnBeforeFormParse

این event (رخداد) تقریبا قبل از تحلیل و پردازش فرم فراخوانی می شود. تحلیل و پردازش فرم فقط درصورتی انجام می گیرد که داده $_POST موجود و برای فرم معتبر باشد.

eFormOnValidate

بعد از تحلیل و پردازش اعتبارسنجی داخلی(Built-in Validation) فراخوانی می شود و برای اعتبارسنجی های توسعه یافته کاربرد دارد.

eFormOnBeforeMailSent

این تابع قبل از فرستاده شدن پیغام و صرفنظر از هماهنگ(Set) بودن &noemail فراخوانی می شود.

eFormOnMailSent

بعد از فرستاده شدن پیغام، فراخوانی می شود. اگر &to هماهنگ نباشد و یا آدرس معتبر نباشد، فراخوانی انجام نخواهد شد.

eFormOnBeforeFormMerge

آخرین رخدادی که قبل از فرستادن فرم به مرورگر متقاضی(Client Browser)، فراخوانی می شود.

مثالها

فرمهای EForm

چانکی ساده برای یک فرم ارتباطی(ContactForm)

<p class="error">[+validationmessage+]</p>
 
<form method="post" action="[~[*id*]~]" id="EmailForm" name="EmailForm">
 
	<fieldset>
	<h3> Contact Us</h3>
 
	<input name="formid" type="hidden" value="ContactForm" />
 
	<label for="cfName">Your name:
	<p>
        <input name="name" id="cfName" class="text" type="text" eform="Your Name::1:" />
        </p>
        </label>
 
	<label for="cfEmail">Your Email Address:
	<p>
        <input name="email" id="cfEmail" class="text" type="text" eform="Email Address:email:1" />
        </p>
        </label>
 
	<label for="cfRegarding">Regarding:
	<p>
        <input name="subject" id="cfRegarding" class="text" type="text" eform="Form Subject::1" />
        </p>
        </label>
 
	<label for="cfMessage">Message:
	<p>
        <textarea name="message" id="cfMessage" eform="Message:textarea:1">
        </textarea>
        </p>
	</label>
 
	<label>&nbsp;</label>
        <p>
        <input type="submit" name="contact" id="cfContact" class="button" value="Send This Message" />
        </p>
 
	</fieldset>
 
</form>
--ScottyDelicious 16:00, 5 December 2006 (PST)

فرمهای اطلاعیه ای EForm

یک فرم خبردهی ساده(ContactFormReport)

<p>This is a response sent by <b>[+Name+]</b> using the feedback form on this website.
The details of the message follow below:</p>
 
<p>Name: [+name+]</p>
<p>Email: [+email+]</p>
<p>Regarding: [+subject+]</p>
<p>Comments:<br />[+message+]</p>
 
<p>Use this to reply: <a href="mailto:[+email+]?subject=RE: [+subject+]">[+email+]</a></p>
--ScottyDelicious 16:00, 5 December 2006 (PST)

نحوه ی فراخوانی اسنیپت eForm در داخل پرونده

[!eForm? &formid=`ContactForm` &subject=`[+subject+]` &to=`you@youremail.com` 
&ccsender=`1` &tpl=`ContactForm` &report=`ContactFormReport` &gotoid=`1`  !]

تذکرات

- اگر شما برای فرم خود، استفاده از یک Template(قالب) را به استفاده از یک چانک ترجیح می دهید(با استفاده از پارامتر tpl)، از غیرفعال بودن ویژگی richtext اطمینان حاصل کنید. در غیر اینصورت، برای اولین باری که فرم را ویرایش می کنید تمامی eformهای منتسب ساختگی، بی حفاظ خواهند بود.
- در فراخوانی اسنیپت، Tick marks(`) با SingleQoutes(‘) یکی نیستند و درصورت استفاده از Single Qoutes خطای زیر به نمایش در خواهد آمد:

“Document or chunk not found for template id=”


== منابع ==
Personal tools