phtml 파일의 insted view.phtml에서 정적 블록 호출


14

COD 가용성을 확인하기 위해보기 페이지에 텍스트 필드를 표시하고 있습니다.

여기에 이미지 설명을 입력하십시오

view.phtml

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

에서 view.phtml우리는 파일 아래에 요구하고있다. 하지만 아래 파일 대신 정적 블록 식별자 [식별자 코드-확인] 를 호출하고 싶습니다 .

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>

정적 블록 코드 :

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

답변:


44

아래 코드를 사용할 수 있습니다 :

.phtml 파일에서 :

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

샘플 :

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

정적 블록 / cms 페이지에서 :

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


텍스트 필드가 표시되지 않습니다. 문제의 정적 블록 코드를 업데이트했습니다.
아기 Magento

캐시를 새로 고치셨습니까?
Qaisar Satti

예, 캐시 폴더를 삭제하고 브라우저 캐시도 제거했습니다.
아기 Magento

1
{{block type ="core/template" template="checkdelivery/checkdelivery.phtml" }}공간을 제거하고 공간이 있는지 확인하십시오 system->permission ->block(코어 / 템플릿)?
Qaisar Satti

1
-> createBlock ( 'cms / block') 대신 createBlock ( 'Magento \ Cms \ Block \ Block') 대신 나를 위해 wordked :)이 팁을 주셔서 감사합니다!
Rustyjim

3

관리자 패널에서 'block_identifier'라는 CMS 블록을 생성 한 경우 다음은 .phtml에서 호출하는 코드입니다.

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

캐시를 지우고 브라우저를 다시로드하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.