Hướng dẫn làm module vqmod opencart đơn giản

0
2942

Nếu bạn chưa biết Vqmod thì có thể xem bài tìm hiểucài đặt vqmod.

Vqmod là một modules vô cùng mạnh mẽ trên opencart, nó cung cấp khả năng thay đổi mã nguồn core của hệ thống opencart bằng cách gián tiếp. Tức là mã nguồn gốc sẽ không được thay đổi, mà opencart sẽ sao chép ra file mới và thay đổi mã nguồn này, từ đó hệ thống sẽ được chỉ định làm theo những thay đổi của Vqmod. Để tìm hiểu thêm, mời các bạn đọc bài viết Tìm hiểu Vqmod.

Hôm nay mình sẽ hướng dẫn các bạn làm một modules nho nhỏ là: thay thế dấu khoảng cách thành dấu “-” trong tên file hình ảnh khi upload lên website. Việc này tăng khả năng seo hình ảnh cho website của bạn cũng như tránh các lỗi về cấu trúc open graph

Các bước hướng dẫn làm module vqmod opencart thay thế khoảng trắng thành “-“

Ý tưởng là mình sẽ tìm đến đoạn code xử lý và lưu hình ảnh khi upload lên server và thay thế code để xử lý như mong muốn. Do vậy, mình sẽ thực hiện theo các bước sau:

Bước 1. Tìm đoạn code xử lý

Tìm đoạn code xử lý việc upload và lưu file hình ảnh. Như các bạn thấy, đây là công cụ của người quản trị và việc lưu file thuộc lớp controller và hệ thống quản trị. Đây chỉ là một ví dụ về suy luận của mình, các bạn cũng có thể dùng lệnh tìm kiếm để tìm đoạn code cần xử lý…Việc tìm nhanh hay chậm, chính xác hay không nhờ vào khả năng của các bạn :D.

Trường hợp này mình tìm được đoạn code trong file “admin/controller/common/filemanager.php” hàm “fuction upload”. Đây là đoạn code mình tìm được trong bản opencart 1.5.6.1, có thể không giống những phiên bản khác.

$filename = basename(html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'));

Bước 2. Tạo file XML vqmod, ở đây mình sẽ ghi là: vqmod_replace_space_with_hyphen_modules.xml

– File này sẽ bắt đầu bằng thẻ<modification> và kết thúc bằng thẻ </modification>

– Tiếp sau thẻ đầu tiên, ta cần khai báo một số thông tin cho Vqmod như tên của modules, version, phiên bản vqmod tối thiểu để chạy module, tên tác giả.

<id>Replace space with hyphen</id>

<version>1.0</version>

<vqmver>2.0</vqmver>

<author>TelexVni – thuvien-it.org</author>

– Tiếp tục, khai báo file cần chỉnh sửa, ở đây là file mình đã tìm trong bước 1: admin/controller/common/filemanager.php

<file name=”admin/controller/common/filemanager.php”>

</file>

 

– Tìm đoạn code và thay thế, đoạn code này đặt trong thẻ <file></file> ở trên

<operation>

<search position=”replace”><![CDATA[$filename = basename(html_entity_decode($this->request->files[‘image’][‘name’], ENT_QUOTES, ‘UTF-8’));]]></search>

<add><![CDATA[$filename = str_replace(” “, “-“,basename(html_entity_decode($this->request->files[‘image’][‘name’], ENT_QUOTES, ‘UTF-8’)));]]></add>

</operation>

Giải thích một chút, thẻ <search></search> là thẻ chứa đường link file cần tìm đặt trong <![CDATA[]]>. Lưu ý, phần position, có các tùy chọn như replace (thay thế), after (thêm đoạn code sau đoạn code tìm kiếm), before (trước đoạn code đã tìm kiếm). Thẻ <add></add> là đoạn code sẽ thay thế. Như vậy, ta sẽ có file modules với nội dung như sau:

<modification>
 <id>Replace space with hyphen</id>
 <version>1.0</version>
 <vqmver>2.0</vqmver>
 <author>TelexVni - thuvien-it.org</author>
 <file name="admin/controller/common/filemanager.php">
   <operation>
     <search position="replace"><![CDATA[$filename = basename(html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'));]]></search>
     <add><![CDATA[$filename = str_replace(" ", "-",basename(html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8')));]]></add>
   </operation>
 </file>
</modification>

Hoàn tất, bây giờ các bạn có thể upload modules lên website và upload hình ảnh có khoảng trong tên file để kiểm tra nhé.

5/5 - (2 bình chọn)

BÌNH LUẬN

Nội dung bình luận
Tên của bạn là gì?