从视图/控制器获取 pimcore 片段名称
Posted
技术标签:
【中文标题】从视图/控制器获取 pimcore 片段名称【英文标题】:Get pimcore snippet name from view / controller 【发布时间】:2014-05-13 14:55:39 【问题描述】:我以这种方式使用 Pimcore 的 sn-p:
<?php echo $this->snippet("mySnippet"); ?>
如何从视图/控制器中获取 sn-p(“mySnippet”)的名称?
谢谢。
【问题讨论】:
【参考方案1】:获取 sn-p 可编辑的名称有点困难,因为嵌入的 sn-p 不知道它的容器(参见源文件/pimcore/models/Document/Tag/snippet.php
)。我能想到的最佳解决方案(虽然有点难看)是将名称作为参数传递给 sn-p,如下所示:
<?php echo $this->snippet("mySnippet", array("snippetName" => "mySnippet")); ?>
然后在sn -p视图中获取这个参数的值:
<?php echo $this->request->snippetName; ?>
另一种方法是编辑 Pimcore 的源文件以自动传递名称,但请记住,当更新到新版本的 Pimcore 时,这可能会导致问题。但是如果你想使用这种方法,请将以下内容添加到文件/pimcore/models/Document/Tag/snippet.php
:
$params["snippetName"] = $this->name;
就在函数frontend()
中的$params["document"] = $this->snippet;
行下方。 (在 pimcore 2.1.0 中,这将是第 91 行)
【讨论】:
我认为你没有抓住重点。我需要从 sn-p 的角度获取值“mySnippet”。换句话说,得到它自己的名字。当我在 sn-p 视图中使用$this->document->key
时,我得到的是文档密钥而不是 sn-p 名称。
哦,是的,我误解了这个问题。这有点难,但我在更新的答案中给了你一个可能的解决方法。
还添加了一个替代解决方案来编辑 Pimcore 源,以便在嵌入时始终将名称传递给 sn-p。以上是关于从视图/控制器获取 pimcore 片段名称的主要内容,如果未能解决你的问题,请参考以下文章