پارس جوم ::  انجمن های تخصصی جوملا
{ويژه} آموزش های کاربردی و کامل کامپوننت فرم ساز آر اس فرم RsForm - نسخه‌ی قابل چاپ

+- پارس جوم :: انجمن های تخصصی جوملا (https://forums.parsjoom.ir)
+-- انجمن: آموزش (/forum-25.html)
+--- انجمن: آموزش هاي جوملا (/forum-106.html)
+--- موضوع: {ويژه} آموزش های کاربردی و کامل کامپوننت فرم ساز آر اس فرم RsForm (/thread-7691.html)

صفحه‌ها: 1 2 3 4 5 6


آموزش های کاربردی و کامل کامپوننت فرم ساز آر اس فرم RsForm - Reza Ganji - ۱۸-۲-۱۳۹۲ ۰۲:۱۶ عصر

درود جناب سلیمانی
کار شما قابل تقدیر است . متاسفانه در ایران اکثر کاربران فقط مصرف کننده و بدنبال منابع با ارزش رایگان هستند.
شما میتوانید بخشی از خدماتتون رو تجاری عرضه کنید و اگر کسی مایل بود و براش ارزش داشت حتما هزینه هم خواهد کرد.
بارها برای تست از کسانی که مشکلاتی داشتند و حل کردند درخواست کردم که روش حل رو برای مابقی دوستان هم منتشر کند که خبری ازشون نشده ولی تعداد اندکی هم خوشبختانه اینکار رو انجام دادند.
بهرحال شما نباید از این موارد دلسر شوید و به کارتون ادامه دهید و برخی درخواست های حرفه ای رو تجاری انجام دهید و برخی رو هم رایگان و اون بستگی به خودتون داره.

قبلا هم این توصیه را به دوستانی که زحمت میکشند کردم


آموزش ایجاد فیلدهای مخفی شونده در فرم ساز اراس فرم - محمدسلیمانی - ۱۹-۲-۱۳۹۲ ۰۶:۱۹ صبح

بخاطر قولی که به دوستان دادم آموزش فیلدهای مخفی شونده رو براتون منتشر میکنم
و بخاطر عدم استقبال از اموزشهااحتمالا آخرین آموزشی هست که من در این ضمینه منتشر میکنم.


خوب میریم سر اصل مطلب
شاید پیش بیاد که بخوایم فیلد یا فیلدهایی در حالت عادی نمایش داده نشه
مثلا وقتی از یه کلید رادیویی گزینه دانشجو انتخاب میشه شماره دانشجویی خواسته بشه و...
قبل از شروع به این نکات حتما توجه کنید

1) نکته در این آموزش نامهای یکتای بسیار مهم هستند آنها را با دقت انتخاب کنید.
2) این آموزش با استفاده از چک باکس و فیلد پایین افتادنی و کلیدهای رادیویی قابل اجرا است
3) در این آموزش برای کلیدهای رادیویی پیش میریم اگر خواستید از چک باکس و... استفاده کنید دقسمت خواص فیلد این کد را وارد کنید. onclick="displayField1();"
4) از تننظیمات فرم استفاده از جاوااسکریپت را در حالت فعال قراردهید.


>- ابتدا فرم دلخواه رو با تمام فیلدهای دلخواه بسازید اعم از مخفی یا غیرمخفی

>- یک کلید رادیویی بسازیم در کادر خواص این کد را وارد کنید
onclick="displayField1();"

>- در طرح بندی فرم یا FORM LAYOT در ابتدای کد و انتهای کلاس فیلدهای مخفی شونده این کد را وارد کنید
id="helement1"
مثال: <tr class="rsform-block rsform-block-shdanesh"id="helement1">

>- برای طرح بندی xhtml به این صورت عمل کنید
<div class="formCaption2"id="helement1"</div>

در خواص فرم> CSS و Javascript> Javascript> این اسکریپت را وارد کنید و SHDANESH را با نام فیلد مخفی شونده جایگزین کنید و DANESH را با نام یکتای کلید رادیویی جایگزین کنید.
کد:
<script type="text/javascript">
function displayField1()
{
    if(documentgetElementById('DANESH3').checked)
    {
        documentgetElementById('helement1').style.display="";
    }
    else {
        documentgetElementById('helement1').style.display="none";
        document.getElementById('SHDANESH').value="";
        document.getElementById('component11').setAttribute("class", "formNoError");
        }
}
window.addEvent('domready', function() {
displayField1();
});
</script>
>- و در خواص فرم> اسکریپت ها> این اسکریپت را وارد کنید و نامهای یاد شده را مجدد تغییر دهید
کد:
//Note that PHP scripts will not be executed on the demo server. This is just a sample code.
//Radio example validation
if($_POST['form']['danesh'] == 'Other' && $_POST['form']['shdanesh'])
{
    $invalid[] = RSFormProHelpe:getComponentId("shdanesh");
}

به همین سادگی فرمی ساختیم که تعدادی از فیلدهاش بعد از برقراری شرط فعال میشن ویک فرم داینامیک به سایتمون اضافه کردیم.

این هم دمو
دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.


درضما فایل نمونه را پیوست میکنم میتونید نصبش کنید تابا مراحل توضیح داده شده بیشترآشنا بشن


نمونه ساده فیلد مخفی شونده - محمدسلیمانی - ۵-۴-۱۳۹۲ ۰۲:۴۴ صبح

سلام به دلیل درخواست های زیاد دوستان برای فیلد مخفی شونده
یک نمونه خیلی خیلی ساده درست کردم که فقط برای قابل فهم تر شدن آموز فوق قابل استفاده است
امیدوارم کارگشا باشد.
[تصویر:  1372175071_499_ae38566b7f.PNG]

توضیح: عنوان های هایلایت شده بعد از برقراری شرط قابل نمایش است.


محدود كردن تعداد ارسال ها به يك فرم - محمدسلیمانی - ۲۷-۶-۱۳۹۲ ۱۱:۳۶ عصر

همواره پیشنهاد میکنم در دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
سوالات پرسیده بشه تا هم دوستان دیگه در غیاب من پاسخگو باشند و هم کسانی که مشکل مشابه را دارند با جستجو و استفاده از مطالب به نتیجه ای که شما پیگیرش بودید برسند

محدود كردن تعداد ارسال ها به يك فرم

شاید بخواهید در یک فرم اعمال محدودیت کنید که مثلا 20 نفر اول که فرم رو پر کردند دارای یک امتیاز باشند و یا برای عضو گیری فقط 15 نفر اجازه دارند و یا به هر دلیل دیگری میخواهید این محدودیت را اعمال کنید
مثل همیشه افزونه بی نظر و دوست داشتنی rsform میتونه این مشکل شما رو حل کنه.


برای این کار کافی است این کد را در قسمت اسکریپت های افزونه اضافه کنید

کد:
global $database;
$database = JFactory::getDBO();
$database->setQuery("SELECT COUNT(`SubmissionId`) FROM jos_rsform_submissions WHERE `formId`='7'");
$database->query();
if (intval($database->loadResult()) >= 20)
{
echo پیغام خطا = متاسفانه تعداد اعضاء مجاز به حد مجاز رسیده اند !';
$formLayout = '';
}

توضیح کد:

[b]1 - با این کد شما از ارسال به دیتا بیس فرم جلوگیری کرده اید و نمیتوان متوجه تعداد ارسال های شکست خورده شوید.


2 - بعد از به حد مجاز رسیدن ارسال های فرم پیام تشکر با یک پیغام خطا جایگزین میشود


3 - برای تغییر پیغام خطا خط شماره 7 را تغییر دهید یعنی=
کد:
[/b]
echo پیغام خطا = متاسفانه تعداد اعضاء مجاز به حد مجاز رسیده اند !';

[b]4 - 'formId`='7 باید برابر با ای دی فرم شما باشد


5 -loadResult()) >= 20) باید برابر با تعداد مجاز به ارسال های فرم باشد.



ماژول نمایش محتوای ارسالی فرم - محمدسلیمانی - ۳۱-۶-۱۳۹۲ ۰۳:۱۰ صبح

ماژول نمایش محتوای ارسالی فرم


سلام بخاطر سوالی که از قبل هم پرسیده میشد و هنوز هم پرسیده میشه فکر کردم بهتره این افزونه رو معرفی کنمT البته میدونم که اینجا جای معرفی افزونه نیست اما دوستانی که پیگیر مسائل اراس فرم هستند اینجا سر میزنند
قبلا جوابی که به این سوال در نت دادم این بوده که از خواص منو > نمایش فرم > انتخاب فرم دلخواه ، بعد در کدهای پیش فرض نام های یکتا را جایگزین کنید. این کار ممکن بود مشکل را حل کنه اما نمایش این اطلاعات در یک منو خاص کمی بی سلیقه و خشک و برای بعضی ها ممکن بود نا کار امد باشه .

حالا خود اراس فرم یک ماژول ارائه کرده که این مشکل رو حل کنه یعنی اطلاعاتی از فرم و که میخوای تو سایت نمایش بدیم و در موقعیت ماژول و یا وسط یک مطلب قرار بدیم

همونطور که میدونید افزونه های جانبی این افزونه تجاری هستند و در انجمن های وارز هم به سختی گیر میان.

اما بهتون مژده میدم که تمام ماژول ها و پلاگین های این افزونه رو (چون بعضی هاشون نیاز به اموزش دارند) به نوبت منتشر میکنم و بخاطر اینکه افزونه های تجاری در انجمن منع قانونی داره از dropbox خودم براتون لینک میدم.

دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.



ثبت کشور ارسال کننده فرم - محمدسلیمانی - ۸-۷-۱۳۹۲ ۰۷:۰۴ صبح

ثبت کشور ارسال کننده فرم
سلام و خسته نباشید
چند وقت پیش برای یه انجمن یه فرم درست کردیم که چند روز پیش یه درخواست عجیب داشت
میخواست مشخص باشه که هر فرم از چه کشوری فرستاده میشه گرچه این از کاربر پرسیده میشد اما....
البته سایت هایی مثل دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
میتونند اطلاعات خوبی رو از روی ip کاربر بهمون بده
اما نمیخواستن دونه دونه چک کنن و میخواستن در دیتابیس این مورد هم ثبت بشه

یه روش از طرف همین سایتی که بالا لینکش و گذاشتم ارائه شده بود که گفته بود از طریق یک کد جاوا میتونید اطلاعاتی که این سایت میده رو درسایت خودتون نمایش بدی خلاصه با کمی بالا و پایین کردن فرم و فرمساز محبوب این روزا rsform تونستیم این اطلاعات و ذخیره کنیم

گفتم شاید به کار دوستان هم بیاد البته این کد برای کشوره اما میتونیید اطلاعات بیشتری
مثل: تلفن تماس ، ادرس دقیق ، لینک نمایش گوگل ارث ، و............ رو هم دریافت کنه

بریم سراغ اصل موضوع:
برای این کار اگر میخواید کاربر اطلاعات مربوط و نبینه یک فیلد مخفی ایجاد کنید و این کد رو داخلش کپی کنید
کد:
//<code>
if ($contents = file_get_contents('http://api.hostip.info/?ip='.@$_SERVER['REMOTE_ADDR']))
{
if (preg_match('#<countryName>(.*)</countryName>#is', $contents, $match))
return $match[1];
}
return 'Unknown';
//</code>

اگر هم خواستید این اطلاعات رو مثلا به ایمیل کاربر یا در پیام تشکر بنویسید از این کد استفاده کنید
اگر نام فیلد مخفی شما country باشد
کد:
{country:value}

و اگر به جای کشور مثلا شهر را خواستید دریافت کنید
به جای <countryName>(.*)</countryName> از < CityName>(.*)</ CityName> استفاده کنید


مقایسه دو فیلد با استفاده از جاوا اسکریپت - mohi - ۹-۷-۱۳۹۲ ۰۱:۰۰ صبح

با سلام
در این قسمت مقایسه دو فیلد پسورد آموزش داده خواهد شد
وقتیکه بخواهیم فیلد پسورد و تکرار پسورد به صورت مقادیر صحیح وارد شود به صورت زیر عمل میکنیم:

برای پسورد:

1- فیلد: از نوع فیلد رمز عبور (فیلد متنی نیست)
با نام: password1
برچسب : رمز عبور
اجباری : بله
نوع معتبر سازی : حروف و عدد

2- فیلد: از نوع فیلد رمز عبور (فیلد متنی نیست)
با نام: password2
برچسب : تکرار رمز عبور
اجباری : بله
نوع معتبر سازی : حروف و عدد

3- ایجاد دکمه ارسال
نوشتن کد زیر در قسمت :
خواص -> خواص اضافه
کد:
onclick="return checkPassword('password1', 'password2');"

4- در قسمت css , javascript
در قسمت اسکریپت این تابع رو مینویسیم:
کد:
<script type="text/javascript">
function checkPassword(theForm) {
if (document.getElementById('password1').value != document.getElementById('password2').value)
{
alert('Those password don\'t match!');
return false;
}
else {
return true;
}
}
</script>

نکنه برای ایمیل و تاییدیه ایمیل هم همین کارو میشه کرد
نکته 2 اینکه باید فیلد رمز عبور انتخاب بشه نه متنی و نوعش عددی حرفی باشه


صفحه ارجاع دهنده - محمدسلیمانی - ۲۲-۷-۱۳۹۲ ۰۵:۴۶ صبح

یه بار دیگه سلام و خسته نباشید خدمت دوستای گلم
یکی از دوستان بهم ایمیل زد و ازم پرسید اگه ازم تشکر زیاد کنه یا بهم اعتبار بده به انتشار آموزش های اراس ادامه میدم یا نه
ترجیح دادم اینجا جوابشو بدم: با امار تشکر و اعتبار بهمون مدال نمیدند و این موارد فقط این حس و به آدم میده که کدوم موارد کاربردی تر هست و کاربرا چقدر در گیر اون موضوع خاص بودند
و هر کدوم از دوستانی که با هر عنوان کاربری به مشکل بقیه فکر میکنند و بهترین پاسخو به تایپک ها میده فقط و فقط بخاطر کمک اول به خودش برای بالا بردن سطح کاری خودش و بعد کمک به دوستان خوبی که شاید هر روز از کنارشون رد میشی و نمیشناسیشون من فکر میکنم این بهترین نوع خدمت به خلق هست.
به هر حال.....
میریم سراغ آموزش.


یه سوال که همیشه هست و گاه پرسیده میشه اینه که اگر ما موضوع های مختلفی رو داشتیم مثل سفارش یک کالا که باید در همه موارد اطلاعات ثابتی را دریافت کنیم نیاز هست که برای مورد یک فرم جدا بسازیم ؟؟؟؟

جواب خیر است.

میتونیم با به دست آوردن صفحه ارجاع سفارش به فرم یا صفحه ای که فرم از اون فرستاده شده و ذخیره اون در همون فرم بفهمیم اطلاعات دریافتی مربوط به کدوم مورد هست و باید در کدام دسته قرار بگیره.

برای این کار این کد را در اسکریپت های فرم مانند تصویر کپی کنید

کد:
echo $_SERVER['HTTP_REFERER'];

[تصویر:  c416_10.jpg]

بعد یک فیلد مخفی ایجاد کنید و در خواص فرم این کد را وارد کنید : مانند تصویر

کد:
//<code>
return $_SERVER['HTTP_REFERER'];
//</code>

[تصویر:  p731_20.jpg]

و ممکن است فرم شما از یک ماژول در یک صفحه اجرا شود در این صورت
در فیلد مخفی شونده این کد را وارد کنید

کد:
$doc = JFactory::getDocument();
return $doc->getTitle();

امیدوارم کاربردی و مفید باشه.
موفق باشید


اضافه کردن tooltip به فیلدها در اراس فرم - محمدسلیمانی - ۱۰-۸-۱۳۹۲ ۰۴:۱۴ صبح

سلام به همگی
ببخشید مدتی نیستم و ممکنه طولانی بشه به این بهانه امدم هم سلام کنم هم یه آموزش کوتاه اما بحال براتون قرار بدم

اضافه کردن tooltip به فیلدها در اراس فرم
با توجه به اینکه ار اس فرم خیییییییییلی انعطاف پذیره و اکه کمی جاوا و سی اس اس بدونید خیلی کارها میشه در اراس انجام داد که بستگی به نیاز، سلیقه، و دانش برنامه نویسی شما داره
اما گمان میکنم یکی از چیزهایی که واقعا برای هر فرمی لازمه توضیحات درباره هر فیلد هست که به کاربر میگه چه مقداری را باید وارد فیلد کنه و یا توضیح هات تکمیلی شایدهم یه اخطار بابت منتقل کردن بعد قانونی موضوع خارج از حیطه کاری خودتون...
به هر حال.
ار اس فرم این امکان رو فراهم کرده که تولتیب پیش فرض جوملا برای فرمهاش استفاده بشه که میتونید با تغییر تولتیب پیش فرض ظاهرش و برای اراس هم تغییر بدید و یا براش با جاوااسکریپت یه تولتیپ دلخواه بنویسید

برای این کار کد زیر را در قسمت خواص هر فیلد اضافه کنید
کد:
class="editlinktip hasTip" title="توجه::ویژه کاربران پارس جوم"
فقط حواستون باشه که قبل از :: به صورت بولد نشون داده میشه

تا اینجا تولتیپ به فرم اضافه شد اما برای استفاده از استایل جوملا این کد را در قسمت اسکیپت ها> اسکریپت لود فرم کپی کنید

کد:
JHTML::_('behavior.tooltip');

اینم نمونه فرم.

[تصویر:  1383238978_499_1fd9541668.jpg]

موفق باشید.


شروع از ابتدای صفحه (فرم های چند صفحه ای) - محمدسلیمانی - ۶-۱۲-۱۳۹۲ ۰۵:۴۴ صبح

به نام خداوند ذهن های جستجوگر
با سلام خدمت بچه های خوب انجمن خوب پارسجوم

اگر از امکان فرم های چند صفحه ای فرم ساز اراس استفاده کرده باشید متوجه این ضعف شده اید که بعد از کلیک روی گزینه بعدی فرم بعد از انتقال به صفحه بعد از همان انتها شروع میشوند و کاربر مجبور است از نوار اسکرول مرورگر به ابتدای صفحه برود
شاید این مسئله مهمی نباشد اما این کار کیفیت کار شما رو به شدت پایین میاره و سایت حرفه ای شما رو شبیه به یک سایت مبتدی کنه (بی کلاس دیده میشه)

در ادامه می آموزید که به چه شکل بعد از انتقال فرم به صفحه جدید فرم به طور خودکار به ابتدای صفحه هدایت شود.

تابعي كه باعث حركت در بين فرم مي شود در فايل components\com_rsform\assets\js\pages.js قرار دارد.

برای اینکه فرم ما از حالت پیشفرض کدهای این فایل استفاده نکنند کافیه به زبانه ي کامپوننت > ار اس فرم > مدیریت فرم ها > انتخاب فرم مورد نظر > CSS and Javascript فرم برويد و تابع زير را به ان اضافه كنيد :
کد:
<script type="text/javascript">
function rsfp_changePageScroll(param1, param2, param3, param4)
{
rsfp_changePage(param1, param2, param3, param4);
scroll(0,0);
}
</script>
اين تابع از تايع پيش فرضي كه در RSForm!Pro براي حركت بين صفحات (يعني تابع rsfp_changePage) تعريف شده استفاده مي كند . به طوريكه بعد از رفتن به صفحه ي بعد به بالاي آن صفحه منتقل مي شود . بعد از انجام اصلاحات بالا به قسمت "فراخوانی اسکریپت هنگام نمایش" برويد و اسكريپت ساده زير را اضافه كنيد ( اين اسكريپت قرار است كه تابع شما را با تابع پيش فرضي كه جوملا تعريف كرده عوض كند ) :
کد:
$formLayout = str_replace('rsfp_changePage','rsfp_changePageScroll',$formLayout);

امیدوارم این آموزش کوتاه و ساده باعث تفاوت های بزرگ در کیفیت کار شما شود.
موفق باشید.

در ضمن دوستانی که در این پست سوال مطرح میکنند، تشکر میکنند یا هر پستی غیر از آموزش ارسال میکنند بدون اطلاع پستشون حذف میشه
امیدوارم درک کنید این کار اولا قانون این تایپک هست و هم بخاطر احترام به حقوق بقیه و سرعت بخشیدن به روند آموزش های ارسال شده است
و برای ارسال سوال فقط در انجمن رفع اشکال اراس سوال مطرح کنید ممنون
دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.