پرش به محتویات

کامپوننت‌ها (Components)

کامپوننت‌ها (Components) المان‌های قابل استفاده مجدد می‌سازند. هر instance از طریق propertyها قابل سفارشی‌سازی است.

قالب‌ها blueprint صفحات خاص‌اند؛ کامپوننت‌ها blueprint یک المان (مثلاً دکمه) یا مجموعه المان‌ها (مثلاً card) برای reuse و سفارشی‌سازی per instance در کل سایت.

از هر المان (با همه فرزندان) — دکمه، card، navigation، حتی hero section — کامپوننت بسازید و هر جا reuse کنید.

هر تغییر روی کامپوننت اصلی خودکار روی همه instanceها اعمال می‌شود.

ساختار و استایل المان‌های reusable در کل سایت یکسان می‌ماند.

نتیجه: workflow بسیار یکپارچه، scalable و قابل نگه‌داری. 🚀

نحوه ساخت کامپوننت

از هر المان به‌جز Template و Filter، راست‌کلیک و Save as component را بزنید.

Save as component در منوی زمینه

در popup نام (الزامی)، category (اختیاری) و description (اختیاری) وارد کنید. Create را بزنید.

Popup ساخت کامپوننت جدید

پس از ساخت، از components library هر جای سایت اضافه کنید.

کتابخانه کامپوننت‌ها (Components Library)

پنل Components

از تب Components کنار تب Elements به کامپوننت‌ها دسترسی دارید.

با drag & drop یا click (مثل هر المان) به canvas یا structure panel اضافه کنید.

آیکون‌های بالای تب Components:

  • Import: JSON کامپوننت از نصب دیگر.
  • Export: همه کامپوننت‌های سایت به JSON. برای یک کامپوننت، hover و آیکون export.
  • Delete: آیکون delete برای حالت حذف؛ hover روی کامپوننت و delete. قبل از حذف export توصیه می‌شود.

تعداد instance و محل (صفحه فعلی/سراسری)

تعداد instance کامپوننت Card

زیر نام کامپوننت تعداد instance است. برای «Card» مثلاً «Instances: 3/6» — 3 در صفحه فعلی، 6 در کل سایت.

Hover و آیکون «globe» همه instanceهای «Current page» و فهرست «Other Pages» با تعداد را نشان می‌دهد.

Instanceها — reuse کامپوننت

هر بار افزودن کامپوننت، یک Instance ساخته می‌شود.

تغییرات کامپوننت اصلی در همه instanceها در کل سایت منعکس می‌شود.

سه instance کامپوننت Card

قبل از سفارشی‌سازی instanceها، بیایید ...

ویرایش کامپوننت اصلی

برای ویرایش المان‌های کامپوننت اصلی (source of truth)، روی هر instance (بنفش) راست‌کلیک و Edit component را بزنید.

Edit component در منوی زمینه

یا آیکون چرخ‌دنده در header پنل کنترل instance:

ورود به حالت ویرایش کامپوننت از instance

اکنون کامپوننت اصلی را ویرایش می‌کنید — header پنل بنفش است.

هر تغییر روی کامپوننت اصلی روی همه instanceها اعمال می‌شود.

ویرایش کامپوننت اصلی

header کامپوننت اصلی:

  • Description (info): نمایش/مخفی description (قابل ویرایش).
  • Category (folder): category (قابل ویرایش).
  • Properties (box): پنل properties.
  • Instance (arrow): خروج از edit mode و بازگشت به instance یا پنل components. ESC هم خارج می‌کند.

در structure panel همه المان‌های کامپوننت را می‌بینید:

Structure panel کامپوننت اصلی

برای تغییر عنوان Card، Heading داخل کامپوننت را انتخاب و متن را به «Just a card» تغییر دهید.

همه instanceها خودکار به‌روز می‌شوند:

ویرایش heading کامپوننت

برای استفاده یکسان چندباره عالی است؛ قدرت واقعی در سفارشی‌سازی محتوای هر instance با Properties است.

Properties

Properties کنترل‌های سفارشی‌سازی برای هر instance را expose می‌کنند.

property بسازیم تا عنوان و تصویر هر Card instance یکتا باشد.

فرایند دو مرحله: (1) ساخت property (2) اتصال property.

NOTE: ساخت و ویرایش properties مجوز Edit component builder permission می‌خواهد.

1) ساخت property

instance کامپوننت را انتخاب کنید.

آیکون «edit» در پنل properties سمت چپ:

ویرایش property از instance — مرحله ۱

اگر instance روی صفحه نیست، در Components library hover و آیکون edit.

در حالت edit کامپوننت اصلی، آیکون «box» در header پنل:

انواع property

Property type Connectable to Example
Text Text/textarea controls Heading or Basic text
Rich text Rich text controls Rich text or Accordion content
Icon Icon controls Icon or Icon Box element
Image Image controls Image or Logo element
Image gallery Image gallery controls Image gallery or Carousel element
Link Link controls Button or Heading link
Select (@since 2.0) Text/select controls HTML tag, Button style
Toggle (@since 2.0) Toggle controls Hide element toggle
Query loop Query loop controls Layout elements
Global classes (@since 2.0) Global classes control Element global classes

فرم ساخت property در Bricks 2.0

برای expose heading کارت، نوع Text را انتخاب کنید.

property name الزامی‌است — نام توصیفی، مخصوصاً برای کامپوننت‌های پیچیده.

property description اختیاری اما برای استفاده‌کنندگان مفید.

property group اختیاری؛ برای کامپوننت‌های با propertyهای زیاد.

default property value اختیاری — برای control متصل؛ خالی = بدون پیش‌فرض.

2) اتصال property به control

property را به control المان مورد نظر وصل کنید.

پنل properties اگر property متصل‌نشده باشد پیام نشان می‌دهد.

propertyهای متصل‌نشده آیکون «broken link» دارند.

Propertyهای متصل‌نشده

«Card heading» text را به Heading کارت وصل کنیم.

Heading را داخل کامپوننت انتخاب کنید.

آیکون بنفش گرد + کنار text control Heading:

نشانگر اتصال property به control

کلیک + فهرست propertyها:

گزینه‌های اتصال property

نکته

Workflow boost: با + بالای dropdown «Connect property» property جدید سریع بسازید.

«Card heading» را در dropdown انتخاب کنید.

Heading text control نام property متصل را نشان می‌دهد:

Control متصل به property

مقدار پیش‌فرض «Default Card heading» برای همه headingهای Card استفاده می‌شود.

اولین property ساخته و متصل شد. 🥳

همین دو مرحله را برای image property تکرار کنید. کامپوننت اکنون:

Instance با مقادیر پیش‌فرض property

قطع اتصال property

روی setting property متصل کلیک، hover روی نام property و آیکون «unlink».

قطع اتصال property

سفارشی‌سازی instance

اکنون همه Cardها محتوای یکسان دارند.

دو property برای عنوان و تصویر ساختیم — instance را انتخاب و مقادیر property در پنل کنترل:

مقادیر سفارشی property در instance

می‌توانید متن دکمه را هم با text property expose کنید.

کامپوننت‌ها در loop و داخل loop

با query loop سازگارند — loop روی root کامپوننت یا loop داخل کامپوننت.

Card داخل query loop با dynamic data

Card title از {post_title} و تصویر از {featured_image}.

property type «Query loop» برای سفارشی‌سازی query داخل کامپوننت per instance.

Variationهای کامپوننت

از Bricks 2.0، با Toggle property المان‌ها را conditionally مخفی کنید.

Variation استایل با property Global classes.

Variation: نمایش/مخفی المان

Toggle property برای مخفی کردن المان

Bricks 2.0 «Hide element» — آیکون "eye" در header پنل المان یا context menu.

toggle property را به «Builder Hide element» و/یا «Frontend: Hide element» وصل کنید.

«Hide element» با CSS مخفی نمی‌کند — المان اصلاً در DOM load نمی‌شود.

Variation: Global classes

Global classes @since 2.0 — variation استایل با global class. مجموعه class پیش‌فرض/سفارشی per instance:

Global classes property قابل اتصال

مثال: property با گزینه‌های «Small»، «Medium»، «Large» — هر کدام global class متفاوت:

گزینه‌های سفارشی global classes property

«Heading size» را به global classes control Heading وصل کنید:

اتصال global classes property

Property global classes متصل

روی instance «Large» انتخاب می‌کند — class prop-text-lg به Heading:

Instance با global class Large

مثال ساده variation استایل — چند global class property per element مجاز است.

Label خالی = نام global class انتخاب‌شده. Label کاربرپسند معمولاً بهتر.

class انتخاب‌شده هر option هر زمان قابل تغییر است.

Variation: Local classes

بدون global classes از «Select» property با گزینه‌های سفارشی و Attributes control:

Select property برای local classes

«Select» با گزینه‌های class name:

گزینه‌های Select property سفارشی

پس از اتصال به Attributes value، روی instance یک کلیک class color-red به Heading:

Instance با Select property و class محلی

«Text» control به Attributes برای class name آزاد هم قابل اتصال است.

راست‌کلیک instance → «Unlink component» زیر «Edit component».

پس از unlink، instance مستقل مثل المان عادی ویرایش می‌شود.

مبدل Global element به Component

Global elementها از @since 2.0 منسوخ‌اند — «Global element to Component converter» زیر Bricks > Settings > General > Global elements.

Notes & Tips

  • کامپوننت دقیقاً یک root element دارد
  • از Template یا Query Filter element ساخته نمی‌شود
  • در سازنده با رنگ بنفش شناسایی می‌شوند
  • label هر instance مثل المان عادی قابل تغییر
  • description و group property برای setup پیچیده مفیدند