llamar al bloque estático en view.phtml en lugar del archivo phtml

14

estamos mostrando el campo de texto en la página de vista para verificar la disponibilidad de COD.

ingrese la descripción de la imagen aquí

view.phtml

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

en la view.phtmlque estamos llamando a continuación archivo. pero quiero llamar al identificador de bloque estático [código identificador - verificar] en lugar del archivo a continuación.

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>

código de bloque estático:

<p>{{block type ="core/template" template = "checkdelivery/checkdelivery.phtml"}}</p>
Bebé en magento
fuente

Respuestas:

44

Puede usar el siguiente código:

en archivo .phtml:

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

muestra:

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

en la página de bloque estático / cms:

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

Qaisar Satti
fuente
no está mostrando el campo de texto ahora. Actualicé el código de bloque estático en cuestión.
Bebé en Magento
¿Actualizaste tu caché?
Qaisar Satti
sí eliminó la carpeta de caché, también eliminó la caché del navegador.
Bebé en Magento
1
{{block type ="core/template" template="checkdelivery/checkdelivery.phtml" }}eliminar espacio y verificar system->permission ->blockque está en la lista (núcleo / plantilla)?
Qaisar Satti
1
createBlock ('Magento \ Cms \ Block \ Block') en lugar de -> createBlock ('cms / block') redactado por mí :) ¡Gracias por este consejo!
Rustyjim
3

Si ha creado un bloque CMS llamado 'block_identifier' desde el panel de administración. Luego, habrá un código para llamarlos en .phtml

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

Borre el caché y vuelva a cargar su navegador.

J.wiston
fuente