داشبورد (dashboard)
- محمد علایی
- منتشر شده در
- زمان خواندن 2 دقیقه
معمولاً برای دسترسی آسان به کامپوننت خود، لینک آن را در منوی کامپوننتها قرار میدهند. این کار از طریق فایل manifest کامپوننت انجام میشود.
مثال بخش مربوط به منوی کامپوننت در فایل `example.xml`:
<administration>
<menu>COM_EXAMPLE</menu>
[..]
</administration>
افزودن داشبورد به کامپوننت
با استفاده از پارامتر `dashboard` میتوانید گزینهی منوی کامپوننت را گسترش دهید تا لینکی به داشبورد اضافه شود. شما میتوانید هر نامی به داشبورد بدهید، اما نکته مهم این است که حتماً از حروف کوچک استفاده کنید و برای جداکننده فقط از خط تیره (`-`) بهره ببرید و هرگز از `_` (underscore) استفاده نکنید.
نامهای مجاز:
- `my-example`
- `example`
نامهای غیر مجاز:
- `my_example`
- `Com-MY_EXAMPLE`
پارامتر `dashboard`
- با تعیین این پارامتر، آیکونی برای داشبورد کنار آیتم منوی کامپوننت در محیط مدیریت نمایش داده میشود.
- وقتی روی آیکون کلیک شود، ماژولهایی که به موقعیت ماژولی با نام `cpanel-example` اختصاص داده شدهاند نمایش داده میشوند.
- عنوان و آیکون تعریف شده در فایل XML به عنوان سرصفحه (هدر) و آیکون بالای صفحه داشبورد کامپوننت استفاده میشوند.
نمونه کد لینک داشبورد در فایل manifest
<administration>
<menu>
COM_EXAMPLE
<params>
<dashboard>example</dashboard>
</params>
</menu>
[..]
</administration>
جوملا اکنون امکان داشبورد اختصاصی برای کامپوننت شما را فراهم کرده است. شما میتوانید ماژولها را در این صفحه با استفاده از موقعیت ماژولی `cpanel-example` اضافه کنید.
عنوان و آیکون داشبورد
برای تعیین عنوان و آیکون داشبورد، این بخش را به فایل manifest اضافه کنید:
<dashboards>
<dashboard title="COM_EXAMPLE" icon="icon-calendar">example</dashboard>
</dashboards>
زیرمنو (Submenu)
اگر میخواهید نماهای مختلفی از کامپوننت خود را به منو اضافه کنید، میتوانید منو را به صورت زیرمنو گسترش دهید.
آیتم های زیر منو:
<menu>
COM_EXAMPLE
<params>
<dashboard>example</dashboard>
</params>
</menu>
<submenu>
<menu link="option=com_example" view="examples">COM_EXAMPLE_MENU</menu>
<menu link="option=com_categories&extension=com_example" view="categories">COM_EXAMPLE_ENU_CATEGORIES</menu>
<menu link="option=com_fields&view=fields≈mp;context=com_example.example">COM_EXAMPLE_MENU_FIELDS</menu>
<menu link="option=com_fields&view=groups&context=com_example.example">COM_EXAMPLE_MENU_FIELD_GROUPS</menu>
</submenu>
ماژول زیرمنوی در داشبورد شما
داشبورد شما در حال حاضر خالی است و منتظر اضافه شدن ماژولهاست. اگر میخواهید زیرمنویی برای دسترسی به نماهای مختلف کامپوننت خود اضافه کنید، باید مراحل زیر را طی کنید:
1. ایجاد پوشهای به نام presets در داخل پوشهی کامپوننت خود.
2. ایجاد یک فایل تنظیمات (preset) برای ماژول خود.
3. افزودن پوشهی presets به فایل `example.xml` (فایل منیفست کامپوننت).
4. گسترش (اصلاح) اسکریپت نصب کامپوننت برای اضافه کردن این زیرمنو در داشبورد.
از پیشتنظیمها در خود هسته جوملا به صورت گسترده استفاده شده، به عنوان مثال کامپوننت `com_menu`.
شما میتوانید از ساختار و مفهوم آن الگو بگیرید و استفاده کنید.
ساخت فایل preset منوی زیرمنو
در پوشهی `presets` یک فایل به نام `example.xml` ایجاد کنید. محتوای این فایل میتواند مانند نمونه زیر باشد:
<?xml version="1.0"?>
<menu
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:joomla.org"
xsi:schemaLocation="urn:joomla.org menu.xsd"
>
<menuitem
title="COM_EXAMPLE"
type="heading"
icon="calendar"
dashboard="example"
>
<menuitem
title="COM_EXAMPLE_MENU"
type="component"
element="com_example"
link="index.php?option=com_example&view=examples"
/>
<menuitem
title="COM_EXAMPLE_MENU_CATEGORIES"
type="component"
element="com_categories"
link="index.php?option=com_categories&view=categories&extension=com_example"
/>
</menuitem>
</menu>
- این تعریف باعث ایجاد یک عنوان (heading) در منوی داشبورد با آیکون تقویم و عنوان `COM_EXAMPLE` میشود.
- زیر آن دو آیتم منو به عنوان کامپوننت تعریف شده است که به دو ویو مختلف در کامپوننت شما یا کامپوننت دستهبندیها لینک میدهند.
افزودن پوشه presets به فایل منیفست (example.xml)
در بخش `<administration>` فایل manifest کامپوننت، باید پوشهی جدید `presets` را تعریف کنید تا در بسته نصب لحاظ گردد، مثلاً:
<administration>
[..]
<files folder="admin">
<folder>forms</folder>
<folder>language</folder>
<folder>presets</folder>
<folder>services</folder>
<folder>sql</folder>
<folder>src</folder>
<folder>tmpl</folder>
<filename>access.xml</filename>
<filename>config.xml</filename>
<filename>example.xml</filename>
</files>
</administration>
اسکریپت نصب (Install Script)
فرض میکنیم که شما اسکریپت نصب (`install script`) برای کامپوننت خود دارید. اگر ندارید، مستندات جوملا درباره اسکریپتهای نصب را مطالعه کنید.
برای افزودن ماژول منو به داشبورد موقع نصب میتوانید یک خط کد به متد نصب اضافه کنید:
// افزودن ماژول منو به داشبورد
$this->addDashboardMenu('example', 'example');
- پارامتر اول ('example') نام داشبورد است که در فایل manifest تحت پارامتر `<dashboard>` مشخص کردید.
- پارامتر دوم ('example') نام فایل preset شما در پوشه presets است (بدون پسوند و به حروف کوچک).
منابع بیشتر
- API اسکریپت نصب جوملا: Joomla CMS Installer InstallerScript API
(برای مطالعه بیشتر درباره قابلیتهای اسکریپت نصب و امکانات آن)