Home > スキン変数 > if/else/endif/ifnot/elseif/elseifnot
2007-02-11 if 佐藤(な) No Trackbacks

スキン変数:if/else/endif/ifnot/elseif/elseifnot

ある条件下で内容を分岐させる
<%if%>、<%ifnot%>、<%else%>、<%elseif%>、<%elseifnot%>、<%endif%>は、その組み合わせにより、条件分岐を制御します。

以下の例は、もっともシンプルな形です。(条件については引数を参照の事)
<%if(条件A)%>
    条件Aを満たしている場合に実行する部分
<%endif%>

次の例では、条件に合わなかった場合も制御します。
<%if(条件A)%>
    条件Aを満たしている場合に実行する部分
<%else%>
    条件Aを満たしていない場合に実行する部分
<%endif%>

最初の条件に合わなかった場合、別の条件を与えることも可能です。
<%if(条件A)%>
    条件Aを満たしている場合に実行する部分
<%elseif(条件B)%>
    条件Aを満たしていなく、
    条件Bを満たしている場合に実行する部分
<%elseif(条件C)%>
    条件Aと、条件Bを満たしていなく、
    条件Cを満たしている場合に実行する部分
<%endif%>

否定条件を指定することも可能です。
<%ifnot(条件A)%>
    条件Aを満たしていない場合に実行する部分
<%else%>
    条件Aを満たしている場合に実行する部分
<%endif%>

別の条件に、否定条件を指定することも可能です。
<%if(条件A)%>
    条件Aを満たしている場合に実行する部分
<%elseifnot(条件B)%>
    条件Aを満たしていなく、
    条件Bも満たしていない場合に実行する部分
<%else%>
    条件Aを満たしていなく、
    条件Bを満たしている場合に実行する部分
<%endif%>

また、以下のように多重に組み合わせることも可能です。
<%if(条件A)%>
    <%if(条件B)%>
        条件Aを満たしていて、
        条件Bも満たしている場合に実行する部分
    <%else%>
        条件Aは満たしているが、
        条件Bは満たしていない場合に実行する部分
    <%endif%>
<%else%>
    条件Aを満たしていない場合に実行する部分
<%endif%>

以上のように、柔軟な条件制御構造を持つことが可能です。

引数

<%if(type, name, value)%>
<%ifnot(type, name, value)%>
<%elseif(type, name, value)%>
<%elseifnot(type, name, value)%>
必須:
  • type:条件の種類。9種類の定数、もしくはif拡張対応プラグイン名を指定します。条件の種類によっては下記オプションが必須引数となります。(詳細後述)
オプション:
  • name:値の名前
  • value:指定値

「第1引数:条件の種類」ごとの解説
  • 条件の種類:category
    • カテゴリが選択されているかどうか
      <%if(category)%>
    • 選択中カテゴリの名前が、第3引数の指定値と一致するかどうか
      <%if(category, catname, カテゴリ名)%>
    • 選択中カテゴリのidが、第3引数の指定値と一致するかどうか
      <%if(category, catid, カテゴリid)%>

  • 条件の種類:blogsetting
    blog設定のname項目の値が第3引数の指定値と一致しているか調べる。
    nameはSQLテーブルnucleus_blogにあるカラム名です。(Nucleusに付属の/nucleus/documentation/devdocs/sqltables.html#nucleus_blog にてカラム名とその値の内容が参照できます。)
    以下に、いくつかの項目の例を挙げます。
    • 選択中ブログのidが、第3引数の指定値と一致するかどうか
      <%if(blogsetting, bnumber, ブログid)%>
    • 選択中ブログのデフォルトスキンのidが、第3引数の指定値と一致するかどうか
      <%if(blogsetting, bdefskin, スキンid)%>
    • 選択中ブログのコメントを許可するかどうかの設定が、第3引数の指定値(1=許可, 0=不許可)と一致するかどうか
      <%if(blogsetting, bcomments, 0もしくは1)%>

  • 条件の種類:loggedin
    • 閲覧者がログインしているかどうか
      <%if(loggedin)%>

  • 条件の種類:onteam
    • 閲覧者がログインしており、なおかつ、選択中ブログのチームに入っているかどうか
      <%if(onteam)%>
    • 閲覧者がログインしており、なおかつ、第2引数(ブログの短縮名)で指定したブログのチームに入っているかどうか
      <%if(onteam, ブログ名)%>

  • 条件の種類:admin
    • 閲覧者がログインしており、なおかつ、選択中ブログの管理権限があるかどうか
      <%if(admin)%>
    • 閲覧者がログインしており、なおかつ、第2引数(ブログの短縮名)で指定したブログの管理権限があるかどうか
      <%if(admin, ブログ名)%>

  • 条件の種類:nextitem
    個別アイテムでのみ使用可能
    • 表示中アイテムよりも、より古い日時のアイテムが存在するかどうか
      <%if(nextitem)%>

  • 条件の種類:previtem
    個別アイテムでのみ使用可能
    • 表示中アイテムよりも、より新しい日時のアイテムが存在するかどうか
      <%if(previtem)%>

  • 条件の種類:skintype
    • 表示中ページのスキンタイプが、第3引数の指定値と一致するかどうか
      <%if(skintype, スキンタイプ)%>
      第3引数には以下の8種類の定数か、スペシャルスキンで設定したスキンタイプを指定します。
      スキンタイプ定数
      index-メインの目次、item-個別アイテム、archivelist-月別アーカイブ一覧、archive-月別アーカイブ、search-検索、member-メンバー詳細、error-エラー、imagepopup-画像ポップアップウィンドウ

  • 条件の種類:hasplugin
    第2引数には、'NP_'を取ったプラグイン名を指定します。
    • 第2引数で指定したプラグインがインストールされているかどうか
      <%if(hasplugin, プラグイン名)%>
    • 第2引数で指定したプラグインがインストールされており、第3引数で指定したグローバルオプションがno以外であるかどうか
      <%if(hasplugin, プラグイン名, プラグインのグローバルオプション名)%>
    • 第2引数で指定したプラグインがインストールされており、第3引数で指定したグローバルオプションが、=以下で定義した値と一致するかどうか
      <%if(hasplugin, プラグイン名, プラグインのグローバルオプション名=値)%>

  • 条件の種類:if拡張対応プラグイン名
    第1引数には、'NP_'を取ったプラグイン名を指定します。
    • 第1引数で指定したプラグインに、第2引数、第3引数を渡した結果が真かどうか
      <%if(プラグイン名, プラグイン独自の引数, プラグイン独自の引数)%>

スキンタイプ

    全て

<!-- スキンタイプによって<title>を変える -->
<%if(skintype,item)%>
    <title><%itemtitle%></title>
<%elseif(skintype,error)%>
    <title>Error!</title>
<%else%>
    <title><%blogsetting(name)%></title>
<%endif%>
(目次スキンの)動作サンプルページへ

コメント

この記事へのコメントはありません。

コメント追加

このアイテムは閉鎖されました。このアイテムへのコメントの追加、投票はできません。

スキン変数サンプル一覧

現在のスキンタイプは、item です。

全スキン変数の、「記述とそのサンプル」を作成しています。
スキンタイプによって、使用できるスキン変数が異なります。(使用できないものは、DISALLOWEDと表示されます。)

スキン変数サンプル一覧を開く

テンプレート変数サンプル一覧

テンプレート変数サンプル一覧を開く

メモ