‫ ایجاد منوی جدید در پنل مدیریت

سلام

می خواستم بدونم چطور میشه به پنل مدیریت منوهای جدید به همراه زیرمنو اضافه کرد. از چه توابعی و به چه صورت باید استفاده کرد؟

ممنون

سازنده: مهرداد اسماعیل پور زمان ایجاد: 5 شهریور 1397

پاسخ‌ها:

مرتب‌سازی بر اساس
محمد آقاعباسلو تیم توسعه
محمد آقاعباسلو 6 شهریور 1397

سلام

ضمن تشکر از پرسش بسیار مفید شما،

در کلاس ADMIN_CLASS_MasterPage در تابع init واقع در فایل master_page.php منوهای سمت راست به صورت ثابت تعریف شده اند:

$menuDataArray = array(
'menu_admin' => BOL_NavigationService::MENU_TYPE_ADMIN,
'menu_users' => BOL_NavigationService::MENU_TYPE_USERS,
'menu_settings' => BOL_NavigationService::MENU_TYPE_SETTINGS,
'menu_appearance' => BOL_NavigationService::MENU_TYPE_APPEARANCE,
'menu_pages' => BOL_NavigationService::MENU_TYPE_PAGES,
'menu_plugins' => BOL_NavigationService::MENU_TYPE_PLUGINS,
'menu_mobile' => BOL_NavigationService::MENU_TYPE_MOBILE
);

می‌توانید منوی خود را به آن اضافه کنید.

زیر منوهای هرکدام از منوها در جدول ow_base_menu_item ذخیره شده‌اند که شما هم می‌بایست زیر منوی مورد نظر را در این جدول ایجاد کنید.

در همان تابع init که در بالا اشاره شد در چند خط قبل تر از اینکه آرایه منوهای اصلی ایجاد شود با تابع

$menuItems = BOL_NavigationService::getInstance()->findMenuItemsForMenuList($menuTypes);

زیر منوهای مربوطه را از جدول استخراج می‌کند

ویرایش شده توسط محمد آقاعباسلو (6 شهریور 1397)

خب یعنی باید هسته موتور رو تغییر بدم. راهی برای ایجاد منو بدون تغییر هسته وجود نداره؟

محمد آقاعباسلو تیم توسعه
محمد آقاعباسلو 6 شهریور 1397

لزوما اضافه کردن قابلیت به هسته، به معنی تغییر خود هسته نیست و شما می‌توانید این کار را از طریق ایجاد یک افزونه مستقل انجام بدید که در هنگام نصب و یا فعالسازی افزونه، کوئریهای ایجاد منو و زیر منو را اجرا کرده و در هنگام حذف و یا غیر فعالسازی آن نیز کوئری حذف منوها و زیرمنوهای مربوطه اجرا شود.

برای خواندن منوها و ... نیز می‌توانید رویدادهای لازم را در مکانهای مناسب قرار دهید.

ویرایش شده توسط محمد آقاعباسلو (6 شهریور 1397)