if文を出力するコンテンツ変数を使用する方法
特殊関数:if変数とは
コンテンツに条件式(if文)を出力する特殊関数:if変数の使用方法を解説します。
「〇〇が××なら指定のボタンを表示」「〇〇が指定の数値以上で特定の文字列を表示」といった条件によるコンテンツの出し分けが可能です。
コンテンツ変数
特殊関数のコンテンツ変数として、以下の変数を用意しています。
※引数指定の詳細は、次章を参照してください。
- 基本的な構文
- 条件式を出力する [if_◯◯] 変数に、第1引数(比較対象)、第2引数(比較値) を半角コロンで区切って指定します。条件式が成立した場合に処理が実行されます。
- if文の最後は、[end_if] で終了します。
- [if_◯◯:第1引数($1):第2引数($2)]
[end_if]
変数 | 条件 / 説明 |
---|---|
[if_equal] | if($1 = $2) $1と$2が等しい場合の条件式 ※第1引数がチェックボックスの場合は[if_like]を使用 |
[if_not_equal] | if($1 != $2) $1と$2が等しくない場合の条件式 ※第1引数がチェックボックスの場合は[if_like]を使用 |
[if_greater_equal] | if($1 >= $2) $1が$2以上の数値の場合の条件式 ※第1引数は、数値項目(整数・小数点・日付)のみ指定可。第2引数は数値を指定 |
[if_less_equal] | if($1 <= $2) $1が$2以下の数値の場合の条件式 ※第1引数は、数値項目(整数・小数点・日付)のみ指定可。第2引数は数値を指定 |
[if_greater] | if($1 > $2) $1が$2より大きい数値の場合の条件式 ※第1引数は、数値項目(整数・小数点・日付)のみ指定可。第2引数は数値を指定 |
[if_less] | if($1 < $2) $1が$2未満の数値の場合の条件式 ※第1引数は、数値項目(整数・小数点・日付)のみ指定可。第2引数は数値を指定 |
[if_like] | if($1 LIKE $2) $1が$2の文字列に部分一致している場合の条件式 |
[else_if] | 条件が偽のときの処理を記述する。引数はありません |
[end_if] | if文終了宣言 |
if変数 使用時の注意点
- if変数は、入れ子構造にできません。※[if_◯◯] の中に [if_◯◯] の記述は不可。
- 記述した変数 [if_◯◯:$1:$2] の後は、改行してください。
第1引数($1)の指定
第1引数($1)は、固定項目、任意項目(任意項目を持たないモジュールは対象外)、$LOGIN_TYPE、$LOGIN_ID の変数が指定できます。
- 固定項目:各モジュール、システムで定義された項目。※項目名はAPIで取得が可能。
- 任意項目:任意で作成した項目。項目のID(任意で設定したID)を指定します。
- $LOGIN_TYPE:コンテンツにアクセスしているユーザーのタイプを返却する変数。
nobody(一般) / user(ユーザー) / manager(マネージャー) / admin(管理者) - $LOGIN_ID:コンテンツにアクセスしているユーザーのIDを返却する変数。
if変数は、第1引数の指定が「$LOGIN_TYPE」「$LOGIN_ID」の場合は全てのコンテンツタイプと入力エリアに使用可能ですが、任意項目の指定は、以下のコンテンツと入力エリアに制限されます。
モジュール | コンテンツタイプ(コンテンツ入力エリア) |
---|---|
manager | マネージャー一覧(一覧挿入コード)、マネージャー詳細(基本コード) |
user | ユーザー詳細(基本コード) |
item | アイテム一覧(一覧挿入コード)、アイテム詳細(基本コード) |
entry | エントリー一覧(一覧挿入コード)、エントリー詳細(基本コード) |
point | ポイント一覧(一覧挿入コード)、ポイント詳細(基本コード) |
pay | 注文一覧(一覧挿入コード)、決済一覧(一覧挿入コード)、注文詳細(一覧挿入コード) |
第2引数($2)の指定
第2引数は、条件として比較する値や文字列、数値項目を指定します。
- 第1引数が任意項目、かつ、項目種別がプルダウンメニュー、ラジオボタン、チェックボックスで、選択肢が「直接記述」の場合は、選択肢の日本語名称を指定することができます。
- 第1引数が任意項目、かつ、項目種別がプルダウンメニュー、ラジオボタン、チェックボックスで、選択肢が「フィールド」参照の場合は、該当データの登録・編集画面で開発者ツールからoption要素のvalue値を取得して指定します。
- 第1引数が固定項目、かつ、選択肢がある場合は、該当固定項目のシステムIDを指定します。
- 第1引数が「$LOGIN_TYPE」の場合は、いずれかのユーザータイプ(nobody / user / manager / admin)を指定します。
- 第2引数を指定しない場合、「空」の条件になります。
変数の記述例
if_equal
任意項目:商品種別(item_type)が、「一点もの」と一致する場合、任意の画像を表示
[if_equal:item_type:一点もの]
<div class="category_image"><img src="[item_url_origin_image1]" alt="#" /></div>
[end_if]
ログインタイプがユーザーの場合、ユーザー用ヘッダーを表示し、未ログインの場合は一般用ヘッダーを表示
[if_equal:$LOGIN_TYPE:user]
[parts_header_m]
[else_if]
[parts_header]
[end_if]
if_not_equal
任意項目:商品種別(item_type)が、「一点もの」と一致しない場合、任意の画像を表示
[if_not_equal:item_type:一点もの]
<div class="category_image"><img src="[item_url_origin_image2]" alt="#" /></div>
[end_if]
if_greater_equal
任意項目:商品在庫(goods_stock)が「100以上」の場合、「在庫多数」と表示
[if_greater_equal:goods_stock:100]
<p>在庫多数</p>
[end_if]
if_less_equal
任意項目:商品在庫(goods_pstock)が「10以下」の場合、「在庫残りわずか」と表示
[if_less_equal:goods_stock:10]
<p>在庫残りわずか</p>
[end_if]
if_greater
任意項目:商品在庫(goods_stock)が「100」より大きい場合、「在庫多数」と表示
[if_greater:goods_stock:100]
<p>在庫多数</p>
[end_if]
if_less
任意項目:在庫(goods_stock)が「10」より小さい場合、「在庫残りわずか」と表示
[if_less:goods_stock:10]
<p>在庫残りわずか</p>
[end_if]
if_like
payシートの固定項目:注文名(name)に「年額」が含まれている場合、年会員登録コンテンツに誘導
[if_like:name:年額]
<div class="btn_submit"><a href="./contents.php?c=regist_year">登録</a></div>
[end_if]
else_if
pointシートの固定項目:ステータス(state_status)が「無効」の場合、ポイントステータスを赤字表記し、「無効」以外のステータスは青字で表記。※************ は、ステータス選択肢「無効」のシステムID
[if_equal:state_status:************]
<span class='state-mark state-red'>[point_state_status]</span>
[else_if]
<span class='state-mark state-blue'>[point_state_status]</span>
[end_if]
任意項目:ショップ画像(shop_image1)が登録されていない場合はsample画像を表示し、登録があればショップ画像を表示する。※[if_equal]条件で第2引数を「空」で指定した例
[if_equal:shop_image1:]
<div class="sample_image"><img src="./file/box/sample/sample_01.png" alt="sample" /></div>
[else_if]
<div class="main_image"><img src="[item_url_shop_image1]" alt="#" /></div>
[end_if]
end_if
if文の終了宣言です。if文の最後に必ず記述します。
if変数を使用して組み込んだコンテンツが意図する設定や表示にならない場合は、変数の記述確認と共に、コンテンツ自体の検索クエリ設定や閲覧制御も合わせてご確認ください。