ساخت قالبی با چند نوع Block

شما اینجا هستید

4 پست / 0 جدید
آخرین ارسال

وضعیت: آفلاین
  • تعداد ارسال: ۶۷
  • تاریخ عضویت: ۲۰۱۴/۱۰/۱۰
  • آخرین حضور: ۲۰۱۵/۰۷/۱۷
  • سمت: کاربر عضو
  • موقعیت: نامشخص

سلام دوستان

چطوری می تونم در یک قالب چند ساختار برای Block ها درست کنم؟ و به هر Block بگم کدام ساختار را داشته باشد؟
مثلا من می خواهم در قالبم از 3 ساختار Block استفاده کنم:
- A: عنوان با متن قرمز و زمینه سبز، محتوا با زمینه آبی و یک عکس در گوشه راست پایین
- B: عنوان با متن آبی و زمینه زرد، محتوا با زمینه خاکستری و یک پس زمینه
- C: عنوان با متن سیاه و عکس زمینه، محتوا با زمینه سفید

منوی اصلی کناری سایت ساختار B
سخنی از بزرگان ساختار C
و بقیه Block ها به صورت پیشفرض ساختار A داشته باشند.


وضعیت: آفلاین
  • نسخه دروپال: 7.00
  • تعداد ارسال: ۴۱۰۵
  • تاریخ عضویت: ۲۰۱۰/۰۱/۱۸
  • آخرین حضور: ۲۰۲۱/۰۳/۰۶
  • سمت: مدیر کل
  • موقعیت: نامشخص

برای انجام این کار افزونه Block Class را نصب کرده و پس از آن میتوانید برای هر کدام از این بلوک ها کلاس جداگانه ای اضافه کنید و در استایل ها آنها را شخصی سازی نمایید.
https://www.drupal.org/project/block_class


وضعیت: آفلاین
  • تعداد ارسال: ۸۷۸
  • تاریخ عضویت: ۲۰۰۹/۱۱/۰۱
  • آخرین حضور: ۲۰۲۰/۱۲/۰۴
  • سمت: مدیر کل
  • موقعیت: تهران

با کمی خلاقیت میتوان این کار را توسط قالب کنترل کرد بدون اینکه افزونه اضافی نصب نمود.
رنگ بندی بلوک ها بوسیله coding:
قبل از هر چیز دقت کنید که توصیف بلوک ها فقط مورد استفاده در صفحه بلوک ها می باشد و اگر عنوان بلوک تنظیم شده باشد این توصیف فقط به مدیر نمایش داده می شود.
مثلا برای اضافه کردن بلوکی با عنوان کاربران آنلاین به روش زیر عمل کنید:
1- یک بلوک جدید ایجاد کنید و ناحیه مورد نظر برای نمایش آن را مشخص کنید
2- عنوان بلوک یا block title برای نمایش کاربر را تنظیم کنید و با قرار دادن یک کاراکتر ، کلاس خود را در کنار آن قرار دهید. مثال ما = "کاربران آنلاین|redcolor"
3- توصیف بلوک یا همان Block description برای نمایش در صفحه بلوک ها را اضافه کنید. مثال ما = "کاربران آنلاین"
4- فایل block.tpl.php قالبی که استفاده میکنید را ویرایش کنید وکد زیر را به ابتدای این فایل اضافه کنید. این کد در صورتی که کلاسی برای بلوک به روش ذکر شده در بالا تعریف شده باشد ،آن را شناسایی و به کلاس های بلوک اضافه کرده و این کلاس را از تیتر بلوک حذف می کند:
if (preg_match("/[|]/i",$block->title)) {
list($block->name,$block->class) = explode('|',$block->title);
$block->subject = isset($block->name) ? $block->name : $block->subject;
$classes .= ' ' . isset($block->class) ? $block->class : '';
}

5- حال کلاس تعریف شده برای بلوک را در استایل های قالب قرار دهید:
.redcolor{
color:red;
}

عکس ضمیمه: 

وضعیت: آفلاین
  • تعداد ارسال: ۶۷
  • تاریخ عضویت: ۲۰۱۴/۱۰/۱۰
  • آخرین حضور: ۲۰۱۵/۰۷/۱۷
  • سمت: کاربر عضو
  • موقعیت: نامشخص

سلام دوستان

هر دو روش ذکر شما بسیار عالی و زیبا هستند.

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