<a href=“{{store url='home'}}”> home </a>のようなCMSのリンクに「store」を使用する必要があるのはなぜですか


8

CMSにリンクを挿入するには、次のコードを使用します。

<a href="{{store url='home'}}">home</a>

この「store」キーワードは何をしているのですか、なぜ「store」と呼ばれているのですか?

また、店舗の代わりに利用できる他のキーワードはありますか?

「ストア」なしで、URLのみを書き込むこともできますか?

はいの場合、正しい構文は何ですか?


何を達成しようとしていますか?
user487772 2013年

@ティム私はリンクを挿入する別の方法を知りたいです。
MageDev 2013年

2
実際、スキンとメディアは2つの異なるディレクティブです。1つはスキンフォルダーからファイルを取得し、同じコードは(テーマに応じて)2つの異なる画像をレンダリングでき、メディアディレクティブはメディアフォルダーからファイルを取得します。なぜストアディレクティブの代わりが必要なのですか?1つあります。機能します...ケースが閉じられました。
マリウス

2
@ Michel06実際、これはITのプログラミング部分であり、特定のタスクを実行する方法が1つしかないことを期待しています。この場合、{{store url = ""}}ディレクティブでリンクを取得します。
ベンマークス2013

1
@zus以下のような条件を使用できます。{{if order.customer_group_id == 1}} <p>Test Code</p> {{/if}}
MageDev

回答:


6

CMSコンテンツでURLを使用するMagento構文:

  • スキンURLの取得:{{skin url='images_foldername/image_name.jpg'}}-設定されたテーマパッケージのスキンフォルダーから画像を取得します
  • メディアURLを取得:{{media url='magento-image.jpg'}}-メディアフォルダーから画像を取得
  • ストアURLの取得:{{store url=''}}magento-page.html-作業ストアのドメインURLを取得します
  • ベースURLの取得:{{base url=''}}magento-page.html-ベースWebサイトのドメインURLを取得します。

magento-page.htmlurl='...'またはのディレクティブ内にある必要がありdirect_url='...'ます。
7ochem

18

「{{store url = "example / example"}}のコードどこにあるか」で説明されて{{store}}いるように、CMSおよびトランザクションメールで使用されるいわゆるテンプレートディレクティブの1つです。

次のように文書化されています。

/**
 * Retrieve store URL directive
 * Support url and direct_url properties
 */

したがって、「store」は「store url」の略であり、ストア内のURLを指します。つまり、ストア内のリンクです。正しいベースURL(相対リンクを使用できない電子メールテンプレートにとって重要)を自動的に追加し、他のいくつかのパラメーターを解決します(以下を参照)

それの使い方

と同じように、ルートを渡すことができますMage::getUrl()

{{store url="customer/account/login"}}

また、パラメータ付き:

{{store url="catalog/product/view" id="42"}}

または、パラメーターをクエリします。たとえば、レイヤードナビゲーションにフィルターを追加します。

{{store url="catalog/category/view" id="3" _query_color=red}}

=> example.com/url-to-category-3/?color=red

代わりに任意のURLを指定する場合は、を使用しますdirect_url。これにより、MagentoはベースURLのみを追加し、指定されたURLをそのまま残します。

{{store direct_url="terms.html#delivery"}}

他のURLディレクティブは

  • {{skin url="..."}} 現在のテーマ内の画像、JavaScript、またはCSSへのURLの場合、テーマのフォールバックメカニズムを使用します。
  • {{media url="..."}}メディアディレクトリ内の画像やその他のメディアへのURLのために(デフォルト:/media/
  • {{protocol url="www.domain.com/"}}任意の外部 URL、ただし現在のプロトコル(httpまたはhttps)
  • {{protocol http="http://url" https="https://url"} 現在のプロトコルに応じて異なるURLを表示するには
  • {{protocol}} 「https」または「http」を出力するだけ

その他の非URLディレクティブ

  • {{config path="..."}} 設定値を出力します
  • {{customvar code="..."}}カスタム変数を出力します([システム]> [カスタム変数]でグローバルに維持されます
  • {{htmlescape var="..." allowed_tags="..."}}「var」で指定されたテキスト内の特殊文字をHTMLエンティティに変換します。オプションの「allowed_tags」パラメーターには、そのまま保持する必要があるタグのコンマ区切りのリストを含めることができます(たとえば、「h1、h2、strong、em」)。次のように、テンプレート変数を渡すことができるため、メールテンプレートで最も役立ちます。{{htmlescape var=$customer.firstname}}
  • {{inlinecss file="..."}}ファイルからCSSを読み込み、インラインスタイルシートとして追加します。メールに便利です。
  • {{block type="..." id="..." output="..." ...}} Magentoブロックタイプをインスタンス化してレンダリングします
  • {{layout area="..." handle="..." ...}}(レイアウトXMLファイルで定義された)レイアウトハンドル全体をロードし、その最初のブロックをレンダリングします。追加のパラメーターがすべてのブロックに渡されます。

カスタム変数とブロックは、使用する前にホワイトリストに登録する必要があることに注意してください。参照: APPSEC-1057ホワイトリストテーブルに変数またはブロックを追加する方法

その他の非URLディレクティブ(メールテンプレートのみ)

  • {{var X}}{{var X.y()}}出力テンプレート変数X /変数Xのメソッドy()の結果。テンプレートの変数/プレースホルダーを参照
  • {{depend X}}...{{/depend}}変数Xが真っぽい場合にのみ、その間にコンテンツを出力します(ここでは論理式を使用できません。変数または変数のメソッドのみを使用できます。 {{if X}}...{{else}}...{{/if}}同じですが、オプションの「else」ブロックを使用します)。
  • {{template config_path="..."}}「design / email / header」などの構成値に基づく別の電子メールテンプレートを含めます。デフォルトでは、「ヘッダー」と「フッター」のメールテンプレートは、他のすべてのメールテンプレートに含まれています。
  • {{include template="..."}}別のテンプレートが含まれています。このテンプレートは、現在のテンプレート変数からすべてのテンプレート変数を継承し、で追加のパラメーターを渡すことができますname="value"

パラメータの変数

で処理できるもの{{var}}(上記を参照)は、次の構文で別のディレクティブのパラメーターとしても使用できます。

{{store url=$x}}
{{store url=$x.y()}}

制限事項

  • ネスト{{if}}および{{depend}}ディレクティブはできません。

    {{if x}}{{depend y}}     THIS WORKS    {{/depend}}{{/if}}
    {{depend x}}{{if y}}     THIS WORKS    {{/if}}{{/depend}}
    
    {{depend x}}{{depend y}} DOES NOT WORK {{/depend}}{{/depend}}
    {{if x}}{{if y}}         DOES NOT WORK {{/if}}{{/if}}
  • 他のディレクティブのパラメーターでディレクティブを使用することはできません。例えば:

    {{store url={{config path="..."}}}}

    動作しません


{{store url = "customer / account / login"}}これはM2でも機能します
Goldy

app / locale / en_US / template / email / sales / order_new.html code => paste.ofcode.org/GKsBaztggNpXrmSws7cEyGの30〜40に if-else条件を追加したいだけです。@ Fabian Schmengler
zus
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.