graphql_compose-1.0.0-beta20/modules/graphql_compose_views/graphql_compose_views.module

modules/graphql_compose_views/graphql_compose_views.module
<?php

/**
 * @file
 * GraphQL Compose Views module file.
 */

declare(strict_types=1);

use Drupal\Core\Field\FieldDefinitionInterface;
use Drupal\Core\Form\FormStateInterface;

/**
 * Implements hook_views_invalidate_cache().
 */
function graphql_compose_views_views_invalidate_cache(): void {
  _graphql_compose_cache_flush();
}

/**
 * Implements hook_graphql_compose_field_type_form_alter().
 */
function graphql_compose_views_graphql_compose_field_type_form_alter(array &$form, FormStateInterface $form_state, FieldDefinitionInterface $field, array $settings,): void {

  $moduleHandler = \Drupal::service('module_handler');
  if (!$moduleHandler->moduleExists('viewfield')) {
    return;
  }

  if ($field->getType() === 'viewfield') {
    $form['viewfield_query'] = [
      '#type' => 'checkbox',
      '#title' => t('Embed view as GraphQL query'),
      '#description' => t('Enable a proxy view query to embed any referenced GraphQL view.'),
      '#default_value' => $settings['viewfield_query'] ?? FALSE,
      '#element_validate' => ['::validateNullable'],
    ];
  }
}

/**
 * Implements hook_config_schema_info_alter().
 */
function graphql_compose_views_config_schema_info_alter(&$definitions) {
  $definitions['graphql_compose.field.*.*.*']['mapping']['viewfield_query'] = [
    'type' => 'boolean',
    'label' => t('Embed view as GraphQL query'),
  ];
}

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

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