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! 1.5

Hôm nay, 19/08/2018 - 05:24

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: 18/09/2010 - 12:45 
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: 1684
Đã cảm ơn: 4 lần
Được cảm ơn: 657 lần
Không biết các bạn có để ý thấy là khi bật chức năng SEF (Search Engine Friendly URLs) của Joomla! thì tên liên kết trên thanh địa chỉ của trình duyệt hiển thị không đúng với tên bài viết, cụ thể là bị mất một số ký tự có dấu tiếng Việt.

Thí dụ tên bài viết là:
Mã:
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à:
Mã:

Đâ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:
Mã:
/libraries/joomla/filter/filteroutput.php

Tìm dòng:
Mã:
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;
   }

Xóa hết các dòng này đi và thay thế bằng:
Mã:

   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.

Bây giờ trên thanh địa chỉ sẽ là:
Mã:

Không còn lỗi mất chữ nữa! :D

Các bạn có thể tải file "filteroutput.php" đã được sửa sẵn cho phiên bản Joomla! 1.5.20 tại đây:
Tập tin đính kèm:
filteroutput.zip


Chúc các bạn thành công. :)

* Xem cách sửa lỗi tiếng Việt trong Title Alias của Joomla! 2.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: 04/10/2010 - 22:06 
nguyenxuan08

Ngoại tuyến

Thành viên mới

Thành viên mới

Ngày tham gia: 04/10/2010 - 21:27
Bài viết: 5
Đã cảm ơn: 0 lần
Được cảm ơn: 1 lần
sao không dùng Joomla! Hello SEF for alias title cho tiện chỉ việc cai vao là ok

___________________________________________________
Design web, temple joomla
Vui lòng đăng ký thành viên và đăng nhập để xem nội dung này.


Đầu trang
 Xem thông tin cá nhân  
 
Gửi bàiĐã gửi: 07/02/2015 - 16:54 
woreirsis

Ngoại tuyến

Thành viên mới

Thành viên mới

Ngày tham gia: 07/02/2015 - 16:30
Bài viết: 1
Đã cảm ơn: 0 lần
Được cảm ơn: 0 lần
tình hình là sau khi minh cai tieng viet cho virtuemart.thì trên trang web,có 1 số cụm từ nó dịch sai chính tả.mình muốn sửa lai cho đúng chính tả thì lam sao.thanks!! :cry:


Đầu trang
 Xem thông tin cá nhân  
 
Gửi bàiĐã gửi: 08/02/2015 - 21:04 
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: 1684
Đã cảm ơn: 4 lần
Được cảm ơn: 657 lần
woreirsis đã viết:
tình hình là sau khi minh cai tieng viet cho virtuemart.thì trên trang web,có 1 số cụm từ nó dịch sai chính tả.mình muốn sửa lai cho đúng chính tả thì lam sao.thanks!! :cry:


Bạn đang dùng Joomla! và Virtuemart phiên bản nào?

___________________________________________________
* 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  
 
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 / 1 trang [ 4 bài viết ] 

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: