Получить имя фрагмента pimcore из представления / контроллера
Я использую фрагмент Pimcore таким образом:
<?php echo $this->snippet("mySnippet"); ?>
Как я могу получить имя фрагмента ("mySnippet") из представления / контроллера?
Благодарю.
1 ответ
Получить имя редактируемого фрагмента кода немного сложнее, потому что встроенный фрагмент не дает никаких сведений о его контейнере (см. Исходный файл). /pimcore/models/Document/Tag/snippet.php
). Лучшее решение, которое я могу придумать (хотя и немного некрасиво), это передать имя во фрагмент как параметр, например так:
<?php echo $this->snippet("mySnippet", array("snippetName" => "mySnippet")); ?>
И тогда в представлении фрагмента получите значение этого параметра:
<?php echo $this->request->snippetName; ?>
Другой подход заключается в редактировании исходного файла Pimcore для автоматической передачи имени, но помните, что это может вызвать проблемы при обновлении до новой версии Pimcore. Но если вы хотите использовать этот подход, добавьте в файл следующее /pimcore/models/Document/Tag/snippet.php
:
$params["snippetName"] = $this->name;
чуть ниже линии $params["document"] = $this->snippet;
в функции frontend()
, (В pimcore 2.1.0 это будет строка 91)