Как перенести форму контактов в другое место Drupal 8

Главные вкладки

Аватар пользователя skdx skdx 2 февраля 2016 в 18:51

Несколько лет назад делал сайты на старых версиях друпала. Потом так сложилось, что вообще не занимался сайтами. Сейчас снова возникла необходимость сделать сайт себе и товарищу. Решил сразу начать с новой версии, так как сайты нужны не сложные, куча старых модулей не требуется, а 8я версия одна из самых революционных за всю историю. Вначале вообще все было непонятно, что где настраивается, но покопавшись денек начал постепенно разбираться, что к чему.
Сейчас появился первый небольшой вопросик:
Как перенести форму контактов в другое место например в Sidebar first(левая колонка)?
Я могу в настройках блоков для содержимого страницы указать расположение Sidebar first(левая колонка), но тогда все материалы будут располагаться в левой колонке. А мне нужно, что бы только контактная форма оказалась в левой колонке, а все остальные материалы оставались на своем месте.
Наверное можно создать новый блок и как то в него впихнуть форму контактов?
Тот же самый вопрос касается расположения материалов(статья, основная страница). Каким образом их можно вставлять в нужные блоки сайта?

Комментарии

Аватар пользователя g78knl6cvxf0 g78knl6cvxf0 3 февраля 2016 в 1:54

skdx wrote:

Я могу в настройках блоков для содержимого страницы указать расположение Sidebar first(левая колонка), но тогда все

Нужно не в настройках блока, а в настройках самого региона Sidebar добавить нужный блок через кнопку "Place block", тогда он продублируется, а не переместится. А потом во вкладке Page указать на каких страницах отображать, например "/node/6" (и флаг "Show for the listed pages"), ну а в главном регионе зайти в настройки блока и тоже самое, только флаг скрыть.
screen multiblock settings

Если нужно не конкретных страниц, а типов материалов, то вкладка "Content types"

Внимание, Title - отдельный блок, требующий всего того же, что и блок с контентом

А еще можно программно перемещать через template_preprocess_page() добавив его в название_темы.theme

<?php
function bootstrap_preprocess_page(&$variables) {
    
  if(isset(
$variables['node']) && $variables['node']->id() == 6){
    
$variables['page']['регион_куда_поместить']['нужный_блок'] = $variables['page']['регион_откуда_взять']['нужный_блок'];
    unset(
$variables['page']['регион_откуда_взять']['нужный_блок']);
  }
}
?>
Аватар пользователя skdx skdx 3 февраля 2016 в 7:15

Большое спасибо. Все понятно стало. Как то не пришла мысль, что блоки можно дублировать. Все очень даже удобно и логично, по крайней мере для не слишком большой структуры сайта.
Вот с размещением страниц пока непонятно.
Во первых интересует можно ли размещать в разных блоках - страницы одного типа материалов?, похоже, что нет.
1. Я создал тип материала с названием "Страницы размещаемые в правой колонке".
2. Создал содержимое с этим типом материала.
3. В созданом ранее(дублированном) блоке "Содержимое страницы2"(размещаемый в правой колонке) на вкладке "Content types" указал тип материала "страницы правой колонки". Но страницы почему то там не появились. В чем может быть причина?
pic
4. И еще один вопрос продолжающий предыдущий. Например в меню сайта "цены" мне нужно вывести несколько разных материалов(статей). Как это лучше всего сделать? У меня в данный момент для меню "цены" указана ссылка /price эта ссылка указана в настройке адреса одной статьи. А другим статьям нельзя указать тот же адрес. Так же нельзя указать несколько ссылок для настройки меню(например нельзя написать /price1 /price2). Так же нельзя указать ссылку для типа материала.(я бы мог создать материал Меню "цены" дать ему ссылку и все нужные статьи делать этим типом материала).

Аватар пользователя g78knl6cvxf0 g78knl6cvxf0 3 февраля 2016 в 10:23

skdx wrote:

на вкладке "Content types" указал тип материала "страницы правой колонки". Но страницы почему то там не появились

Может во вкладке "Страницы" указаны пути для отдельных страниц, а может кеш шалит. У меня все появляется.

skdx wrote:

Например в меню сайта "цены" мне нужно вывести несколько разных материалов(статей).

Изучай Views, он создан для этого и это самая главная фича Друпала. Еще можно использовать таксономию, прикрепив к нужным материалам теги. Мануалов по этому в интернете пруд пруди.

skdx wrote:

И еще один вопрос продолжающий предыдущий

И да, одна тема - один вопрос. И название темы не о себе, а о вопросе. Например "Как перенести форму контактов в другое место например в Sidebar first(левая колонка)". А то я в эту тему зашел только потому, что был указан Drupal 8, так бы в жизнь не открыл. (Кстати, ты еще можешь нажать "Редактировать" и переименовать тему, ога)

Аватар пользователя skdx skdx 3 февраля 2016 в 12:22

Так и не понял почему не сработал вариант с созданием нового типа материала. Специально даже создал еще 1 копию блока "Содержимое страницы3" для статей в правой колонке, но ни на одной страницы статьи не появились. (Вкладка страницы пустая. На вкладке Типы материалов выбрано- Страницы Правой колонки.)
Причем если щелкнуть по названию статьи в меню содержимое, то статья выводится в нужном месте.

Аватар пользователя g78knl6cvxf0 g78knl6cvxf0 3 февраля 2016 в 12:52

skdx wrote:

ни на одной страницы статьи не появились...Причем если щелкнуть по названию статьи в меню содержимое, то статья выводится в нужном месте.

Либо я окончательно перестал понимать что происходит, либо в правой колонке ты хочешь выводить содержимое не на странице с материалом, которому это содержимое принадлежит, а вообще на страницах сайта. Тогда, конечно, в блоке ничего не будет выводится. Ведь его настройка означает "Выводить содержимое, если текущий материал совпадает по типу с указанным", а не "выводить содержимое всех материалов с указанным типом". Такое правило задается с помощью Views, изучай, без него никак.

Аватар пользователя skdx skdx 3 февраля 2016 в 13:46

Очень хочу освоить Views уже изучаю но не все понятно. По поводу написанного.
Вот это не понял. "в правой колонке выводить содержимое не на странице с материалом, которому это содержимое принадлежит, а вообще на страницах сайта."
Уделите пожалуйста минутку гляньте сайт, больше отвлекать не буду пока не изучу Views.:)
Ссылку на сайт отправил.

Еще раз пишу как добавлял.
В меню Содержимое создал 2 материала "Страницы Правой колонки"
У этих материалов указан такой же материал "Страницы Правой колонки"
Данный материал привязан в настройках блоков к блоку Sidebar second (добавлен в блоке содержимое страницы)
Но в итоге не выводится там.

Аватар пользователя g78knl6cvxf0 g78knl6cvxf0 3 февраля 2016 в 17:56

skdx wrote:

Ссылку на сайт отправил.

В сообщениях ничего нет

skdx wrote:

Еще раз пишу как добавлял.

Еще раз (и, кстати, последний). Указанным здесь способом нельзя прикрепить к блоку конкретные материалы. Можно только сказать, что на странице с таким-то материалом показать его же содержимое в таком-то регионе. Хочешь отображать подборку материалов, пиши запросы. Не хочешь писать - нащелкай мышкой с помощью Views. Обучалок по этому Views больше, чем порнографии. Удачи