Получить имя фрагмента 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)

Другие вопросы по тегам