ItemID trong Joomla

ItemID trong Joomla

Có một khái niệm mà không ít người khi mới làm quen với Joomla thắc mắc, đó là ItemID. ItemID xuất hiện trên hầu như tất cả mọi URL thuộc một hệ thống Joomla, nó giúp Joomla quản lý dễ dàng sự xuất hiện của các module theo ý muốn. ItemID chính là một trong các thành phần quan trọng tạo nên sự khác biệt của Joomla đối với các CMS khác. Bài viết này giải thích ý nghĩa cũng như cách vận dụng của ItemID một cách đơn giản và dễ nắm bắt nhất. Nếu bạn đang trong giai đoạn đầu nghiên cứu Joomla, hãy bớt thời gian đọc bài này và cất nội dung của nó vào một góc trí nhớ, nhất định sau này sẽ dùng tới.

ItemID là gì?

ItemID đơn giản là ID (identification) của một item (mục). Và mục ở đây cụ thể là mục menu, ta gọi là Menu Item.

Mỗi Menu item đều có một ID cho riêng mình, ID này được tự động tạo ra khi có một menu item mới, ID này không trùng lặp và bắt đầu từ 1 (Menu item ID của trang chủ). Ta không thể sửa ID này trong Back-end của Joomla. Để hiểu rõ hơn Menu item được hiển thị ở đâu, ta xem hình dưới đây.

Menu Item ID Joomla

Vào Menu Manager và truy cập vào quản lý một Menu chi tiết (hình trên là Main Menu), cột cuối cùng thể hiện ID của từng Menu item. Và như ta thấy, heading name của cột đó chính là "ItemID". Ngoài ra, khi vào phần cấu hình một Menu Item chi tiết, ID của Item đó cũng được hiển thị rất rõ:

Menu Item ID Detail

ItemID được vận dụng như thế nào?

ItemID thường xuất hiện trong thành phần URL của 1 website Joomla, ví dụ ta có URL sau:

http://misoblog.net/index.php?option=com_content&view=article&id=1003&Itemid=196

Đây là một URL dạng đơn giản nhất, thể hiện một bài viết của Joomla (thuộc Component Content), qua URL ta có thể thấy bài viết có ID là 1003, còn Itemid là 196. Vấn đề là tại sao ItemID của URL thể hiện bài viết này lại là 196?

196 chính là ID của mục Menu có tên "Joomla" (Xem hình mình hoạ về Menu Item Details phía trên). Menu này hiển thị một Section (hoặc Category) chứa các bài viết về Joomla, và bài viết có id=1003 kia thuộc Section này, do vậy URL của bài viết này được tự động gán Itemid=196 - thể hiển rằng nó được hiển thị ra khi ta đang xem mục menu số 196.

Điều này có tác dụng gì? Rất đơn giản, khi đang xem bài viết số 1003 thì mục Menu "Joomla" sẽ được coi là "Active", và tuỳ theo thiết kế CSS ra sao mà mục menu đó sẽ sáng lên, hoặc có màu sắc nổi bật, thể hiện rằng hiện tại ta đang xem bài viết tại mục menu đó.

Ngoài ra, một tác dụng rất quan trọng của Itemid chính là quản lý sự xuất hiện của các module trong website Joomla.

Ta đã biết, việc cho phép hiển thị 1 module nào đó trên một hay nhiều Menu Item được quy định trong phần Menu Assignment của Module đó:

Menu Assignment Joomla

Tại đây, ta có thể gắn 1 module với 1 hay nhiều mục Menu, tất cả các mục Menu, hay không xuất hiện tại mục Menu nào. Bản chất của việc này chính là gắn Module đó với 1 hoặc nhiều ItemID (mỗi ItemId là một mục menu).

Nhờ có việc gắn Module với các ItemID mà Joomla có thể quản lý một cách mềm dẻo sự xuất hiện của các module (hay nhóm module) khác nhau trên các mục Menu khác nhau. Ví dụ: có 2 Module cùng được assign cho mục Home như hình trên, khi load mục Home (trang chủ), Joomla sẽ chỉ cho hiển thị 2 module đó; khi ta sang các mục Menu khác, Joomla lại kiểm tra xem tại mục này có module nào được assign vào không... Cứ như vậy, ta có thể điều chỉnh một cách toàn diện và linh hoạt các thành phần module trên website theo ý muốn.

Kết luận

Hiểu rõ ItemID, ta có thể vận dụng linh hoạt trong việc quản lý URL cũng như module trong website. Đã bao giờ bạn muốn khi xem một bài viết thì một mục menu nào đó phải "active"? Nếu nó cứ nhất định không active, hãy thử kiểm tra xem Itemid trong URL của bài viết đó đã trùng với ID của mục menu mình cần chưa. Cũng như vậy, khi bạn thực hiện một website tin tức với nhiều phân mục, vận dụng Menu Assignment sẽ giúp người truy cập có những trải nghiệm thú vị và không nhàm chán với nhiều module khác nhau.

Chúc bạn thành công với Joomla.


Hứng thú với những bài viết trên MisoBlog? Hãy thử đăng ký nhận tin mới qua email, hoặc chia sẻ bài viết bằng thanh công cụ dưới đây.
Email Twitter Facebook Myspace Stumbleupon Digg Delicious Technorati blogger google reddit Yahoo

Comments  

Gordonat 2011-01-12 16:47#
Bác quả là Joomla specialist :D
Phải đến 3 năm có lẻ tớ ko sờ mó gì đến Joomla & ít kiến thức học mót được cũng quên gần như sạch sẽ rồi :)
Reply
Misoat 2011-01-12 17:26#
Cái gì lâu không động tới mà chả quên hả bác :) hồi trước tớ cũng biết kha khá về WP, giờ thì quên hết sạch rồi. Nhớ hồi trước cài web cho Cty bằng Nukeviet mãi, sau đó mới mò mẫm chuyển sang Joomla :D
Reply
BKMetalxat 2011-01-14 09:39#
Lâu lâu mới thấy Miso quay lại, vẫn uyên thâm như ngày nào :D. Dạo này phải quản lý cái site của công ty bằng Joomla đâm ra phải xem lại từ đầu cái anh chàng này, mệt phết :(
Reply
Misoat 2011-01-14 10:56#
Ngày càng có nhiều Công ty làm web bằng Joomla :) Bác cứ nghiên cứu rồi có khi tự làm hẳn 1 site cho Công ty, đỡ phải mất công thuê ngoài :D
Reply
Mr.Hocat 2011-01-16 19:28#
Lâu quá mới thấy bài mới của Bác đó nha ^^
Reply
kaylaximuoiat 2011-01-18 17:49#
Miso oii, chị chuẩn bị quay video hướng dẫn về cách build giao diện trong Joomla, em có template nào đã tự tạo từ đầu kg share cho chị với, bằng html/css thôi vì chị chưa tìm template free nào ưng ý trên net cả. Thanks em. :)
Reply
Misoat 2011-01-20 21:41#
Làm chị thất vọng rồi, em không có ạ :D
Reply
tanphatimcat 2011-08-20 02:50#
khi mới đâu làm template cho joomla mình có tham khảo nhiều thì thấy template www.siteground.com/joomla-templates.htm viết đơn giản và khá chuẩn, đọc gọn gàng, dễ hiểu.
Reply
Viễn Chinhat 2011-01-26 15:12#
Em chuyển sang Joomla rồi, có gì Bác giúp đỡ em nhé!
Reply
Mèo khùngat 2011-02-03 00:50#
Năm mới chúc miso vui vẻ, hành phúc và gặp nhiều may mắn trong cuộc sống. :)
Reply
Misoat 2011-02-07 02:15#
Miso cũng chúc bạn mạnh khoẻ và có nhiều thành công trong năm mới! :D
Reply
Hoang Hoa Trungat 2011-03-20 01:32#
ID này hay ID về article, hay tất cả ID trong joomla (hay .net, jsp) thì đều là 1 dạng số tự tăng thôi mà, hiểu đơn giản là mỗi khi bạn thêm mới một categorie/session/article thì +1 đơn vị.
Bạn miêu tả song t cũng ko hiểu là để làm gì nữa ^^
Reply
Misoat 2011-03-20 01:45#
Đối với bạn thì nó chỉ là 1 dạng số tự tăng ^^, nhưng cứ hiểu đơn giản là với người ta thì nó có các tác dụng khác.
Reply
zungntat 2011-06-01 01:18#
cho em hỏi, em dùng joomla và sh404 sef, không biết vì lí do gì mà có những link như yourlink.com/abc/def.htmlyourlink.com/abc/def.html?Itemid=0, link thứ nhất thì bình thường, dùng template của site, nhưng link thứ 2 thì không có module nào được load cả. Em nên làm như thế nào ạ?
Reply
Misoat 2011-06-02 09:57#
Bạn nên vào URL Manager của sh404SEF rồi xoá béng cái link có đuôi ?Itemid=0 đấy đi. Đây là dạng duplicate content thôi mà :)
Reply
zungntat 2011-06-03 18:14#
uhm, em cài lại plugin lỗi, xóa link và đc rồi, thanks anh Miso ^^
Reply
Mekiat 2011-07-04 07:46#
Tớ cũng đang tập tọe Joomla
Và cũng gặp rắc rối với Joomla trong cái ItemID này
:( Cụ tỉ là với Plugin Search khi tìm kiếm có dạng thì ra link dạng như sau:
index.php?searchword=12&ordering=&searchphrase=all&Itemid=1&option=com_search
Nếu bỏ cái ItemID đi hoặc là thay bằng giá trị 0 thì tìm kiếm được, còn lại chẳng ra kết quả gì :(
Bạn nào có thể giải thích hoặc hướng dẫn tớ bỏ Itemid trong Plugin Tìm kiếm được không?
Chân thành cảm ơn!
Reply
Tuan Anhat 2011-08-03 09:40#
Mình cũng mới tập tọe Joomla, cũng hay thắc mắc thằng ItemID này, nay đọc bài viết này giải tích rất cặn kẽ. Thanks !
Reply
Du lich Viet Namat 2011-09-08 11:49#
Bạn cho mình hỏi, có cách nào bỏ được con số ID bài viết trên URL ko ?
VD : dailydulich.com/.../...
Mình muốn thành
dailydulich.com/.../...
thì làm thế nào ?
Mong được chỉ giáo. Xin cảm ơn
Reply
Du lich Viet Namat 2011-09-08 11:52#
Sao cái bài viết kia nó lại dấu URL đi nhỉ.
"http://dailydulich.com/diem-du-lich-thai-lan/1131-phuket-thien-duong-mien-nhiet-doi.html"
mình muốn thành
"http://dailydulich.com/diem-du-lich-thai-lan/phuket-thien-duong-mien-nhiet-doi.html"
Reply
Misoat 2011-09-08 15:44#
Cái này tuỳ thuộc bạn dùng extension SEO gì. Nếu dùng sh404SEF thì có tuỳ chọn trong Extension configuration -> Insert article id in URL.
Vào đó thay đổi là xong.
Reply
Du lich Viet Namat 2011-09-08 16:51#
Mình không cùng gì cả, chỉ dùng file .htacess bình thường ở cấu hình Joomla thôi.
Reply
Misoat 2011-09-08 17:02#
Nếu vậy bạn nên dùng sh404SEF.
Chức năng SEF mặc định của Joomla chỉ cho phép hiển thị URL như vậy, ko có tuỳ chọn thay đổi, muốn sửa phải can thiệp vào trong source code.
Bởi vậy người ta thường dùng các extension phụ trợ SEO chứ ko động vào phần code của Joomla làm gì.
Reply
Du lich Viet Namat 2011-09-08 17:23#
Cho mình hỏi, nếu "can thiệp vào source" của Joomla thì mình phải sửa đoạn nào ? ở đâu ?
Cảm ơn nhiều ^^
Reply
Misoat 2011-09-08 17:50#
:)
Mời bạn vào thám hiểm file /plugins/system/sef.php
Reply
CAA+at 2011-09-21 06:58#
CAA tin chắc nhiều người sẽ thắc mắc tại sao Miso không sử dụng Wordpress mà lại sử dụng Joomla.
Nhưng CAA nghĩ mỗi người có quan điểm riêng và cái nhìn riêng, giống như vừa rồi CAA chuyển sang blogger, CAA công nhận blogger là một nền tảng rất tốt nhưng CAA vẫn không thích bằng Wordpress. Chịu mất 1 ít tiền mua host cũng không sao :D
CAA rất ấn tượng với Miso's blog, tại vì trong 1 cộng đồng lớn blogger đều sử dụng Wordpress thì Miso lại dùng Joomla và vẫn giữ quan điểm riêng.
Reply
Misoat 2011-09-21 08:53#
Cảm ơn CAA đã động viên.
Wordpress là một nền tảng dành cho blog tốt nhất thế giới, nó ăn đứt Joomla. Trong cộng đồng blogger, Miso dùng Joomla hoàn toàn không phải vì nhận định rằng nó tốt hơn Wordpress :)

Joomla rất thích hợp cho các website thương mại, và vì thế nhiều Công ty phát triển các ứng dụng web trên nền Joomla để bán lấy tiền, nhiều lắm, và đó là một xu hướng rất mạnh mẽ đã từ lâu rồi. Ở Việt Nam hiện nay, số cty phát triển web trên nền Joomla đông đảo hơn Wordpress rất nhiều, điển hình là 2 thương hiệu nổi tiếng: JoomlArt và ZooTemplate. Còn những cá nhân xây dựng Joomla để bán các website nhỏ lẻ thì nhiều vô kể.

Miso nghiên cứu về Joomla, nên sử dụng blog bằng Joomla, vậy thôi. Trước đến nay nó vẫn đáp ứng đủ nhu cầu về blog nên Miso thấy chưa cần thiết phải chuyển sang Wordpress.
Reply
nguyen tuan linhat 2011-09-23 23:33#
Miso ơi làm thế nào để thay đổi itemID
Reply
Misoat 2011-09-24 08:57#
Không có cách nào ở trong Administration mà thay đổi ItemID được.

Trong trường hợp muốn đổi thì vào database mà sửa lại thôi (có thể sửa qua phpMyAdmin).
Reply
nguyen tuan linhat 2011-09-24 17:22#
Ok, mình làm được rồi, miso cho hỏi là nếu muốn hiển thị số lượt đọc bài viết thì chỉnh thế nào, có plugin nào hỗ trợ không, đã tìm hiểu qua mạng vào sửa code nhưng không được
Reply

Wanna say something?