سیستم مدیریت منوهای AlvandCMS در /admin/menus/ با قابلیت ساختار درختی و کشیدن و رها کردن (drag & drop) پیادهسازی شده است.
معماری
/admin/menus/index # لیست منوها
/admin/menus/manage # ویرایش ساختار منو (drag & drop)
/admin/menus/new # ایجاد منوی جدید
/admin/menus/trash # حذف شدهها
core/system/api/menu/
create.php # ایجاد منو
read.php # خواندن منوها
update.php # بروزرسانی
delete.php # حذف
ویرایشگر منو
انواع منبع (Source Types)
| نوع | توضیح |
|---|
custom | لینک سفارشی |
categories | دستهبندی |
pages | برگه |
posts | مقاله |
فیلدهای حالت پایه
| فیلد | توضیح |
|---|
| عنوان | نام نمایشی در منو |
| URL | مسیر یا لینک |
| Target | _self یا _blank |
| شناسه مرجع | ID دسته/برگه/مقاله |
فیلدهای حالت پیشرفته (Pro)
| فیلد | توضیح |
|---|
| rel | nofollow, noopener, noreferrer |
| آیکن | کلاس آیکون (fi, fa) |
| CSS Class | کلاسهای سفارشی |
| HTML id | شناسه المان |
| Aria Label | دسترسیپذیری |
| Tooltip | title attribute |
| ترتیب | شماره سفارش |
| nofollow | rel=nofollow |
| مخفی | پنهان از نمایش |
| data-* | دیتا اتریبیوتها |
| توضیحات | یادداشت مدیریتی |
عملیات
- افزودن فرزند: زیرمنو ایجاد کنید
- ویرایش: تغییر مشخصات آیتم
- حذف: حذف آیتم از منو
- کشیدن: جابجایی با drag & drop
- تکثیر: کپی آیتم (در حالت پیشرفته)
قابلیتها
- ساختار چند سطحی: زیرمنو با تودرتوی نامحدود
- حالت پایه/پیشرفته: ذخیره در localStorage
- جستجوی منابع: فیلتر دستهبندیها، برگهها و مقالات
- پشتیبانی از آیکون: آیکونهای Font Awesome و Tabler Icons
جاوااسکریپت
javascript
// ایجاد سازنده منو
document.addEventListener('DOMContentLoaded', function () {
window.createMenuBuilder();
});
این سیستم از SortableJS برای قابلیت drag & drop استفاده میکند.