تصویر الهه عربیان
در مطلب قبل به بررسی دو تم از تم های موجود در دروپال کردیم و به بررسی نحوه عملکردشان پرداختیم در این مطلب به بررسی این مطلب می پردازیم که آیا میتوانیم ویژگی این تم ها را در قالب خودمان داشته باشیم یا خیر

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

با بررسی تم های هسته دروپال متوجه میشویم این که این تم ها با استفاده از ماژول color که در هسته دروپال موجود است این امکان را بوجود می آورند.

برای این که قالب ما هم با ماژول color ارتباط برقرار کند لازم است که color.inc را به قالبمان اضافه کنیم . برای این کار به این شکل عمل می کنیم .

1- ابتدا قالبی ساده را ایجاد می کنیم.

2- پوشه ای با نام های css و color ایجاد می کنیم.

3- فایل color.inc را در پوشه color قرار می دهیم.

4- استایل های خود را وارد کنید ولی با این تفاوت که مواردی رو که می خواهید کاربر توانایی تغییر آن را داشته باشد در فایل color.css وارد کنید.

5- فایل template.php رو باز کنید و دستورات زیر رو وارد کنید  به این نکته توجه داشته باشید که نام تم خود رو به جای theme قرار بدهید.

function theme_process_page(&$variables) {

if (module_exists('color')) {

_color_page_alter($variables);

}

}

function theme_process_html(&$variables) {

if (module_exists('color')) {

_color_html_alter($variables);

}

}

 

  • _color_page_alter($variables) : لوگو رو برای ما replaces می کند .
  • _color_html_alter($variables): تمامی کدهای css موجود در color.css رو replaeces می کند .

ماژول color  چگونه عمل میکند؟

این ماژول با استفاده از متغییری به نام palette$  رنگ های مورد نظر رو دریافت می کند و تغییرات لازم را اعمال میکند.

ما چطور می توانیم palette$ دلخواه خودمون رو تعریف کنیم و از آن بهره ببریم؟

باید توجه داشته باشید که palette ها باید با حروف کوچک نوشته شوند.

شما بعد از این مراحل با رفتن به قسمت ظاهر و فعال سازی قالب مورد نظر می بینید که گزینه ای به اسم  settings هم اضافه شده است برای اینکه بتوانید موارد مورد نظر خود را به تنظیمات اضافه کنید و تغییرات مورد نظر خود را هم ببینید کافیست فایل های Preview.js و preview.html و preview.css  رو براساس تم خود تغییر دهید.

همانطور که از نامشان هم مشخص است این فایل ها یک نمایش از رنگ های جدید در صفحه settings رو به کاربر نشان میدهد.

بعد از این موارد شما متوجه مسئله ای خواهید شد.

بعضی از رنگها تغییر نمیکنند و یا اگر تغییر هم کنند رنگ مورد نظر شما نیست. مثلا رنگ border شما مانند footer  می شود. ایراد کار کجاست؟

اگر دقت کنید میبینید تنها مواردی که رنگشان درست تغییر میکند و مشکلی ندارد رنگ linkها و text هاست.

برای یافتن این که ایراد از کجاست به بررسی color.module بپردازیم.

با بررسی این فایل متوجه خواهید شد که این ماژول با دیدن a و مثلا color:#f3f3f3 میتواند تشخیص دهد که این موارد رنگ لینک و رنگ متن هاست . ولی برای بقیه موارد رو توانایی تشخیص ندارد و برای همین اگر پایه رنگ ها یکی باشد و و اگر defaultشان هم یکی باشد آنها را یکی فرض میکند و این موارد را که ممکن است چند مورد هم باشد یک رنگ میکند.

 

بنابراین ما در حال حاضر تنها توانایی تغییر رنگ لینک ها و متن ها رو بصورت قطعی داریم و بقیه موارد رو بصورت خیلی محدود.

برای آشنایی بیشتر توصیه میکنم تم bartik رو بررسی کنید.

 

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