a-blog cms에서 고유 태그의 내용을 대체하는 "교정 옵션"의 구체적인 사용법
죄송합니다 미리 알림 날짜가 잘못되어 하루 늦었습니다.
요 전날, 12월 9일의 CMSMix 사포로 Vol.4의 핸즈온으로 소개한, 「교정 옵션」의 구체적인 사용법입니다.
교정 옵션이란?
a-blog cms를 사용하면 템플릿의 변수 바로 다음에 반각각 괄호([])로 "표시 내용을 대체하는 규칙"을 지정할 수 있습니다. 이것은 "교정 옵션"이며 거의 모든 변수에 사용할 수 있습니다.
사용 가능한 옵션 목록은 아래를 참조하십시오.
가장 많이 사용되는 것은 다른 CMS에서 자주 발생하는 날짜 변환입니다. 아래 샘플에서는 YY-mm-dd 형식으로 입력된 사용자 정의 필드 "event_date"를 0이 없는 날짜로 대체하여 표시합니다.
acms_corrector_date.html
{event_date}[date('Y年n月j日')] -> 2017-01-01 -> 2018年1月1日
a-blog cms 고유의 교정 옵션
a-blog cms에는 국산 특유의 날짜를 일본 달력으로 변환하는 교정 옵션도 있습니다. 아래의 샘플에서는, YY-mm-dd 형식으로 입력된 커스텀 필드 「my_birth」를, 일본 달력으로 표시하고 있습니다.
다음은 내 생일입니다. 뭔가 해주세요.
acms_corrector_wareki.html
{my_birth}[wareki('年n月j日')] -> 1975-03-26 -> 昭和50年3月26日
교정 옵션 자체 제작
자체 제작 옵션이 필요한 예
이것은 CMSMix 사포로 Vol.4의 핸즈온 스크린 샷입니다.
일본 장기 연맹의 프로 기사의 데이터를 a-blog cms로 표시한 것입니다.
일반적으로 일본의 예도는 한숫자의 「단」으로 랭크 나누어지고, 사이트에 따라서는 「단위가 높은 순서」로의 표시가 요구됩니다. 한 숫자에서도 정렬은 가능하지만 반각 숫자로 해 두는 것이 무난합니다.
이 샘플에서는 'kanjinum' 교정 옵션을 직접 만들고 숫자를 한 숫자로 변환합니다.
만드는 방법
a-blog cms의 다음 파일을 편집기에서 열고 'ACMS_User_Corrector' 클래스에 public 함수를 추가합니다.
php/ACMS/User/Corrector.php
실제 파일에는 이미 샘플 코드가 들어 있지만 개요는 다음과 같습니다.
acms_corrector_outline.php
<?php
class ACMS_User_Corrector
{
public static function sample($txt, $args = array())
{
// 校正オプション[sample]の処理
// 変数「$txt」に直前のa-blog cmsの変数の値が入る
// 第二引数にarrayを定義すると、文字列で補助値を渡すことができる
}
public static function kanjinum($txt)
{
// 校正オプション[kanjinum]の処理
// 第二引数はないので、補助値を渡さないで使う前提
}
}
처리 흐름
가장 간단한 구조라면 이렇게 됩니다. 변수의 내용이 무엇이라도 「_:(´ཀ`」∠):_」로 해 돌려줍니다.
acms_corrector_simple.php
public static function simple($txt)
{
return '_:(´ཀ`」∠):_';
}
}
한 숫자 변환 샘플
여기에서 공개된 함수를 그대로 유용할 수 있습니다. 변수 '\$outstr'에 변수 '\$txt'를 처리한 내용을 넣어 반환합니다.
PHP로 반각 숫자를 한 숫자로 만들기 | Pafu 집 홈페이지
htps //w w. 파호오. rg / e-so l / ue b ch / php03 / php03-05-01. shtm
acms_corrector_kanjinum.php
public static function kanjinum($txt)
{
// 例 {var}[kanjinum]
// {var}の中は整数でなければならない
static $kantbl1 = array(0=>'', 1=>'一', 2=>'二', 3=>'三', 4=>'四', 5=>'五', 6=>'六', 7=>'七', 8=>'八', 9=>'九', '.'=>'.', '-'=>'-');
static $kantbl2 = array(0=>'', 1=>'十', 2=>'百', 3=>'千');
static $kantbl3 = array(0=>'', 1=>'万', 2=>'億', 3=>'兆', 4=>'京');
$outstr = '';
$len = strlen($txt);
$m = (int)($len / 4);
//一、万、億、兆‥‥の繰り返し
for ($i = 0; $i <= $m; $i++) {
$s2 = '';
//一、十、百、千の繰り返し
for ($j = 0; $j < 4; $j++) {
$pos = $len - $i * 4 - $j - 1;
if ($pos >= 0) {
$ch = substr($txt, $pos, 1);
if ($ch == ',') continue; //カンマは無視
$ch1 = isset($kantbl1[$ch]) ? $kantbl1[$ch] : '';
$ch2 = isset($kantbl2[$j]) ? $kantbl2[$j] : '';
//冒頭が「一」の場合の処理
if ($ch1 != '') {
if ($ch1 == '一' && $ch2 != '') $s2 = $ch2 . $s2;
else $s2 = $ch1 . $ch2 . $s2;
}
}
}
if ($s2 != '') $outstr = $s2 . $kantbl3[$i] . $outstr;
}
return $outstr;
}
}
실제로 사용
다음과 같이 쓰면 됩니다.
acms_corrector_kanjinum_tmpl.html
{player_lank}[kanjinum]段
기타 교정 옵션의 자체 제작 예
사이트에 따라서는, 이하와 같은 것을 만들면 편리할지도 모릅니다.
Reference
이 문제에 관하여(a-blog cms에서 고유 태그의 내용을 대체하는 "교정 옵션"의 구체적인 사용법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/webbingstudio@github/items/d78b57a0f728cbfe5e2b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)