در این آموزش گام‌به‌گام، نحوه اضافه کردن توضیحات مقدماتی (معروف به Short Description) به محصولات در افزونه HikaShop جوملا را به صورت تصویری و ساده یاد می‌گیرید. این ویژگی به شما کمک می‌کند تا خلاصه‌ای جذاب از محصول را بلافاصله در لیست محصولات یا صفحه اصلی فروشگاه نمایش دهید و بازدیدکنندگان را به سمت جزئیات کامل هدایت کنید.

برای ایجاد قابلیت توضیحات مقدماتی برای محصولات در هیکاشاپ باید از custom field (فیلد سفارشی) نوع محصول در هیکاشاپ کمک بگیریم.

برای اینکار ابتدا در داشبورد هیکاشاپ وارد منوی نمایش > فیلد های سفارشی شوید:

ساخت توضیحات مقدماتی برای محصولات هیکاشاپ

روی دکمه سبز رنگ جدید کلیک کنید تا یک custom field (فیلد سفارشی) جدید درست کنیم:

ساخت  custom field (فیلد سفارشی) در هیکاشاپ

برای اینکه این custom field (فیلد سفارشی) در صفحه محصول و همچنین در لیست محصولات نمایش داده شود باید از نوع محصول product باشد. در بخش اطلاعات اصلی، فیلد ها را به صورت زیر پر کنید:

برچسب متنی است که به مدیر در بخش مدیریت محصول نمایش داده می شود.

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

نام ستون همانطور که در پاراگراف بالا اشاره کردیم نام جدول را به دلخواه intro_txt گذاشتم. شما می توانید هر مقدار دلخواهی را وارد کنید. 

نوع فیلد همانطور که از اسمش پیداست مشخص می کند که نوع فیلد چه باشد. از آنجا که می خواهیم توضیحات مقدماتی برای محصولات بنویسیم پس گزینه WYSIWYG را انتخاب می کنیم که یک editor (ویرایشگر متن) درستو درمون در اختیارمون بگذارد.

 WYSIWYG (ویزیوگ) مخفف عبارت What You See Is What You Get به معنی آنچه می‌بینید همان چیزی است که دریافت می‌کنید است و در ویرایشگرهای متنی به کار می‌رود که کاربران می‌توانند محتوا را به شکلی ویرایش کنند که شبیه به نمایش نهایی آن باشد.

در مطلب آشنایی با custom field (فیلد سفارشی) های هیکاشاپ می توانید با انواع فیلد ها آشنا شوید. 

در نهایت این بخش به شکل زیر در می آید:

ساخت فیلد برای توضیحات مقدماتی در Hikashop هیکاشاپ

دقت کنید وقتی custom field (فیلد سفارشی) مان را ذخیره کنیم دیگر امکان تغییر مقادیر فیلد های جدول و نام ستون را نخواهید داشت (تصویری که در ادامه آمده است).

ساخت توضیحات مقدماتی برای محصولات Hikashop

پس از ذخیره شکل کلی صفحه کمی تغییر می کند تا بتوانیم تنظیمات بیشتری برای این فیلد انجام دهیم. در ادامه بخش های مورد نیاز را توضیح می دهیم:

در بخش محدودیت ها می توانید نمایش این فیلد را محدود به دسته بندی محصولات و زیر شاخه های آنها یا تعدادی محصول خاصی بکنید. 
با کمک نمایش محدودیت ها به می توانید نمایش فیلد مذکور را وابسته به سایر custom field (فیلد سفارشی) که از قبل برای محصولات هیکاشاپ ایجاد کرده اید (یعنی فیلد هایی که قبلا برای جدول محصول ساخته اید) بکنید. همچنین با کمک فیلد های Equal to و Not equal to می توانید نمایش فیلد را محدود به مقادیر خاصی در این فیلد ها بکنید.
با کمک سطح دسترسی می توانید کار کنید که کاربرانی با سطح دسترسی خاص بتوانند این فیلد را ببینند.

کارکرد این بخش کمابیش برای تمام جداول یکسان است.

ایجاد محدودیت در نمایش  custom field (فیلد سفارشی) Hikashop هیکاشاپ

در بخش Main Attributes (صفات اصلی) می توانید تعیین کنید که پر کردن مقدار این فیلد برای مدیر محصول یا کابری که آنرا می بینیداجباری باشد یا خیر.
در بخش پیام خطای فیلد میتوانید یک پیام خطا برای کاربر بگذارید.
در Regular expression check می توانید ورودی های کاربران را با استفاده از RegEx اعتبارسنجی کنید. اگر قرار بود این فیلد در بخش front end (کاربری) توسط بازدید کنندگان مقدار دهی شود، برای جلوگیری از هک شدن سایت حتما باید RegEx استفاده کرد. ولی از آنجاکه این فیلد در بخش back end (مدیریت) توسط ادمین مقدار دهی می شود چندان نیاز به اعتبارسنجی با RegEx نیست. در مطلب آموزش استفاده از RegEx در custom field (فیلد سفارشی) Hikashop هیکاشاپ می توانید چند نمونه RexEx که خودم استفاده می کنم پیدا و استفاده کنید.
در مقدار پیشفرض هم می توانید متن پیشفرضی برای این فیلد تعریف کنید.

کارکرد این بخش کمابیش برای تمام جداول یکسان است.

بخش Main Attributes (صفات اصلی)  custom field (فیلد سفارشی) Hikashop هیکاشاپ

در بخش Extra Attributes (صفات اضافه) می توانید سطر و ستون های فیلد و همچنین فرمت خروجی اش را تعیین کنید.
گزینه فیلتر کردن ورودی برای امنیت این فیلد و جلوگیری از حملات XXS می باشد پس حتما فعال بماند.
همچنین میتوانید مشخص کنید که این فیلد قابل ترجمه باشد یا نه.

 Extra Attributes (صفات اضافه)  در custom field (فیلد سفارشی) Hikashop هیکاشاپ

در بخش Display (نمایش) می توانید تعیین کنید که این فیلد در چه بخش هایی نمایش داده شود:

بخش کاربری فیلد را در بخش front end (کاربری) نمایش می دهد.
نمایش در فرم ویرایش محصول این فیلد را صرفا در صفحه مدیریت محصول در بخش back end (مدیریت) نمایش می دهد و شما می توانید مقدار متن دلخواهی را به عنوان متن مقدمه که کلمات کلیدی محصول در آن قید شده باشد بنویسید.

 Display (نمایش)  در custom field (فیلد سفارشی) Hikashop هیکاشاپ

از آنجاکه من نمیخواهم این فیلد به همراه سایر فیلد های مشخصات محصول در بخش مشخصات فنی نمایش داده شود بنابراین صرفا گزینه نمایش در فرم ویرایش محصول را فعال می کنم و برای درج متن مقدمه در قسمت دلخواهم از صفحه محصول در front end (کاربری)، Layout کامپوننت را ویرایش می کنم. برای اینکار باید عبارت 

$this->element->intro_txt

را در جای دلخواه ازLayout کامپوننت Hikashop هیکاشاپ که مربوط به صفحه محصول است قرار دهیم. برای زیباتر شدن خروجی، کد PHP بالا را در یک div با شناسه دلخواه intro_txt و کلاس های bootstrap بوت استراپ intro-txt p-3 border rounded bg-light داخل یک عبارت شرطی php استفاده میکنم.

<?php if(!empty($this->element->intro_txt)){echo '<div id="intro_txt" class="p-3 border rounded bg-light">'.$this->element->intro_txt.'</div>'; }//By JoomlaBoy.ir ?>

توضیحات این کد برای مبتدی ها

این کد یک قطعه کد PHP در یک فایل HTML یا PHP است که برای نمایش یک متن (در صورت وجود) استفاده می‌شود. در ادامه توضیح خط به خط این کد آورده شده است:

  1. <?php: این تگ آغاز کد PHP است که نشان می‌دهد از اینجا به بعد کد PHP شروع می‌شود.

  2. if(!empty($this->element->intro_txt)): این شرط بررسی می‌کند که آیا متغیر $this->element->intro_txt خالی نیست.

    • تابع empty() بررسی می‌کند که متغیر خالی باشد یا مقدار معتبری نداشته باشد (مانند null، false یا یک رشته خالی).
    • $this->element->intro_txt نشان می‌دهد که متغیر intro_txt متعلق به شیء element است که در کلاس جاری تعریف شده است.
  3. {echo ...}: اگر شرط برقرار باشد (یعنی متغیر خالی نباشد)، کد داخل {} اجرا می‌شود. در اینجا از echo برای چاپ یا نمایش خروجی در صفحه استفاده شده است.

  4. '<div id="intro_txt" class="p-3 border rounded bg-light">'.$this->element->intro_txt.'</div>': این بخش یک عنصر HTML با تگ <div> ایجاد می‌کند که دارای ویژگی‌های زیر است:

    • id="intro_txt": مشخص می‌کند که شناسه (ID) این عنصر intro_txt است.
    • class="p-3 border rounded bg-light": کلاس‌هایی برای اعمال استایل به عنصر تعریف شده‌اند. این کلاس‌ها معمولاً مربوط به فریم‌ورکی مانند Bootstrap هستند:
      • p-3: اعمال فضای داخلی (padding) به مقدار 3.
      • border: اضافه کردن یک کادر (border) به دور عنصر.
      • rounded: گرد کردن گوشه‌های کادر.
      • bg-light: اعمال رنگ پس‌زمینه روشن.
    • $this->element->intro_txt: محتوای متغیر intro_txt درون <div> نمایش داده می‌شود.
    • '</div>': پایان تگ <div>.
  5. }//By JoomlaBoy.ir ?>:

    • }: پایان بلاک شرطی if.
    • //By JoomlaBoy.ir: این یک کامنت است که توسط نویسنده کد (احتمالاً JoomlaBoy.ir) اضافه شده تا مشخص کند این کد توسط او نوشته شده است.
    • ?>: بسته شدن تگ PHP.

خلاصه عملکرد:

این کد بررسی می‌کند که آیا محتوایی در متغیر $this->element->intro_txt وجود دارد یا خیر. اگر محتوایی وجود داشته باشد، آن را داخل یک بلوک <div> با کلاس‌های مشخص نمایش می‌دهد. اگر متغیر خالی باشد، هیچ چیزی نمایش داده نمی‌شود.

از آنجا که جوملا بطور پیشفرض از بوت استراپ bootstrap پشتیبانی میکند و با فرض اینکه قالب تان از این امکان استفاده می کند بدون تغییر در فایل CSS قالب ظاهر خوبی به توضیحات مقدماتی محصولتان بدهید. تصویر زیر نمونه ای از استفاده از کد مذکور می باشد:

نمایش توضیحات مقدماتی در محصولات هیکاشاپ Hikashop

برای ویرایش فایل layout محصولات هیکاشاپ، 2 روش وجود دارد که هر دو در مقاله آموزش ویرایش فایل layout محصولات Hikashop هیکاشاپ گفته شده است