handler_access_callback config. so the user * has access to the handler. * * @see \Drupal\views\Tests\Handler\HandlerTest */ function views_test_data_handler_test_access_callback() { return \Drupal::config('views_test_data.tests')->get('handler_access_callback'); } /** * Access callback with an argument for the generic handler test. * * @param bool $argument * A parameter to test that an argument got passed. * * @return bool * Returns views_test_data.tests->handler_access_callback_argument, so the * use has access to the handler. * * @see \Drupal\views\Tests\Handler\HandlerTest */ function views_test_data_handler_test_access_callback_argument($argument = FALSE) { // Check the argument to be sure that access arguments are passed into the // callback. if ($argument) { return \Drupal::config('views_test_data.tests')->get('handler_access_callback_argument'); } else { return FALSE; } } /** * Implements hook_preprocess_HOOK() for views table templates. */ function views_test_data_preprocess_views_view_table(&$variables) { if ($variables['view']->storage->id() == 'test_view_render') { $views_render_test = \Drupal::state()->get('views_render.test'); $views_render_test++; \Drupal::state()->set('views_render.test', $views_render_test); } } /** * Prepares variables for the mapping row style test templates. * * Default template: views-view-mapping-test.html.twig. * * @param array $variables * An associative array containing: * - rows: A list of view rows. * - options: Various view options, including the row style mapping. * - view: The view object. */ function template_preprocess_views_view_mapping_test(&$variables) { $variables['element'] = []; foreach ($variables['rows'] as $delta => $row) { $fields = []; foreach ($variables['options']['mapping'] as $type => $field_names) { if (!is_array($field_names)) { $field_names = [$field_names]; } foreach ($field_names as $field_name) { if ($value = $variables['view']->style_plugin->getField($delta, $field_name)) { $fields[$type . '-' . $field_name] = $type . ':' . $value; } } } // If there are no fields in this row, skip to the next one. if (empty($fields)) { continue; } // Build a container for the row. $variables['element'][$delta] = [ '#type' => 'container', '#attributes' => [ 'class' => [ 'views-row-mapping-test', ], ], ]; // Add each field to the row. foreach ($fields as $key => $render) { $variables['element'][$delta][$key] = [ '#children' => $render, '#type' => 'container', '#attributes' => [ 'class' => [ $key, ], ], ]; } } } /** * Test pre_render function. * * @param array $element * A render array * * @return array * The changed render array. */ function views_test_data_test_pre_render_function($element) { $element['#markup'] = 'views_test_data_test_pre_render_function executed'; return $element; } /** * Implements hook_form_BASE_FORM_ID_alter(). */ function views_test_data_form_views_form_test_form_multiple_default_alter(&$form, FormStateInterface $form_state, $form_id) { drupal_set_message(t('Test base form ID with Views forms and arguments.')); }