Я знаю, что эта проблема несколько раз задавалась в Интернете, но ни одно из этих решений не работает для меня.
В шаблоне app/design/frontend/themename/default/template/page/html/header.phtml
У меня звонок для <?php echo $this->getChildHtml('headernav') ?>
В headernav.phtml
лежит вызов панели поиска <?php echo $this->getChildHtml('topSearch') ?>
Соответствующее содержимое app/design/frontend/themename/default/layout/catalogsearch.xml
:
<reference name="top.menu">
<block type="core/template" name="top.search" as="topSearch" template="catalogsearch/form.mini.phtml"/>
</reference>
Это заставляет панель поиска появляться, но она размещается за пределами содержимого headernav.phtml
, а не внутри, где я ее поместил. (Я проверил разметку в Chrome Dev Tools, она далеко не там, где должна быть). Я мог бы взломать его с помощью CSS или вставить содержимое form.mini.phtml
так, чтобы оно было именно там, где я хочу, но я знаю, что это неправильный способ справиться с этим, и это приведет только к изменениям позже.
Я также пробовал:
<reference name="headernav">
<block type="core/template" name="top.search" as="topSearch" template="catalogsearch/form.mini.phtml"/>
</reference>
Может ли кто-нибудь просветить меня, почему это не отображается в правильном файле шаблона и как я могу получить xml, чтобы позволить мне использовать его внутри «подшаблона» header.phtml
(например, header.phtml
звонит heavernav.phtml
, который звонит form.mini.phtml
)