O arquivo de modelo da página de listagem de produtos do catálogo é list.phtml
. Onde a renderização de todos os produtos da categoria acontece usando foreach
loop.
Estou confuso sobre a prestação do price.phtml
. Porque não há nenhum bloco para ele no identificador<catalog_category_default>
Agora, <?php echo $this->getPriceHtml($_product, true) ?>
retorna o preço do produto.
Como esse método está vinculado price.phtml
?
magento-1.7
price
template
Ricky Sharma
fonte
fonte
Respostas:
Exibição do preço do produto
O método
getPriceHtml()
é definido na classe de blocoMage_Catalog_Block_Product_Abstract
.O método usa um representante de preço que depende do tipo de produto:
O representante de preço é um bloco com um modelo associado. Ambos dependem do tipo de produto.
Se não houver nenhum bloco ou modelo definido para o tipo de produto especificado, o padrão será o
catalog/product_price
bloco e ocatalog/product/price.phtml
modelo.Onde estão definidos os representantes e modelos de preços para os tipos de produtos?
Os blocos de preços e renderizadores geralmente são especificados usando XML de layout, portanto, os módulos que adicionam novos tipos de produtos também podem facilmente adicionar seus próprios renderizadores. Por exemplo. o produto incluído adiciona seu representante de preços da seguinte forma no
bundle.xml
arquivo de layout:Modelos ou representantes de preços personalizados
Usando o mesmo mecanismo, também é possível substituir os renderizadores padrão. Se você quiser apenas alterar o modelo e manter o tipo de bloco de preço padrão, basta chamar
addPriceBlockType
o arquivo de layout com o bloco padrão (veja acima) e seu modelo.Renderizando o bloco de preços
O código para renderizar o bloco de preços se parece com o seguinte:
As variáveis
$displayMinimalPrice
e$idSuffix
são argumentos opcionais para ogetPriceHtml
método.O
$idSuffix
é usado no modelo de preço para concluir o ID CSS da<span>
tag em torno do preço real, por exemplo:fonte