You are here

consumers.module in Consumers 8

Module implementation file.

File

consumers.module
View source
<?php

/**
 * @file
 * Module implementation file.
 */
use Drupal\Core\Access\AccessResult;
use Drupal\Core\Entity\EntityTypeInterface;
use Drupal\Core\Render\Element;
use Drupal\Core\Session\AccountInterface;

/**
 * Implements hook_theme().
 */
function consumers_theme($existing, $type, $theme, $path) {
  return [
    'consumer' => [
      'render element' => 'elements',
    ],
  ];
}

/**
 * Prepares variables for consumer templates.
 *
 * Default template: consumer.html.twig.
 *
 * @param array $variables
 *   An associative array containing:
 *   - elements: An array of elements to display in view mode.
 *   - node: The node object.
 *   - view_mode: View mode; e.g., 'full', 'teaser', etc.
 */
function template_preprocess_consumer(array &$variables) {
  $variables['client'] = $variables['elements']['#consumer'];
  $variables['view_mode'] = $variables['elements']['#view_mode'];
  $variables['label'] = $variables['elements']['label'];
  $variables['description'] = $variables['elements']['description'];
  $variables['image'] = $variables['elements']['image'];

  // Helpful $content variable for templates.
  $variables += [
    'content' => [],
  ];
  foreach (Element::children($variables['elements']) as $key) {
    $variables['content'][$key] = $variables['elements'][$key];
  }
}

/**
 * Implements hook_jsonapi_ENTITY_TYPE_filter_access().
 */
function consumers_jsonapi_consumer_filter_access(EntityTypeInterface $entity_type, AccountInterface $account) {
  return [
    JSONAPI_FILTER_AMONG_OWN => AccessResult::allowedIfHasPermission($account, 'view own consumer entities'),
  ];
}

Functions

Namesort descending Description
consumers_jsonapi_consumer_filter_access Implements hook_jsonapi_ENTITY_TYPE_filter_access().
consumers_theme Implements hook_theme().
template_preprocess_consumer Prepares variables for consumer templates.