سلام
می خواستم بدونم چطور میشه به پنل مدیریت منوهای جدید به همراه زیرمنو اضافه کرد. از چه توابعی و به چه صورت باید استفاده کرد؟
ممنون
سلام
می خواستم بدونم چطور میشه به پنل مدیریت منوهای جدید به همراه زیرمنو اضافه کرد. از چه توابعی و به چه صورت باید استفاده کرد؟
ممنون
پاسخها:
مرتبسازی بر اساسسلام
ضمن تشکر از پرسش بسیار مفید شما،
در کلاس 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);
زیر منوهای مربوطه را از جدول استخراج میکند
خب یعنی باید هسته موتور رو تغییر بدم. راهی برای ایجاد منو بدون تغییر هسته وجود نداره؟
لزوما اضافه کردن قابلیت به هسته، به معنی تغییر خود هسته نیست و شما میتوانید این کار را از طریق ایجاد یک افزونه مستقل انجام بدید که در هنگام نصب و یا فعالسازی افزونه، کوئریهای ایجاد منو و زیر منو را اجرا کرده و در هنگام حذف و یا غیر فعالسازی آن نیز کوئری حذف منوها و زیرمنوهای مربوطه اجرا شود.
برای خواندن منوها و ... نیز میتوانید رویدادهای لازم را در مکانهای مناسب قرار دهید.