Заметки

  • 21.02.2019

    Написанное актуально для Drupal 8.6.10-dev

    Для других версий Drupal набор и версии зависимостей может меняться. Это связано с тем, что при написании тестов для D8 наследуются классы phpunit. В различных версиях этой библиотеки набор методов и их параметры могут отличаться. В результате при попытке запуска теста будут появляться ошибки, свидетельствующие о несовместимости версии D8 и библиотек, необходимых для запуска тестов.

    Устанавливаем зависимости:

  • 02.12.2016

    Если вам необходимо вызвать собственную JavaScript функцию по результатам обработки AJAX запроса, необходимо сделать следующее:

    В класс вашей формы, в нужное поле прописываем вызов callback функции.

  • 09.11.2016

    В Drupal 8 для добавления класса к таблице в массив таблицы необходимо добавить параметр #attributes, а уже внутри него располагается массив class.

    $output['#my_table'] = array(
    
      '#type'=>'table',
    
      '#rows'=>$tdata,
    
      '#attributes'=>array(
    
        'class'=>'dog-ustr'
    
      )
    
    );
    

     

  • 01.09.2016

    Для отключения кэширования отдельно взятой страницы в Drupal 8 необходимо добавить в функцию контроллера данной страницы следующую строку:

    $output['#cache']['max-age'] = 0;

    В итоге получаем такой код:

    public function myControllerFunction(){
      $output = array();
    
      ...................
    
      $output['#theme'] = 'my_page_theme';
      $output['#cache']['max-age'] = 0;
      return $output;
    }

     

  • 07.04.2016

    При попытке вывести список вариантов автодополняемого поля при событиях click или focus в Drupal возникает ошибка в случае, если поле пустое.

    Исправить это можно переопределив метод search:

  • 01.04.2016

    Перенаправление при сабмите формы в Drupal 8 реализовано следующим образом:

    public function submitForm(array &$form, FormStateInterface $form_state) {
      $form_state->setRedirect('route_name', ['parameter_name'=>'route_parameter']);
    }
    

     

  • 31.03.2016

    Пример кода для удаления ноды в Drupal 8:

    use Drupal\node\Entity\Node;
    
    $node = Node::load($nid);
    $node->delete();

     

  • 22.03.2016

    Подключение автодополнения к полю формы подробно описано здесь: http://niklan.net/blog/77

    Однако есть момент, которого там не найти.

  • 18.03.2016

    В Drupal 8 функции db_query и db_select вошли в перечень устаревших (deprecated) функций.

    Вот пример правильного простейшего select-запроса к БД в Drupal 8.

    use Drupal\Core\Database\Database;
    
    $query = Database::getConnection()->select('node_field_data', 'n')
      ->fields('n', array('nid', 'title'))
      ->orderBy('nid');
    $rows = $query->execute();
          
    foreach($rows AS $row){
      $data[] = $row->title;
    }

     

  • 11.03.2016

    Если при подключении плагина Codesnippet к CKEditor в Drupal 7 плагин появлется в списке, а кнопка отсутствует в настройках редактора, обратите внимание на файл 

Страницы