منوی بازشوندهٔ شرطی

~ 0 min
2017-03-31 04:08

«منوی بازشوندهٔ شرطی» یکی از پلاگین‌هایی است که توسط فودل آماده و منتشر شده است. با استفاده از این پلاگین می‌توانید فیلدهایی شامل مقادیر از پیش تعیین‌شده (به‌صورت یک منوی بازشونده) در صفحهٔ مشخصات فردی (پروفایل) کاربران قرار دهید که بسته به مقدار انتخاب‌شده برای آن فیلد، فیلدهای دیگری در صفحه ظاهر یا پنهان شوند. همچنین می‌توانید تعیین کنید که بسته به مقدار انتخاب‌شده برای این فیلد، وارد کردن چه فیلدهای دیگری باید اجباری باشد.

نصب پلاگین

پلاگین مشخصهٔ فردی منوی بازشوندهٔ شرطی را می‌توانید از آدرس https://moodle.org/plugins/profilefield_conditional دریافت کنید. برای راهنمایی درباره چگونگی نصب پلاگین‌ها، به راهنمای نصب پلاگین‌های جدید مراجعه کنید. پلاگین‌های مشخصهٔ فردی در مسیر user/profile/field قرار می‌گیرند.

تعریف یک مشخصهٔ شرطی جدید برای کاربران

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

صفحهٔ تنظیمات این مشخصه، همانند تمام مشخصه‌ها از دو بخش تنظیمات عمومی و تنظیمات خصوصی تشکیل شده است. تنظیمات عمومی شامل گزینه‌هایی برای تعیین نام، توصیف و اجباری بودن یا نبودن مشخصه است. همچنین می‌توانید تعیین کنید که این مشخصه در صفحهٔ عضویت سایت نمایش داده شود یا خیر.

تنظیمات اختصاصی مشخصه در ۳ مرحله انجام می‌پذیرد:

  • وارد کردن گزینه‌های قابل انتخاب و در صورت تمایل تعیین گزینهٔ پیش‌فرض
  • پیکربندی شرایط به این مفهوم که در صورت انتخاب هر کدام از گزینه‌ها، چه فیلدهای دیگری باید نمایش داده شوند یا پنهان شوند. همچنین وارد کردن چه فیلدهایی اجباری خواهد بود.
  • تعیین مخفی بودن یا نبودن اولیهٔ تمام فیلدها (توضیح در ادامه)

پیکربندی گزینه‌ها

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

پیکربندی شرایط

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

پس از اینکه گزینه‌های قابل انتخاب را وارد کردید، بر روی دکمهٔ «پیکربندی شرایط» کلیک کنید تا تعیین کنید در صورت انتخاب هر گزینه، چه فیلدهایی باید نمایش داده شوند یا پنهان شوند، و وارد کردن چه فیلدهایی اجباری است. بدیهی است در صورت پنهان‌کردن یک فیلد برای یک گزینه نمی‌توانید آن فیلد را برای همان گزینه به‌صورت اجباری تعیین کنید.

به‌عنوان مثال اگر پیکربندی شرایط به‌صورت نمایش داده شده در شکل روبرو انجام شده باشد، آنگاه چنانچه کاربری در صفحهٔ مشخصات فردی‌اش مقدار فیلد شرطی را روی گزینهٔ ۱ قرار دهد، فیلدهای ۱ و ۴ نمایش داده خواهند شد و فیلدهای ۲ و ۳ پنهان خواهند شد. اگر کاربر گزینهٔ ۲ را انتخاب کند، آنگاه باز هم فیلدهای ۲ و ۳ پنهان خواهند ماند ولی این بار وارد کردن مقدار برای فیلد ۱ اجباری خواهد بود و کاربر نمی‌تواند آن را خالی بگذارد. در صورت انتخاب گزینهٔ ۳، تمام فیلدهای ۱ و ۲ و ۳ و ۴ نمایش داده می‌شوند و هیچ فیلدی پنهان نخواهد شد.

مخفی بودن اولیه فیلدها

همانطور که ملاحظه کردید، تعیین اینکه چه فیلدهایی باید نمایش داده شوند و نشوند، تنها با انتخاب فیلدهایی که باید از فرم حذف شوند (پنهان شوند) انجام می‌شود. در اینصورت چنانچه کاربر هنوز مقداری برای فیلد شرطی انتخاب نکرده باشد، هیچ فیلدی از فرم حذف نخواهد شد و تمام فیلدهای موجود در فرم نمایش داده می‌شوند. اگرچه آنچه در واقع اتفاق می‌افتد این است که با انتخاب گزینه‌های متفاوت فیلدهایی از فرم حذف می‌شوند، ولی گاهی اوقات شما می‌خواهید این تجربه را به کاربر بدهید که با انتخاب گزینه‌های متفاوت، فیلدهای متفاوتی به فرم اضافه می‌شوند. چنانچه تنظیم «مخفی بودن اولیهٔ فیلدها» را فعال کرده باشید، هنگامی که کاربر هنوز هیچ گزینه‌ای را انتخاب نکرده است، تمام فیلدهایی که در سناریوی نمایش داده شدن و پنهان شدن دخیل هستند به‌طور اولیه پنهان خواهند بود.

به‌عنوان مثال در پیکربندی شکل قبل، چنانچه تنظیم «مخفی بودن اولیهٔ فیلدها» فعال باشد و کاربر هنوز هیچ‌کدام از گزینه‌های ۱ یا ۲ یا ۳ را انتخاب نکرده باشد، فیلدهای ۲ و ۳ از فرم حذف می‌شوند و تنها فیلدهای ۱ و ۴ نمایش داده خواهند شد. دلیل باقی‌ماندن فیلدهای ۱ و ۴ این است که این دو فیلد در صورت انتخاب هیچکدام از گزینه‌ها پنهان نخواهند شد. در این لحظه چنانچه کاربر گزینهٔ ۳ را انتخاب کند، اتفاقی که از دید او رخ می‌دهد این است که فیلدهای ۲ و ۳ به فرم اضافه می‌شوند.

فیلدهای اجباری

در هنگام تعریف هر مشخصهٔ فردی اضافی در مودل می‌توانید تعیین کنید که وارد کردن آن مشخصه توسط کاربران باید اجباری باشد یا خیر. از طرف دیگر در هنگام استفاده از یک مشخصهٔ شرطی با توجه به مقداری که برای مشخصهٔ شرطی انتخاب می‌شود ممکن است برخی از فیلدها از فرم حذف شوند. در مثال قبل فرض کنید در هنگام تعریف مشخصهٔ «فیلد ۲» آن را به‌صورت اجباری تعیین کرده‌باشید. علی‌رغم اینکه مودل سعی می‌کند کاربر را در هر شرایطی مجبور به وارد کردن مقدار برای «فیلد۲» کند، ولی در صورتی که کاربر هر یک از گزینه‌های ۱ یا ۲ را برای مشخصهٔ شرطی انتخاب کند، فیلد ۲ از فرم حذف خواهد شد. این پلاگین به بهترین نحو ممکن تلاش می‌کند تا وضعیتی که در آن برخی از فیلدهای اجباری از فرم حذف شده‌اند را مدیریت کند و ذخیرهٔ اطلاعات با موفقیت صورت پذیرد.

 از نسخهٔ ۳٫۰٫۷ (در خانوادهٔ ۳٫۰) و ۳٫۱٫۳ (درخانودهٔ ۳٫۱) و ۳٫۲ به بعد و با اعمال MDL-46946، مودل کاربران را مجبور می‌کند تا تمام مشخصه‌هایی که اجباری تعیین شده‌اند را پر کنند. پیش از نمایش هر کدام از صفحه‌ها مودل چک می‌کند که آیا مشخصهٔ اجباری‌ای وجود دارد که خالی مانده باشد یا خیر و درصورت وجود کاربر را به‌اجبار به صفحهٔ ویرایش مشخصات فردی‌اش هدایت می‌کند. بنابراین اگرچه پلاگین «منوی بازشوندهٔ شرطی» پنهان شدن یک فیلد اجباری را مدیریت می‌کند و اجازهٔ ذخیرهٔ اطلاعات را می‌دهد، در صورت استفاده از نسخه‌های مطرح‌شده کاربر در یک چرخهٔ بی‌پایان اسیر خواهد شد.

با توجه به نکتهٔ مطرح‌شده چنانچه می‌خواهید مشخصه‌ای در برخی از شرایط مخفی شود، آن را به هیچ عنوان به‌عنوان یک مشخصهٔ اجباری تعریف نکنید. بلکه پس از تعریف آن مشخصه به‌عنوان مشخصه‌ای که می‌تواند خالی بماند، در هنگام پیکربندی شرایط در مشخصهٔ شرطی تعیین کنید که هر کدام از سایر مشخصه‌ها در چه شرایطی باید اجباری باشند. در مثال قبل، در صورتی که کاربر گزینه ۲ را انتخاب کند، پر کردن مشخصهٔ «فیلد ۱» اجباری خواهد بود.

تداخل شرایط

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

فرض کنید نام مشخصهٔ شرطی مطرح‌شده در مثال قبل «فیلد شرطی ۱» باشد. حال فرض کنید یک مشخصهٔ شرطی دیگر با نام «فیلد شرطی ۲» و با شرایط نمایش داده‌شده در شکل مقابل پیکربندی کرده باشیم. در اینصورت اگر کاربر برای «فیلد شرطی ۱» مقدار «گزینه ۱» و برای «فیلد شرطی ۲» مقدار «مورد ۳» را انتخاب کند، آنگاه «فیلد ۲» توسط «فیلد شرطی ۱» مخفی می‌شود؛ حال آنکه پر کردن آن با توجه به مقدار انتخاب‌شده برای «فیلد شرطی ۲» اجباری خواهد بود. به‌طور مشابه اگر کاربر «فیلد شرطی ۱» را روی «گزینه ۲» و «فیلد شرطی ۲» را روی «مورد ۲» قرار دهد، آنگاه فیلدهای ۱ و ۲ به‌طور هم‌زمان هم اجباری و هم مخفی خواهند شد.

حذف پلاگین

حذف پلاگین «منوی بازشوندهٔ شرطی» همانند هر پلاگین مشخصهٔ فردی دیگر است. پیش از اینکه بتوانید یک پلاگین از نوع مشخصهٔ فردی را از مودل حذف (uninstall) کنید، باید تمام مشخصه‌هایی که با استفاده از آن پلاگین ساخته‌اید را پاک کنید. پس از انجام این کار می‌توانید به «مدیریت سایت > پلاگین‌ها > مروری بر پلاگین‌ها» بروید و پلاگین «منوی بازشوندهٔ شرطی» را حذف کنید.

امتیاز متوسط 4.79 (19 نظر)

شما می‌توانید دربارهٔ این مقاله نظر دهید

Gravatar
Gergis (2020-09-03 11:25)
hello i have used your plugin, and formulated a lot of conditional fields, unfortunately; a conflict نمایش بیشترbetween hidden and required field happened, and now I cannot access the site as Administrator even to fix this issue any recommendations?????
Gravatar
Gergis (2020-09-03 11:26)
hello i have used your plugin, and formulated a lot of conditional fields, unfortunately; a conflict نمایش بیشترbetween hidden and required field happened, and now I cannot access the site as Administrator even to fix this issue any recommendations?????