Chuyển đến nội dung
Tài liệu

Hướng dẫn cho nhà phát triển

Quy ước khác (múi giờ, IP, thư viện ảnh)

Tổng hợp các quy ước lõi nên biết khi phát triển cho bên thứ ba.

Xử lý múi giờ

Zittme quản lý múi giờ theo hai loại.

LoạiÝ nghĩaCài đặt
Múi giờ nội bộMúi giờ cố định dùng khi lưu ngày vào DB. Được xác định lúc cài đặt và không thể thay đổi sau đólocale.internal_timezone
Múi giờ hiển thịMúi giờ dùng khi hiển thị ngày trên màn hình. Quản trị viên có thể thay đổilocale.default_timezone

Ngày chủ yếu được lưu dưới dạng chuỗi YYYYMMDDHHIISS.

Quy tắc khi phát triển:

  • Lưu theo múi giờ nội bộ: date('YmdHis'), getInternalDateTime()
  • Hiển thị theo múi giờ hiển thị: zdate($value, 'Y-m-d'), getDisplayDateTime()
  • Nếu cắt giá trị đã lưu bằng substr rồi hiển thị nguyên như vậy, kết quả sẽ lệch trên website có múi giờ khác. Luôn dùng zdate() để hiển thị.
  • Giờ mùa hè được lõi tự động tính. Đừng tự xử lý.

Nhờ cấu trúc này, ngày đã lưu không bị lệch ngay cả khi chuyển máy chủ.

Địa chỉ IP và cách ghi dải

Ở những nơi nhận IP như danh sách chặn, danh sách cho phép, hỗ trợ các cách ghi sau.

Cách ghiVí dụ
IPv4 đơn192.168.122.96
Ký tự đại diện192.168.122.*, 192.168.*.*
Khoảng192.168.122.0-192.168.122.255
CIDR192.168.216.0/24
IPv62001:2300::ffff:0, ::1
IPv6 CIDR2001:2300::/64

Khi kiểm tra và xác định trong mã, hãy dùng bộ lọc của lõi. IPv6 có nhiều cách ghi nên tự phân tích rất nguy hiểm.

use Zittme\Framework\Filters\IpFilter;

IpFilter::validateRange($range);          // 대역 표기가 올바른가
IpFilter::inRange($ipaddress, $range);    // 이 IP가 대역에 드는가

PhotoSwipe (thư viện ảnh)

Chức năng bấm vào ảnh trong nội dung để xem phóng to dạng thư viện được tích hợp sẵn dưới dạng add-on. Skin không cần tích hợp riêng, chỉ cần tuân theo quy tắc markup là hoạt động.

  • Ảnh bên trong container có class xe_content (hoặc rhymix_content) tự động trở thành đối tượng của thư viện. Theo thông lệ, skin gắn class này vào vùng xuất nội dung.
  • Để đưa ảnh bên ngoài container vào thư viện, gắn class photoswipe-images (ưu tiên hơn điều kiện loại trừ).
  • Để loại một ảnh cụ thể khỏi thư viện, gắn class photoswipe-escape (hoặc rx-escape).
  • Ảnh bên trong liên kết (a), mã (pre,code) và phần tử form được tự động loại trừ.
<div class="rhymix_content xe_content">{!! $oDocument->getContent(false) !!}</div>

<img class="photoswipe-images" src="poster.jpg" alt="" />   <!-- 본문 밖이지만 갤러리 포함 -->
<img class="photoswipe-escape" src="icon.png" alt="" />     <!-- 갤러리 제외 -->