Fa:Snippets-efrom
From MODx Wiki
MODx Snippet
- Author
- TobyL
- MODx Versions
- >= 0.9.5
- Last Updated
- 27 June 2007
Contents |
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> </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 خطای زیر به نمایش در خواهد آمد:

