https://www.drupal.org/docs/drupal-apis/routing-system/structure-of-routes
syn.cont: path: '/syn' defaults: _title: 'Синхронизация' _controller: '\Drupal\syn\Controller\syn::cont' requirements: _access: 'TRUE' options: no_cache: 'TRUE'
function dummy_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
if('node_zaka_edit_form' == $form_id or 'node_zaka_form' == $form_id){
$form['#validate'][] = '_form_validation_number_title_validate';
}}
function _form_validation_number_title_validate(&$form, \Drupal\Core\Form\FormStateInterface $form_state) {
$form_state->setErrorByName('field_ch', 'У вас пересекаются часы работы - измените пожалуйста дату или время');
$nid = \Drupal::routeMatch()->getRawParameter('node');
...
$r = views_get_view_result('mildlyadat', 'page_1', $form_state->getValue('field_kran')[0]['target_id']);
...
function dummy_views_query_alter(Drupal\views\ViewExecutable $view,...
$view->args[0];
$query->where[0]['conditions'][0]['value'][':node__field_kran_field_kran_target_id'] = $view->args[0];
...
1. Все свои модули нужно класть в папку /modules/custom/
2. Придумайте название модуля. Это важно. Оно, скорее всего будет отражаться практически везде. Для примера - summ
3. В папке /modules/custom/summ создаём файл summ.info.yml
4. Содержание файла:
name: Summ description: Custom module for learning Drupal 8 type: module core: 8.x package: DrupalSumm
5. Зайдите в Модули, найдите и включите наш модуль. Всё должно быть без ошибок.
6. В результате - у нас есть наш подключённый модуль.
7. В той же папке нужно создать файл: summ.routing.yml
8. Содержание файла:
summ.first_page: path: '/first-page1' defaults: _controller: '\Drupal\summ\Controller\FirstPageController::content' _title: 'Hello World!' requirements: _permission: 'access content'
8. В папке /modules/custom/summ/src/Controller/ создаём файл FirstPageController.php
9. Содержание файла:
'Hello World!', ); return $element; } }
10. Очищаем кеш и заходим по адресу: http://Вашсайт/first-page1