ماژول Field Wrappers برای تغییر تگ های فیلد های دروپال

ماژول Field Wrappers برای تغییر تگ های فیلد های دروپال

یک ابزار مهم برای کار با دروپال و ساختن یک سایت با این سیستم مدیریت محتوا، فیلد ها هستند. هر Entity فیلدپذیری می تواند امکان توسعه خود را به دروپال‌کار بدهد. با توجه به اهمیت این ابزار در دروپال، ماژول های زیادی نیز برای تقویت امکانات مورد نیاز توسعه دهندگان در حوزه فیلد ها، ارائه شده است.

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

ولی همانطور که بیان شد ماژول هایی هستند که امکاناتی در این باره را در اختیار ما قرار می دهد. در این مقاله به معرفی ماژول Field Wrappers می پردازیم.

کد HTML نمایش فیلد ها در دروپال

به صورت پیش فرض، دروپال برای نمایش فیلد ها از تگ div استفاده می کند. در شکل زیر نمونه ای از نمایش یک محتوا که دارای یک فیلد متنی چند مقداری به نام Texts و یک فیلد تگ است را مشاهده می کنید. در اینجا کد html فیلد Texts نیز نشان داده شده است:

دروپال برای نمایش فیلد ها از تگ div استفاده می کند

همانطور که می بینید چهار نوع تگ نگهدارنده داریم که همگی با div درست شده اند:

  1. تگ نگهدارنده اصلی که همه چیز را در بر گرفته است و کلاس field دارد. همین طور چند کلاس دیگر  دارد که بر حسب نوع و تنظیمات نمایشی فیلد متفاوت هستند. ولی مشخصه اصلی آن همین است که دربرگیرنده یا wrapper اصلی است و کلاس field را دارد.
  2. تگ گهدارنده برچسب (label) که لیبل فیلد را در صورتی که تنظیم کرده باشیم نمایش داده شود، در برمی گیرد (wrap می کند). کلاس این تگ field-label است.
  3. تگ نگهدارنده محتوای فیلد که مقادیری که مدیر سایت در این فیلد ذخیره کرده است را در بر می گیرد. این تگ دارای کلاس field-items است. هر فیلد می تواند یک مقدار یا بیشتر از آن را داشته باشد و در هر صورتی این مقادیر درون این تگ ها نمایش داده می شوند.
  4. تگ نگهدارنده یک مقدار برای فیلد که کلاس field-item دارد. اگر برای این فیلد سه مقدار وارد کرده ایم، طبیعتا سه تگ به این صورت نیز خواهیم داشت.

نصب ماژول Field Wrappers در دروپال

با استفاده از ماژول Field Wrappers می توان تگ های نگهدارنده فیلد ها را از طریق مدیریت نمایش فیلد های دروپال تغییر داد. برای نصب این ماژول به صفحه این پروژه در سایت دروپال مراجعه کنید. فایل فشرده این ماژول را یافته و دانلود کنید. سپس آن را در دایرکتوری ماژول های دروپال یعنی sites/all/modules از حالت فشرده خارج کنید.

حال به صفحه مدیریت ماژول ها در سایت دروپالی خود رفته و نام این ماژول یعنی Field Wrappers را در فهرست ماژول ها بیابید. نام این ماژول در گروه دیگر یا Other قرار دارد. این ماژول را فعال و نصب کنید.

انتخاب تگ های نگهدارنده فیلد های دروپال

اکنون که ماژول Field Wrappers نصب شده است، رابط مدیریتی نمایش فیلد های دروپال نیز تغییر کرده است و امکاناتی برای تغییر تگ های نمایشی فیلد ها در اینجا فراهم شده است. تصویر زیر مدیریت نمایش فیلد ها برای نوع محتوای Article را نشان می دهد:

انتخاب تگ های نگهدارنده فیلد های دروپال

در مقابل تنظیمات نمایشی پیش فرض هر فیلد، سه ستون جدید اضافه شده است:

  • Field Wrapper: برای تعیین تگ در برگینده کل فیلد است.
  • Label Wrapper: برای تعیین تگ دربرگیرنده برچسب فیلد است.
  • Item Wrapper: برای تعیین تگ دربرگیرنده یک محتوای فیلد است.

برای هر یک از موارد بالا می توان یکی از مقادیر زیر را انتخاب کرد:

  • - Use default -
  • - None -
  • DIV
  • SPAN
  • H1
  • H2
  • H3
  • H4
  • H5
  • H6
  • P
  • STRONG
  • EM

اگر بخواهیم یک تگ به همان صورتی که پیش فرض دروپال است، تولید شود، مقدار Use default را انتخاب می کنیم. اگر بخواهیم اصلا تگی نباشد None را انتخاب می کنیم. سایر تگ ها که در HTML آَشنا هستند.

برای نمونه می خواهیم تگ نگهدارنده کلی فیلد را نداشته باشیم، لیبل فیلد با تگ h2 باشد و مقادیر ذخیره شده برای فیلد نیز در تگ h3 نمایش داده شود. تنظیمات را به صورت تصویر زیر انجام می دهیم:

تنظیم تگ های نگهدارنده فیلد در دروپال

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

نمایش فیلد های دروپال با تغییر تگ های نگهدارنده فیلد

در این تصویر تگ های HTML سایر فیلد های این محتوا نیز نمایش داده شده که تفاوت آن با تگ های فیلد Texts مشخص باشد. همانطور که می بینید ما تگ در برگیرنده کلی یا Wrapper اصلی را برای فیلد های دیگر داریم ولی برای فیلد Text نداریم. دور لیبل یک تگ h2 می بینیم و دور آیتم های فیلد نیز تگ h3 به همان صورتی که تنظیم کرده بودیم.

توسعه تگ های انتخابی ماژول Field Wrapper

همانطور که می بینید، ماژول Field Wrapper تعداد محدودی تگ را برای انتخاب ارائه کرده است. در حالی که ممکن است توسعه دهنده سایت بخواهد از تگ های دیگری مثل تگ های مفهومی HTML5 استفاده کند. این ماژول راه برای این موضوع باز نگه داشته است. لیست تگ های انتخابی از طریق پیاده سازی هوک hook_field_wrapper_elements_alter قابل توسعه است. برای این کار نیاز به برنامه نویسی ماژول در دروپال دارید.

نکته ای برای توسعه پوسته های دروپال

ماژول Field Wrapper قالب نمایشی فیلد دروپال که در فایل field.tpl.php وجود دارد را بازنویسی می کند. در صورتی که بخواهیم ماژول یا تم جدیدی را ایجاد کنیم که نیاز به بازنویسی فایل field.tpl.php داشته باشد، باید دقت کنیم که از اصول ماژول Field Wrapper نیز پیروی کند که تنظیمات پیش بینی شده این ماژول نیز در کد تولیدی سایت درست اعمال بشوند.

ارسال نظر