기타 규약 (시간대·IP·갤러리)
서드파티 제작에서 알아두면 좋은 코어 규약 모음입니다.
표준 시간대 처리
Zittme는 시간대를 둘로 나눠 관리합니다.
| 구분 | 뜻 | 설정 |
|---|---|---|
| 내부 시간대 | DB에 날짜를 저장할 때 쓰는 고정 시간대. 설치 시점에 정해지며 이후 변경 불가 | locale.internal_timezone |
| 표시 시간대 | 화면에 날짜를 보여줄 때 쓰는 시간대. 관리자가 바꿀 수 있음 | locale.default_timezone |
날짜는 주로 YYYYMMDDHHIISS 문자열로 저장됩니다.
개발할 때의 규칙:
- 저장은 내부 시간대 기준:
date('YmdHis'),getInternalDateTime() - 표시는 표시 시간대 기준:
zdate($값, '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가 대역에 드는가포토스와이프 (이미지 갤러리)
본문 이미지를 누르면 갤러리로 크게 보여주는 기능이 애드온으로 내장되어 있습니다. 스킨에서 별도 연동 없이 마크업 규칙만 지키면 동작합니다.
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="" /> <!-- 갤러리 제외 -->