زیر-قالب ها در دروپال چه هستند، و چگونه از آنها استفاده کنیم؟

قالب‌های پایه و زیر-قالب‌ها در دروپال

معرفی زیر-قالب‌ها در دروپال

یک زیر-قالب در دروپال، قالبی است که زیرمجموعه‎‌ی قالبی دیگر (قالب پایه) است، و منابع و قابلیت‌های قالب پایه را به ارث می‌برد.

یک زیر-قالب (قالب فرزند) معمولا به منظور ایجاد تغییر یا گسترش کارکردهای قالب پایه (قالب پدر) ساخته می‌شود.

یک مثال فرضی

فرض کنید قالبی داریم به اسم «قالب1»، این قالب ممکن است یک قالب کامل باشد (مانند قالب BlueMasters)، یا فقط یک سری امکانات پایه را داشته باشد (مانند قالب Zen).

حال، قصد داریم قالبی به اسم «قالب2» بسازیم که برخی از منابع، امکانات و ویژگی‌های «قالب1» را داشته باشد، و بعد امکاناتی جدید به آن اضافه کنیم و تغییراتی بر روی آن اعمال کنیم.

به این منظور، «قالب2» را به عنوان یک زیر-قالب (Sub-theme) از «قالب1» تعریف می‌کنیم. در این حالت، «قالب1» قالب پدر برای «قالب2» خواهد بود، که این قالب پدر را قالب پایه (Base theme) می‌نامیم.

شاید بپرسید: چرا «قالب1» را کپی نکنیم و تغییرات را بر روی آن اعمال نکنیم؟ به زودی به این سوال پاسخ خواهیم داد.

یک مثال واقعی

قالب بارتیک (Bartik) را حتما می‌شناسید، قالبی که در هسته‌ی دروپال 7 وجود دارد، و بعد از نصب دروپال 7 قالب پیش‌فرض (default theme) است.

فرض کنید قصد داریم این قالب را برای زبان فارسی بهبود ببخشیم، برای مثال، فونت صفحات فارسی را به تاهوما (Tahoma) تغییر دهیم، فونت عناوین را به یکان تغییر دهیم، و تغییراتی از این دست.

یک روش می‌تواند این باشد که قالب بارتیک را کپی کنیم و شروع کنیم به ویرایش آن؛ که البته این روش صحیح برای اینکار نیست.

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

 

مزایا و معایب استفاده از زیر-قالب‌ها

در پاسخ به سوال بالا، که پرسیدیم: چرا قالب پایه را کپی نکنیم و تغییرات را بر روی آن اعمال نکنیم؟

برخی مزایای استفاده از زیر-قالب‌ها عبارتند از:

1. قالب پایه دست‌نخورده باقی می‌ماند، به همین دلیل، در آینده به‌روز کردن (آپدیت) آن ساده خواهد بود. اگر تغییرات در قالب پایه صورت گیرند، به‌روز کردن آن در آینده عملا غیر ممکن خواهد بود.

2. فایل‌های زیر-قالب موردنظر جدا از قالب پایه قرار خواهند گرفت، به همین دلیل، تشخیص تغییرات و ویرایش‌های صورت گرفته بر روی آن ساده‌تر خواهد بود.

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

1. معمولا ساختن یک زیر-قالب زمان بیشتری می‌برد و سخت‌تر است (نسبت به اینکه قالب را کپی و تغییرات لازم را بر روی آن اعمال کنیم).

 

نحوه‌ی نصب و استفاده از زیر-قالب‌ها

نحوه‌ی نصب (Install) زیر-قالب‌ها مشابه نصب هر قالب دیگری در دروپال است، با یک تفاوت کوچک.

با نحوه‌ی نصب یک قالب در دروپال که حتما آشنا هستید: کافیست قالب را در مسیر sites/all/themes قرار دهید (اگر در حالت فشرده است، فراموش نکنید که قالب را از حالت فشرده خارج کرده، و پوشه‌ی آن را در مسیر مذکور قرار دهید).

تفاوت کوچک در نحوه‌ی نصب زیر-قالب‌ها نسبت به قالب‌های دیگر این است که حتما باید قالب پایه را هم نصب نمایید.

لازم نیست که پوشه‌ی زیر-قالب داخل پوشه‌ی قالب پایه قرار بگیرد. کافیست پوشه‌ی هردو قالب در کنار هم در مسیر sites/all/themes قرار بگیرند.

نکته: برای استفاده از «قالب2» که زیر-قالبی از «قالب1» است، نیازی به فعال (Enable) کردن «قالب1» نیست.

نحوه‌ی استفاده از زیر-قالب‌ها همان یک «تفاوت کوچک» را هم ندارد! و کاملا شبیه استفاده از هر قالب دیگری است.

یک مثال

در قسمت «یک مثال واقعی» از بخش «معرفی زیر-قالب‌ها در دروپال»، گفتیم که قالب بارتیک فارسی به شکل یک زیر-قالب از قالب Bartik ساخته شده است.

قالب Bartik بطور پیش‌فرض بر روی دروپال 7 نصب است، به همین دلیل، برای نصب «بارتیک فارسی»، کافیست فایل بارتیک فارسی را دانلود نمایید (برای مثال bartikpersian-7.15.1.zip)، و در مسیر sites/all/themes از حالت فشرده خارج کنید.

حالا می‌توانید از قالب بارتیک فارسی (Bartik Persian) که نصب شده، مشابه هر قالب دیگری در دروپال استفاده نمایید.

 

سوالات متداول در مورد زیر-قالب‌ها

1. برای استفاده از یک زیر-قالب، آیا فعال بودن قالب پایه‌ی آن ضروری است؟

     خیر

2. آیا امکان ساختن یک زیر-قالب از یک زیر-قالب دیگر هست؟

     بله، یک زیر-قالب می‌تواند خود به عنوان قالب پایه استفاده شود، و این رویه می‌تواند تا بی‌نهایت ادامه پیدا کند

 

منابع

  1. Creating a sub-theme
  2. What Is a Drupal Subtheme

 

نظرات

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

سلام
دقیقا اشاره نکردید برای ساخت قالب فرعی چیکار کنیم. اگر بخواهیم برای BlueMasters یک زیر قالب بسازیم چیکار کنیم چه فایلهایی باید تغییر کند؟ از کجا این رو بشناسه؟

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

اگر به ساختن زیر-قالب علاقه دارید، پیشنهاد می‌کنم مطلب Creating a sub-theme را مطالعه نمایید.

پیشنهاد می کنم در مورد نحوه توسعه تم بر پایه یکی از بیس تم های معروف مثل zen یا omega یا .... مطلبی بنویسید.

سلام - خسته نباشید - بعد از 3 سال کار با وردپرس به دروپال با افتخار مهاجرت کردیم

مبارکه شهاب جان، به جمع دروپالی‌ها خوش اومدید. انشاءالله که از این مهاجرت راضی باشید.

افزودن نظر جدید