Расположение поля подписки на рассылку новостей в нижнем колонтитуле
РЕДАКТИРОВАТЬ: РЕШЕНО, см. Ответ ниже (приму, когда смогу).
Я хотел переместить блок рассылки на интерфейсе моего сайта в нижний колонтитул.
Поэтому я изменил это в newsletter.xml : (
Ранее ссылка была <reference name="left">
)
<!-- Mage_Newsletter -->
<reference name="footer">
<block type="newsletter/subscribe" name="footer.newsletter" template="newsletter/subscribe.phtml"/>
</reference>
Это сработало в том смысле, что информационный бюллетень переместился в нижний колонтитул, но как я могу контролировать расположение блока в нижнем колонтитуле.
Я попробовал это в своих шаблонах... страница/html/нижний колонтитул.phtml:
<div class="footer-container">
<footer class="footer">
<div class="row">
<div class="nine columns">
<?php echo $this->getChildHtml() ?>
</div>
<div class="three columns">
<?php echo $this->getChildHtml('footer.newsletter') ?>
</div>
</div>
...
Но это дублирует блок рассылки. Теперь он появляется один раз в том месте, где я хочу, чтобы он был (в div с тремя столбцами), но затем снова появляется в div с девятью столбцами.
Я предполагаю, что это связано с тем, что он включен в вызов "$this->getChildHtml()".
Я был бы очень признателен за любую помощь, спасибо. Определенно где-то не хватает какого-то трюка.
3 answers
Просто добавьте ниже одну строку, и это сработает
<?php echo $this->getLayout()->createBlock('newsletter/subscribe')->setTemplate('newsletter/subscribe.phtml')->toHtml(); ?>
Попробуйте использовать атрибут after
или before
:
<reference name="footer">
<block type="newsletter/subscribe" name="footer.newsletter" after="footer_links" template="newsletter/subscribe.phtml"/>
</reference>
Проблема заключалась в вызове getChildHtml()
, который, насколько я понимаю, распечатывал ВСЕ блоки в нижнем колонтитуле, поэтому, конечно, он распечатывал блок рассылки в этом вызове. А потом мой звонок getChildHtml('footer.newsletter')
снова печатал блок новостей.
Я изменил getChildHtml()
на getChildHtml('cms_footer_links')
, и теперь это единственный блок, отображаемый там (что я и хотел в любом случае).