Глобальная переменная Front Matter на всех страницах в теме BigCommerce
Я пытаюсь создать раскрывающееся меню, когда при наведении курсора на пользователя отображается информация об учетной записи, например предыдущие заказы.
Я использую трафарет /Cornerstone. Я пытался объявить объект Front Matter на page.html
с помощью
---
customer:
orders:
limit 5
---
но это, похоже, не работает, единственное место, куда меню тянет заказы клиентов, - это если пользователь находится на странице учетной записи. Мне нужно, чтобы это было доступно на всех страницах, так как это основная навигация сайтов.
Меню-bar.html
(Фрагмент)
{{#if customer}}
<li class="nav-page"><a href="/account.php">My Account</a>
<div class="sub-menu">
<div class="nav-col">
<h4>Hello, {{customer.name}}</h4>
</div>
<div class="nav-col">
<!-- orders -->
<h5>Orders</h5>
<ul class="account-order-list">
{{#if customer.orders}} {{#each customer.orders}}
<li><a href="{{details_url}}"><i class="fa fa-tag" aria-hidden="true"></i> Order #{{id}}</a>
<div class="order-details-list">
<a class="details" href="{{details_url}}">
<span><strong>Date:</strong> {{date}} </span>
<span><strong>Amount:</strong> {{total.formatted}} </span>
<span><strong>Status:</strong> {{status}}</a></span>
</div>
</li>
{{/each}} {{else}}
<span>You have no orders.</span> {{/if}}
</ul>
</div>
<div class="nav-col">
<h5></h5>
</div>
</div>
</li>
{{else}}
<li class="nav-page"><a href="/login.php">Sign In</a></li>
{{/if}}
</ul>
1 ответ
С точки зрения jekyll/liquid, если вы хотите глобальную переменную, вы можете объявить ее:
1 - в _config.yml
customer:
orders:
limit: 5 # and not "limit 5"
и используйте это так: {{ site.customer.orders.limit }}
2 - или в общем (для всех страниц) макете, например _layouts/default.html
Он будет доступен на любой странице с: {{ page.customer.orders.limit }}