เรียกบล็อกแบบคงที่ใน view.phtml ติดตั้งไฟล์ phtml


14

เรากำลังแสดงฟิลด์ข้อความในหน้ามุมมองเพื่อตรวจสอบความพร้อมใช้ของ COD

ป้อนคำอธิบายรูปภาพที่นี่

view.phtml

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

ในview.phtmlเรากำลังเรียกไฟล์ด้านล่าง แต่ฉันต้องการเรียกตัวระบุบล็อกแบบคงที่ [รหัสตัวระบุ - ตรวจสอบ] แทนไฟล์ด้านล่าง

แม่แบบ / 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

คุณสามารถใช้รหัสด้านล่าง:

ใน. ไฟล์ HTML:

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


มันไม่แสดง textfield ในขณะนี้ ฉันอัปเดตรหัสบล็อกคงที่ในคำถาม
Baby in Magento

คุณรีเฟรชแคชหรือไม่
Qaisar Satti

ใช่ลบโฟลเดอร์แคชแล้วลบแคชของเบราว์เซอร์ด้วย
Baby in Magento

1
{{block type ="core/template" template="checkdelivery/checkdelivery.phtml" }}ลบที่ว่างและตรวจสอบsystem->permission ->blockว่ามีอยู่ในรายการ (core / template) หรือไม่
Qaisar Satti

1
createBlock ('Magento \ Cms \ Block \ Block') แทน -> createBlock ('cms / block') wordked สำหรับฉัน :) ขอบคุณสำหรับเคล็ดลับนี้!
Rustyjim

3

หากคุณสร้างบล็อก CMS ชื่อ 'block_identifier' จากแผงการดูแลระบบ จากนั้นต่อไปนี้จะเป็นรหัสเพื่อเรียกพวกเขาใน. phtml

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

ล้างแคชและโหลดเบราว์เซอร์ของคุณใหม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.