本文へスキップ
ドキュメント

開発者ガイド

その他の規約(タイムゾーン・IP・ギャラリー)

サードパーティの制作で知っておくとよいコア規約をまとめました。

タイムゾーンの扱い

Zittme はタイムゾーンを2つに分けて管理します。

区分意味設定
内部タイムゾーンDB に日付を保存するときに使う固定のタイムゾーン。インストール時に決まり、以後は変更不可locale.internal_timezone
表示タイムゾーン画面に日付を表示するときに使うタイムゾーン。管理者が変更可能locale.default_timezone

日付は主に YYYYMMDDHHIISS 形式の文字列で保存されます。

開発時のルール:

  • 保存は内部タイムゾーン基準:date('YmdHis')、getInternalDateTime()
  • 表示は表示タイムゾーン基準:zdate($value, 'Y-m-d')、getDisplayDateTime()
  • 保存された値を substr で切り出してそのまま表示すると、タイムゾーンが異なるサイトでずれます。表示には常に zdate() を使ってください。
  • サマータイムはコアが自動で計算します。自分で処理しないでください。

この構造のおかげで、サーバーを移転しても保存された日付がずれません。

IP アドレスと範囲の表記

ブロックリスト・許可リストなど IP を入力する箇所では、次の表記に対応しています。

表記例
単一の IPv4192.168.122.96
ワイルドカード192.168.122.*, 192.168.*.*
範囲192.168.122.0-192.168.122.255
CIDR192.168.216.0/24
IPv62001:2300::ffff:0, ::1
IPv6 CIDR2001: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="" />     <!-- 갤러리 제외 -->