Magento在通过AJAX调用静态块's内容时,使用{{}}在CMS中输入的图像不会被处理成它们的文件名


Magento when calling a static block's content via AJAX, images entered in CMS with {{ }} are not processed into their filename

我试图通过AJAX调用静态块。我可以很好地检索文本,但是图像没有从它们的{{}}模板格式处理到实际的图像路径,并且在CMS中写入它们。

{{media url="wysiwyg/groups-scenes-associations-c-296_367.jpeg"}}

当我在CMS页面或php文件中引用块时,只有当我通过这个AJAX方法获得块时,才会出现这种情况。

因此,我基本上是对我创建的脚本进行GET请求,该脚本启动Magento实例,调用块HTML并将其返回到原始调用JavaScript -就像这样:

脚本处理AJAX请求:

require_once('../app/Mage.php'); 
umask(0);
Mage::app();
$block_identifier = 'delivery_country_' . $_GET['iso_country'];
$staticBlock = Mage::getModel('cms/block')->load($block_identifier);
echo $staticBlock->getContent();

CMS静态块内容

<div class="delivery-panes">
<div class="delivery-left-pane"><img src="{{media url="wysiwyg/groups-scenes-associations-c-296_367.jpeg"}}" alt="" /></div>
<div class="delivery-right-pane">
<h2>France</h2>
<p>FR Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean dignissim tempus vestibulum. Quisque tempor velit sed enim hendrerit vehicula. Donec egestas iaculis risus in bibendum. Ut est nisi, semper ac adipiscing ut, hendrerit faucibus metus. Nam mollis velit non purus congue sagittis. Phasellus sit amet felis in leo ultricies vehicula sit amet nec libero. Sed ultricies metus et quam scelerisque auctor. Vivamus et consequat orci.</p>
</div>
</div>

脚本完整响应

<div class="delivery-left-pane"><img src="{{media url="wysiwyg/groups-scenes-associations-c-296_367.jpeg"}}" alt="" /></div>
<div class="delivery-right-pane">
<h2>France</h2>
<p>FR Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean dignissim tempus vestibulum. Quisque tempor velit sed enim hendrerit vehicula. Donec egestas iaculis risus in bibendum. Ut est nisi, semper ac adipiscing ut, hendrerit faucibus metus. Nam mollis velit non purus congue sagittis. Phasellus sit amet felis in leo ultricies vehicula sit amet nec libero. Sed ultricies metus et quam scelerisque auctor. Vivamus et consequat orci.</p>
</div>
</div>

为什么在我的AJAX方法中,图像会作为上面未处理的{{}}字符串返回,而不是被处理成它们正确的路径和文件名?即将{{}}转换为图像文件名

我认为这是因为Model内部没有文本预处理方法。如果你需要block -就用block代替:

$block_identifier = 'delivery_country_' . $_GET['iso_country'];
$block = Mage::app()->getLayout()->createBlock('cms/block')->setBlockId($block_identifier);
echo $block->toHtml();