Panels + Statistics + Drupal 8

Опубликовано 2016.09.14 в разделе Drupal.

Модуль статистики(тот что в ядре) ""цепляется за ноды в hook_ENTITY_TYPE_view. Если вы выводите ноды через панели(Pages) - то этот хук соответственно не будет работать. Разрулить проблему можно если самому подрубить библиотеку модуля statistics к страницам материалов. Я сделаю это в hook_page_attachments. Код хука
  1. /**
  2.  * Implements hook_page_attachments().
  3.  */
  4. function module_page_attachments(array &$page) {
  5. $request = \Drupal::request()->getRequestUri();
  6. $nid = NULL;
  7. if (substr($request, 0, 6) == '/node/') {
  8. $nid = substr($request, 6);
  9. } else {

DataBase API в Drupal 8

Опубликовано 2016.09.14 в разделе Drupal.

API в восьмёрке очень похоже на API.
  1. //не забываем
  2. use Drupal\Core\Database\Database;
  3. use Drupal\Core\Database\Query\Select;
  4.  
  5. //далее просто пример моего запроса
  6. $connection = Database::getConnection();
  7. $sql = new Select('node__field_tags', 'ft', $connection);
  8. $sql->condition('field_tags_target_id', $tids, 'in');
  9. $sql->leftJoin('taxonomy_term_field_data', 'tfd', 'tfd.tid=ft.field_tags_target_id');
  10. $sql->leftJoin('node_field_data','nfd', 'nfd.nid=ft.entity_id');
  11. $sql->fields('ft', array('field_tags_target_id', 'entity_id'));
  12. $sql->fields('tfd', array('name'));

db_merge Drupal 7

Опубликовано 2012.02.28 в разделе Drupal.

В Drupal 7 DataBase API есть замечательная функция-db_merge. Используя её можно легко вставить строку, или сделать update строки. Суть её работы заключается в том,что она ищет строку по заданному условию. И если находит-выполняет update, а если нет-то insert. Разберем её на примере. Допустим имеем таблицу 'peoples', в которой хранится список сотрудников. И нам нужно сотруднику с именем Jonson установить поле money на 10. А если этого сотрудника нет-завести его.

DataBase API Drupal 7.Работа с базой данных в седьмом друпале.

Опубликовано 2011.10.27 в разделе Drupal.

В седьмом друпале для работы с базой данных можно использовать специальное API. Его преимущества-это:простота написания кода,кроссплатформенность написаных запросов, сведение к минимуму ошибок. Из личного опыта:было написано порядка 10 сложных самописных модулей, написаных с использованием DataBase API Drupal 7, и работающих на MySql. После переноса сайта на MsSql, с использование технологии Microsoft Azure - потребовалось внести мелкие поправки всего в несколько запросов,а не переписывать по 10-20 запросов в каждом модуле.