Сергей Хлопов, это другое. здесь вам надо выбрать поле по которому вы хотите фильтровать, то есть UID пользователя в Webform сабмите(не в содержимом, и не в пользователях, а в webform). И потом когда уже выберете поле, в нем в настройках указать дефолтное значение: UID текущего пользователя
Тогда нужно через hook_form_FORM_ID_alter() добавить кастомную валидацию, в которой проверять роль аккаунта пароль которого хотят восстановить и если это Оператор, то возвращать ошибку.
В вашем случае hook_form_user_pass_alter()
Если у пользователя нет доступа к странице, и ссылка рендерится правильным способом, то Drupal не будет ее отображать. Плюс вы может скрыть ее самостоятельно для нужной вам роли.
Игорь, неавторизированные пользователи будут использовать общую систему переключения языков, например по URL. Для этого надо использовать блок "Language switcher", нет необходимости писать свое решение и программно менять язык.
Специально для этого в профиле пользователя есть поле Language. И в настройках определения языка вы можете включить использования языка пользователя (и даже несколько методов определения и определить их порядок).
bullock, если у вас небольшой опыт программирование, то лучше использовать CMS, но имейте ввиду, что большое кол-во товаров, могут привести к проблемам с производительностью.
Если вы используете Drupal 8, то ваш URL должен выглядеть вот так: www.example.com/cron
Например: example.com/cron/adFdkWkWb0uPLCv76aZy0ysjiD05Z52kx...
Он должен содержать секретный ключ, иначе любой бы смог дергать ваш крон.
Вы можете посмотреть URL на странице настроек крона /admin/config/system/cron
Если вы имеете ввиду настройки Drupal, то да, этого мало. Крон должен быть настроен также на вашем хостинге или сервере. Сервер дергает общий крон Drupal, а Ultimate Cron уже распределяет какие задачи нужно запустить и с какой частотой в зависимости от настроек.
Ну так вам надо сделать блок, который отображает стандартную юзер форму. Из вопроса это не очень понятно)
Вы можете получить форму пользователя в build() методе своего блока-плагина:
Трудно сказать что у вас там происходит, не видя всей ситуации. Но я бы порекомендовал объявить свой twig-шаблон, а не использовать #markup. Вы шаблоне сможете добавить нужный HTML, передать в него форму и рендерить ее в нужном месте. И не будет необходимости рендерить ее в коде ($txtblockReg = \Drupal::service('renderer')->render($form);).
HTML в PHP файлах это всегда плохо.
Мурад Нурмагомедов: Создаете отдельный тип материалов(или любую другую сущность, можете хоть сами свою написать) "Расписание" с нужными вами полями. И связываете их с помощью entityreference.
P.S. Не очень понятно почему необходимые Вам для расписания поля нельзя просто добавить в тип "Рекламный щит".