appeler le bloc statique dans view.phtml à partir du fichier phtml


14

nous affichons un champ de texte dans la page de visualisation pour vérifier la disponibilité de COD.

entrez la description de l'image ici

view.phtml

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

dans view.phtmlnous appelons le fichier ci-dessous. mais je veux appeler l'identifiant de bloc statique [code d'identification - vérifier] au lieu du fichier ci-dessous.

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>

code de bloc statique:

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

Réponses:


44

Vous pouvez utiliser le code ci-dessous:

dans le fichier .phtml:

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

échantillon :

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

dans la page bloc statique / cm:

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


il n'affiche pas le champ de texte maintenant. j'ai mis à jour le code de bloc statique en question.
Bébé à Magento le

avez-vous rafraîchi votre cache?
Qaisar Satti

oui supprimé le dossier de cache, également supprimé le cache du navigateur.
Bébé à Magento le

1
{{block type ="core/template" template="checkdelivery/checkdelivery.phtml" }}supprimer l'espace et vérifier system->permission ->blockqu'il est répertorié (noyau / modèle)?
Qaisar Satti

1
createBlock ('Magento \ Cms \ Block \ Block') au lieu de -> createBlock ('cms / block') wordked pour moi :) Merci pour cette astuce!
Rustyjim

3

Si vous avez créé un bloc CMS nommé «block_identifier» à partir du panneau d'administration. Ensuite sera le code pour les appeler en .phtml

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

Vider le cache et recharger votre navigateur.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.