chiama il blocco statico in view.phtml installato nel file phtml


14

stiamo visualizzando un campo di testo nella pagina di visualizzazione per verificare la disponibilità del COD.

inserisci qui la descrizione dell'immagine

view.phtml

echo $this->getLayout()->createBlock('core/template')->setTemplate('checkdelivery/checkdelivery.phtml')->toHtml();

in view.phtmlnoi chiediamo qui di seguito file. ma voglio chiamare l'identificatore di blocco statico [codice identificativo - controllo] invece del file sottostante.

template / checkdelivery / checkdelivery.phtml

<div class="block block-list block-check-delivery">
    <div class="block-title">
        <?php $blockLabel = Mage::getStoreConfig('checkdelivery/general/block_title'); ?>
        <strong><span><?php echo $this->__($blockLabel) ?></span></strong>
    </div>
    <div class="block-content" >        
        <br>
            <input name="zipcode" size="17" type="text" id="zipcode" value="<?php echo Mage::getModel('core/cookie')->get('zip'); ?>" maxlength="10" class="input-text" placeholder="<?php echo $this->__('Enter ZIP Code'); ?>"/>
            <button type="button" name="zip-check" title="Check" class="button" id="zip-check" ><span><?php echo $this->__('Check'); ?></span></button>
            <div id="delivery-message"></div>
            <?php $defaultHtml = Mage::getStoreConfig('checkdelivery/general/default_html'); ?>
            <div id="delivery-html"><?php if(Mage::getModel('core/cookie')->get('message')){
    echo Mage::getModel('core/cookie')->get('message');
}
else{
    $defaultHtml; } ?></div>

        <br>        
    </div>

</div>

<script>
    Event.observe('zip-check', 'click', function(event){
        new Ajax.Request("<?php echo $this->getUrl('checkdelivery/index/index') ?>", {
            method: "get",
            parameters: {zipcode : $('zipcode').value },
            onSuccess: function(transport) {
                 var json = transport.responseText.evalJSON();
                 $('delivery-message').update(json.message);                 
                 $('delivery-message').setStyle({ color: json.color});
                 $('delivery-html').update(json.html);  
            }
        });
    });
</script>

codice blocco statico:

<p>{{block type ="core/template" template = "checkdelivery/checkdelivery.phtml"}}</p>

Risposte:


44

Puoi usare il codice qui sotto:

nel file .phtml:

<?php
  echo $this->getLayout()->createBlock('cms/block')->setBlockId('block_identifier')->toHtml(); 
?> 

campione :

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('home')->toHtml(); ?> 

nella pagina blocco statico / cms:

{{block type="core/template" template="checkdelivery/checkdelivery.phtml"}}


non sta visualizzando il campo di testo ora. ho aggiornato il codice di blocco statico in questione.
Baby in Magento,

hai aggiornato la cache?
Qaisar Satti,

sì cartella cache cancellata, anche cache del browser rimossa.
Baby in Magento,

1
{{block type ="core/template" template="checkdelivery/checkdelivery.phtml" }}rimuovere lo spazio e verificare system->permission ->blockche sia elencato (core / template)?
Qaisar Satti,

1
createBlock ('Magento \ Cms \ Block \ Block') invece di -> createBlock ('cms / block') ha parlato per me :) Grazie per questo suggerimento!
Rustyjim,

3

Se hai creato il blocco CMS denominato "block_identifier" dal pannello di amministrazione. Quindi seguirà il codice per chiamarli in .phtml

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('block_identifier')->toHtml(); 
?> 

Svuota la cache e ricarica il browser.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.