Domanda

Sto creando un modulo per aggiungere alcuni pulsanti extra di invito all'azione.Non riesco a visualizzare un output.Credo di sbagliare le convenzioni di denominazione o il percorso del file (o entrambi).

Potrebbe anche essere il modo in cui sto cercando di inserire il blocco.Non voglio modificare i file phtml se posso evitarlo.

Come puoi vedere dai miei file, sto provando diversi modi per ottenere il file nulla essere prodotto - senza fortuna.

L'obiettivo è quello di poter aggiungere ulteriori pulsanti CTA dopo l'aggiunta al carrello, ad esempio "Richiedi campioni"

Struttura del file:

app
    Code
        local
            CompanyName
                CtaAttributes
                    Block -> CtaButtons.php
                    etc -> config.xml
    design
        frontend
            base
                default
                    layout->ctabuttons.xml
                    template
                        ctaattributes
                            catelog
                               product ->ctabuttons.phtml

config.xml

<config>

    ... includes Module and Resource

    <global>
      <blocks>
        <ctaattributes>
            <class>CompanyName_CtaAttributes_Block</class>
        </ctaattributes>
      </blocks>
    </global>

</config>

CtaButtons.xml

<?xml version="1.0"?>

<layout version="0.1.0">
    <catalog_product_view>    
        <reference name="content">

                <block type="core/text_list" name="product.info.addtocart" before="addtocart" template="ctaattributes/catalog/product/ctabuttons.phtml"/>
                <action method="append">
                        <block>ctabuttons</block>
                </action>
        </reference>

        <reference name="product.info.addtocart">
            <block type="core/text_list" name="core-text"><action method="setText"><text><![CDATA[<div>Test</div>]]></text></action></block>
        </reference>
    </catalog_product_view>    
</layout>

ctabuttons.phtml

<?php
/**
*/
Mage::log(get_class($this));
echo 'this is my test';

CtaButtons.php

<?php

class CompanyName_CtaAttributes_Block_CtaButtons extends Mage_Core_Block_Template  {
    echo 'test';

}
È stato utile?

Soluzione 4

Ho trovato una soluzione: è divisa in due parti.

  1. Non ho definito un percorso frontend->aggiornamento per il mio aggiornamento del layout.L'ho inserito dopo </global>

      <frontend>
        <layout>
            <updates>
                <ctaattributes>
                    <file>ctaattributes.xml</file>
                </ctaattributes>
            </updates>
        </layout>  
    </frontend>
    

Se avessi utilizzato local.xml, non credo che ciò sarebbe stato richiesto, ma durante i miei test ho pensato che avrei cambiato il nome del file per mantenerlo separato.

  1. Non è possibile utilizzare il caso cammello nel nome della classe del blocco

Originariamente la mia classe era CompanyName_CtaAttributes_Block_CtaButtons - con un file corrispondente chiamato CtaButtons.php.
Cambiare il nome in CompanyName_CtaAttributes_Block_Ctabuttons E Ctabuttons.php ha risolto il problema.

Non so se è il file Class in Block/Blockname.php o il file xml di layout ad avere un problema.

L'ho testato con CamelCase nel nome dell'azienda e nel modulo senza alcun impatto, sembra essere limitato alla classe e al file Blockname.

Altri suggerimenti

    .
  • the /blocks/ctabuttons.xml nella tua struttura di file dovrebbe essere un PHP file.
  • Non vedo il file del modulo che dovrebbe essere in / app / etc / moduli
  • Dovresti avere il controllo del modulo in Config.xml

Se si utilizza l'ultima patch che i blocchi devono essere consentiti anche nel sistema-> autorizzazione-> blocco

ciao devi definire il tipo di blocco prima

DA

<?xml version="1.0"?>

 <layout version="0.1.0">
     <catalog_product_view>    
         <reference name="content">

                 <block type="core/text_list" name="product.info.addtocart" before="addtocart" template="ctaattributes/catalog/product/ctabuttons.phtml"/>
                 <action method="append">
                         <block>ctabuttons</block>
                 </action>
         </reference>

         <reference name="product.info.addtocart">
             <block type="core/text_list" name="core-text"><action method="setText"><text><![CDATA[<div>Test</div>]]></text></action></block>
         </reference>
     </catalog_product_view>    
 </layout>
.

a

<?xml version="1.0"?>

<layout version="0.1.0">
    <catalog_product_view>    
        <reference name="product.info">
            <block type="core/text_list" name="product.info.ctaattributes" before="addtocart" template="ctaattributes/catalog/product/ctabuttons.phtml"/>
        </reference>
    </catalog_product_view>    
</layout>
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top