28/05/2018, 16:14

Sữa lỗi title Alias không hiển thị tiếng việt không dấu trong Joomla

Bạn sử dụng mã nguồn Joomla để tạo Website và trong quá tình tìm hiểu bạn gặp vấn đề đường dẫn của tiêu đề bài viết không thể hiện tiếng việt không dấu mà nó bị lượt bỏ một số chữ. Trong bài viết này, Topthuthuat sẽ hướng dẫn các bạn cách khắc phục tình trang này. Bạn có thể thay ...

Bạn sử dụng mã nguồn Joomla để tạo Website và trong quá tình tìm hiểu bạn gặp vấn đề đường dẫn của tiêu đề bài viết không thể hiện tiếng việt không dấu mà nó bị lượt bỏ một số chữ. Trong bài viết này, Topthuthuat sẽ hướng dẫn các bạn cách khắc phục tình trang này.

Bạn có thể thay đổi đường dẫn thế nào?

Phiên bản Joomla! 2.5 mặc dù đã có chức năng Unicode Aliases, cho phép hiển thị tiếng Việt có dấu trong Title Alias nhưng vẫn chưa hỗ trợ tiếng Việt không dấu. Sau đây là cách sửa lỗi tiếng Việt trong Title Alias của Joomla! 2.5

Sữa lỗi title alias không hiển thị tiếng việtSữa lỗi title alias không hiển thị tiếng việt

Hướng dẫn sữa lỗi title alias không hiển thị tiếng việt trong Joomla

Đầu tiên, các bạn cần tìm File Output.php theo đường dẫn sau: /libraries/joomla/filter/output.php

Tiếp đến, tìm đoạn code như sau:

public static function stringURLSafe($string)
 {
 // remove any '-' from the string since they will be used as concatenaters
 $str = str_replace('-', ' ', $string);

$lang = JFactory::getLanguage();
 $str = $lang->transliterate($str);

// Trim white spaces at beginning and end of alias and make lowercase
 $str = trim(JString::strtolower($str));

// Remove any duplicate whitespace, and ensure all characters are alphanumeric
 $str = preg_replace('/(s|[^A-Za-z0-9-])+/', '-', $str);

// Trim dashes at beginning and end of alias
 $str = trim($str, '-');

return $str;
 }

Thay toàn bộ đoạn mà trên bằng đoạn code dưới đây

public static 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 đã thực hiện xong, bạn tiến hành Save Lại và xóa cache để thấy hiệu quả.

Lưu ý: Phải chọn Unicode Aliases là No trong phần thiết lập cấu hình SEO/SEF của Joomla! 2.5 hoặc Joomla 3.0 để tránh đường dẫn hiển thị tiếng việt.

Ngoài ra, bạn cũng có thể tải file output.php mình đã làm sẵn ở phiên bản Joomla 3.0 thông qua liên kết này hoặc phiên bản Joomla 2.5.18 tại đây.

0