it-swarm.com.de

Magento: Holen Sie sich einen statischen Block als HTML in eine HTML-Datei

Ich habe einen statischen Block mit dem Namen newest_product (Mit Inhalt) und möchte ihn in einer Datei mit dem Namen .phtml Anzeigen html.

Ich habe diesen Code ausprobiert:

echo $this->getLayout()->createBlock('cms/block')->setBlockId('newest_product')->toHtml(); 

Dafür wird aber nichts angezeigt.

Benutze ich den falschen Code?

40
iamjonesy

Im Layout (app/design/frontend/your_theme/layout/default.xml):

<default>
    <cms_page> <!-- need to be redefined for your needs -->
        <reference name="content">
            <block type="cms/block" name="cms_newest_product" as="cms_newest_product">
                <action method="setBlockId"><block_id>newest_product</block_id></action>
            </block>
        </reference>
    </cms_page>
</default>

In Ihrer HTML-Vorlage:

<?php echo $this->getChildHtml('newest_product'); ?>

Vergessen Sie nicht die Cache-Bereinigung.

Ich denke es hilft.

50
Max Pronko

Wenn Sie einen CMS-Block mit dem Namen "block_identifier" im Admin-Bereich erstellt haben. Dann folgt Code, um sie in .phtml aufzurufen

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

und benutze diesen Link für mehr http://www.justwebdevelopment.com/blog/how-to-call-static-block-in-magento/

21
Ayush Sugandhi

Wenn Sie einen cmsblock in Ihre Vorlage/Blockdatei/Ihr Modell usw. laden möchten, können Sie dies wie folgt tun. Dadurch werden alle Variablenbereiche im cmsblock gerendert

$block  = Mage::getModel('cms/block')
            ->setStoreId(Mage::app()->getStore()->getId())
            ->load('identifier');

$var = array('variable' => 'value', 'other_variable' => 'other value');
/* This will be {{var variable}} and {{var other_variable}} in your CMS block */

$filterModel = Mage::getModel('cms/template_filter');
$filterModel->setVariables($var);

echo $filterModel->filter($block->getContent());
12
Jeroen

Ich denke, das wird für dich funktionieren

$block = Mage::getModel('cms/block')->setStoreId(Mage::app()->getStore()->getId())->load('newest_product');
echo $block->getTitle();
echo $block->getContent();

Es funktioniert, aber jetzt werden die Variablen im CMS-Block nicht mehr analysiert :(

8
Kanak Vaghela

Der folgende Code funktioniert, wenn Sie CMS-Static Block in Magento aufrufen.

<?php echo 

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

?>
5
user3057379

Wenn Sie im Admin-Bereich einen neuen CMS-Block mit dem Namen block_identifier erstellen, können Sie ihn mit dem folgenden Code aus Ihrer .phtml-Datei aufrufen:

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

Leeren Sie dann den Cache und laden Sie Ihren Browser neu.

2
user7752775

Dies sollte wie getestet funktionieren.

<?php
$filter = new Mage_Widget_Model_Template_Filter();
$_widget = $filter->filter('{{widget type="cms/widget_page_link" template="cms/widget/link/link_block.phtml" page_id="2"}}');
echo $_widget;
?>
2
Farhan Islam