Пытаюсь добавить ,но получаю все время белый экран, что тут не так:
<?php<section class="row clearfix">
<div class="branding layout-container">
<div class="site-branding">{{ page.header }}</div>
{% if page.ad_space %}
<div class="advertisement">{{ page.ad_space }}</div>
{% endif %}
{% if page.search %}
<div class="search">{{ page.search }}</div>
{% endif %}
</div>
</section>?>
Комментарии
Извиняюсь,господа, сам налогал, нечаянно в регионах прописал двойную кавычку, вот так search: "Search'
Включи режим разработчика, вместе белого экрана будешь видеть ошибки в том числе и синтактические
Можно и без PHP.
<input type="search" name="keys" placeholder="Поиск по сайту">
</form>
Это что за наркомания? Зачем query_string в action формы?
Чем плохо?
Хулиган, я во многом не разбираюсь, но данный HTML код перебрасывает на страницу поиска нужной фразы в D8. Да, я знаю, можно форму поиска в шаблоне вывести, можно на JS данный редирект сделать.
Ну так ты попробуй когда просто /search/node и когда /search/node?keys
Если форма отправляется по get , то всё что после ? тебе и так достроится спецификацией
Не понял т.е. как?
Если метод формы get, то при сабмите она соберёт все поля по {name}={value} и самостоятельно построит query_string. т.е. конструкцию вида name1=val1&name2=val2&name3=val3 и отправка формы произойдёт по {action}?{query_string}.
Поэтому я и спросил, что зачем тебе в экшене ?key, если инпут с таким именем присутствует в форме? Андерстенд?
ноу
а как еще можно?
Ты издеваешься?
<input name="key" value="3" />
</form>
-------------------------------------------
/search >>> /search?key=3
/search?key >>> /search?key=3
/search?key=2 >>> /search?key=3
/search?other_key=2 >>> /search?key=3
А теперь?
нет не издеваюсь, но чтоб прописывать {{action}} нужно в код темы лезть
А теперь вся последовательность:
... и т.д.
Откуда вообще у тебя в голове возникло в экшн гет формы засунуть ?keys? Тупой копипаст? Попробовал, сработало, можно задвигать? Учите мат. часть, а не полагайтесь на магию!
{{ action }} Это не твиг переменная, это обыкновенный плейсхолдер, и ниже приведена табличка соответствий, что будет если вместо {{ action }} проставить то или иное значение и засабмитить форму
Что за фигню я читал в комментах? Ребята это Drupal 8 в тегах, вот решение:
1) Добавляем %theme_name%.info.yml регион если нужно
2) Указываем его в файле page.html.twig
3) Кеш
4) тут /admin/structure/block добавляем форму в новый регион
<?php<form action="/search/node?keys" method="get">
<input type="search" name="keys" placeholder="Поиск по сайту">
</form>?>
Drupal 8 же в тегах и у автора. Так не хорошо делать.
Кроха сын к отцу пришёл, и спросила кроха...
Ещё один)))
То есть написать html напрямую в page.tpl низя?, обязательно создавать регион, к нему блок с тем же html, Карл. Как считаешь, что быстрее отрендерится, html в page.tpl или когда друпал слазит в бд, достанет оттуда данные блока, создаст из данных рендер, потом создаст рендер региона с этим блоком и только потом выплюнет в шаблон?
Причем тут page.tp? Автор в посте демонстрирует пример twig, что указывает на 8 версию друпала.
Ну так ты сам же предлагал, что просто написать html плохо и нужно создавать регион и добавить в него блок, хотя ТС сам написал ниже, что у него просто ошибка синтаксиса была
Он её сам нашёл и исправил.
Затем @VasyOK предложил просто использовать чистый html, вместо рендера региона и блока. Такой вариант так же возможен, и так как форма GET никакой csrf_protection не нужен. Далее у нас был ликбез по работе с html формами, после чего ты влез и сказал
Собственно, почему нехорошо? Я привёл аргументы со своей стороны, что чистый html отработает быстрее. Если поиск нужен не на всех страницах, то можно рассматривать вариант с регионом и то, не думаю, что нельзя проверить условия прямо в шаблоне или в ставить чистый html в шаблон региона.
Итак, почему нехорошо? Иначе фигня - это твой коммент, который был написан неподумавши