Joomla một hệ thống CMS mã nguồn mở "hoành cháng" nhất hiện nay, các template và extension dành cho open source này nhiều vô kể, đặc biệt là trong lĩnh vực làm SEO cho website sử dụng mã nguồn này. Nhưng "lắm thầy lại nhiều ma" chúng ta có thể gặp nhiều khó khăn trong việc lựa chọn các sử dụng extension nào cho hợp lý trong trường hợp làm sef url cho website. Trong bài viết này chúng ta sẽ cũng so sánh hiệu quả của các extension này, hy vọng sẽ giúp được nhiều cho các bạn có ý định tìm và sử dụng các phần mở rộng hỗ trợ việc quảng bá website của mình.
j
Bảng phân tích trên dựa trên các yếu tố thiên về tối ưu hóa cho website, đóng góp hầu hết trong việc làm onpage SEO cho joomla
- SEF URL: Tạo url thân thiện với máy tìm kiếm, bằng cách thay các đoạn code bằng tiêu đề của bài viết cụ thể.
- Meta data: Quản lý, sắp xếp meta tag cho các trang cụ thể
- No follow: chứng năng gáng thẻ nofollow cho các out-link
- 404 Pages: Trang thông báo link gãy
- Cross-Linking: Hỗ trợ nội liên kết
- H1 tag: Hỗ trợ heading tag
- Alt tag: Hỗ trợ thẻ alt cho hình ảnh
Cách thứ 1: Update + Configuration setup:
- Việc đầu tiên bạn cần làm là update lên phiên bản joomla mới nhất hiện tại là 1.5.xxx3, sh404sef mới nhất, và virtue mart mới nhất hiện tại là 1.xxx.
- Bước thứ 2, bạn vào sh404sef / Configuration / Plugin :
trong phần này bạn để ý đến phần Plugin cho Virtue Mart, chọn Yes cho ứng dụng “Using Items per page drop-down list”
- Bước cuối cùng là save lại và xóa cache của sh404sef đi là song !
Nếu thức hiện theo cách này thì url của bạn sẽ được chuyển thành:
Domain.com/parts/Page-1-50.html
Domain.com/parts/Page-2-50.html
Domain.com/parts/Page-3-50.html
đấy là trong trường hợp bạn chỉnh cho hiện thị 50 sản phẩm trên 1 trang, nếu bạn chỉ cho hiển thị 10 hoặc 20 sản phẩm thì số 50 ở url trên sẽ chuyền thành số tương ứng.
Cách thứ 2: Can thiệp vào code:
Mở file component/com_sh404sef/sef_ext/com_virtuemart.php
Thêm đoạn code sau đây vào sau biến if (!function_exists('vmSefGetProductName'))
// Detect where a menu item with a non-standard Itemid is being processed and simulate a VM internal 'menu' item to facilitate pagination
global $sess;
if( !isset($sess) ) {
require_once( JPATH_ROOT.DS.'components'.DS.'com_virtuemart'.DS.'virtuemart_parser.php' );
}
$vm_Itemid = $sess->getShopItemid();
// Check whether the Itemid is the usual value for a VM menu item
if( $Itemid != $vm_Itemid ) {
// The URL is based on a menu item other than the standard VM menu item (usually the home page)
// VM always uses the standard VM Itemid value in pagination URLs and so this URL will be updated to
// use the standard Itemid and to incorporate any menu item parameters, in case pagination is appropriate.
$menu = & shRouter::shGetMenu();
$menuItem = $menu->getItem( $Itemid );
if( $menuItem ) {
// Get the menu parameter set
$menuparams =& new JParameter( $menuItem->params );
// Replicate the logic used by VM to assess whether a browse or product detail page required
$tmp_product_id = $menuparams->get( 'product_id' );
$tmp_category_id = $menuparams->get( 'category_id' );
// Get the page name and remove '.php', if present
$tmp_page = preg_replace('/\.php/', '', strtolower($menuparams->get( 'page' )));
if( !empty($tmp_product_id) ) {
$default_page = 'shop.product_details';
} else if( !empty($tmp_category_id) ) {
$default_page = 'shop.browse';
} else {
$default_page = '';
}
$tmp_page = empty($tmp_page) ? $default_page : $tmp_page;
// Check whether the menu item is a browse page or product detail page (other pages are excluded
$allowed_pages = array(
'shop.browse',
'shop.product_details',
);
if( in_array($tmp_page, $allowed_pages) ) {
// Clear down the unwanted get vars from the $shGETVars array
$required_params = array(
'option',
'lang',
);
global $shGETVars;
foreach( $shGETVars as $param ) {
if( !in_array($param, $required_params) ) {
unset($$param);
unset($shGETVars[$param]);
}
}
// Reset the Itemid
$Itemid = $vm_Itemid;
shAddToGETVarsList( 'Itemid', $Itemid );
// Replicate the logic used by VM to include specific parameter values
if( !empty($tmp_product_id) ) {
$product_id = $tmp_product_id;
shAddToGETVarsList( 'product_id', $product_id );
} else if( !empty($tmp_category_id) ) {
$category_id = $tmp_category_id;
shAddToGETVarsList( 'category_id', $category_id );
}
$tmp_flypage = $menuparams->get('flypage');
if( ( !empty($tmp_product_id) || !empty($tmp_category_id) ) && !empty($tmp_flypage) ) {
$flypage = $tmp_flypage;
shAddToGETVarsList( 'flypage', $flypage );
}
$page = $tmp_page;
shAddToGETVarsList( 'page', $page );
// Process any other menu parameters not already processed
$params = $menuparams->toArray();
// Exclude system parameters and those already processed
$excluded_params = array(
'product_id',
'category_id',
'flypage',
'page',
'page_title',
'show_page_title',
'pageclass_sfx',
'menu_image',
'secure',
);
// Process each parameter
foreach( $params as $param => $value ) {
if( !in_array($param, $excluded_params) && $value != '' ) { // Note empty() is not used here because zero is valid
$$param = $value;
shAddToGETVarsList( $param, $value );
shRemoveFromGETVarsList( $param );
}
}
}
}
}
// Set the page number for browse pages, if not already set
if( !isset($limitstart) || !isset($limit) ) {
$my_page = explode('.', $page);
$pagename = isset($my_page[1]) ? $my_page[1] : '';
if( $pagename == 'browse' ) {
global $vm_mainframe, $mosConfig_list_limit;
if( !isset($limitstart) ) {
// VM stores a different default limitstart value for each different browse page. That value must be identified so that the URL
// is created for the expected page
// Store the 'current value' of limitstart so that it can be restored later
$save_limitstart = vmRequest::getVar('limitstart');
// Setting the 'current value' to null allows the stored value (if any) to be retrieved without it being overwritten by a
// 'current value' that is usually not applicable to that particular browse page
vmRequest::setVar( 'limitstart', null );
// Force a consistent value for category_id when empty
$category_id = empty($category_id) ? 0 : $category_id;
$limitstart = (int)$vm_mainframe->getUserStateFromRequest( "view{$keyword}{$category_id}{$pagename}limitstart", 'limitstart', 0 );
shAddToGETVarsList( 'limitstart', $limitstart );
// Restore the original 'current value' of limitstart
vmRequest::setVar( 'limitstart', $save_limitstart );
}
if( !isset($limit) ) {
// No need to save and restore values here because VM only uses one value globally
$limit = (int)$vm_mainframe->getUserStateFromRequest( "viewlistlimit{$page}", 'limit', $mosConfig_list_limit );
shAddToGETVarsList( 'limit', $limit );
}
}
}
// Ensure that $limitstart is a multiple of $limit (this can occur if $limit was changed since $limitstart was set)
if( isset($limitstart) && $limit > 0 ) {
$limitstart = floor($limitstart/$limit)*$limit;
shAddToGETVarsList( 'limitstart', $limitstart );
}
Bước 2: Vào Configuration của sh404sef làm tương tự như cách 1 đã làm.
Bước 3: Save lại và delete cache của sh404 đi là ok.
Điều kiện cần:
1. Website (nói cho vui thui^^)
2. Notepad ++ , down ở đây.
3. Internet (mạng mạnh 1 chút cho các website lơn gần 500 hoặc hơn 500 trang)
Minh sẻ hướng dẫn các bạn làm sitemap cho những website dưới 500 trang trước nha. Trên 500 trang thì tính sau
Có rất nhiều phần mên hỗ trợ làm sitemap, nhưng ở đây minh sẻ hướng dẫn cách làm sitemap bằng những dịch vụ free trên mạng internet.
Bước 1: Vào web http://www.xml-sitemaps.com (web này là uy tín nhất về việc làm sitemap), khuyến kích sử dụng trình duyệt web firefox.
- Điền domain website của bạn vào: Starting Url (chú ý redirect nhá)
- Chọn thông số Frequensy
- Tại Priority: bạn có 2 lựa chọn là tự động thiết lập hoặc thiết lập bằng tay. (auto cho nó nhanh)
Click: Start
Chờ cho nó chạy song, web đơn gian thì nhanh, mà phức tạp thì hơi lâu đây.
Khi chạy song bạn sẻ nhận được 1 list các file sitemap, nhưng bạn chỉ cần chú ý đến 4 file sau: sitemap.xml, ror.xml, sitemap.html và urllist.txt
Bước 2: Down 4 file ở trên về máy.
- Sử dụng notepad ++ mở file sitemap.xml đẻ set thông số Priority cho các url theo ý bạn.
Lưu ý phần này: thông số Priority quy định sự quan trong của các url đối với website của bạn, nếu Url nào quan trọng nên cho nó cao điểm hơn, cao nhất là 1.0 và thấp nhất 0.10
Bước 3: Upload lên root web và verify sitemap .
Xong :D
Sử dụng Sh404SEF tạo đường link thân thiện cho Joomla 1.5x (Update)

Như chúng ta đã biết có rất nhiều Component giúp tạo Link thân thiện (SEF) nhưng trong số đó có
sh404SEF là có thể không cần đến file
.htaccess, và việc cấu hình cũng rất dễ dàng. SEF mặc định của sh404SEF cũng đã rất tốt rồi (
index.php/ABC/tin-tuc.html), tuy nhiên nếu muốn bạn cũng có thể làm cho tốt hơn nữa.
Sau đây là các bước cơ bản cài đặt và cấu hình sh404SEF cho Joomla! :
1. Download sh404SEF tại: http://extensions.joomla.org/component/ ... Itemid,35/
2. Cài đặt bình thường như các Component khác. Sau khi cài đặt bạn sẽ có Component sh404SEF, Mambot (Plugin) và có thể thêm vài Module khác nữa (tùy theo phiên bản sh404SEF)
Đối với các Module thì bạn cứ để yên đó, phần này chúng ta chưa đụng tới.
3. Trong Admin, vào Components -> sh404SEF để bắt đầu cấu hình:
4. Ngay tại bảng điều khiển chính của sh404SEF bạn phải nhấn vào dòng chữ "Click here to switch to extended display (with all available parameters)" nằm bên phải, để khi vào sh404SEF Configuration mới xuất hiện tab Advanced để chỉnh.
5. Chọn sh404SEF Configuration
6. Trong Tab Main, mục Enabled? bạn chọn là có (yes)
7. Tại mục Character replacements list bạn chèn thêm các ký tự sau đây vào tiếp theo sau các ký tự có sẵn:
-
á|a, à|a, ả|a, ã|a, ạ|a, â|a, ấ|a, ầ|a, ẩ|a, ẫ|a, ậ|a, ă|a, ắ|a, ằ|a, ẳ|a, ẵ|a, ặ|a, đ|d, é|e, è|e, ẻ|e, ẽ|e, ẹ|e, ê|e, ế|e, ề|e, ể|e, ễ|e, ệ|e, í|i, ì|i, ỉ|i, ĩ|i, ị|i, ó|o, ò|o, ỏ|o, õ|o, ọ|o, ô|o, ố|o, ồ|o, ổ|o, ỗ|o, ộ|o, ơ|o, ớ|o, ờ|o, ở|o, ỡ|o, ợ|o, ú|u, ù|u, ủ|u, ũ|u, ụ|u, ư|u, ứ|u, ừ|u, ử|u, ữ|u, ự|u, ý|y, ỳ|y, ỷ|y, ỹ|y, ỵ|y, Á|A, À|A, Ả|A, Ã|A, Ạ|A, Â|A, Ấ|A, Ầ|A, Ẩ|A, Ẫ|A, Ậ|A, Ă|A, Ắ|A, Ằ|A, Ẳ|A, Ẵ|A, Ặ|A, Đ|D, É|E, È|E, Ẻ|E, Ẽ|E, Ẹ|E, Ê|E, Ế|E, Ề|E, Ể|E, Ễ|E, Ệ|E, Í|I, Ì|I, Ỉ|I, Ĩ|I, Ị|I, Ó|O, Ò|O, Ỏ|O, Õ|O, Ọ|O, Ô|O, Ố|O, Ồ|O, Ổ|O, Ỗ|O, Ộ|O, Ơ|O, Ớ|O, Ờ|O, Ở|O, Ỡ|O, Ợ|O, Ú|U, Ù|U, Ủ|U, Ũ|U, Ụ|U, Ư|U, Ứ|U, Ừ|U, Ử|U, Ữ|U, Ự|U, Ý|Y, Ỳ|Y, Ỷ|Y, Ỹ|Y, Ỵ|Y
8. Tại mục: Use Title Alias chọn Full Title
9. Tại mục: File suffix nhập vào .html (mặc nhiên đã có sẵn)
10. Tại mục Apply to which categories? bạn chọn All Categories
Các mục còn lại để nguyên, không đụng tới.
11. Chuyển qua Tab Advanced, trong phần Activate URL cache chọn có (cái này sẽ giúp giảm thời gian mở trang Web, nếu không thích bạn có thể chọn không)
12. Tại phần Rewriting mode?, bạn chọn Without .htaccess (index.php)
Các mục còn lại để nguyên, không đụng tới.
13. Chọn Save để lưu các các thông số vừa thiết lập.
14. Vào Site - > Configuration -> Thiết Lập SEO -> chọn Có cho cả 3 phần ở mục nay.
Một số lưu ý khi sử dụng Sh404sef:
- Kiểm tra sh404sef phải hoạt động tốt trước khi chỉnh sửa các thông số, mỗi khi chỉnh sửa xong phải xóa Cache của sh404sef và của Joomla! (nếu có) để các thông số mới có hiệu lực và không bị lỗi link.
- Nếu gặp trục trặc với file .htaccess thì tải file này ở phía bên trên về dùng hoặc theo hướng dẫn trong phần sh404SEF Documentation .
- Đối với Joomla! 1.5 thì nên chọn SEF Title chứ đừng chọn Alias, vì sẽ dễ bị lỗi font chữ mã UTF-8 (có cách fix, nhưng sẽ bàn trong một chủ đề khác
)
- Nếu bị lỗi cần phải cài lại sh404SEF thì nhớ Uninstall cái cũ và xóa các bảng dữ liệu của nó trong Database thì mới được vì nếu không xóa thì sau khi cài đặt lại nó vẫn giữ nguyên các thông số đã thiết lập và có thể lỗi sẽ vẫn còn.
- Sh404sef chỉ có plugin cho một số ít component, vì vậy khi đã chọn sh404sef bạn phải kiêm tra các component khác xem có hỗ trợ sh404sef hay không. Trong trường hợp component đó ko hỗ trợ sh404sef, bạn phải tự viết plugin cho component đó hoặc chuyển sang dùng component khác thay thế.
- Lưu ý sh404sef và Joomsef sử dụng chung 1 kiêu cấu hình database, nên khi các bạn muốn uninstall sh404sef để cài joomsef, các bạn phải delete luôn thông tin cấu hình của sh404sef trong database.
Quy trình cài đặt Joomla 1.7!
Chào các bạn,
Để chào mừng sự kiện joomla 1.7 vừa được ra mắt phpcantho.com sẽ hướng dẫn các bạn cài đặt phiên bản mới này để cho các bạn đam mê thiết kế website bằng joomla có thể thỏa sức khám phá được các tính năng mới của phiên bản này một cách dễ dàng.
Bước 1: Các bạn tải phiên bản mới nhất tại địa chỉ:http://phpcantho.com hoặt http://www.joomla.org/
Bước 2: Giải nén file Joomla_1.7.0-Stable-Full_Package.zip vừa tải vào thư mục htdocs (nếu các bạn dùng xamp) www (nếu các bạn dùng Easyphp)
Quy trình cài đặt Joomla 1.6! Joomla! là một hệ quản trị nội dung mã nguồn mở (tiếng Anh: Open Source Content Management Systems). Joomla! được viết bằng ngôn ngữ PHP và kết nối tới cơ sở dữ liệu MySQL , cho phép người sử dụng có thể dễ dàng xuất bản các nội dung của họ lên Internet hoặc Intranet. Joomla có các đặc tính cơ bản là: bộ đệm trang (page caching) để tăng tốc độ hiển thị, lập chỉ mục, đọc tin RSS (RSS feeds), trang dùng để in, bản tin nhanh, blog, diễn đàn, bình chọn, lịch biểu, tìm kiếm trong Site và hỗ trợ đa ngôn ngữ. Phiên bản đầu tiên của Joomla 1.6 Beta 1 Phát hành ngày 16/05/2010 Và hiện tại bản mới nhất là Joomla 1.6 Beta 15 Dự kiến trên trang chủ Joomla nếu không có gì bất ngờ thì phiên bản chính thức sẽ cho phép download về vào ngày 13/12/2010 Bài viết này mình sẽ hướng dẫn các bạn cài đặt gói Joomla 1.6 Beta 15 Trước hết để chạy được Joomla máy của bạn phải cài phần mềm giả lập Easyphp bao gồm Aphace, PHP, Mysql và các thành phần theo kèm khác Xem bài viết hướng dẫn cài Easyphp tại đây : 1. Tải gói joomla mới nhất tại thời điểm hiện tại ở đường link sau : http://phpcantho.com/ hoặt http://joomlacode.org/gf/project/joomla/frs/?action=FrsReleaseBrowse&frs_package_id=5539 Sau đó xả nén vào thư mục Joomla_1_6 nằm bên trong thư mục www của Easyphp 2. Mở trình duyệt truy cập vào địa chỉ http://localhost/Joomla_1_6 Phần cài đặt Joomla sẽ được hiển thị
 3. Bước tiếp theo là các thông tin về server có phù hợp để cài đặt Joomla hay không.
 4. Thông tin giấy phép mã nguồn mở
 5. Nhập các thông tin kết nối đến DB
 6. Bỏ Qua bước cấu hình FTP đến server
 7. Điền thông tin Website, Người quản trị, và cài đặt dữ liệu mẫu
 8. Cài đặt thành công
 9. Xóa thư mục cài đặt installation
 10. Truy cập địa chỉ http://localhost/Joomla_1_6 để xem kết quả trang vừa cài đặt
 11. Truy cập địa chỉ http://localhost/Joomla_1_6/administrator để xem trang quản trị của Joomla

 Chúc bạn thành công! |
Quy trình cài đặt Joomla ! Việc cài đặt Website Joomla là rất dễ dàng, đơn giản và nhanh chóng đối với tất cả mọi người. Bạn chỉ cần truy cập Website Joomla , download bộ cài đặt, giải nén, upload lên host, tạo database và tiến hành cài đặt theo từng bước. Màn hình cài đặt của Joomla 1.5 khá thân thiện và được bố trí hợp lý. Bạn chỉ cần chú ý một điều duy nhất là "phải tạo 1 database với Collation - charset: utf8_general_ci" trước khi cài đặt mà thôi. Dưới đây là các bước thực hiện .... Bước 1: Download & Upload bộ cài đặt Joomla! Download Joomla 1.5 : link download: http://phpcantho.com hoặt Joomla 1.5 beta (night builds) http://www.joomla.org Upload Joomla : Upload lên Server và giải nén vào thư mục gốc chứa Web của bạn (hoặc một thư mục con của nó và đặt tên là joomla). Thư mục gốc chứa Web thường có tên là: htdocs, public_html, www, wwwroot... C:\Easyphp 3.0\www\ C:\Program Files\Easyphp 3.0\www\ Bạn có thể Upload bằng một số cách: Bằng Copy trực tiếp (nếu cài trên máy của bạn) Bằng công cụ quản trị mà HOSTING cung cấp. Bằng công cụ FTP: WS_FTP, Total Commander, Net2FTP... Bước 2: Chọn ngôn ngữ cài đặt Mở trình duyệt và gõ vào địa chỉ Website của bạn. Nếu bạn giải nén bộ cài đặt vào thư mục gốc thì gõ: http://yoursite/ VD: http://phpcantho.com/ VD: http://localhost/ (nếu cài trên máy của bạn) Nếu bạn giải nén bộ cài đặt vào thư mục joomla (thư mục con của thư mục gốc) thì gõ: http://yoursite/joomla/ VD: http://phpcantho.com/joomla/ VD: http://localhost/joomla/ (nếu cài trên máy của bạn) Màn hình cài đặt xuất hiện và bạn có thể chọn một ngôn ngữ trong quá trình đặt: Bước 3: Kiểm tra cấu hình hệ thống Nếu các giá trị kiểm tra có màu xanh thì OK. Nếu các giá trị kiểm tra có màu đỏ thì bạn cần hỏi bộ phận Hỗ trợ kỹ thuật của Server. Bạn vẫn có thể tiếp tục cài đặt tuy nhiên một số chức năng có thể sẽ không hoạt động.  Bước 4: Thông tin bản quyền Bạn nên dành một chút thời gian để đọc các thông tin này.
Bước 5: Thiết lập các thông số để kết nối tới Cơ sở dữ liệu - Hostname: Thường là giá trị "localhost" (chỉ điền giá trị khác nếu như Database Server và Web Server nằm ở 2 nơi khác nhau, hoặc Host của bạn cung cấp như vậy) - User name: Tên tài khoản có quyền đối với cơ sở dữ liệu chứa Joomla của bạn. - Password: Mật khẩu của tài khoản trên - Availbe Collations: Bạn nên chọn là "utf8_general_ci" - Database Name: Tên cơ sở dữ liệu của bạn
Bước 6: Thiết lập các thông số FTP - Nếu Host của bạn không hỗ trợ, mục này sẽ không hiển thị - Nếu Host của bạn hỗ trợ, bạn cần chú ý: Username: Tên tài khoản FTP Password: Mật khẩu tương ứng. Auto Find Path: Tự động tìm đường dẫn tới nơi chứa Web của bạn (Nên dùng chính tài khoản mà bạn đã Upload bộ cài đặt Joomla lên HOST) Bước 7: Thiết lập cấu hình site Joomla của bạn - Site name: tên site của bạn. VD: phpcantho.com, Thiết kế web Cần Thơ, Vinhlongngaymoi.com... - Your Email: địa chỉ email của bạn VD: phpcantho@gmail.com This e-mail address is being protected from spambots. You need JavaScript enabled to view it - Admin Password: Mật khẩu để quản trị Joomla Các thông số trên sau này đều có thể thay đổi dễ dàng nên bạn không cần bận tâm lắm. Chỉ cần nhớ mật khẩu là đủ. - Install Defaul Sample Data: Cài đặt dữ liệu mẫu. Bạn nên nhấn nút này để Joomla tạo mẫu cho bạn một trang web đơn giản.
Bước 8: Kết thúc - Lưu ý: tài khoản truy nhập hệ thống là: admin; mật khẩu: mật khẩu mà bạn đã gõ ở bước 6. - Để xem Website của bạn: Nhấn vào nút Site - Để quản trị Website: Nhấn vào nút Admin. Đường dẫn sẽ có dạng như sau: http:// www.yoursite.com/administrator/ hoặc http://www.yoursite.com/joomla/administrator hoặc http://localhost/administrator/(nếu cài trực tiếp trên máy của bạn)
Chúc bạn thành công! |
Một số đặc điểm mới của Joomla 1.6 so với các phiên bản cũ
|
Joomla là một hệ thống quản lý nội dung (CMS) cho các trang web. Ước tính hiện nay (tính đến 14 Tháng 1, 2011) được rằng có 2.6 % các Website sử dụng Joomla làm hệ quản trị nội dung của các website. Phiên bản Joomla 1.0 đã được thay thế với Joomla 1.5 vài năm trước đây với những thay đổi đáng kể. Cuối ngày 10 tháng 1, năm 2011, phiên bản 1.6 được phát hành. Phiên bản này có một số thay đổi tuyệt vời, và nhiều phần của Joomla được viết lại từ đầu để thực hiện những kỳ công. Bài viết liệt kê một số điểm tiến bộ khác nhau giữa phiên bản 1.6 và các phiên bản trước đây
|
|
|
1. Về kỹ thuật lập trình.
1.1. Số dòng mã lệnh (Lines of code)
Joomla 1.6 có hơn 1,6 100,000 dòng mã lệnh ít hơn so với Joomla 1.5. Sự chệnh lệch số lượng dòng mã lệnh là 35%. Như vậy phần lớn mã nguồn của Joomla 1.6 đã được viết lại so với phiên bản 1.5 có vẻ sẽ tạo tra được hiệu quả xử lý cao hơn.
1.2 Chú thích Code (Comments)
Trong tổng số 320,215 dòng mã lệnh có trong Joomla 1.5 có 100,813 dòng mã lệnh có chú thích thực tế và 219,502 dòng mã thực tế ( tỷ lệ 31,47%) trong tổng số các dòng mã lệnh. Với Joomla 1.6, các con số là 73,058 dòng so với 133,885 phi dòng nhận xét (tỉ lệ 35,30% ). Như vậy trong mã nguồn của Joomla 1.6 các dòng mã lệnh được chú thích tốt hơn tăng khả năng cải tiến và mở rộng phát triển, giúp cho các lập trình viên khi sử dụng sẽ hiểu nhanh mã nguồn hơn.

1.3 Các phương thức cộng đồng (Public)
Trong PHP 5, các hàm được khai báo là public (công cộng) thì các hàm đó có thể được truy cập bởi bất kỳ các lớp đối tượng khác. Điều này sẽ làm ảnh hưởng nhiều đến tính đóng gói của các đối tượng, và hạn chế tính riêng tưkhi các đối tượng khác có thể truy cập. Đây là các đặc điểm quan trọng của phương pháp lập trình hướng đối tượng. Trong Joomla 1.6 số lượng hàm được định nghĩa public ít hơn gần 17% so với phiên bản 1.6. Bên cạnh đó các hằng số (Constant) được sử dụng trong phiên bản 1.6 cũng ít hơn phiên bản 1.5 rất nhiều. Từ đó chúng ta thấy được phiên bản 1.6 được thiết kế rất tốt theo phong cách hướng đối tượng.


Từ các đồ thị so sánh trên đã thể hiện một sự khác biệt lớn giữa Joomla 1.5 và 1.6 trong về kỹ thuật lập trình.
2. Về kiến trúc và chức năng hệ thống
2.1 Joomla 1,6 đã kiểm soát quyền quản lý người dùng tốt hơn.
Trong phiên bản 1.5 chức năng quản lý thành viên được thiết kế theo mô hình phân cấp: Một nhóm người dùng (groups user) trong đó sẽ có nhiều người dùng. Tùy theo tính năng của website người thiết kế sẽ tạo phân cấp và phân quyền phù hợp cho các người dùng. Trong phiên bản 1.6 sự quản lý quyền người dùng được kiểm soát chặt chẽ hơn, ràng buộc chi tiết hơn. Người dùng được cấp quyền chi tiết cho từng module, chuyên mục nội dung, các chức năng cấu hình của website.
Cấu trúc phân cấp như sau:
Access Levels: Quản lý các cấp độ hiển thị dành cho người dùng.

Groups: Quản lý các nhóm người dùng
User: Quản lý người dùng.
Mass Mail Users: Quản lý việc gửi mail cho một nhóm người dùng.


2.2 Cấu trúc cây nội dung
Theo tôi, đây là sự khác biệt lớn nhất và cũng là ưu điểm lớn nhất của phiên bản 1.6
Trong phiên bản 1.5 website được phân cấp cho các bài viết theo dạng
1. Session
2. Category
3. Article
Với hình thức phân cấp này, cấu trúc nội dung trong bài viết nếu phân quá 3 cấp thì sẽ không thực hiện tốt.
Với phiên bản 1.6 việc quản lý nội dung đa cấp trở nên một việc rất dễ dàng.
Category 1
Category 2 (Category 1 là cha)
Category 3 (Category 2 là cha)
Category 4 (Category 3 là cha)
Article Manager:
Quản lý bài viết. Bài viết được quản lý chi tiết hơn. Một bài viết sẽ được phân loại theo một Category, tùy chọn ngôn ngữ, tùy chọn cấp độ hiển thị.
Category Manager:
Quản lý phân loại bài viết. Các chuyên mục được phân loại đa cấp. Điều này rất thích hợp cho các website có nội dung lồng nhau. Các bài viết được tùy chỉnh ngôn ngữ. Đây là một ưu điểm rất tốt cho các trang web đa ngôn ngữ. Joomla 1,6 đã hỗ trợ nhiều hơn cho các trang web đa ngôn ngữ.
2.3 Có bắt đầu và kết thúc lần xuất bản cho các module.
Trong phiên bản 1.5 một bài viết có thể đặt thời gian bắt đầu và kết thúc cho bài viết. Tuy nhiên các module không có tính năng này. Trong phiên bản 1.6 một module có thể định nghĩa thời gian bắt đầu và thời gian kết thúc. Một ví dụ để thấy rõ công dụng của chức năng này. Ví dụ bạn muốn tạo một module Quảng cáo học bổng có thời gian trong vòng 2 tháng. Như vậy chúng ta chỉ cần tạo một Module và qui định thời gian được tạo là 2 tháng.
Bạn có thể upload nhiều tập tin cùng một lúc.
2.4 Quản lý các phương tiện media.
Bạn có thể upload nhiều tập tin cùng một lúc.
2.5 Quản lý các Module
Trong phiên bản 1.5, nếu bạn muốn một module xuất hiện trên tất cả các trang ngoại trừ một trang, bạn có thể gán cho nó trong phần quản lý module. Nhưng khi bạn thêm một menu mới, bạn phải vào trở lại module và gán nó cho các menu mới. Cải tiến vấn đề đó trong phiên bản 1.6 có một tính năng là On all pages except those selected. Vì vậy bạn sẽ không cần phải chỉnh sửa module khi thêm vào một menu mới

Tóm lại với nhiều cải tiến vượt trội phiên bản 1.5. Joomla 1.6 đang là một trong các CMS được sử dụng rộng rãi nhất và phù hợp với các trang web nội dung. Tuy nhiên hệ thống module và extention chưa được nâng cấp kịp thời cũng là một hạn chế. Hy vọng trong thời gian tới sẽ đầy đủ và hoàn thiện hơn