Diễn đàn hỏi đáp - Chia sẻ kiến thức - Kinh nghiệm - BuaXua.vn Cách sửa lỗi tiếng Việt trong Title Alias của Joomla! 2.5

Hôm nay, 22/07/2018 - 08:00

Múi giờ UTC + 7 Giờ



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: viewtopic.php?f=2&t=318247



Tạo chủ đề mới Gửi bài trả lời
Gửi bàiĐã gửi: 12/06/2012 - 12:17 
Hình đại diện của thành viên TruongLe

Ngoại tuyến

Thành viên

Thành viên

Ngày tham gia: 14/09/2010 - 20:20
Bài viết: 1679
Đã cảm ơn: 4 lần
Được cảm ơn: 653 lần
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ã:
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ã:
   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:
Tập tin đính kèm:
output.zip


* Xem cách sửa lỗi tiếng Việt trong Title Alias của Joomla! 1.5 tại đây: Vui lòng đăng ký thành viên và đăng nhập để xem nội dung này.


Vui lòng đăng ký thành viên và đăng nhập để xem nội dung ẩn trong bài 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!


Đầu trang
 Xem thông tin cá nhân  
 
Gửi bàiĐã gửi: 18/06/2012 - 00:01 
vinaora

Ngoại tuyến

Thành viên mới

Thành viên mới

Ngày tham gia: 17/06/2012 - 23:55
Bài viết: 3
Đã cảm ơn: 0 lần
Được cảm ơn: 4 lần
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


Đầu trang
 Xem thông tin cá nhân  
 
Gửi bàiĐã gửi: 18/06/2012 - 09:01 
Hình đại diện của thành viên TruongLe

Ngoại tuyến

Thành viên

Thành viên

Ngày tham gia: 14/09/2010 - 20:20
Bài viết: 1679
Đã cảm ơn: 4 lần
Được cảm ơn: 653 lần
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!


Đầu trang
 Xem thông tin cá nhân  
 
Gửi bàiĐã gửi: 18/06/2012 - 09:30 
vinaora

Ngoại tuyến

Thành viên mới

Thành viên mới

Ngày tham gia: 17/06/2012 - 23:55
Bài viết: 3
Đã cảm ơn: 0 lần
Được cảm ơn: 4 lần
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à ^_^


Đầu trang
 Xem thông tin cá nhân  
 
Gửi bàiĐã gửi: 14/09/2012 - 15:30 
dieutridau

Ngoại tuyến

Thành viên mới

Thành viên mới

Ngày tham gia: 01/06/2011 - 10:42
Bài viết: 4
Đã cảm ơn: 0 lần
Được cảm ơn: 1 lần
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 !


Đầu trang
 Xem thông tin cá nhân  
 
Hiển thị những bài viết cách đây:  Sắp xếp theo  
Tạo chủ đề mới Gửi bài trả lời
 Bạn đang xem trang 1 / 2 trang [ 10 bài viết ] [Chuyển đến trang] 1, 2  >>

Các chủ đề liên quan


Múi giờ UTC + 7 Giờ


Bạn không thể tạo chủ đề mới trong chuyên mục này.
Bạn không thể trả lời bài viết trong chuyên mục này.
Bạn không thể sửa những bài viết của mình trong chuyên mục này.
Bạn không thể xoá những bài viết của mình trong chuyên mục này.
Bạn không thể gửi tập tin đính kèm trong chuyên mục này.

Chuyển đến: