Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过magento中cms页面的块表单内容传递参数_Magento_Static Block - Fatal编程技术网

如何通过magento中cms页面的块表单内容传递参数

如何通过magento中cms页面的块表单内容传递参数,magento,static-block,Magento,Static Block,我想传递一个带有块代码的变量,比如magento中的JSON类型 {{block type="multibanners/multibanners" category_id="9" name="multibanners" alias="multibanners" template="multibanners/multibanners.phtml"}} 从cms页面内容区域,但我没有收到任何东西。如果我使用带动作的块方法,我很容易得到我的值。 有人知道如何通过自定义块传递变量吗?我不能100%确定

我想传递一个带有块代码的变量,比如magento中的JSON类型

{{block type="multibanners/multibanners" category_id="9" name="multibanners" alias="multibanners" template="multibanners/multibanners.phtml"}}
从cms页面内容区域,但我没有收到任何东西。
如果我使用带动作的块方法,我很容易得到我的值。
有人知道如何通过自定义块传递变量吗?

我不能100%确定您的要求,但是如果您试图通过上面的代码将变量传递给
多横幅。phtml
,那么您可以创建另一个类似于
category\u id=“9”的属性
和在
multibanner.phtml
中,可以使用
$this->getData(“category_id”)获取值

e、 g

多横幅中.phtml

$this->getData('my_var');

在cms页面上添加块时,从块代码中删除样式

{{block type="multibanners/multibanners" name="multibanners" alias="multibanners" template="multibanners/multibanners.phtml" category_id="8"}}

要在phtml或块中获取category\u id,请使用
$this->getCategoryId()

我发现这非常有用,我想我应该解释一下我所做的工作,以防对其他人有所帮助

我有几个静态块,用来构建一些静态页面,其中包含一些照片,这些页面包含基本的不变信息(关于我们类型的页面)。照片非常大(对于网页而言),我想使用Magento的缩放功能。我唯一能做到这一点的方法就是利用这里的想法。我现在有一个块,我可以包括在任何cms静态页面/块,当我想有一个调整大小的图像与几个参数。它就像一个子程序(我可以这么说吗?!;o)。不管怎样,我就是这么做的

区块:

{{block type="core/template" name="display_resized_img" gimg="IMG_0559.JPG" gsize="300" gpath="/wysiwyg/ShopFront/" gclass="about-us" galt="The shop" template="utilities/display_resized_img.phtml"}}
以及phtml代码文件:

<?php
/*
 *  Displays and resizes an image as requested from the block.
 *  The image is only resized if it hasn't been already.
 */

$img = $this->getData('gimg');
$size = $this->getData('gsize');
$path = $this->getData('gpath');
$class = $this->getData('gclass');
$alt = $this->getData('galt');
$resizePath = Mage::getBaseDir ('media') . $path . "resized/" . $size . $img;
if (!file_exists($resizePath)):
    $imagePath = Mage::getBaseDir('media') . $path . $img;
    $imageObj = new Varien_Image($imagePath);
    $imageObj->constrainOnly(TRUE);
    $imageObj->keepAspectRatio(TRUE);
    $imageObj->keepFrame(FALSE);
    $imageObj->resize($size, null);
    $imageObj->save($resizePath);
endif;
$resizeUrl = Mage::getBaseUrl ('media') . $path . "resized/" . $size . $img;
?>
<img class="<?php echo $class; ?>" src="<?php echo $resizeUrl ?>" alt="<?php echo $alt; ?>">

我认为这里的问题源于您正在调用的块类型。定义类型时,您告诉Magento加载该模型并将适当的数据传递给它,然后只公开在该特定模型上定义的函数

更好的解决方案可能是引用核心块类型“core/template”,它公开了->getData()方法,然后加载“multibanner/multibanner”模型来处理和输出数据

{{block type=“core/template”category_id=“9”name=“multibanners”alias=“multibanners”template=“multibanners/multibanners.phtml”}
我不确定加载“multibanner”的正确语法是什么,但在multibanner.phtml中应该是这样的:

<?php

$catId = $this->getData('category_id');
$multibanner = Mage::getModel('multibanners/multibanners')->load($catId);

/**
** Generate some output here.
*/

?>


好的,让我解释更多细节。我想从块中传递像category_id这样的变量,但我无法使用$this->getData('my_var')或$this->getMyVar()在phtml或块中获取值。我尝试了你的代码,但没有任何结果。希望你得到我想要做的。你是否启用了缓存以及你使用的是哪个版本的magento?由于developerNT,我禁用了所有类型的缓存,我使用的是magento版本。1.7.0.0.是的,如果我使用xml中的action方法从块中传递值,那么它会起作用,但是对于内容cms页面,当我使用json类型块时,它不会显示任何内容。将此代码添加到cms页面{{{block type=“core/template”template=“test.phtml”page_type=“recentposts”}。。在test.phtml中输入。。。hello world让我知道结果只是想知道为什么有人否决了这个?也许我误解了这些论坛的目的,但我认为分享我们的经验是其中的一部分?PedroKTFC,我完全同意你的看法。我想仇恨者会憎恨的。就我个人而言,我觉得你的回答很有帮助;让我把选票往上推+1;)
<?php

$catId = $this->getData('category_id');
$multibanner = Mage::getModel('multibanners/multibanners')->load($catId);

/**
** Generate some output here.
*/

?>