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>

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"}}


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.