Tại sao chúng ta phải sử dụng cửa hàng lưu trữ trên mạng cho các liên kết trong CMS như <a href=,


8

Để chèn liên kết trong CMS, chúng tôi sử dụng mã này:

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

Từ khóa "cửa hàng" này đang làm gì và tại sao lại gọi là "cửa hàng"?

Và có bất kỳ từ khóa khác có sẵn ở nơi cửa hàng ?

Có thể chỉ viết URL mà không cần "lưu trữ" không?

Nếu có, cú pháp đúng là gì?


Bạn đang cố gắng để đạt được điều gì?
dùng487772

@Tim tôi muốn biết cách thay thế cho liên kết chèn.
MageDev

2
Trên thực tế da, và phương tiện truyền thông là 2 chỉ thị khác nhau. Một người lấy một tệp từ thư mục giao diện và cùng một mã có thể hiển thị 2 hình ảnh khác nhau (tùy theo chủ đề) và chỉ thị phương tiện sẽ lấy một tệp từ thư mục phương tiện. Tại sao bạn cần một giải pháp thay thế để lưu trữ chỉ thị? Có một, nó hoạt động ... trường hợp đóng cửa.
Marius

2
@ Michel06 Trên thực tế đây là phần lập trình của CNTT, nơi chúng tôi hy vọng chỉ có một phương pháp để thực hiện một nhiệm vụ nhất định. Trong trường hợp này, lệnh {{store url = ""}} sẽ giúp bạn có một liên kết.
đánh dấu

1
@zus bạn có thể sử dụng một điều kiện như được đưa ra dưới đây. {{if order.customer_group_id == 1}} <p>Test Code</p> {{/if}}
MageDev

Câu trả lời:


6

Cú pháp Magento để sử dụng URL trong Nội dung CMS:

  • lấy URL SKIN: {{skin url='images_foldername/image_name.jpg'}}- lấy hình ảnh từ thư mục giao diện của gói chủ đề được định cấu hình
  • lấy URL phương tiện: {{media url='magento-image.jpg'}}- lấy hình ảnh từ thư mục phương tiện
  • lấy URL cửa hàng: {{store url=''}}magento-page.html- lấy URL miền của cửa hàng làm việc
  • lấy URL cơ sở: {{base url=''}}magento-page.html- lấy URL miền của trang web cơ sở.

magento-page.htmlnên ở bên trong chỉ thị trong url='...'hoặc direct_url='...'.
7ochem

18

Như đã giải thích trong Trường hợp mã cho "{{store url =" example / example "}} {{store}} là một trong những lệnh được gọi là mẫu được sử dụng bởi CMS và email giao dịch

Nó được ghi lại như sau:

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

Vì vậy, "store" là viết tắt của "store url" và dùng để chỉ một URL trong cửa hàng, có nghĩa là một liên kết trong cửa hàng . Nó tự động thêm URL cơ sở chính xác (quan trọng đối với các mẫu email nơi bạn không thể sử dụng các liên kết tương đối) và giải quyết một số tham số khác (xem bên dưới)

Làm thế nào để sử dụng nó

Bạn có thể vượt qua nó một tuyến đường , giống như bạn làm với Mage::getUrl():

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

Ngoài ra với các tham số:

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

Hoặc tham số truy vấn, ví dụ để thêm bộ lọc trong điều hướng lớp:

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

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

Thay vào đó, nếu bạn muốn chỉ định một URL tùy ý, hãy sử dụng direct_url, theo cách này Magento chỉ thêm URL cơ sở và để lại URL đã cho như sau:

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

Các chỉ thị URL khác là

  • {{skin url="..."}} cho URL tới hình ảnh, JavaScript hoặc CSS trong chủ đề hiện tại, sử dụng cơ chế dự phòng chủ đề.
  • {{media url="..."}}cho URL tới hình ảnh hoặc phương tiện khác trong thư mục phương tiện (mặc định /media/:)
  • {{protocol url="www.domain.com/"}}cho các URL bên ngoài tùy ý , nhưng với giao thức hiện tại (http hoặc https)
  • {{protocol http="http://url" https="https://url"} để hiển thị các URL khác nhau phụ thuộc vào giao thức hiện tại
  • {{protocol}} để chỉ xuất "https" hoặc "http"

Các chỉ thị không phải URL khác

  • {{config path="..."}} xuất ra một giá trị cấu hình
  • {{customvar code="..."}}xuất ra một biến tùy chỉnh (được duy trì toàn cầu trong Hệ thống> Biến tùy chỉnh )
  • {{htmlescape var="..." allowed_tags="..."}}chuyển đổi các ký tự đặc biệt trong văn bản, được đưa ra trong "var" thành các thực thể HTML. Tham số "allow_tags" tùy chọn có thể chứa danh sách các thẻ được phân tách bằng dấu phẩy nên được giữ nguyên (ví dụ: "h1, h2, strong, em"). Nó hữu ích nhất trong các mẫu email vì bạn có thể truyền một biến mẫu: như thế này:{{htmlescape var=$customer.firstname}}
  • {{inlinecss file="..."}}tải CSS từ một tệp và thêm nó dưới dạng biểu định tuyến. Hữu ích cho email.
  • {{block type="..." id="..." output="..." ...}} khởi tạo và kết xuất bất kỳ loại khối Magento nào
  • {{layout area="..." handle="..." ...}}tải toàn bộ xử lý bố cục (được xác định trong tệp XML bố trí) và hiển thị khối đầu tiên của nó. Các tham số bổ sung được truyền cho tất cả các khối.

Lưu ý rằng các biến và khối tùy chỉnh phải được đưa vào danh sách trắng trước khi chúng có thể được sử dụng. Xem: APPSEC-1057 Cách thêm biến hoặc khối vào bảng danh sách trắng

Các chỉ thị không phải URL khác (chỉ dành cho Email)

  • {{var X}}, {{var X.y()}}biến mẫu đầu ra X / kết quả của phương thức y () trên biến X. Xem vars mẫu / giữ chỗ
  • {{depend X}}...{{/depend}}nội dung đầu ra chỉ ở giữa nếu biến X là true-ish (lưu ý rằng bạn không thể sử dụng các biểu thức logic ở đây, chỉ các biến hoặc phương thức trên các biến. {{if X}}...{{else}}...{{/if}}giống nhau nhưng với một khối "khác" tùy chọn.
  • {{template config_path="..."}}bao gồm một mẫu email khác dựa trên giá trị cấu hình, ví dụ "thiết kế / email / tiêu đề". Theo mặc định, các mẫu email "tiêu đề" và "chân trang" được bao gồm trong tất cả các mẫu email khác.
  • {{include template="..."}}bao gồm một mẫu khác. Mẫu này sẽ kế thừa tất cả các biến mẫu từ mẫu hiện tại và bạn có thể truyền các tham số bổ sung với name="value".

Các biến trong tham số

Bất cứ điều gì có thể được xử lý bởi {{var}}(xem ở trên), cũng có thể được sử dụng làm tham số cho một lệnh khác, với cú pháp sau:

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

Hạn chế

  • Bạn không thể lồng {{if}}{{depend}}chỉ thị:

    {{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}}
  • Bạn không thể sử dụng các chỉ thị trong các tham số của các chỉ thị khác. Ví dụ:

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

    không hoạt động


{{store url = "khách hàng / tài khoản / đăng nhập"}} đây cũng hoạt động trên M2
Goldy

Tôi chỉ muốn thêm điều kiện if-else bên trong ứng dụng của tôi / locale / vi / template / email / bán hàng / order_new.html code => paste.ofcode.org/GKsBaztggNpXrmSws7cEyG dòng 30-40, bất kỳ sự giúp đỡ nhờ @Fabian Schmengler
zus
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.