Tùy chỉnh giao diện điện thoại cho hệ thống Ecshop
Ngày cập nhật: 19/10/2016 | Số lần xem: 12247 | Danh mục: Ecshop
Tìm kiếm
Thực ra, cộng đồng người dùng Ecshop khá hỗn loạn. Những thông tin tìm được trên mạng hầu như không đáng tin cậy, vì vậy mình đành phải tự mày mò từng chút một.
Tệp index.php
trong thư mục gốc:
|
|
Mình không rõ đoạn mã này xuất hiện từ khi nào. Các thiết bị Android và iPhone ban đầu không được liệt kê nên mình đã thêm vào thủ công.
Nên sửa code ở đâu?
Nhìn vào cơ chế kích hoạt giao diện di động là biết ngay phần code liên quan nằm trong thư mục mobile
của gốc dự án. Mình đã tải về một mẫu giao diện di động theo phong cách JD (tương tự như trang chủ) dành cho Ecshop, sau khi giải nén chỉ có một thư mục tên là mobile
, điều này càng khẳng định rằng đó chính là nơi cần thao tác.
Một điểm bất tiện là giao diện mobile không thể thay đổi dễ dàng qua giao diện quản trị như các theme PC. Bạn phải sửa trực tiếp code hoặc ghi đè lên file, rất phiền toái. Nếu muốn lưu trữ nhiều giao diện mobile khác nhau, bạn có thể sử dụng kỹ thuật tạo symbolic link – đây là một giải pháp tạm thời nhưng khả thi.
Thư mục WAP và mobile trong gốc có gì khác nhau?
Thư mục mobile
có thể coi là phiên bản nâng cấp của WAP
. Nó bổ sung thêm quy trình mua hàng hoàn chỉnh. Có thể hiểu rằng WAP
gần như đã lỗi thời và mobile
mới là chuẩn hiện tại.
Lỗi: Warning: Invalid argument supplied for foreach() in ../mobile/index.php on line 81
Để khắc phục lỗi này, mình đã thay thế hàm get_categories_tree()
bằng một phiên bản mới gọi là get_categories_tree_home()
:
|
|
Banner trượt trên trang chủ không hiển thị
Lỗi JavaScript:
(index):48 Uncaught SyntaxError: missing ) after argument list
Tác giả template này hơi lơ mơ, mình quyết định viết lại toàn bộ hiệu ứng banner do nó cố định chỉ với hai ảnh trượt. Dưới đây là hình minh họa hiệu ứng banner của template JD dành cho Ecshop.
Lỗi: Warning: Invalid argument supplied for foreach() in ../mobile/category.php on line 24
Lỗi này cũng giống như trước. Giải pháp vẫn là thay thế get_categories_tree()
bằng get_categories_tree_home()
.
Lỗi: common.js:34 Uncaught TypeError: goods.toJSONString is not a function(…)
// TODO – Vấn đề này sẽ được xử lý sau.