Link tiếng việt không dấu đuôi html cho Xenforo 1.5

Thảo luận trong 'Thủ thuật Xenforo' bắt đầu bởi Admin, 8/8/15.

Đọc: 671

  1. Admin Administrator

    Mặc định thì link bài viết Xenforo sẽ không bỏ dấu tiếng Việt, link tiếng Việt có dấu có thể đẹp hơn nhưng không tốt cho SEO bằng link không dấu nên chúng ta sẽ chỉnh sửa một chút để tốt hơn.
    Các bạn mở file library\XenForo\Link.php bằng một trình soạn thảo và tìm đến đoạn:
    Mã:
            if ($romanize)
            {
                $title = utf8_romanize(utf8_deaccent($title));
            }
    Thêm vào bên dưới đoạn mã sau:
    Mã:
    $aPattern = array (
                "a" => "á|à|ạ|ả|ã|ă|ắ|ằ|ặ|ẳ|ẵ|â|ấ|ầ|ậ|ẩ|ẫ|Á|À|Ạ|Ả|Ã|Ă|Ắ|Ằ|Ặ|Ẳ|Ẵ|Â|Ấ|Ầ|Ậ|Ẩ|Ẫ",
                "o" => "ó|ò|ọ|ỏ|õ|ô|ố|ồ|ộ|ổ|ỗ|ơ|ớ|ờ|ợ|ở|ỡ|Ó|Ò|Ọ|Ỏ|Õ|Ô|Ố|Ồ|Ộ|Ổ|Ỗ|Ơ|Ớ|Ờ|Ợ|Ở|Ỡ",
                "e" => "é|è|ẹ|ẻ|ẽ|ê|ế|ề|ệ|ể|ễ|É|È|Ẹ|Ẻ|Ẽ|Ê|Ế|Ề|Ệ|Ể|Ễ",
                "u" => "ú|ù|ụ|ủ|ũ|ư|ứ|ừ|ự|ử|ữ|Ú|Ù|Ụ|Ủ|Ũ|Ư|Ứ|Ừ|Ự|Ử|Ữ",
                "i" => "í|ì|ị|ỉ|ĩ|Í|Ì|Ị|Ỉ|Ĩ",
                "y" => "ý|ỳ|ỵ|ỷ|ỹ|Ý|Ỳ|Ỵ|Ỷ|Ỹ",
                "d" => "đ|Đ",
            );
            while(list($key,$value) = each($aPattern))
            {
                $title = @ereg_replace($value, $key, $title);
            }          
    Bây giờ link bài viết của bạn sẽ trở thành > domain/theads/link-tieng-viet-khong-dau.123
    Để thêm hậu tố .html vào sau link thì các bạn làm như sau, nếu không muốn thì không cần làm :)
    Tìm đến function buildBasicLinkWithIntegerParam dòng 652 (Xenforo 1.5.0 RC)
    Mã:
        public static function buildBasicLinkWithIntegerParam($prefix, $action, $extension, $data, $intField, $titleField = '')
        {
            if ((is_array($data) || $data instanceof ArrayAccess) && isset($data[$intField]))
            {
                self::prepareExtensionAndAction($extension, $action);
    
                $title = (($titleField && !empty($data[$titleField])) ? $data[$titleField] : '');
                return "$prefix/" . self::buildIntegerAndTitleUrlComponent($data[$intField], $title) . "/$action$extension";
            }
            else
            {
                return false;
            }
        }
    Thay toàn bộ bằng:
    Mã:
        public static function buildBasicLinkWithIntegerParam($prefix, $action, $extension, $data, $intField, $titleField = '')
        {
            if ((is_array($data) || $data instanceof ArrayAccess) && isset($data[$intField]))
            {
                self::prepareExtensionAndAction($extension, $action);
    
                $title = (($titleField && !empty($data[$titleField])) ? $data[$titleField] : '');
                if($action=="" && $extension==""){
                return "$prefix/" . self::buildIntegerAndTitleUrlComponent($data[$intField], $title) . ".html";
                }else{
                return "$prefix/" . self::buildIntegerAndTitleUrlComponent($data[$intField], $title) . "/$action$extension";
                }
            }
            else
            {
                return false;
            }
        }
    Nếu được ủng hộ mình sẽ viết bài hướng dẫn bỏ dấu tiếng Việt cho tags mặc định trong Xenforo (mặc định là bỏ dấu theo kiểu latin). Chúc các bạn thành công. [Xenforo 1.5] Thread Tagging

    Các file đính kèm:

  2. xuancuongit

    xuancuongit New Member

    Cảm ơn bạn nhé, đúng cái mình đang tìm
  3. Úp cho Bác mua nhanh bán đắt

Chia sẻ trang này