Joomla Bài học 6: Hệ thống Menu (Menu System) - Trái tim điều hướng và kiểm soát hiển thị trên Joomla
Chào mừng bạn đến với Joomla Bài học 6. Ở bài học này, chúng ta sẽ mổ xẻ cách Joomla vận hành hệ thống menu, phân biệt rạch ròi giữa Menu và Menu Item, khám phá các kiểu Menu Item cốt lõi và tìm hiểu mối quan hệ mật thiết giữa Menu với việc kiểm soát hiển thị giao diện (Module Assignment).
1. Tư duy cốt lõi: Phân biệt Menu và Menu Item
Một lỗi rất phổ biến khi mới tiếp cận Joomla là nhầm lẫn giữa Menu và Menu Item. Hãy định nghĩa lại một cách chuẩn xác kỹ thuật:
-
Menu (Đối tượng chứa): Là một tập hợp các liên kết dùng để phân loại ngữ cảnh điều hướng (Ví dụ: Main Menu cho menu chính của trang, Footer Menu cho các liên kết chân trang, hoặc User Menu cho thành viên đăng nhập). Bạn có thể tạo vô số Menu khác nhau tùy theo cấu trúc thiết kế.
-
Menu Item (Mục menu / Nút bấm cụ thể): Là từng liên kết đơn lẻ nằm bên trong một Menu (Ví dụ: Trang chủ, Giới thiệu, Liên hệ, Danh mục Tin tức).
2. Giải phẫu các loại Menu Item cốt lõi trong Joomla
Mỗi khi bạn tạo một Menu Item mới, Joomla yêu cầu bạn chọn Menu Item Type (Kiểu mục menu). Đây chính là điểm làm nên sức mạnh của hệ thống:
-
Articles (Nhóm liên kết bài viết):
-
Single Article: Trỏ trực tiếp đến một bài viết cụ thể duy nhất.
-
Category Blog: Hiển thị danh sách các bài viết trong một danh mục dưới dạng lưới hoặc danh sách blog (có phân trang, hiển thị ảnh intro). Đây là kiểu dùng cho trang tin tức phổ biến nhất.
-
Category List: Hiển thị dạng bảng (Table) liệt kê các bài viết trong danh mục kèm theo ngày tháng, tác giả, lượt xem (phù hợp làm cổng thông tin tài liệu).
-
-
System Links (Liên kết hệ thống):
-
URL: Trỏ tới một đường dẫn ngoài (External URL) hoặc đường dẫn nội bộ tùy chỉnh.
-
Alias: Tạo một bản sao/bí danh trỏ hướng về một Menu Item khác (giúp linh hoạt trong việc bố trí vị trí menu).
-
Separator: Tạo một mục phân cách (không click được) dùng trong các menu dropdown nhiều cấp.
-
-
Component-Specific Types (Kiểu mở rộng từ các component khác): Ví dụ như trang đăng nhập (
com_users), trang tìm kiếm nâng đại (com_finder), hoặc trang liên hệ (com_contact).
3. Mối quan hệ mật thiết giữa Menu Item và Module Assignment
Đối với một lập trình viên backend, đây là phần ăn tiền nhất của hệ thống Menu Joomla: Kiểm soát hiển thị Module dựa trên Menu Item Assignment.
-
Bản chất kỹ thuật: Trong Joomla, các khối giao diện phụ (như Menu phụ, Banner quảng cáo, Giỏ hàng mini, Form đăng nhập) đều được quản lý dưới dạng Modules.
-
Cơ chế gán (Module Assignment): Khi bạn cấu hình một Module, Joomla cho phép bạn chọn chính xác module đó chỉ xuất hiện ở một hoặc nhiều Menu Item cụ thể (Ví dụ: Chỉ hiển thị Banner quảng cáo ở trang chủ - Menu Item "Home", ẩn đi ở trang bài viết chi tiết).
-
Tác dụng: Giúp bạn tinh chỉnh giao diện cực kỳ linh hoạt mà không cần phải viết thêm các câu lệnh điều kiện phức tạp
if (is_front_page())bằng PHP như ở một số CMS khác.
4. Cơ chế SEF URL và Router của Menu
Trong Joomla, Menu Item là gốc rễ của hệ thống tạo đường dẫn thân thiện (SEF URL).
-
Khi bạn tạo một Menu Item trỏ đến một Category Blog (ví dụ đặt tên alias là
tin-tuc), toàn bộ các bài viết nằm trong danh mục đó khi bấm vào sẽ tự động thừa hưởng cấu trúc URL dạng:[domain.com/tin-tuc/ten-bai-viet](https://domain.com/tin-tuc/ten-bai-viet). -
Kiến trúc Router của Joomla dựa trên cấu trúc Menu này để phân giải URL ngược lại thành các tham số
Itemid,option,view,idkhi có request từ người dùng gửi tới hệ thống.
5. Tổng kết bài học
-
Phân biệt rõ ràng giữa Menu (tập hợp) và Menu Item (đường dẫn chi tiết).
-
Nắm vững các kiểu Menu Item cốt lõi (
Category Blog,Single Article,System Links). -
Hiểu cách tận dụng Module Assignment gắn liền với Menu Item để điều khiển hiển thị giao diện thông minh.
Trong Bài học 7, chúng ta sẽ khám phá bức tranh toàn cảnh về hệ thống mở rộng của Joomla qua 5 trụ cột Extension: Component, Module, Plugin, Template và Language.
All rights reserved