Я хотел бы сделать часть страницы, доступную для получения через AJAX. Я имею в виду использовать параметр URL, bare
, который сказал бы Magento, чтобы представить страницу с другим шаблоном, примененным к корню . голый шаблон выглядит следующим образом:Условное задание шаблона в Magento
<?php echo $this->getChildHtml('content'); ?>
Вот оно! Идея заключается в том, что метод JavaScript может захватывать только content
другой страницы и вставлять ее в DOM, где это необходимо. (Я не хочу, чтобы это было возможно только с любой страницы - только страницы, отмеченные для этого в макете xml.)
Я читал в другом месте, что I should avoid conditional layout xml. Единственный другой подход, о котором я могу думать, - это переопределить сам блок Page/Html, создав модифицированный метод setTemplate
, как показано ниже. Инстинктивно я обеспокоен переопределением такой основной части Magento.
public function setTemplate($template, $bareTemplate='')
{
$bareMode = Mage::app()->getRequest()->getParam('bare');
$targetTemplate = (!empty($bareTemplate) && $bareMode === '1') ? $bareTemplate : $template;
return parent::setTemplate($targetTemplate);
}
Какие лучшие подходы я не думал?
Это поможет понять цель и увидеть примеры желаемых результатов, если мы предложим «лучшие подходы» :) В противном случае любой совет может быть немного общим, да? Какова же цель? Вы действительно хотите, чтобы страница выглядела так, как будто она принадлежит к другой теме? Или вы пытаетесь получить какой-то индивидуальный макет, созданный для определенного продукта/категории/продажи? – Kato
@ Kato, отредактированный, добавив пример шаблона * bare * и для чего он будет использоваться. – kojiro
Рассматривали ли вы только выбор страницы по HTTP и извлечение полезного раздела? Если это всего лишь простой HTML-код, который вам нужен, это должен быть тонкий/простой ответ и сэкономить массу проблем при создании дополнительных шаблонов или изменении ядра. – Kato