پرش به مطلب اصلی

ذخیره فیلد سفارشی پروفایل

این عملکرد مقدار فیلدهای سفارشی پروفایل را روی حساب کاربر ذخیره می‌کند. می‌توانید یک فیلد را جداگانه ذخیره کنید یا چند فیلد را با یک دکمه «ذخیره همه» با هم بفرستید.

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

کاربردها

  • ساخت فرم ویرایش فیلدهای سفارشی با چیدمان دلخواه، به‌جای ردیف‌های آماده ویجت پروفایل کاربر.
  • گرفتن کد ملی، شماره کارت، شبا یا تاریخ تولد در یک صفحه تکمیل اطلاعات.
  • ذخیره یکجای چند فیلد با یک دکمه.

تنظیمات

  • ذخیره دسته‌ای چند فیلد با یک متغیر نگاشتی: حالت کار را تعیین می‌کند.
  • فیلد سفارشی: فقط در حالت تک‌فیلدی فعال است. فهرست فیلدهای تعریف‌شده اپ را نشان می‌دهد؛ می‌توانید شناسه لاتین فیلد را هم دستی بنویسید.
  • متغیر مقدار: نام متغیری که مقدار را نگه می‌دارد.

حالت تک‌فیلدی

گزینه «ذخیره دسته‌ای» را خاموش بگذارید، یک فیلد را انتخاب کنید و متغیر مقدار را بدهید. مناسب فرمی است که هر فیلد دکمه ذخیره خودش را دارد.

حالت دسته‌ای

گزینه «ذخیره دسته‌ای» را روشن کنید. در این حالت متغیر مقدار باید یک نگاشت «شناسه فیلد => مقدار» باشد؛ برای مثال:

{
"nationalId": "0012345678",
"newsletter": "1"
}

مناسب فرمی است که چند فیلد دارد و یک دکمه «ذخیره همه» در انتهای آن قرار گرفته است.

نکته

مقدار این متغیر را می‌توانید با مقداردهی متغیر بسازید و مقدار فیلدهای فرم را با الگوی {{myvar}} داخل آن قرار دهید.

نتیجه اجرا

متغیرمقدار
sys.user.saveSuccesstrue در صورت موفقیت، false در صورت خطا
sys.user.saveErrorپیام خطا؛ در صورت موفقیت خالی می‌شود

پس از ذخیره موفق، sys.user.fields.<شناسه> و sys.user.fieldList به‌روز می‌شوند.

توضیحات

  • شناسه ناشناخته: اگر شناسه‌ای بفرستید که در اپ تعریف نشده باشد، عملکرد با پیام «فیلد سفارشی «...» در این اپ تعریف نشده است» متوقف می‌شود. این بررسی عمداً وجود دارد تا یک غلط تایپی در شناسه، به‌اشتباه «ذخیره شد» نشان ندهد.
  • فیلد غیرقابل ویرایش: فیلدی که در پنل گزینه ویرایش توسط کاربر را ندارد (مثل کد پرسنلی یا شماره قرارداد) با پیام روشن رد می‌شود و درخواستی به سرور فرستاده نمی‌شود.
  • اعتبارسنجی مقدار: اجباری بودن، یکتا بودن، مجاز بودن گزینه‌های انتخابی و قالب‌هایی مثل کد ملی، شماره کارت و شبا همگی روی سرور بررسی می‌شوند. پیام خطا در sys.user.saveError قرار می‌گیرد.
  • در حالت دسته‌ای، اگر یکی از فیلدها خطا بدهد هیچ‌کدام ذخیره نمی‌شوند.
  • برای فیلد نوع «بله/خیر» مقدار "1" یعنی بله و "0" یعنی خیر.
  • اگر کاربر وارد حساب نشده باشد، عملکرد اجرا نمی‌شود.

نکات تکمیلی

  • برای ساخت خودکار ردیف‌های فرم بر اساس فیلدهای تعریف‌شده، از sys.user.fieldList به‌عنوان منبع یک لیست پویا استفاده کنید؛ هر عضو این فهرست شناسه، عنوان، نوع، گزینه‌ها و قابل‌ویرایش بودن فیلد را در خود دارد.
  • برای پنهان کردن دکمه ویرایش روی فیلدهای غیرقابل تغییر، شرط sys.inPage.data.editable == true را روی دکمه بگذارید.

خطاهای رایج

  • نوشتن عنوان فارسی فیلد به‌جای شناسه لاتین آن.
  • فراموش کردن روشن کردن گزینه «ذخیره دسته‌ای» در حالی که متغیر یک نگاشت است.
  • فرستادن مقدار به فیلدی که کاربر اجازه ویرایشش را ندارد.
  • نمایش ندادن sys.user.saveError؛ در این حالت پیام‌های اعتبارسنجی سرور به کاربر نمی‌رسد.