Mengapa kita harus menggunakan "toko" untuk tautan di CMS seperti <a href=%{{store url='home'}}{"> rumah </a>

8

Untuk memasukkan tautan ke dalam CMS, kami menggunakan kode ini:

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

Apa yang dilakukan kata kunci "toko" ini dan mengapa disebut "toko"?

Dan apakah ada kata kunci lain yang tersedia di toko ?

Apakah mungkin menulis URL saja, tanpa "toko"?

Jika ya, apa sintaks yang benar?

MageDev
sumber
Apa yang ingin Anda capai?
user487772
@Tim saya ingin tahu cara alternatif untuk memasukkan tautan.
MageDev
2
Sebenarnya kulit, dan media adalah 2 arahan yang berbeda. Seseorang mengambil file dari folder skin, dan kode yang sama dapat membuat 2 gambar berbeda (tergantung temanya) dan arahan media mengambil file dari folder media. Mengapa Anda membutuhkan alternatif untuk menyimpan arahan? Ada satu, itu berfungsi ... case ditutup.
Marius
2
@ Michel06 Sebenarnya ini adalah bagian pemrograman TI, di mana kami berharap hanya ada satu metode untuk melakukan tugas yang diberikan. Dalam hal ini, arahan {{store url = ""}} akan memberi Anda tautan.
manfaat
1
@zus Anda dapat menggunakan kondisi seperti yang diberikan di bawah ini. {{if order.customer_group_id == 1}} <p>Test Code</p> {{/if}}
MageDev

Jawaban:

6

Sintaks Magento untuk menggunakan URL dalam Konten CMS:

  • dapatkan URL KULIT: {{skin url='images_foldername/image_name.jpg'}}- dapatkan gambar dari folder kulit paket tema yang dikonfigurasi
  • dapatkan URL Media: {{media url='magento-image.jpg'}}- dapatkan gambar dari folder media
  • dapatkan URL Toko: {{store url=''}}magento-page.html- dapatkan URL domain dari toko yang berfungsi
  • dapatkan URL Pangkalan: {{base url=''}}magento-page.html- dapatkan URL domain dari situs web basis.
Kaushik Chavda
sumber
magento-page.htmlharus berada di dalam arahan dalam url='...'atau direct_url='...'.
7ochem
18

Seperti dijelaskan dalam Di mana kode untuk "{{store url =" example / example "}} {{store}} adalah salah satu yang disebut arahan template yang digunakan oleh CMS dan email transaksional

Ini didokumentasikan sebagai berikut:

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

Jadi, "toko" adalah kependekan dari "url toko" dan merujuk ke URL di toko, itu berarti tautan di dalam toko . Secara otomatis menambahkan URL dasar yang benar (penting untuk templat email di mana Anda tidak dapat menggunakan tautan relatif) dan menyelesaikan beberapa parameter lainnya (lihat di bawah)

Bagaimana cara menggunakannya

Anda bisa melewatinya dengan rute , sama seperti yang Anda lakukan dengan Mage::getUrl():

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

Juga dengan parameter:

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

Atau parameter kueri, misalnya untuk menambahkan filter dalam navigasi berlapis:

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

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

Jika Anda ingin menentukan URL yang berubah-ubah, gunakan direct_url, dengan cara ini Magento hanya menambahkan URL dasar dan membiarkan URL yang diberikan seperti itu:

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

Arahan URL lainnya adalah

  • {{skin url="..."}} untuk URL ke gambar, JavaScript atau CSS dalam tema saat ini, menggunakan mekanisme fallback tema.
  • {{media url="..."}}untuk URL gambar atau media lain di direktori media yang (default: /media/)
  • {{protocol url="www.domain.com/"}}untuk URL eksternal yang arbitrer , tetapi dengan protokol saat ini (http atau https)
  • {{protocol http="http://url" https="https://url"} untuk menampilkan berbagai URL yang bergantung pada protokol saat ini
  • {{protocol}} untuk hanya menampilkan "https" atau "http"

Arahan non-URL lainnya

  • {{config path="..."}} menghasilkan nilai konfigurasi
  • {{customvar code="..."}}menghasilkan variabel khusus (dikelola secara global di System> Custom Variables )
  • {{htmlescape var="..." allowed_tags="..."}}mengonversi karakter khusus dalam teks, diberikan dalam "var" ke entitas HTML. Parameter "allow_tags" opsional dapat berisi daftar tag yang dipisahkan koma yang harus dijaga tetap utuh (misalnya "h1, h2, kuat, em"). Ini paling berguna dalam templat email karena Anda dapat melewatkan variabel templat: seperti ini:{{htmlescape var=$customer.firstname}}
  • {{inlinecss file="..."}}memuat CSS dari file dan menambahkannya sebagai style sheet inline. Berguna untuk email.
  • {{block type="..." id="..." output="..." ...}} instantiate dan render segala tipe blok Magento
  • {{layout area="..." handle="..." ...}}memuat seluruh tata letak pegangan (didefinisikan dalam file tata letak XML) dan merender blok pertama. Parameter tambahan diteruskan ke semua blok.

Perhatikan bahwa variabel dan blok khusus harus masuk daftar putih sebelum dapat digunakan. Lihat: APPSEC-1057 Cara menambahkan variabel atau blok ke tabel daftar putih

Arahan non-URL lainnya (Hanya Template Email)

  • {{var X}}, {{var X.y()}}variabel templat keluaran X / hasil dari metode y () pada variabel X. Lihat Templat vars / placeholder
  • {{depend X}}...{{/depend}}konten output di antara hanya jika variabel X adalah true-ish (perhatikan bahwa Anda tidak dapat menggunakan ekspresi logis di sini, hanya variabel atau metode pada variabel. {{if X}}...{{else}}...{{/if}}yang sama tetapi dengan blok "lain" opsional.
  • {{template config_path="..."}}sertakan templat email lain berdasarkan nilai konfigurasi, misalnya "desain / email / header". Secara default, templat email "header" dan "footer" disertakan dalam semua templat email lainnya.
  • {{include template="..."}}termasuk template lain. Templat ini akan mewarisi semua variabel templat dari yang sekarang dan Anda dapat memberikan parameter tambahan name="value".

Variabel dalam parameter

Apa pun yang dapat diproses oleh {{var}}(lihat di atas), juga dapat digunakan sebagai parameter untuk arahan lain, dengan sintaks berikut:

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

Keterbatasan

  • Anda tidak dapat membuat sarang {{if}}dan {{depend}}arahan:

    {{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}}
    
  • Anda tidak dapat menggunakan arahan dalam parameter arahan lain. Sebagai contoh:

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

    tidak bekerja

Fabian Schmengler
sumber
{{store url = "pelanggan / akun / login"}} ini juga berfungsi pada M2
Goldy
Saya hanya ingin menambahkan kondisi if-else di dalam app / locale / en_US / template / email / sales / order_new.html code => paste.ofcode.org/GKsBaztggNpXrmSws7cEyG baris 30 - 40, bantuan apa pun terima kasih @Fabian Schmengler
zus