ساده کردن و حذف فیلد های غیرضروری در ثبت نام و عضویت جوملا
ساده کردن و حذف فیلد های غیرضروری در ثبت نام و عضویت جوملا

ساده کردن و حذف فیلد های غیرضروری در ثبت نام و عضویت جوملا

به صورت پیش فرض در جوملا برای ثبت نام شما نیاز به پر کردن 6 فیلد دارید که اگر کپچا هم فعال کنید سر جمع به عدد 7 می رسد.کاربران و دوستان زیادی در مورد اینکه چطور بدون دست بردن در هسته جوملا ، تعداد فیلدهای ثبت نام رو به کمترین تعداد ممکن برسانند ، سوال می‌پرسیدند ، که در این پست قصد دارم روش اینکار رو بدون دست بردن در هسته جوملا توضیح دهم. خودتون رو آماده کنید که این یکی از بهترین و اصولی ترین روش ها برای کم کردن فیلدهای جوملا پیش روی شماست ، که میتوانید تعداد فیلدها را از 6 عدد به 2 عدد برسانید.

قدم اول : فعالسازی ثبت نام کاربران

  • اطمینان حاصل کنید که ثبت نام عضو جدید در سایت فعال است
  • برای اینکار به مسیر کابران ، تنظیمات بروید
  • سپس گزینه اجازه ثبت نام کاربر جدید را بروی بلی قرار دهید

تنظیمات ایجاد حساب کاربری در جوملا

قدم دوم : چک کردن فیلد پیش فرض ثبت نام جوملا

  • وارد قسمت کاربری جوملا شوید سپس در ماژول ورود و عضویت جوملا بروی دکمه ایجاد حساب کاربری کلیک کنید
  • با کلیک بروی ایجاد حساب کاربری شما صفحه پیش فرض ثبت نام جوملا را خواهید دید که قرار هست آن را ساده تر کنیم.

صفحه ثبت نام در جوملا در قالب هلیکس آلتیمیت

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

توجه : همچنین حتی برای کسانی که میخواهند از ایمیل به عنوان نام کاربری استفاده کننده هم راهکاری داریم که میتوانند تعداد فیلدهای ثبت نام را حتی به عدد 2 هم برسانند.

قدم سوم : ساخت اورراید برای قسمت ورود

برای ساخت اوراید قسمت ثبت نام کاربران هم می میتوانید اینکار رو از قسمت هاست انجام دهید و هم اینکار را از طریق قسمت مدیریت جوملای خود انجام دهید.

اورراید کردن از طریق هاست

برای اورراید override کردن از طریق هاست کافیست به مسیر اصلی افزونه مورد نظر برویم ، که در اینجا ما به مسیر زیر می رویم

/YOUR-SITE/components/com_users/views/registration/tmpl

سپس از فایل های  complete.php و default.php یک کپی میگیریم  و در مسیر زیر قرار می دهیم :

/YOUR-SITE/templates/YOUR-TEMPLATE/html/com_users/registration

نکته : در صورتی که از قالب ها آماده استفاده میکنید ممکن است که این فایل در مسیر بالا وجود داشته باشد ، که در این صورت فقط کافیست سراغ قدم چهارم بروید اما در صورتی که مسیر بالا در قالب شما وجود نداشت ابتدا میبایست مسیر بالا و فولدر ها را بسازید سپس فایل ها رو در مسیر مورد نظر قرار دهید.

 قسمت مدیریت قالب های جوملا در مدیریت

اورراید کردن از طریق مدیریت جوملا

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

 اختصاصی سازی و کد نویسی قالب در مدریت جوملا

بروی تب ایجاد عنوان ها کلیک کنید
در اینجا اسم افزونه را پیدا کنید که ما در اینجا com_user را انتخاب میکنیم
و در آخر بروی registration کلیک کنید

اورراید کردن قالب در مدیریت جوملا

همانطور که مشاهده می کنید عمل اوراید کردن با موفقیت انجام شد

قدم چهارم : ویرایش فایل اورراید شده

  • بروی تب ویرایشگر کلیک کنید
  • وارد مسیر html > com_users > registration > default.php شوید
  • فایل default.php را باز کنید و به اولین خط ها نگاهی بیاندازید
  • به دنبال عبارت JHtml::_('behavior.formvalidator') باشید
  • بعد از این عبارت یک اینتر بزنید و کد زیر را جایگذاری کنید
/*** Begin Registration Form Override ***/

$doc = JFactory::getDocument();
$js = "
        jQuery(document).ready(function($){
            // Define the variables
            var regForm     = $('#member-registration');
            var name        = regForm.find('#jform_name');
            var password    = regForm.find('#jform_password1');
            var password2   = regForm.find('#jform_password2');
            var email       = regForm.find('#jform_email1');
            var email2      = regForm.find('#jform_email2');
            // Hide the required field, star, name, confirm pass and confirm email
            regForm.find('.spacer').parents('.control-group').hide();
            regForm.find('.star').hide();
            name.parents('.control-group').hide();
            password2.parents('.control-group').hide();
            email2.parents('.control-group').hide();
            // Add a default value to the name field
            name.val('Anonymous');
            // Clone password and email values to the confirm fields
            email.on('keyup', function() {
            email2.val( this.value );
            });
            password.on('keyup', function() {
                password2.val( this.value );
            });
        });    
    ";    
$doc->addScriptDeclaration($js);

/*** Finish Registration Form Override ***/

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

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

// Add a default value to the name field
name.val('Anonymous');

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

چگونه از ایمیل به عنوان نام کاربری استفاده کنیم ؟

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

/*** Begin Registration Form Override ***/

$doc = JFactory::getDocument();
$js = "
        jQuery(document).ready(function($){
            // Define the variables
            var regForm     = $('#member-registration');
            var name        = regForm.find('#jform_name');
			var username    = regForm.find('#jform_username');
            var password    = regForm.find('#jform_password1');
            var password2   = regForm.find('#jform_password2');
            var email       = regForm.find('#jform_email1');
            var email2      = regForm.find('#jform_email2');
            // Hide the required field, star, name, confirm pass and confirm email
            regForm.find('.spacer').parents('.control-group').hide();
            regForm.find('.star').hide();
            name.parents('.control-group').hide();
            password2.parents('.control-group').hide();
            email2.parents('.control-group').hide();
            // Add a default value to the name field
            name.val('Anonymous');
            // Clone password and email values to the confirm fields
            email.on('keyup', function() {
            username.val( this.value );
	    email2.val( this.value );
            });
            password.on('keyup', function() {
                password2.val( this.value );
            });
        });    
    ";    
$doc->addScriptDeclaration($js);

/*** Finish Registration Form Override ***/

 حالا مجددا صفحه ثبت نام را رفرش کنید ، نتیجه از این به بعد برایتان جالبتر هم خواهد شد.اکنون شما در فیلد اول ایمیل آدرس ایمیل خود را وارد کنید.

فرم ثبت نام اورراید شده در جوملا

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

قدم پنجم : مخفی سازی فیلدها

  • مخفی سازی فیلد نام
  • مخفی سازی فیلد نام کاربری
  • مخفی سازی فیلد تائیدیه رمز ورود
  • مخفی سازی فیلد تائیدیه نشانی ایمیل

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

#member-registration #jform_name-lbl,
#member-registration #jform_name,
#member-registration #jform_username-lbl,
#member-registration #jform_username,
#member-registration #jform_password2-lbl,
#member-registration #jform_password2,
#member-registration #jform_email2-lbl,
#member-registration #jform_email2,
#member-registration > fieldset:nth-child(1) > div > div:nth-child(5),
#member-registration > fieldset:nth-child(1) > div > div:nth-child(3) {
    display: none;
}

تبریک می گویم ، شما به همین راحتی توانستید 4 فیلد نام ، نام کاربری ، تکرار رمز عبور و تکرار ایمیل را حذف کنید،

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

نوشته شده با عشق

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

محمدحسین نیازی

پست های مرتبط

10 دیدگاه تاکنون ارسال شده
  • آرش
    مهمان
    با سلام و خسته نباشید بابت آموزش خوب و کاربردی که ارائه کردید. حال اگه این کار رو بخواهیم برای یه ماژول خاص انجام بدیم باید چیکار کرد؟ مثلا ماژول bt login سپاس
    • محمدحسین نیازی
      مدیر
      در پاسخ به آرش. گفته :
      با سلام خدمت شما دوست عزیز همین کد ها رو میبایست در ماژول مربوطه استفاده کنید منتها با توجه به این که کلاس های کدی که قرار داده شده است برای صفحه ثبت نام و ورود پیش فرض جوملا هست نیاز به تغییراتی در کد و کلاس های کلی می باشد
  • مسعود
    مهمان
    سلام خیلی خیلی مطلب مفیدی هستش ممنونم از شما من انجام دادم و مورد حل شد فقط یه موردی که هست انتهای کار برای من اول فیلد رمز عبور نمایش داده میشه و بعد فیلد ایمیل! چطور میشه اینو جابجا کرد ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ سپاس/
    • محمدحسین نیازی
      مدیر
      در پاسخ به مسعود. گفته :
      با سلام خدمت شما دوست عزیز خوشحالم مطلب مورد استقبالتون قرار گرفته در جوملا به صورت پیش فرض ابتدا رمز عبور هست و بعد ایمیل برای جابجایی این دو میشه کدنویسی برای قسمت register user انجام داد و اگرم افزونه های مدیریت کاربران دارید با اون میتونید فیلدها رو جابجا کنید
  • هانی
    مهمان
    سلام تشکر فراوان میکنم بابت این زحمتی که کشیدین ، بسیار کاربردی و سالم و خیلی خوب کار میکنه. فقط اگر ممکنه یک دیزان قرار بدین تا بجای این طرح ساده صفحه ثبت نام و لاگین کامپوننت جوملا قرار بدیم. بازهم تشکر میکنم.
    • محمدحسین نیازی
      مدیر
      در پاسخ به هانی. گفته :
      سلام خوشحالم مورد استفادتون قرار گرفته برای جذاب تر کردن صفحه ثبت نام جوملا و کاربران میشه کارهای خیلی زیادی انجام داد ، از تغییرات قالب تا کدنویسی که بهترین شکل رو میشه با کدنویسی انجام داد و صفحه های ثبت نام متفاوتی رو درست کرد که همه برپایه سیستم جوملا باشند
  • علی
    مهمان
    عدم تایید باعث میشه مثلا کاربر یک وقت ایمیل رو اشتباه میزنه یک وقت پسورد رو و با یک ایمیل و پسورد اشتباه رجیستر میشه
    • محمدحسین نیازی
      مدیر
      در پاسخ به علی. گفته :
      سلام علی جان بله درست میگی و حرفت کاملا صحیح هست اما وقتی قراره ایمیل تایید برای کاربر ارسال بشه و طرف با ایمیل اشتباه ثبت نام میکنه خب طرف شخصا خودش اشتباه وارد کرده و میتونه مجددا با ایمیل درست ثبت نام کنه همینطور حتی میتونید از قسمت مدیریت ویرایش نام کاربری رو فعال کنید و در حالتی که از ایمیل به عنوان نام کاربری استفاده میکنید ، با عوض کردن ایمیل ، نام کاربری طرف هم حتی عوض میشه در رابطه با رمز ورود هم همین حالت صدق میکنه و اگرم هم حتی اشتباه زده میتونه درخواست فراموشی رمز بده و رمز به ایمیل طرف ارسال بشه اما میتونید تکرار رمز ورود هم بزارید درون فرم نشون بده ، فقط کافیه خط زیر رو از کدهای بالا حذف کنید password.on('keyup', function() { password2.val( this.value ); }); و همچنین خط زیر زو از سی اس اس بردارید #member-registration #jform_password2-lbl, #member-registration #jform_password2 در کل سادگی ، کاربر رو از سردرگرمی در میاره و باعث صرفه جویی زیادی در وقتش میشه
  • محمدامین
    مهمان
    بابا ایولا هیچ برنامه نویسی ای بلد نبودم و فقط طبق روش هایی گفتی رفتم جلو و همه چی اونجوری شد که میخواستم من از افزونه استفاده میکردم و همشم باید آپدیت نگهش میداشتم تا در جوملا های بعدی مشکلی نخوره اما این روش دستی واقعا عالی بود آقا محمدحسین سایت و سبک کار کردنت واقعا متفاوت و جذابه خیلی خوشحال میشم بیشتر باهاتون آشنا بشم موفق باشی دوست من
    • محمدحسین نیازی
      مدیر
      در پاسخ به محمدامین. گفته :
      با سلام خدمت شما دوست عزیزم نظر لطف شماست و خیلی خوشحالم که مورد توجهتون واقع شده بیشتر بهمون سر بزنید
ارسال نظر
در پاسخ به Some User

آی سی ام اس

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