Thí dụ tên bài viết là:
Cách cài đặt nhiều hệ điều hành trên cùng một máy vi tính
Còn liên kết trên thanh địa chỉ là:
http://buaxua.vn/the-news/46-cach-cai-t-nhiu-h-iu-hanh-tren-cung-mt-may-vi-tinh.html
Đây là do lỗi khi chuyển đổi từ tiếng Việt có dấu của Title sang tiếng Việt không dấu cho Title Alias trong Joomla! 1.5. Mà chức năng SEF của Joomla! lại lấy Title Alias để tạo liên kết cho nên tên của liên kết cũng không đúng luôn.
Cách khắc phục của một số bạn là tự sửa Title Alias này lại cho đúng, tuy nhiên điều này hơi mất công. Có một cách khác là làm cho Joomla! 1.5 tự động chuyển đúng từ tiếng Việt có dấu sang tiếng Việt không dấu.
Sau đây là cách sửa lỗi này:
Mở tập tin:
/libraries/joomla/filter/filteroutput.php
Tìm dòng:
function stringURLSafe($string)
{
//remove any '-' from the string they will be used as concatonater
$str = str_replace('-', ' ', $string);
$lang =& JFactory::getLanguage();
$str = $lang->transliterate($str);
// remove any duplicate whitespace, and ensure all characters are alphanumeric
$str = preg_replace(array('/\s+/','/[^A-Za-z0-9\-]/'), array('-',''), $str);
// lowercase and trim
$str = trim(strtolower($str));
return $str;
}
{
//remove any '-' from the string they will be used as concatonater
$str = str_replace('-', ' ', $string);
$lang =& JFactory::getLanguage();
$str = $lang->transliterate($str);
// remove any duplicate whitespace, and ensure all characters are alphanumeric
$str = preg_replace(array('/\s+/','/[^A-Za-z0-9\-]/'), array('-',''), $str);
// lowercase and trim
$str = trim(strtolower($str));
return $str;
}
Xóa hết các dòng này đi và thay thế bằng:
function stringURLSafe($string)
{
$trans = array(
"đ"=>"d","ă"=>"a","â"=>"a","á"=>"a","à"=>"a",
"ả"=>"a","ã"=>"a","ạ"=>"a",
"ấ"=>"a","ầ"=>"a","ẩ"=>"a","ẫ"=>"a","ậ"=>"a",
"ắ"=>"a","ằ"=>"a","ẳ"=>"a","ẵ"=>"a","ặ"=>"a",
"é"=>"e","è"=>"e","ẻ"=>"e","ẽ"=>"e","ẹ"=>"e",
"ế"=>"e","ề"=>"e","ể"=>"e","ễ"=>"e","ệ"=>"e",
"í"=>"i","ì"=>"i","ỉ"=>"i","ĩ"=>"i","ị"=>"i",
"ư"=>"u","ô"=>"o","ơ"=>"o","ê"=>"e",
"Ư"=>"u","Ô"=>"o","Ơ"=>"o","Ê"=>"e",
"ú"=>"u","ù"=>"u","ủ"=>"u","ũ"=>"u","ụ"=>"u",
"ứ"=>"u","ừ"=>"u","ử"=>"u","ữ"=>"u","ự"=>"u",
"ó"=>"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",
"ý"=>"y","ỳ"=>"y","ỷ"=>"y","ỹ"=>"y","ỵ"=>"y",
"Ý"=>"Y","Ỳ"=>"Y","Ỷ"=>"Y","Ỹ"=>"Y","Ỵ"=>"Y",
"Đ"=>"D","Ă"=>"A","Â"=>"A","Á"=>"A","À"=>"A",
"Ả"=>"A","Ã"=>"A","Ạ"=>"A",
"Ấ"=>"A","Ầ"=>"A","Ẩ"=>"A","Ẫ"=>"A","Ậ"=>"A",
"Ắ"=>"A","Ằ"=>"A","Ẳ"=>"A","Ẵ"=>"A","Ặ"=>"A",
"É"=>"E","È"=>"E","Ẻ"=>"E","Ẽ"=>"E","Ẹ"=>"E",
"Ế"=>"E","Ề"=>"E","Ể"=>"E","Ễ"=>"E","Ệ"=>"E",
"Í"=>"I","Ì"=>"I","Ỉ"=>"I","Ĩ"=>"I","Ị"=>"I",
"Ư"=>"U","Ô"=>"O","Ơ"=>"O","Ê"=>"E",
"Ư"=>"U","Ô"=>"O","Ơ"=>"O","Ê"=>"E",
"Ú"=>"U","Ù"=>"U","Ủ"=>"U","Ũ"=>"U","Ụ"=>"U",
"Ứ"=>"U","Ừ"=>"U","Ử"=>"U","Ữ"=>"U","Ự"=>"U",
"Ó"=>"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",);
//remove any '-' from the string they will be used as concatonater
$str = str_replace('-', ' ', $string);
$str = strtr($str, $trans);
$lang =& JFactory::getLanguage();
$str = $lang->transliterate($str);
// remove any duplicate whitespace, and ensure all characters are alphanumeric
$str = preg_replace(array('/\s+/','/[^A-Za-z0-9\-]/'), array('-',''), $str);
// lowercase and trim
$str = trim(strtolower($str));
return $str;
}
Sau khi sửa xong thì save file này lại. Tuy nhiên việc sửa đổi này chỉ có hiệu lực đối với các bài viết từ nay về sau mà thôi, còn các bài viết trước vẫn còn bị lỗi. Bạn phải mở (Edit) bài viết ra và xóa hết toàn bộ ký tự trong ô Alias (nằm ngay phía dưới Title) và nhấn Save (hoặc Apply) các lỗi sẽ được tự động sửa.
http://buaxua.vn/the-news/46-cach-cai-dat-nhieu-he-dieu-hanh-tren-cung-mot-may-vi-tinh.html
Không còn lỗi mất chữ nữa!
0 comments: