Помогите переделать код под Drupal 8

Аватар пользователя sashken sashken 14 февраля 2019 в 9:40

Помогите переделать код под Drupal 8:

<?php
function MYMODULE_views_query_alter(&$view, &$query) {
  if (
$view->name == 'statji' OR $view->name == 'istorii') {
    if (
$view->args[1] == 'all') {
    foreach (
$query->where as &$where_group) {
      foreach (
$where_group['conditions'] as &$condition) {
        if (
$condition['value'] === 'all') {
          
$condition['value'] = NULL;
          
$condition['operator'] = 'IS NULL';
        }
      }
    }
    }

    if (

$view->args[3] == 'best') {
      
$query->orderby[0]['field'] = 'count';
      
$query->orderby[0]['direction'] = 'DESC';
    }
  }
}
?>

Лучший ответ

Аватар пользователя sashken sashken 14 февраля 2019 в 19:58

Вот так стало работать как надо:

<?php
function MYMODULE_views_query_alter($view$query) {
  if (
$view->id() == 'statji' OR $view->id() == 'istorii') {
    if (
$view->args[1] == 'all') {
      
$query->addWhere(0'taxonomy_term_field_data_node__field_rubrika.tid'NULL'IS_NULL');
    }
  }
}
?>

Пока только с этим не разобрался еще:

<?php
if ($view->args[3] == 'best') {
  
$query->orderby[0]['field'] = 'count';
  
$query->orderby[0]['direction'] = 'DESC';
}
?>

Комментарии

Аватар пользователя sashken sashken 14 февраля 2019 в 19:58

Вот так стало работать как надо:

<?php
function MYMODULE_views_query_alter($view$query) {
  if (
$view->id() == 'statji' OR $view->id() == 'istorii') {
    if (
$view->args[1] == 'all') {
      
$query->addWhere(0'taxonomy_term_field_data_node__field_rubrika.tid'NULL'IS_NULL');
    }
  }
}
?>

Пока только с этим не разобрался еще:

<?php
if ($view->args[3] == 'best') {
  
$query->orderby[0]['field'] = 'count';
  
$query->orderby[0]['direction'] = 'DESC';
}
?>