12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <?php
- /**
- * @file
- * Helper module for the Content Translation tests.
- */
- use Drupal\Core\Access\AccessResult;
- use Drupal\Core\Entity\EntityInterface;
- use Drupal\Core\Form\FormStateInterface;
- use Drupal\Core\Session\AccountInterface;
- /**
- * Implements hook_entity_bundle_info_alter().
- */
- function content_translation_test_entity_bundle_info_alter(&$bundles) {
- // Store the initial status of the "translatable" property for the
- // "entity_test_mul" bundle.
- $translatable = !empty($bundles['entity_test_mul']['entity_test_mul']['translatable']);
- \Drupal::state()->set('content_translation_test.translatable', $translatable);
- // Make it translatable if Content Translation did not. This will make the
- // entity object translatable even if it is disabled in Content Translation
- // settings.
- if (!$translatable) {
- $bundles['entity_test_mul']['entity_test_mul']['translatable'] = TRUE;
- }
- }
- /**
- * Implements hook_entity_access().
- */
- function content_translation_test_entity_access(EntityInterface $entity, $operation, AccountInterface $account) {
- $access = \Drupal::state()->get('content_translation.entity_access.' . $entity->getEntityTypeId());
- if (!empty($access[$operation])) {
- return AccessResult::allowed();
- }
- else {
- return AccessResult::neutral();
- }
- }
- /**
- * Implements hook_form_BASE_FORM_ID_alter().
- *
- * Adds a textfield to node forms based on a request parameter.
- */
- function content_translation_test_form_node_form_alter(&$form, FormStateInterface $form_state, $form_id) {
- $langcode = $form_state->getFormObject()->getFormLangcode($form_state);
- if (in_array($langcode, ['en', 'fr']) && \Drupal::request()->get('test_field_only_en_fr')) {
- $form['test_field_only_en_fr'] = [
- '#type' => 'textfield',
- '#title' => 'Field only available on the english and french form',
- ];
- foreach (array_keys($form['actions']) as $action) {
- if ($action != 'preview' && isset($form['actions'][$action]['#type']) && $form['actions'][$action]['#type'] === 'submit') {
- $form['actions'][$action]['#submit'][] = 'content_translation_test_form_node_form_submit';
- }
- }
- }
- }
- /**
- * Form submission handler for custom field added based on a request parameter.
- *
- * @see content_translation_test_form_node_article_form_alter()
- */
- function content_translation_test_form_node_form_submit($form, FormStateInterface $form_state) {
- \Drupal::state()->set('test_field_only_en_fr', $form_state->getValue('test_field_only_en_fr'));
- }
|