Приветствую. Есть необходимость переписать вывод именно страницы ноды, нужно чтоб до материала, во всю ширину страницы выводилось изображение(обложка) и ссылка, все это поля ноды. Есть ли какая то возможность получить их значение в page.html.twig? Или может быть вопрос можно решить как то по другому?
Доступ к полям ноды в page.html.twig
Главные вкладки
Лучший ответ
так а в чем проблема?
у вас верстка есть? вы просто выводите поле с изображением в шаблоне page.html.twig
Вот например два вопроса по вашей теме, и там уже есть ответы:
https://stackoverflow.com/questions/45344282/render-field-directly-in-pa...
https://drupal.stackexchange.com/questions/188122/render-a-node-field-in...
Если вы совсем новичок, то расшифрую: вставляете в ваш код переменную {{ node.title.value }} и тогда выведется заголовок страницы. Заменяете title на машинное имя вашего поля с картинкой, и выведется картинка.
Если хотите вывести картинку в виде url, то можно попробовать такой способ:
{{ file_url(node.field_some_image.entity.fileuri) }}
все зависит от того, как сделана ваша верстка если она есть.
Комментарии
Можешь посмотреть в моем вопросе: Темизация таксономии в page.html.twig, только я вот пока не разберусь как наименование термина таксономии вытащить. И вот еще можно здесь почитать, как вытаскивать многие вещи для темизации.
Спасибо, второй день что то пробую по разному и совсем ничего не выводится...
Пробую так:
<?phpfunction enygs_preprocess_page(&$variables) {
if ($node = \Drupal::request()->attributes->get('node')) {
$variables['wallp_image'] = $node->field_image;
}
}?>
это код в .theme
а это прописываю в файле шаблона page.html.twig
{{wallp_image}}
В итоге ничего не происходит. Хотел через kint() адрес изображения получать и просто в итоге выводить кодом это дело, но kint() по какой то причине у меня не работает в шаблонах нод, только в шаблонах страниц.
так а в чем проблема?
у вас верстка есть? вы просто выводите поле с изображением в шаблоне page.html.twig
Вот например два вопроса по вашей теме, и там уже есть ответы:
https://stackoverflow.com/questions/45344282/render-field-directly-in-pa...
https://drupal.stackexchange.com/questions/188122/render-a-node-field-in...
Если вы совсем новичок, то расшифрую: вставляете в ваш код переменную {{ node.title.value }} и тогда выведется заголовок страницы. Заменяете title на машинное имя вашего поля с картинкой, и выведется картинка.
Если хотите вывести картинку в виде url, то можно попробовать такой способ:
{{ file_url(node.field_some_image.entity.fileuri) }}
все зависит от того, как сделана ваша верстка если она есть.
Большое спасибо, полезная информация. Вывести правда именно изображение у меня таким образом не получилось, страница выводится так как будто слетели стили. А вот текстовые поля таким образом выводятся отлично.
В итоге вывел изображение так:
<img src="{{ file_url(node.field_image.entity.fileuri) }}">
Однако проблема в том, что что бы я там не выводил помимо системных тегов, типо {{page.content}}, {{page.left_sidebar}} не видно посетителям, только администратору. Даже если ввожу обычный текст. Первый раз такое вижу. Вот пример моей реализации:
<div class="col-lg-3">
<a href="/" class="menu-brand">Site Name</a>
</div>
<div class="col-lg-6">
{{ page.menu }}
</div>
<div class="col-lg-3">
</div>
</div>
<div class="container">
{{ page.header }}
</div>
<div class="container">
the test text // it is't visible for users
<img src="{{ file_url(node.field_image.entity.fileuri) }}"> // it is't visible for users
<div class="row">
<div class="col-md-8">
{{ page.content }}
</div>
<div class="col-md-4">
{{ page.left_sidebar }}
</div>
</div>
</div>
<div class="footer-cont">
<div class="row footer-menu-row">
<div class="col-lg-3">
<a href="/" id="footer-brand">Site Name</a>
</div>
<div class="col-lg-3">
{{ page.footer }}
</div>
<div class="col-lg-3">
</div>
</div>
<div class="footer-copyr-cont">
<div class="container text-center">
Site copyrights
</div>
</div>
</div>
Может кто то знает с чем подобное может быть связано?
а сайт локально? можно ли его увидить в интернете? скорее всего там какая-то мелочь, которую вы пропустили из-за невнимательности. Но наугад сложно понять о чем речь..
Да, конкретно пытаюсь темизировать данную страницу
http://enygames.com/node/13
Что то странное, что бы не прописал, оно не выводится.
Добавил использование контекстных ссылок и все заработало. Насколько это критично для безопасности?) Знать бы что именно в данном случае под ними подразумевается.
Вполне безопасно. Ссылок не будет, если не будет прав на действия
Даже не знаю, может не из за этого все таки... Подумываю на кеширование где то. Или на стороне сервера или браузер или сам Drupal, хотя отключал. В любом случае большое спасибо всем за участие, много информации получил.