trinion_zadachnik-1.0.x-dev/src/Controller/StartTaskAutocomplete.php

src/Controller/StartTaskAutocomplete.php
<?php
namespace Drupal\trinion_zadachnik\Controller;

use Drupal\Component\Utility\Unicode;
use Drupal\node\Entity\Node;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;

class StartTaskAutocomplete {
  public function autocomplete(Request $request) {
    $query = \Drupal::entityQuery('node')
      ->condition('type', 'zadacha')
      ->condition('field_tz_otvetstvennyy', \Drupal::currentUser()->id())
      ->condition('field_tz_status_zadachi', \Drupal::config('trinion_zadachnik.settings')->get('status_zakrita_tid'), '!=')
      ->condition('field_tz_tema', $request->get('q'), 'CONTAINS');
    $query->range(0, 10);
    $query->sort('nid', 'DESC');
    $res = $query->accessCheck()->execute();
    $matches = [];
    foreach (Node::loadMultiple($res) as $task) {
      $label = '#' . $task->label() . '. ' . Unicode::truncate($task->get('field_tz_tema')->getString(), 50, TRUE, TRUE);
      $value = $label . ' (' . $task->id() . ')';
      $matches[] = ['value' => $value, 'label' => $label];
    }
    return new JsonResponse($matches);
  }
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc