(1) 共通タグ

テンプレート全体で使えるタグです。

LaunchCart では、twig をテンプレートエンジンとして採用しています。

twig は使いやすく汎用的で、基本さえ覚えれば様々な表現ができる優れたテンプレートエンジンです。

基礎は本書では省略しますが、インターネット上にたくさん情報が公開されています。

以下はオフィシャルのドキュメントです。

http://twig.sensiolabs.org/doc/templates.html

 

Ⅰ 関数

関数はたくさんありますが、その中でもよく使うものの例を紹介します。

 

ア asset

ドキュメントルートまでのパスを補完します。

たとえば「/favicon.ico」は

と記述します

HTML としては、

と吐き出されます

 

イ path

システム関連のページまでのパスを保管します。

例えばトップページですと、

と記述します。

「homepage」の部分は各ページに与えられているルーティングであり、それぞれの名称は各テンプレートの最初に記載しています。

 

ウ get_entity_manager

get_entity_manager はデータベースから登録情報を持ってくる時に使います。

あらゆることが実現できる反面使い方が多少難しいため、詳しい使い方は各章で例を元に説明しています

 

エ form_widget

フォーム関連のページ、例えば会員登録フォームで、姓名の姓を入力するテキストボックスを表示する場合、

と記述します。このように記述すると、テキストボックスの表示、値の保持などを自動的にプログラム側に委ねることができます。

 

オ form_errors

form_widget と対になる関数で、エラーメッセージを出力するためのものです。

上述の姓の例ですと、


と記述するとエラーが有った場合はエラーメッセージが表示されます。

例えば

「姓」を入力してください

と出力されます

 

カ form_label

フォーム関連のページ、例えば会員登録フォームで、姓名の姓という項目名を表示する場合、

と記述します。

 

キ パンくずリスト

パンくずリスト出力等で使用する、カテゴリの階層を取得する方法を説明します。

 

まず、商品やページのカテゴリアーカイブベージで保持しているカテゴリの情報は、常に1つとなります。

この時の階層を取得するには、getAncestorsを使用します。

 

デフォルトでテンプレートに渡されているcategoryを使い、以下のように全カテゴリとそのリンクを、パンくずリストとして出力します

 

 

次に、商品や、ページの詳細ページの断層を取得する方法を説明します。

基本的な考え方は前述のカテゴリアーカイブページと同じですが、詳細ページでは複数のカテゴリ情報が渡されていることと、 それぞれのカテゴリの断層構造がデフォルトでは渡されていないということを考慮する必要があります。

以下は商品詳細ページでの例です。

まず、デフォルトで渡されるproductのcategoriesをループさせて、その商品に紐づく全てのカテゴリを取得します。

取得したそれぞれのカテゴリの断層構造を取得するため、product_api.wrapProductCategory()を実行します。

その後は前述と同じです。今回は1つのカテゴリごとに行を分けるため、ulでの記述方法を例としています。

 

 

ク 商品検索

form    
  keyword キーワード
  categories カテゴリ
  price_from 価格~
  price_to ~価格
  form.getChild(“拡張フィールド名”) 拡張フィールド

 

例えばキーワード用のテキストボックスを表示するには、

このように記述します。

フロントページのHTMLとしては以下のように出力されます。

 

独自にHTMLタグを記述したい場合はidとnameを合わせた上で、valueに値をセットすれば動作します。

 

また、それぞれの項目の入力内容にエラーが有った場合はform_errorsを使います。

例として、タイトル用のエラー文言を表示するには、

このように記述します。

 

送信先はpost又はgetでec_product_searchに渡します。

例として以下のように記述します。

 

ケ 言語切替

システムで対応している言語一覧および顧客毎に選択されている言語名を取得出来ます。

お客様の選択した言語は

で取得可能です。

 

コ 通貨レート

多通貨に対応したLaunchCartでは、通貨の選択と通貨レートの取得が可能です。

通貨を切り替えると、この通貨レートも通貨に対応したものへ自動的に切り替わります。

 

商品の価格と演算することで通貨ごとの価格を求めることが可能です。

 

また、通貨の前後に表示する通貨記号は以下のように取得可能です。

システム設定で前・後に表示する文字列は変更可能です。

 

※ 通貨レートはヘッダーあるいはページ内で一度だけ呼び出してください (商品毎に記入すると非常に表示が遅くなります)

 

Ⅱ タグ

テンプレートを作りやすくするために用意された、LaunchCart独自のタグです。

 

ア <ec:TemplateInclude “テンプレート名”>

モジュールテンプレートを読み込むためのタグです。

例えばヘッダというモジュールテンプレートを作成し、トップページなどで読み込む場合、

と記述します。

するとモジュールテンプレートの内容がそのまま反映されます。

 

イ <ec:LinkIndexTemplate “ルーティング”>

インデックステンプレートは自由に作成することができ、作成時にルーティングという任意の文字を指定する必要があります。

例えば特定商取引法のページをlawとうルーティングをつけて作成した場合、サイト上のURLは、

http://hoge.com/law

となります。

このページへリンクを貼る場合は、

と記述します。

 

ログインしているか、していないかの判断をする関数です。

例えばグローバルナビゲーションで、

のように記述すると、ログインしていればマイページとログアウトへのリンク、ログインしていなければ、会員登録とログインへのリンクを出力しています。

 

エ {% autoescape false %}{% endautoescape %}

例えばHTMLを出力するときなど、エスケープをする、しないの指定を明示的にする際に使用します。この場合、

などと記述します。

 

オ <ec:CartCount>

カートの中身の個数を出力します。

 

Ⅲ フィルタ

twigで用意されているもので、よく使うものを紹介します。

 

ア length

配列や文字の長さを取得します。

例えば配送先の一覧を出力する画面で、配送先の数がいくつあるかを取得する場合、

と記述します。

 

イ number_format

金額にカンマを入れたりなど、数値のフォーマットを指定したい場合に使用します。

例えば商品詳細ページで、

とすると1,000円とカンマがつきます。

 

Ⅳ セッション

ログインしている顧客の登録情報、カートの中身はセッションに格納されています。

これらの取得方法を説明します。

 

ア cart_api

カートの中身が格納されたセッションです。

cart_apiという名前で使いやすいように加工されています。

 

cart_api[]              
  cart_api[i]           カートapiのi番目の配列
    count         商品数量
    additionCount         オプション商品数量
    total         合計金額
    objects[]         カート内オブジェクト一覧
      objects[i]       カート内オブジェクトのi番目の配 列
        getProductSkuId     商品SKUID
        getCount     数量
        getAdditions[]     オプション商品一覧
          getAdditions[i]   オプション商品のi番目の配列
            getAdditionId オプション商品ID
        getRegularInt     配送頻度(定期商品のみ)

 

以下は、カートの中にある商品一覧を出力している例です。

 

現在カートに入っている商品はございません。

 

他の顧客によって在庫が無くなっている可能性などを回避するため、

カートの中身を取得する時は、随時get_entity_manager()を使って最新の情報を取りにいってください。

 

イ app.security.token.user

ログイン中の顧客の登録情報が格納されているセッションです。

 

app.security.token.user        
  id     顧客id
  getAttribute()     getAttribute(“拡張フィールド名”)で拡張フィールドの項目を表示
  username     メールアドレス
  lastNname    
  firstName    
  lastNameKana     セイ
  firstNameKana     メイ
  zipcode     郵便番号
  country    
  district     都道府県
  locality     市区町村
  street     その他住所
  tel     電話番号
  address     お届先の構造体
    address[i]   お届先のi番目の配列
      id お届先id
      lastName
      firstName
      lastNameKana セイ
      firstNameKana メイ
      country
      district 都道府県
      locality 市区町村
      street その他住所
      getAddress country~streetの住所
      tel 電話番号
      zipcode 郵便番号
  createdAt     登録日
  updatedAt     更新日
  point     保有ポイント
  rank     会員ランクの構造体
    name   会員ランク名
    discountPercent   割引率
    pointRate   ポイント率

関連記事

メルマガ登録
セミナーやキャンペーン情報など、不定期で配信しています