web-dev-qa-db-fra.com

Changer le titre de certains paragraphes sous une forme

Picture 1

Picture 2

S'il vous plaît voir les images ci-jointes. Dans l'un de mes projets, j'ai une taxonomie, que les utilisateurs peuvent modifier et ajouter des données. Il a plusieurs onglets (voir image un) et chaque onglet dispose de plusieurs champs dans lesquels des paragraphes peuvent être ajoutés (voir l'image deux).

Nous avons différents types de paragraphes avec chaque titres différents. Notre problème est que nous voulons montrer à chaque paragraphe à l'utilisateur final (voir la deuxième image, le bouton "Metting (Decimaal) Toevoegen") avec un titre de "Metting" tout en maintenant les titres les plus descriptifs pour les administrateurs et les développeurs.

Une option modifie le titre de l'utilisateur final tout en maintenant le titre réel de la DB. L'autre changerait le titre réel dans la base de données et le modifierait pour les administrateurs (régler le nom du système comme titre).

et j'ai essayé toutes sortes de crochets mais je ne peux pas envelopper ma tête autour de ce problème.

Solution: En raison de la structure du site, je n'ai pas pu obtenir de solutions de crochet pour fonctionner. J'ai donc écrit mon propre module, qui attache le JavaScript ci-dessous au formulaire.

(function ($) {
  'use strict';

  Drupal.behaviors.test_form_styles = {
    attach: function (context, settings) {
      var regEx = /(?:meting)/i;
      var paragraphTitles = document.getElementsByClassName("paragraph-type-title");
      Object.keys(paragraphTitles).forEach(function (key) {
        if (regEx.test(paragraphTitles[key].innerHTML)){
          paragraphTitles[key].innerHTML = "Meting";
        }
      });

      var submitButtons = document.getElementsByClassName("field-add-more-submit");
      Object.keys(submitButtons).forEach(function (key) {
        if (regEx.test(submitButtons[key].value)) {
          submitButtons[key].value = "Meting toevoegen";
        }
      });
    }
  }
} (jQuery));
1
tail-my-error

Si vous souhaitez modifier le titre de certains paragraphes dans le formulaire:

/**
 * Implements hook_field_widget_WIDGET_TYPE_form_alter().
 */
function mymodule_field_widget_entity_reference_paragraphs_form_alter(&$element, &$form_state, $context) {
  if ($element['#paragraph_type'] == 'foo') {
    // insert more conditions
    $element['top']['paragraph_type_title']['info']['#markup'] = t('New title for paragraph type Foo');
  }
}
1
4k4