Code Monkey home page Code Monkey logo

giangdinhtt / vinaora-vietalias Goto Github PK

View Code? Open in Web Editor NEW

This project forked from vinaora/vinaora-vietalias

0.0 1.0 0.0 329 KB

Vinaora Vietnamese Alias for Joomla - Plugin tạo trường bí danh (Alias) và đường link của bài viết, hoặc của bất kỳ một đối tượng nào khác (menu, category, banner, weblink...) trong Joomla bằng chuỗi tiếng Việt không dấu, chữ thường và phân tách giữa các từ bằng dấu gạch ngang.

PHP 78.91% HTML 1.07% JavaScript 20.02%

vinaora-vietalias's Introduction

Vinaora Vietnamese Alias (VietAlias)

Vinaora Vietnamese Alias (VietAlias) là Plugin tạo trường bí danh (Alias) và đường link của bài viết, hoặc của bất kỳ một đối tượng nào khác (menu, category, banner, weblink...) trong Joomla bằng chuỗi tiếng Việt không dấu, chữ thường và phân tách giữa các từ bằng dấu gạch ngang. Điểm đặc biệt là trường Alias sẽ được sinh tự động bằng Ajax ngay khi đang gõ phần tiêu đề của bài viết nên sẽ trực quan và tiết kiệm được nhiều thời gian nhập liệu.

VD: Nếu tiêu đề bài viết là:

Giới thiệu chung về Trường Đại học Bách Khoa Hà Nội

thì bí danh (alias) của nó sẽ là:

gioi-thieu-chung-ve-truong-dai-hoc-bach-khoa-ha-noi

Tại sao bạn cần plugin này?

Joomla cài đặt 2 hàm để xử lý và tạo chuỗi ký tự an toàn cho trường Alias và các đường link. Hai hàm này bao gồm: stringURLSafe và stringURLUnicodeSlug được đặt trong file /libraries/joomla/filter/output.php (trước 24/11/2011 có tên là filteroutput.php).

Tuy nhiên hàm stringURLSafe luôn làm mất một số ký tự tiếng Việt, còn hàm stringURLUnicodeSlug thì lại sinh ra các đường link để nguyên các ký tự tiếng Việt và để lại nhiều ký tự không cần thiết đối với một trang web tiếng Việt.

Plugin này sẽ tập trung cải thiện hàm stringURLSafe để phù hợp với đặc trưng riêng của ngôn ngữ tiếng Việt.

Tính năng

  • 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

Giải thuật chính khi chuyển đổi tiếng Việt

  • Bước 1: Loại bỏ 5 dấu thanh (huyền, hỏi, ngã, sắc, nặng) nếu có tiếng Việt Unicode tổ hợp
  • Bước 2: Thay thế các ký tự đặc biệt @#$%^&*-_+=... bằng các khoảng trắng
  • Bước 3: Thay thế 11 nguyên âm của tiếng Việt gồm [a|ă|â],[e|ê],i,[o|ơ],[u|ư],y (có hoặc không kèm dấu thanh) bằng 05 nguyên âm tiếng Anh tương ứng a,e,i,o,u,y và phụ âm đ/Đ bằng ký tự d
  • Bước 4: Chuẩn hóa chuỗi ký tự (đảm bảo các ký tự được phép chỉ gồm a-z, 0-9 và dấu gạch ngang -; thay thế các khoảng trắng bằng dấu gạch ngang...)
  • Kết quả đầu ra: Chuỗi ký tự tiếng Việt không dấu, chữ thường, chỉ gồm các chữ cái tiếng Anh a-z, các chữ số từ 0-9 và phân tách giữa các từ bằng dấu gạch ngang.

Lưu ý

  • Đối với các đường link, trường bí danh (alias) đã có trước khi cài đặt plugin Vinaora VietAlias bạn cần phải tự tay xóa từng trường bí danh và nhân nút 'Lưu' (Save) để plugin tạo lại chuỗi ký tự mới thay thế.
  • Tính năng tự động hoàn thiện bằng Ajax có thể gặp trục trặc nếu bạn đã vô hiệu hóa thư viện Mootools của Joomla.

Chú giải

  • (1): Hàm xử lý chuỗi ký tự Unicode theo mặc định của Joomla làm mất một số ký tự tiếng Việt
  • (2): Lọc bỏ các ký tự không được phép
  • (3): Trang soạn thảo được xác định qua biến HTTP Request $task=edit
  • (4): Các trang chuyên biệt được xác định qua biến HTTP Request $option=com_xyz
  • (5): Sử dụng Ajax + thư viện Mootools của Joomla.
  • (6): Nhiều plugin/tool bỏ quên không xử lý với các chuỗi Unicode tổ hợp.
  • (7): Quá trình loại bỏ vẫn đảm bảo việc thay thế phù hợp khi các dấu phân tách câu (dấu phảy, dấu chấm...) bị đặt sai chính tả.
  • (8): Giải thuật xử lý có thể được đưa vào file vi-VN.localise.php của gói ngôn ngữ tiếng Việt (vi-VN) thay vì phải cài đặt plugin này. Tuy nhiên trong trường hợp người quản trị chưa cài gói ngôn ngữ vi-VN hoặc chọn ngôn ngữ khác làm ngôn ngữ mặc định thay vì vi-VN thì lỗi mất ký tự tiếng Việt vẫn xảy ra.

Ủng hộ

Để ủng hộ cho việc duy trì và phát triển plugin Vinaora Vietnamese Alias (VietAlias), bạn có thể chọn một trong các cách sau:

Cài đặt và chia sẻ với mọi người ^_^

Mua Hosting tại 01 trong 02 nhà cung cấp Hosting nổi tiếng:

Link

Ý kiến đóng góp

Mọi ý kiến đóng góp xin liên hệ với: vinaora (Skype, Yahoo, Facebook, Twitter, Gmail) hoặc tham gia trực tiếp xây dựng code tại trang https://github.com/vinaora/vinaora-vietalias/

vinaora-vietalias's People

Contributors

vinaora avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.