その他の規約(タイムゾーン・IP・ギャラリー)
サードパーティの制作で知っておくとよいコア規約をまとめました。
タイムゾーンの扱い
Zittme はタイムゾーンを2つに分けて管理します。
| 区分 | 意味 | 設定 |
|---|---|---|
| 内部タイムゾーン | 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="" /> <!-- 갤러리 제외 -->