其他規範(時區・IP・圖庫)
整理第三方開發時值得了解的核心規範。
時區處理
Zittme 將時區分為兩種管理。
| 區分 | 意義 | 設定 |
|---|---|---|
| 內部時區 | 在 DB 中儲存日期時使用的固定時區。於安裝時決定,之後無法變更 | locale.internal_timezone |
| 顯示時區 | 在畫面上顯示日期時使用的時區。管理員可以變更 | locale.default_timezone |
日期主要以 YYYYMMDDHHIISS 字串儲存。
開發時的規則:
- 儲存以內部時區為準:
date('YmdHis')、getInternalDateTime() - 顯示以顯示時區為準:
zdate($value, 'Y-m-d')、getDisplayDateTime() - 若將儲存的值以
substr截取後直接顯示,在時區不同的網站上就會出現偏差。顯示時請一律使用zdate()。 - 日光節約時間由核心自動計算。請勿自行處理。
多虧這個結構,即使搬移伺服器,儲存的日期也不會出現偏差。
IP 位址與範圍表示法
在封鎖清單・允許清單等輸入 IP 的地方,支援下列表示法。
| 表示法 | 範例 |
|---|---|
| 單一 IPv4 | 192.168.122.96 |
| 萬用字元 | 192.168.122.*、192.168.*.* |
| 範圍 | 192.168.122.0-192.168.122.255 |
| CIDR | 192.168.216.0/24 |
| IPv6 | 2001:2300::ffff:0、::1 |
| IPv6 CIDR | 2001:2300::/64 |
在程式碼中驗證・判定時,請使用核心過濾器。IPv6 的表示法多樣,自行解析很危險。
use Zittme\Framework\Filters\IpFilter;
IpFilter::validateRange($range); // 대역 표기가 올바른가
IpFilter::inRange($ipaddress, $range); // 이 IP가 대역에 드는가PhotoSwipe(圖庫)
點選內文圖片即以圖庫放大顯示的功能,已以附加元件形式內建。面板不需另外整合,只要遵守標記規則即可運作。
- 位於具有
xe_content(或rhymix_content)類別的容器內的圖片,會自動成為圖庫對象。在內文輸出區域加上此類別是面板的慣例。 - 若要將容器外的圖片納入圖庫,請加上
photoswipe-images類別(優先於排除條件)。 - 若要將特定圖片排除於圖庫之外,請加上
photoswipe-escape(或rx-escape)類別。 - 連結(
a)・程式碼(pre,code)・表單元素內的圖片會自動排除。
<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="" /> <!-- 갤러리 제외 -->