校正オプション

{var}[option]というように、変数の後に[]を記述して校正オプションを使用します。また、オプションはパイプ ( | ) を使用して複数指定することもできます。

仕様変更について

Ver. 3.1.7(v3.0.29・v2.11.58・v2.10.50)から変数の仕様が変更されております。
詳しくはこちらをご覧ください https://developer.a-blogcms.jp/blog/news/specifications-change-vars.html

日付の校正

wareki 日付から和暦の年を算出して表示します。
※{date}の中は、YYYY-mm-ddの書式の日付情報(例では1985-08-26)とします
例1:{date}[wareki] → 昭和60
例2:{date}[wareki('年m月d日')] → 昭和60年8月26日
age 日付を誕生日としたときの現在の年齢を表示します。
例) 1985/08/26[age] -> 23
date 日付を指定した形式で表示します。(PHP:date関数準拠)
半角英数をつなぎ文字に入れる際は、エスケープが必要です。
例1:1985/08/26[date('Y年n月d日')] -> 1985年8月26日
例2:1985/08/26[date('M d\t\h, Y')] -> Aug 26th, 1985
weekEN2JP 英字の週(Sunday, Monday...)を日本語に変換します。
日本語名はconfig.system.default.yamlの「week_label」を参照。
例1:{date#l}[weekEN2JP] -> 日

標準の校正

escape <, >, "といった文字を実体参照に変換します。
allow_dangerous_tag
Ver. 3.1.7〜
危険なタグ(script, iframeなど)の出力を許可します。
escvars ブレース({, })を実体参照に変換します。
escquot ダブルクオーテーション(")をエスケープ("")します。
nl2br 改行を<br />に変換します。
nl2br4html 改行を<br>に変換します。*php5.3以上でないと動きません
delnl
Ver. 2.5.0〜
改行コードを削除する。
list 行を<li>で囲みます。
definition_list 行を<dt>、<dd>で囲みます。行頭に#を付けると<dt>になります。
table 行を<tr>で囲み、さらにカンマを<td>で囲みます。 書き方は、エントリーのテーブル書式と同じです。
markdown マークダウン記法を使用します。
引数を指定して見出しレベルを調節することができます。
例:{text}[markdown(1)]
trim 文字幅を指定して足切りします。
例:{text}[trim(13, '...')]
mb_trim
Ver. 2.6.0〜
指定した文字数(マルチバイト対応)で足切りします。
例:{text}[mb_trim(13, '...')]
raw 校正せず、そのままのデータを出力します。
※校正オプションが何も指定されない場合には、デフォルトでescapeが指定されます。
number_format 数字を千位毎にカンマ区切りにします。
convert_bytes バイト数を(K: キロ, M: メガ, G: ギガ)の単位に変換します。
{pdf@fileSize}[convert_bytes('k', 0)] → KB単位で表示
{pdf@fileSize}[convert_bytes('m', 1)] → MB単位で小数第1位まで表示
{pdf@fileSize}[convert_bytes('g', 2)] → GB単位で小数第2位まで表示
striptags HTMLタグを取り除きます。
Ver.2.11以降をお使いの場合は raw と併用してください。(例:[raw|striptags])
base64 base64形式でエンコードします。
md5 ハッシュ値を算出します。
urldecode URLエンコードを元の文字列に戻します。
urlencode 文字列をURLエンコード(UTF-8)します。RFC3986準拠。 ※ 半角スペース → %20に変換 / 半角チルダ → 変換しない
html_entity_decode 実態参照を元の文字列に戻します。
trim4ext 変数から拡張子を除去します。
例:{entry_code}[trim4ext('.html')]
convert 文字列を変換して表示します。(PHPのmb_convert_kana関数に準拠)
例:{title}[convert('a')]
br4alnum 英数字が一定数連続するたびに、任意の文字列を挿入します。
例1:{text}[br4alnum('10')] 10文字ごとに<br />を挿入(デフォルトでbr)
例2:{text}[br4alnum('10', '­')] 10文字ごとに­を挿入(word-break: break-allの代替)
zero_padding 指定の桁数になるように、数字の左側を0(ゼロ)で埋める。
例:{number}[zero_padding('5')] 5桁になるように0で埋める 51 → 00051 に変換
substring
Ver. 3.0.0〜
文字列を好きな位置で切り抜きます。
{hoge} が abcdefg だった場合。
例1:{hoge}[substring(3)] 3文字目から最後までを切り抜きます。(defg)

例2:{hoge}[substring(2,3)] 2文字目から3文字切り抜きます。(cde)

例3:{hoge}[substring(-3)] 後ろから3文字目から最後までを切り抜きます。(efg)

例4:{hoge}[substring(-4, 2)] 後ろから4文字目から2文字切り抜きます。(de)

split 正規表現で文字列を分割し指定した順番の文字列を表示する。
例:{hoge}[split(',', 2)] カンマで分割して3番目を表示 a,b,c,d,e → c(添字は0から)
エスケープが必要な記号:@()[].{}*^$|+?-\(「\」または「¥」でエスケープ可)
例:{hoge}[split('\.', 2)](「.」をエスケープする場合)
contrastColor 指定色(Hex指定 例: #FFFFFF)に載せる文字色として、コントラストが高くなるように、黒系、白系のカラーを返します。

例: {color}[contrastColor] colorの色が濃い場合 #ffffff を返し、薄い場合 #000000 を返します。
例: {color}[contrastColor('#333')] 黒系のカラーの指定ができます。
例: {color}[contrastColor('#333', '#eee')] 黒系、白系のカラー指定をする場合。
entryStatusLabel
Ver. 2.11.37〜
eid(エントリーID)から下書き、非公開、承認中などのステータスを表示します。

ログインしている時に表示される「エントリーのステータス」はタイトル変数に入っているため「エントリーステータス」のみ表示したい時、使用できます。

使用例: 多言語サイトなどでは、メイン言語以外のタイトルをカスタムフィールドで出力する場合する場合が多いですが、この場合「エントリーステータス」がメイン言語以外で表示できないため、 この校正オプションを利用します。

例: {eid}[entryStatusLabel]
resizeImg
Ver. 2.6.0〜
指定したサイズで画像リサイズをします。
指定した横サイズよりも画像幅が小さい場合、横のリサイズはされません。
指定した縦サイズよりも画像高さが小さい場合、縦のリサイズはされません。
例:{image@path}[resizeImg(400,300)] 横400, 縦300でリサイズ。
例:{image@path}[resizeImg(400)] 横400 でアスペクト比を維持してリサイズ。
resizeImgFill
Ver. 2.6.1〜
指定したサイズで画像リサイズをします。
指定したサイズが実際の画像のアスペクト比と合っていない場合は、画像はトリミングされて表示されます。
例:{image@path}[resizeImgFill(400,300)] 横400, 縦300でリサイズ。アスペクト比が違う場合はトリミングされます。
resizeImgFit
Ver. 2.6.1〜
アスペクト比を維持したまま、指定したサイズで画像が入るようにリサイズをします。
例:{image@path}[resizeImgFit(400,400)] 横400, 縦400でリサイズ。指定したサイズよりも画像が大きく、アスペクト比が違う場合は、余白ができます。
例:{image@path}[resizeImgFit(400,300,'ff0000')] リサイズ後の余白の背景色を指定してリサイズ(jpegのみ)
getWidthFromRatio
Ver. 3.0.14〜
メディア画像アップロードに保存される変数 {xxxx@ratio} を元に、指定した画像の高さに対する幅を計算します。
例:<img src="%{MEDIA_ARCHIVES_DIR}{xxxx@path}" width="{xxxx@ratio}[getWidthFromRatio(150)]" height="150" alt=""> 高さ150pxのときの画像の幅を出力します
getHeightFromRatio
Ver. 3.0.14〜
メディア画像アップロードに保存される変数 {xxxx@ratio} を元に、指定した画像の幅に対する高さを計算します。
例:<img src="%{MEDIA_ARCHIVES_DIR}{xxxx@path}" width="150" height="{xxxx@ratio}[getHeightFromRatio(150)]" alt=""> 幅150pxのときの画像の高さを出力します
imageRatioSizeW
Ver. 2.11.13〜
画像URLを元に、指定した画像の高さに対する幅を計算します。
例:<img src="{image_path}" width="{image_path}[imageRatioSizeW(150)]" height="150" alt=""> 高さ150pxのときの画像の幅を出力します
imageRatioSizeH
Ver. 2.11.13〜
画像URLを元に、指定した画像の幅サイズに対する高さを計算します。
例:<img src="{image_path}" width="150" height="{image_path}[imageRatioSizeH(150)]" alt=""> 幅150pxのときの画像の高さを出力します
buildGlobalVars
Ver. 2.1.1〜
変数の中のグローバル変数を展開します。
buildModule
Ver. 2.1.1〜
変数中にあるモジュールを展開します。
buildTpl
Ver. 2.1.1〜
テンプレートエンジンを通し出力します。(グローバル変数やモジュールが解決されます)

旧バージョンの仕様変更について

Ver. 2.11.0 から校正オプションの仕様が変更されております。  詳しくはこちらをご覧ください。https://developer.a-blogcms.jp/blog/raw211escape.html

Ver. 2.10 以下のバージョンの場合に注意

校正オプションを何か一つ設定すると escapeが自動で指定されません。(Ver. 2.10 以下) エスケープが必要な場合は 必ずescapeをパイプで繋げて下さい。 校正オプションが何も指定されない場合には、デフォルトでescapeが指定されます。
例) {var}[escape|nl2br]

【不具合】Ver. 2.11.13 〜 2.11.18 をお使いで、バージョン管理機能、承認機能を利用されている方へ

問題の内容

Ver. 2.11.13 〜 2.11.18 をお使いで、バージョン管理機能、承認機能を利用されている場合、エントリの(バージョン指定された)編集画面でカテゴリが選択 できない(カテゴリ選択UIが表示されない)問題が判明しております。

対象

a-blog cms Ver. 2.11.13 〜 2.11.18 の場合

対応策

a-blog cms Ver. 2.11.19 以上にアップデートを行う。

お手数ですが当てはまる場合ご対応をお願いいたします。

この度はご迷惑をお掛けしてしまい申し訳ございません。
今後ともa-blog cmsをよろしくお願いいたします。

config.server.php


定義名 説明 初期値
DOMAIN システムの基本ドメイン。インストール時に設定されます 'localhost'
DOMAIN_BASE サブドメイン利用時のサブドメインを除いたドメインを指定 ''
DB_TYPE 使用するRDBMSの種類。現状 MySQL のみがサポートされます 'mysql'
DB_HOST データベースのホスト。インストール時に設定されます ''
DB_NAME データベースの名前。インストール時に設定されます ''
DB_USER データベースのユーザー。インストール時に設定されます ''
DB_PASS データベースのパスワード。インストール時に設定されます ''
DB_PORT データベースのポート。通常は変更しません ''
DB_CHARSET データベースの文字コード。インストール時に設定されます ''
DB_CONNECTION_CHARSET データベースへの接続文字コードを指定します。何も指定しない場合は、utf-8が利用されます。
絵文字などを利用する場合は、utf8mb4を指定ください。(データベース側もutf8mb4に変更)
null
DB_PREFIX a-blog cmsによって作成されるテーブルの接頭辞。インストール時に設定されます ''
DB_SLOW_QUERY_TIME ベンチマークモード時にスロウクエリを表示する基準タイムを設定します 0.3
GETTEXT_TYPE どのようなに国際化するかのオプション。 fix(固定)|auto(ブラウザ設定)|user(ユーザのカスタムフィールドによって) 'auto'
GETTEXT_APPLICATION_RANGE どのページで国際化をするかの設定。admin(管理ページのみ)|login(ログイン時のみ)|all(すべてのページ) 'all'
GETTEXT_DEFAULT_LOCALE デフォルトロケール値 'ja_JP'
GETTEXT_DOMAIN 国際化時のドメイン 'messages'
GETTEXT_PATH 国際化ファイルのディレクトリ名 'lang'
SSL_ENABLE ONで管理ページでSSL/TLS有効になります 0(1:ON / 0:OFF)
TRUSTED_PROXY_LIST X-Forwarded-ForなどのHTTPヘッダーは簡単に偽装可能なため、ここに信頼できるプロキシのIPアドレスを列挙することで、接続元IPアドレスを特定するための、X-Forwarded-For HTTPヘッダーから信頼できる接続元IPアドレスを特定できるようになります ''
PROXY_IP_HEADER リバースプロキシが入っている時、ここで設定されているHTTPヘッダーを元に接続元IPアドレスを特定します HTTP_X_FORWARDED_FOR
FULLTIME_SSL_ENABLE ONでサイト全体がSSL/TLS有効になります。※有効にする際はSSL_ENABLEもONにする必要があります 0(1:ON / 0:OFF)
COOKIE_SECURE Cookieでセキュア属性を設定するかどうか設定します 0(1:ON / 0:OFF)
COOKIE_HTTPONLY CookieでHTTP ONLY属性を設定するかどうか設定します 1(1:ON / 0:OFF)
COOKIE_SAME_SITE CookieのSameSite属性を設定します 'Lax'
HOOK_ENABLE ONでフック機能が有効になります 0(1:ON / 0:OFF)
RESOLVE_PATH テンプレート上のリンクやリソースの場所を自動で補完します 1(1:ON / 0:OFF)
URL_SUFFIX_SLASH ONでシステムが生成するURLの末尾にスラッシュ( / )が付きます 1(1:ON / 0:OFF)
SESSION_NAME a-blog cms のセッション名 'sid'
REWRITE_FORCE mod_rewrite機能が有効でない場合にも強制的にmod_rewrite用のURLを出力します 1(1:ON / 0:OFF)
MAX_PUBLISHES 同時に生成出来る動的なページのページ数です。キャッシュされているページは除外します。動的に生成しなければならないページのリクエストがこの数を超えると503ページが返されます。この数をむやみに上げすぎるとサーバに負担がかかります。サーバのパフォーマンスにあわせて調整してください 3
MAX_EXECUTION_TIME プログラムの最大実行時間(秒) 30
DEFAULT_TIMEZONE デフォルトのタイムゾーンを設定します Asia/Tokyo
PHP_SESSION_USE_DB PHPネイティブセッションでDBハンドラを使用するかどうかの設定 0(1:ON / 0:OFF)
THEMES_DIR テーマディレクトリの場所 'themes/'
ARCHIVES_DIR アーカイブディレクトリの場所 'archives/'
REVISON_ARCHIVES_DIR バージョン管理で使用するアーカイブディレクトリの場所 'archives_rev/'
MEDIA_LIBRARY_DIR メディア管理で使用するアーカイブディレクトリの場所 'media/'
ARCHIVES_CACHE_SERVER 画像などのURLをここで設定したものに書き換え。(CDNなどで利用) ''
PHP_DIR プログラム(PHP)ディレクトリの場所 'php/'
JS_DIR プログラム(Javascript)ディレクトリの場所 'js/'
IMAGES_DIR システムイメージディレクトリの場所 'images/'
CONFIG_FILE コンフィグの設定ファイルの場所。拡張する場合はこのファイルを編集 'private/config.sysytem.yaml'
CONFIG_DEFAULT_FILE コンフィグのデフォルト値が格納された設定ファイルの場所 'private/config.sysytem.default.yaml'
MIME_TYPES_FILE MIMEタイプの定義ファイルの場所 'private/mime.types'
REWRITE_PATH_EXTENSION リンクの書き換えを行う、拡張子を設定 'pdf|doc|docx|ppt|pptx|xls|xlsx|lzh|zip|rar'
ERROR_LOG_FILE エラーログの出力先を設定。空の場合はOSのシステムログを使用 ''
BID_SEGMENT ブログID 'bid'
AID_SEGMENT エイリアスID 'aid'
UID_SEGMENT ユーザーID 'uid'
CID_SEGMENT カテゴリーID 'cid'
EID_SEGMENT エントリーID 'eid'
UTID_SEGMENT ユニットID 'utid'
CMID_SEGMENT コメントID 'cmid'
TBID_SEGMENT トラックバックID 'tbid'
KEYWORD_SEGMENT キーワード 'keyword'
TAG_SEGMENT タグ 'tag'
FIELD_SEGMENT フィールド 'field'
ORDER_SEGMENT 並び順 'order'
ALT_SEGMENT オルタネイト 'alt'
TPL_SEGMENT テンプレート 'tpl'
PAGE_SEGMENT ページ 'page'
PROXY_SEGMENT プロキシー 'proxy'
TRACKBACK_SEGMENT トラックバック 'trackback'
SPAN_SEGMENT スパン(期間) 'span'
ADMIN_SEGMENT 管理ページ 'admin'
MEDIA_FILE_SEGMENT メディアファイルのダウンロード 'media-download'
LOGIN_SEGMENT 管理ログインページ 'login'
ADMIN_RESET_PASSWORD_SEGMENT 管理ユーザーのパスワード再設定ページ 'admin-reset-password'
ADMIN_RESET_PASSWORD_AUTH_SEGMENT 管理ユーザーの新パスワード入力ページ 'admin-reset-password-auth'
ADMIN_TFA_RECOVERY_SEGMENT 管理ユーザーの2段階認証解除ページ 'admin-tfa-recovery'
SIGNIN_SEGMENT サインインページ 'signin'
SIGNUP_SEGMENT 会員登録ページ 'signup'
RESET_PASSWORD_SEGMENT 一般ユーザーのパスワード再設定ページ 'reset-password'
RESET_PASSWORD_AUTH_SEGMENT 一般ユーザーの新パスワード入力ページ 'reset-password-auth'
TFA_RECOVERY_SEGMENT 一般ユーザーの2段階認証解除ページ 'tfa-recovery'
PROFILE_UPDATE_SEGMENT プロフィール更新ページ(ログイン後) 'mypage/update-profile'
PASSWORD_UPDATE_SEGMENT パスワード変更ページ(ログイン後) 'mypage/update-password'
EMAIL_UPDATE_SEGMENT メールアドレス変更ページ(ログイン後) 'mypage/update-email'
TFA_UPDATE_SEGMENT 2段階認証設定ページ(ログイン後) 'mypage/update-tfa'
WITHDRAWAL_SEGMENT 退会ページ(ログイン後) 'mypage/withdrawal'
LIMIT_SEGMENT 表示の上限件数(未使用) 'limit'
DOMAIN_SEGMENT ドメイン 'domain'
IOS_APP_UA iOSアプリのユーザーエージェント(未使用) 'acms_iOS_app'
API_SEGMENT REST API  'api'
DEBUG_MODE デバッグモード。ONの間は各種エラーメッセージが表示されます。サイト公開中はOFFに設定してください。 1(1:ON / 0:OFF)
BENCHMARK_MODE ベンチマークモード。ONの間はモジュール実行時間などのベンチマーク情報が表示されます。サイト公開中はOFFに設定してください。 0(1:ON / 0:OFF)

モジュールID名に「ctx」が含まれているとctx指定が読み込めなくなる

ID名「test_module_ctx」でモジュール作成している画面


システムの仕様上、モジュールID名に「ctx」を含ませるとテンプレートでのctx指定が読み込めなくなりますのでご注意ください。

NG

<!-- BEGIN_MODULE *** id="test_module_ctx" ctx="bid/1/cid/6" -->
<!-- END_MODULE *** -->

OK

<!-- BEGIN_MODULE *** id="test_module" ctx="bid/1/cid/6" -->
<!-- END_MODULE *** -->

今後ともa-blog cmsをよろしくお願いいたします。

フォームオプション

validator ( v )

フィールドを検証する設定項目です。”validator#required” は “v#required” と省略することができます。

次の例では、”mailaddress” という名前のカスタムフィールドを追加し、正しいメールアドレスであることをチェックします。

例:正しいメールアドレスが入力されているかのチェック

<input name="mailaddress" type="text" value="" />
<input type="hidden" name="field[]" value="mailaddress" />
<input type="hidden" name="mailaddress:validator#email" />
required フィールドに「入力が必須である」という属性を指定します。 ソース
例)<input type="hidden" name="filedname:v#required" />
minlength フィールドに文字数の下限を指定します。
maxlength フィールドに文字数の上限を指定します。 ソース
例)<input type="hidden" name="filedname:v#maxlength" value="20" />
min フィールドが数値の時、数値の下限を指定します。
max フィールドが数値の時、数値の上限を指定します。
regex フィールドの内容が "正規表現にマッチ" するかどうかをチェックします。 ソース
例)<input type="hidden" name="tel:v#regex" value="\d\{2,4\}-\d\{2,4\}-\d\{4\}" />
digits フィールドの内容が "数値" かどうかをチェックします。
email フィールドの内容が "正しいメールアドレス" かどうかをチェックします。
url フィールドの内容が "正しいURL" かどうかをチェックします。
equalTo フィールドの内容が "指定された別のフィールド" と同じかどうかをチェックします。(ソースはパスワードの再確認フォームの例です) ソース
例)<input name="password" type="text" value="" />
<input type="hidden" name="field[]" value="password" />
<input name="password2" type="text" value="" />
<input type="hidden" name="field[]" value="password2" />
<input type="hidden" name="password2:v#equalTo" value="password" />
dates フィールドの内容が"日付系の校正オプションを適用可能な形式"かどうかチェックします。
適用可能な形式:
(月と日が1桁の場合、2桁目の0は必須ではありません)
1985-08-26、1985/08/26、1985.08.26、s60.8/26、h21.5.11
katakana フィールドの内容が"カタカナ"かどうかチェックします。
"カタカナ" 以外はエラーとなる仕様のため、スペースなどが入力された場合もエラーとみなします。
hiragana フィールドの内容が"ひらがな"かどうかチェックします。
"ひらがな" 以外はエラーとなる仕様のため、スペースなどが入力された場合もエラーとみなします。
times 時間系の校正オプションを適用可能な形式かチェック
all_maxChecked チェックボックス等の選択数の上限を指定します。
all_minChecked チェックボックス等の選択数の下限を指定します。
all_justChecked チェックボックス等の選択数を指定します。
duplication 過去に送信されたメールアドレスかどうかをチェックします。こちらの設定はテンプレートではなく、フォーム設定で、設定する必要があります。
filesize ファイルサイズをチェックします。KBで指定。 ソース
例)<input type="hidden" name="pdf:v#filesize" value="500" />
password コンフィグで設定したパスワードポリシーに違反していないかをチェックします。

converter ( c )

指定されたフィールドを任意の形式に変換します。これは、変換に指定できるオプションPHPのmb_convert_kana関数に依存します。mb_convert_kana関数の仕様にならい、複数のオプションを指定することもできます。詳細は、上記のリファレンスをご確認ください。

次の例ではaddressという名前のカスタムフィールドを追加し、送信時に入力内容の全角英数を半角英数に変換しています。

例:送信時に入力内容の全角英数を半角英数に変換する

<input name="address" type="text" value="" />
<input type="hidden" name="field[]" value="address" />
<input type="hidden" name="address:c" value="a" />
オプション 意味
r 「全角」英字を「半角」に変換します。
R 「半角」英字を「全角」に変換します。
n 「全角」数字を「半角」に変換します。
N 「半角」数字を「全角」に変換します。
a 「全角」英数字を「半角」に変換します。
A 「半角」英数字を「全角」に変換します。
s 「全角」スペースを「半角」に変換します(U+3000 -> U+0020)。
S 「半角」スペースを「全角」に変換します(U+0020 -> U+3000)。
k 「全角カタカナ」を「半角カタカナ」に変換します。
K 「半角カタカナ」を「全角カタカナ」に変換します。
h 「全角ひらがな」を「半角カタカナ」に変換します。
H 「半角カタカナ」を「全角ひらがな」に変換します。
c 「全角カタカナ」を「全角ひらがな」に変換します。
C 「全角ひらがな」を「全角カタカナ」に変換します。
V 濁点付きの文字を一文字に変換します。"K", "H" と共に使用します。