Comment changer le texte du bouton d'enregistrement du nœud?

10

J'ai trouvé une discussion avec quelques méthodes pour d6 ici http://drupal.org/node/344802 sur la façon de changer le texte du bouton "Enregistrer" du nœud en sg else.

Des conseils pour d7? Je préfère utiliser le formulaire api.

giorgio79
la source

Réponses:

19

vous pouvez utiliser le module de remplacement de chaîne ou utiliser le hook:

function yourmodule_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'name_of_form') {
    $form['actions']['submit']['#value'] = 'Your button text';
  }
}
uwe
la source
Merci, je veux seulement le changer pour un type de contenu, donc la substitution de chaîne n'est pas bonne. J'ai essayé le formulaire alter code mais aucun changement. J'ai vérifié le formulaire $ avec dpm, mais il n'a pas de tableau de soumission, seulement un #submit qui ressemble à sg else.
giorgio79
Cela a fonctionné pour moi. $ Form_id est unique au formulaire d'envoi de ce type de contenu, il devrait donc fonctionner.
AndrewMRiv
pour moi, c'était un $ form ['ajax-submit'] ['# value'] = 'xyz', mais j'utilise le module afb pour soumettre un nœud via un bloc.
SpiesInOrbit
6

Voici un exemple: J'ai créé un module appelé change_form_valueset l'ID de formulaire de mon type de contenu est content_type_test_node_form:

ce travail pour moi dans Drupal 7:

function change_form_values_form_alter(&$form, &$form_state, $form_id) {
    //dsm($form_id); // to see form ID
    if ($form_id == "content_type_test_node_form") {
    $form['actions']['submit']['#value'] = 'New button text';
    }
}

ce travail pour moi dans Drupal 6:

function change_form_values_form_alter(&$form, &$form_state, $form_id) {
    //dsm($form['form_id']['#id']);
    if ($form_id == "content_type_test_node_form") {
    $form['buttons']['submit']['#value'] = 'New button text';
    }
}

J'espère que les informations seront utiles.

cigotete
la source
0

J'ai trouvé l'excellent module d' édition des boutons Node pour cela et cela fonctionne vraiment notre boîte en utilisant admin. Voici un extrait à ce sujet de la page projet du module:

Il s'agit d'un petit module simple qui permet de modifier le texte des boutons "Enregistrer", "Aperçu" et "Supprimer" d'un formulaire de nœud.

qasimzee
la source
0

Pour Drupal7, c'est simple:

$form['buttons'] = array(
    '#type' => 'submit',
    '#value' => t('Your desire text here'),
    );

Sans fonctions supplémentaires ...

faucon
la source
Nah, par cette you'ld écraser le bouton entier et réinitialisation possible d' autres valeurs à l' origine donné ( #weight, #validate, #submit...). Vous feriez mieux de ne choisir que le #value, comme écrit dans les autres réponses ci-dessus.
leymannx
j'ai testé avec 3 formes de mon site et tout fonctionne bien ... je suppose que ce que vous avez dit pourrait être possible si vous utilisez une sorte de fonction de rappel ou une fonction ajax liée au bouton ....
Hawk