تغییر قالب نمایش سایت در صورت بروز یک شرط خاص
در دروپال شما میتوانید قالب پیشفرض را از صفحه مدیریت قالبها تنظیم کنید و یا با بعضی ماژولهای کمکی مثل themeKey برای کاربران خاص یا صفحات خاص یا گیرنده خاص مثل موبایل یا ترکیبی از شروط یک قالب مجزا تعیین کنید. اما همه این کارها را به سادگی با چند خط کد هم میتوان انجام داد.
برای این کار در دروپال 7 کافی بود از هوک hook_custom_theme استفاده کنید.امادر دروپال 8 در دایرکتوری روت ماژولتان یک فایل جهت معرفی سرویسهای استفاده شده ایجاد کنید. مثلا فایلی با نام: myModule.services.yml سپس فایل را باز کنید و بگویید که میخواهم از سرویس تغییر قالب استفاده کنم و آدرس کلاس مربوط به آن را بدهم و اولویت آن را بین همه سرویس های مشابه که در سایر ماژولها استفاده شده تعیین کنم: services: myModule.theme.negotiator: class: Drupal\myModule\Theme\...
ایجاد تم فایلهای دلخواه با نام دلخواه توسط هوک theme_suggestions_alter
خیلی وقتها هست که میخواهیم برای یک حالت خواص از یک Node یا Term یا User یا Menu یا Block یا Region یا Page یا هر Entity دیگری یک فایل قالب اختصاصی ایجاد کنیم و داخلش هر نوع کد دلخواهی وارد کنیم که اختصاص به اون حالت داشته باشد. مثلا: ما به صورت پیشفرض میتونیم فایل node.html.twig را برای هر نوع NodeType دلخواه overwrite کنیم مثلا میشه اینجوری: node--[myNodeType].html.twig و داخل این فایل هرجور دوست داریم به دلخواه خود برای نمایش این نوع از نود استایل بزنیم. اما اگر بخواهیم برای این نوع نود...
اسکی در طراحی قالب با Theme PreProccess (پیش پردازنده های قالب)
در فایلهای tpl دروپال 7 و یا فایلهای twig دروپال 8 خیلی وقتها پیش میاد که میخواهید به یک متغییری دسترسی داشته باشید تا آن را چک کنید یا نمایش دهید ولی هرچقدر متغییرها و آرایه های موجود را با dpm یا krumo یا kint زیر رو میکنید آن را پیدا نمیکنید.در هر دو نسخه دروپال 7 و 8 کافیه به سادگی در PreProccess مربوط به آن متغییر را فراخوانی کنید تا در فایل قالب بتوانید از آن استفاده کنید.مثلا اگر در فایل مربوط به یک page بودید preproccess مربوط به آن و اگر در فایل مربوط به block بودید در preproccess...