imce_search-8.x-1.0/src/Plugin/ImcePlugin/Search.php

src/Plugin/ImcePlugin/Search.php
<?php

namespace Drupal\imce_search_plugin\Plugin\ImcePlugin;

use Drupal\imce\Imce;
use Drupal\imce\ImceFM;
use Drupal\imce\ImcePluginBase;

/**
 * Defines Imce Search plugin.
 *
 * @ImcePlugin(
 *   id = "search",
 *   label = "Search",
 *   operations = {
 *     "search" = "opSearch"
 *   }
 * )
 */
class Search extends ImcePluginBase {

  /**
   * {@inheritdoc}
   */
  public function buildPage(array &$page, ImceFM $fm) {
    $page['#attached']['library'][] = 'imce_search_plugin/drupal.imce.search';
  }

  /**
   * Operation handler: rename.
   */
  public function opSearch(ImceFM $fm) {
    $receivedData = $fm->request->request->all();
    $data = $receivedData['data'];
    $keywords = '';
    if (is_array($data) && isset($data['keywords'])) {
        $keywords = $data['keywords'];
    }
    $query = "SELECT file_managed.fid AS fid, file_managed.langcode AS file_managed_langcode, file_managed.filename AS file_managed_filename, file_managed.filemime AS file_managed_filemime, file_managed.filesize AS file_managed_filesize, file_managed.status AS file_managed_status, file_managed.created AS file_managed_created, file_managed.changed AS file_managed_changed, SUM(file_usage_file_managed.count) AS file_usage_file_managed_count, MIN(file_managed.fid) AS fid_1
    FROM
    file_managed file_managed
    LEFT JOIN file_usage file_usage_file_managed ON file_managed.fid = file_usage_file_managed.fid
    WHERE file_managed.filename LIKE '%$keywords%'
    AND file_managed.filemime LIKE '%image%'
    GROUP BY file_managed.fid, file_managed_langcode, file_managed_filename, file_managed_filemime, file_managed_filesize, file_managed_status, file_managed_created, file_managed_changed
    ORDER BY file_managed_changed DESC
    LIMIT 51 OFFSET 0";

    $result = \Drupal::database()->query($query);
    if ($result) {
      $files = [];
      foreach($result as $item) {
        $temp = [];
        $filename = $item->file_managed_filename;
        $file = \Drupal\file\Entity\File::load($item->fid);
        $path = $file->createFileUrl(FALSE);
        $temp['filename'] = $filename;
        $temp['url'] = $path;
        $files[] = $temp;
      }
    }
    $fm->addResponse('data', $files);
  }

}

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

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