2013-08-08 2 views
3

Я создал пользовательскую форму, которая загружается на iframe. Он также имеет форму send.php, которая также является настраиваемым файлом. Мне нужно послать спасибо, но загрузить контент из статического блока, чтобы клиент мог его изменить.Magento Загрузка статического блока в файл php

Как загрузить текст из статического блока в собственный файл php?

Спасибо

ответ

12

Попробуйте это:

require_once 'path/to/'.'Mage.php'; //replace 'path/to' with the relative path to your Mage.app file 
echo Mage::app()->getLayout()->createBlock('cms/block')->setBlockId('some_block_id')->toHtml(); 
+0

'Mage :: getBlockSingleton ('cms/block')' делает то же самое ('Mage :: app() -> getLayout() -> createBlock()') –

+1

У меня есть эта ошибка сейчас Неустранимая ошибка: класс «Маг» не найден в ../submit.php в строке 41 – user2607179

+0

Я обновил ответ – Marius

7

{BLOCK_IDENTIFIER} является идентификатор статического блока:

echo Mage::getModel('cms/block')->load('{BLOCK_IDENTIFIER}')->getContent(); 
+0

Благодарим вас за ответ. Я получаю эту ошибку «Фатальная ошибка: Использование $ это, когда не в контексте объекта в ../submit.php в строке 41» Это та часть если (почта ($ к, $ при условии, $ сообщение, $ headers)) { \t echo $ this-> getLayout() -> createBlock ('cms/block') -> setBlockId ('{thankyou}') -> toHtml(); } прочее { \t печать «Почта не может быть отправлена ​​администрации»; } Строка 41 является частью эха – user2607179

+0

Я изменил реализацию на статический функциональный вызов. Повторите попытку, пожалуйста. – RichardBernards

+0

И если ваш идентификатор блока содержит {}, вы можете опустить их;) – RichardBernards

1

Я использовал следующее, если это поможет кому-то еще

require_once ($_SERVER["DOCUMENT_ROOT"] . "/dev/app/Mage.php"); //remove dev if you want the Mage.php from root 

    echo Mage::app()->getLayout()->createBlock('cms/block')>setBlockId('some_block_id')->toHtml(); 
Смежные вопросы