Cách sửa lỗi tiếng Việt trong Title Alias của Joomla! 2.5

Thảo luận các vấn đề về CMS và Forum khác như WordPress, Drupal, phpBB, SMF, vBulletin, MyBB,...
Nội quy chuyên mục
Thành viên đăng quảng cáo trong chuyên mục này sẽ bị xóa toàn bộ bài viết và cấm vĩnh viễn tham gia Diễn đàn.

* Xem qui định đăng bài viết tại đây: Nội quy đăng bài viết
Hình đại diện của thành viên
TruongLe
Thành viên
Thành viên
Bài viết: 1684
Ngày tham gia: 14/09/2010 - 20:20

Cách sửa lỗi tiếng Việt trong Title Alias của Joomla! 2.5

Gửi bài gửi bởi TruongLe » 12/06/2012 - 12:17

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

Mở tập tin /libraries/joomla/filter/output.php

Tìm:

Mã: Chọn tất cả

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 thế bằng:

Mã: Chọn tất cả

	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 sửa xong thì save file này lại. 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.

Lưu ý: Phải chọn Unicode AliasesNo trong phần thiết lập cấu hình SEO/SEF của joomla! 2.5

Các bạn có thể tải file "output.php" đã được sửa sẵn cho phiên bản Joomla! 2.5.4 tại đây:
output.zip
* Xem cách sửa lỗi tiếng Việt trong Title Alias của Joomla! 1.5 tại đây: http://www.buaxua.vn/forum/viewtopic.php?f=12&t=26
Bạn không có quyền cần thiết để xem các tệp đính kèm với bài đăng này.
* Hãy sử dụng công cụ tìm kiếm của Diễn đàn trước khi đặt câu hỏi.
* Hãy đặt tên cho Chủ đề diễn tả đúng với nội dung để thuận tiện khi tìm kiếm.
* Hãy chia sẻ kiến thức của bạn vì không chỉ giúp được mọi người mà còn giúp mình ghi nhớ những điều đã biết!

vinaora
Thành viên mới
Thành viên mới
Bài viết: 3
Ngày tham gia: 17/06/2012 - 23:55

Re: Cách sửa lỗi tiếng Việt trong Title Alias của Joomla! 2.

Gửi bài gửi bởi vinaora » 18/06/2012 - 00:01

Hi bác Trường. Bác vẫn khỏe chứ?

Bác có thể xài thử plugin Vinaora VietAlias >> Vui lòng đăng ký thành viên và đăng nhập để xem nội dung này. mà không phải lo hack code nữa, bất tiện lắm.

Thực ra là em viết plugin này lâu rồi nhưng giờ mới tập trung để code kỹ hơn và upgrade lên cho Joomla 2.5.

30s dành cho quảng cáo tính năng :D

Mã nguồn mở, hoàn toàn miễn phí
Tương thích hoàn toàn với Joomla 2.5, Joomla 1.6/1.7
Hỗ trợ tất cả các thành phần mở rộng (extension) được cài đặt thêm từ các hãng thứ ba
Xử lý triệt để vấn đề lỗi, mất ký tự (1) trong các đường link, trường bí danh (Alias) của Joomla
Tạo các đường link thực sự an toàn (2), thân thiện giúp SEO hiệu quả
Cho phép nạp trên tất cả các trang khi soạn thảo (3) hoặc chỉ nạp trên một số trang chuyên biệt (4)
Tự động hoàn thiện (5) trường bí danh (Alias) ngay khi gõ phần tiêu đề (Title/Name)
Hỗ trợ cả tiếng Việt Unicode dựng sẵn và Unicode tổ hợp (6)
Loại bỏ hoàn toàn các ký tự đặc biệt (7)
Hỗ trợ cả phần tiền sảnh (front-end) và phần hậu sảnh (back-end) của Joomla
Không phụ thuộc vào việc đã cài đặt gói ngôn ngữ Việt Nam hay chưa (8)
Được đóng gói trong plugin, nên không gây ảnh hưởng khi nâng cấp Joomla
Mã nguồn được nghiên cứu cẩn thận và tối ưu về hiệu suất
Tiết kiệm thời gian và công sức nhập liệu

Hình đại diện của thành viên
TruongLe
Thành viên
Thành viên
Bài viết: 1684
Ngày tham gia: 14/09/2010 - 20:20

Re: Cách sửa lỗi tiếng Việt trong Title Alias của Joomla! 2.

Gửi bài gửi bởi TruongLe » 18/06/2012 - 09:01

Hi vinaora,

Hàng nóng hổi mới ra lò chưa gì đã PR rồi à :lol: mà sao nhiều thứ linh tinh trong đó thế... ;) thấy cái jhellosef nó đơn giản hơn nhiều mà.

Bạn nào không muốn sửa code thì cài plugin vào cũng được.
* Hãy sử dụng công cụ tìm kiếm của Diễn đàn trước khi đặt câu hỏi.
* Hãy đặt tên cho Chủ đề diễn tả đúng với nội dung để thuận tiện khi tìm kiếm.
* Hãy chia sẻ kiến thức của bạn vì không chỉ giúp được mọi người mà còn giúp mình ghi nhớ những điều đã biết!

vinaora
Thành viên mới
Thành viên mới
Bài viết: 3
Ngày tham gia: 17/06/2012 - 23:55

Re: Cách sửa lỗi tiếng Việt trong Title Alias của Joomla! 2.

Gửi bài gửi bởi vinaora » 18/06/2012 - 09:30

TruongLe đã viết: Hàng nóng hổi mới ra lò chưa gì đã PR rồi à :lol: mà sao nhiều thứ linh tinh trong đó thế... ;) thấy cái jhellosef nó đơn giản hơn nhiều mà.
Sao lại linh tinh hả bác:

- File ngôn ngữ cho tiếng Anh và tiếng Việt
- File javascript để sinh tự động Alias ngay khi gõ tiêu đề bài viết
- File helper.php chứa class xử lý chính
- File README.markdown để chứa thông tin giới thiệu

Chứ thích thì em nhét vào 1 file cũng được mà ^_^

dieutridau
Thành viên mới
Thành viên mới
Bài viết: 4
Ngày tham gia: 01/06/2011 - 10:42
Liên hệ:

Re: Cách sửa lỗi tiếng Việt trong Title Alias của Joomla! 2.

Gửi bài gửi bởi dieutridau » 14/09/2012 - 15:30

vinaora đã viết:Hi bác Trường. Bác vẫn khỏe chứ?

Bác có thể xài thử plugin Vinaora VietAlias >> Vui lòng đăng ký thành viên và đăng nhập để xem nội dung này. mà không phải lo hack code nữa, bất tiện lắm.

Thực ra là em viết plugin này lâu rồi nhưng giờ mới tập trung để code kỹ hơn và upgrade lên cho Joomla 2.5.

30s dành cho quảng cáo tính năng :D

Mã nguồn mở, hoàn toàn miễn phí
Tương thích hoàn toàn với Joomla 2.5, Joomla 1.6/1.7
Hỗ trợ tất cả các thành phần mở rộng (extension) được cài đặt thêm từ các hãng thứ ba
Xử lý triệt để vấn đề lỗi, mất ký tự (1) trong các đường link, trường bí danh (Alias) của Joomla
Tạo các đường link thực sự an toàn (2), thân thiện giúp SEO hiệu quả
Cho phép nạp trên tất cả các trang khi soạn thảo (3) hoặc chỉ nạp trên một số trang chuyên biệt (4)
Tự động hoàn thiện (5) trường bí danh (Alias) ngay khi gõ phần tiêu đề (Title/Name)
Hỗ trợ cả tiếng Việt Unicode dựng sẵn và Unicode tổ hợp (6)
Loại bỏ hoàn toàn các ký tự đặc biệt (7)
Hỗ trợ cả phần tiền sảnh (front-end) và phần hậu sảnh (back-end) của Joomla
Không phụ thuộc vào việc đã cài đặt gói ngôn ngữ Việt Nam hay chưa (8)
Được đóng gói trong plugin, nên không gây ảnh hưởng khi nâng cấp Joomla
Mã nguồn được nghiên cứu cẩn thận và tối ưu về hiệu suất
Tiết kiệm thời gian và công sức nhập liệu
Cài cái Vinaora VietAlias thì chạy rât tốt, nhưng gây lỗi cho phần Edit Profile của Kunena. Hôm rồi toát mồ hôi với cái phần Edit Profile của Kunena không hiển thị, dò mãi thì ra thủ phạm là Vinaora VietAlias, tắt đi thì Ok ngay.
Vui lòng đăng ký thành viên và đăng nhập để xem nội dung này.
Điều trị đau.com - Xua tan những cơn đau !

Đăng trả lời
  • Các chủ đề liên quan
    Trả lời
    Xem
    Bài viết mới nhất

Quay về

Quảng cáo trên trang Web BuaXua.VN