Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Anfängerfragen ›

[gelöst]Text eines Button ändern?

Eingetragen von ThuleNB (380)
am 27.11.2013 - 10:56 Uhr in
  • Anfängerfragen
  • Drupal 7.x oder neuer

Hallo Community,

ich würde gerne den "Speicher"-Button meiner Profil-Edit-Seite umbenennen in "Profil speichern". Das kann ich bestimmt einfach in der HTML-Datei ändern. Mein (Anfänger-)Problem ist allerdings, dass ich die entsprechende Datei nicht finde, in der ich das ändern kann. Kann mir hier jemand auf die Sprünge helfen?

Grüße
Thomas

‹ CKEditor wird bei bestimmten Inhaltstypen nicht angezeigt [gelöst]Text eines Button ändern? ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Der richtige Weg geht über

Eingetragen von wla (9461)
am 27.11.2013 - 11:18 Uhr

Der richtige Weg geht über ein eigenes Minimodul. Darin erstellst Du eine Funktion, die mittels hook_form_alter in dem entsprechenden Formular den Text des Submit-Buttons ersetzt. Am Drupal-Core wird nämlich nicht geändert und die Forms-API, die für die Erstellung von Formularen zuständig ist, gehört zum Core. Hier ist ein Beispiel.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

du wirst keine HTML-Datei finden

Eingetragen von ronald (3857)
am 27.11.2013 - 11:21 Uhr

schon gar keine, die einen Button enthält.

Drupal ist kein Webseitengenerator, sondern ein vollwertiges CMS, das von einer Datenbank gesteuert wird.

Alle Inhalte stehen in der Datenbank.

Ehe du solche Eingriffe machst, befasse die erst mit der grundsätzlichen Technologie, weil du ansonsten sehr schnell frustriert davon läuftst.

Dafür gibt es reichlich Videotutorials, teilweise auch in deutscher Sprache.

  • Anmelden oder Registrieren um Kommentare zu schreiben

zwei Zeilen reichen aus

Eingetragen von glycid (921)
am 27.11.2013 - 11:59 Uhr

Nix Frust, das ist ein Zweizeiler.

Du benutzt, wie von wla vorgeschlagen, hook_form_alter() in einem kleinen custom Modul, das Du "savebutton" nennst. Dafür erstellst Du in sites/default/modules oder sites/all/modules/custom ein Verzeichnis "savebutton". Hier kommen zwei Dateien rein, eine safebutton.info und eine safebutton.module.

Du musst nur die ID des Profil- Forms rausfinden. Dazu rufst Du einfach /edit/profile auf und guckst in den Quelltext. Bei mir ist die ID "edit-profile-user-profile-form", bei Dir mit großer Wahrscheinlichkeit auch.

Die savebutton.info Datei:

name = savebutton
description = ändert den Text des Save Buttons im Profil
core = 7.x
package = other
files[] = savebutton.module;

Die savebutton.module Datei:

<?php
/**
*Implements hook_form_alter
*/

function savebutton_form_alter(&$form,$form_state,$form_id = 'edit-profile-user-profile-form'){
    
$form['actions']['submit']['#value'] = t('Profile erstellen'); // 'Profile erstellen' in Deinen Text ändern
}
?>
// Das abschließende PHP Tag im Modul weglassen !!!

Nach dem Speichern der beiden Dateien im Verzeichnis "savebutton" kannst Du das Modul wie üblich über die Modulverwaltung aktivieren. Das ist alles.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das ist ja cool, hat

Eingetragen von ThuleNB (380)
am 27.11.2013 - 14:48 Uhr

Das ist ja cool, hat einwandfrei funktioniert! Mein ersten kleines Modul...:-)

Vielen Dank für die Hilfe!!! Insbesondere dir, glycid!!!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo glycid,jetzt ist mir

Eingetragen von ThuleNB (380)
am 28.11.2013 - 10:44 Uhr

Hallo glycid,

jetzt ist mir gerade aufgefallen, dass sämtliche "Speichern"-Button nun "Profil speichern" heißen. So sieht mein Modul aus:

<?php
/**
*Implements hook_form_alter
*/

function savebutton_form_alter(&$form,$form_state,$form_id = 'profile2-edit-main-form'){
    
$form['actions']['submit']['#value'] = t('Profil speichern'); // 'Profile erstellen' in Deinen Text ändern
}
?>

Zuerst dachte ich, dass ich die falsche Form-ID verwendet habe. Ich habe diese hier verwendet "profile2-edit-main-form", die laut Quelltext eigentlich aus stimmen sollte:

<form id="profile2-edit-main-form" accept-charset="UTF-8" method="post" action="/drupal722/profile-main/1/edit" enctype="multipart/form-data">
<div>
<div class="field-group-multipage-group-wrapper group-registrierung field-group-multipage-group">
<h2 class="element-invisible">Multipage</h2>
<div class="multipage-panes multipage-processed">
<div id="profile2_main_form_group_allgemeine_informationen" class="field-group-multipage multipage-closed form-wrapper multipage-pane">
<h2 class="multipage-pane-title">
<span>Allgemeine Informationen</span>

Hab ich da noch irgendwo einen Fehler drin?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Da ist ein Fehler im Code. Es

Eingetragen von wla (9461)
am 28.11.2013 - 11:00 Uhr

Da ist ein Fehler im Code. Es sollte heißen:

<?php
/**
*Implements hook_form_alter
*/

function savebutton_form_alter(&$form,$form_state,$form_id){
    if (
$form_id != 'profile2-edit-main-form') return;
    
$form['actions']['submit']['#value'] = t('Profil speichern'); // 'Profile erstellen' in Deinen Text ändern
}
?>

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Werner, danke für die

Eingetragen von ThuleNB (380)
am 28.11.2013 - 14:15 Uhr

Hallo Werner,

danke für die Hilfe.

Nachdem ich deinen Code eingefügt habe, sind nun wieder alle Button-Labels im Ursprungsstatus. Leider auch der auf der Profile-Edit-Seite.

Steckt da noch irgendwo der Fehlerteufel drin :)?

Gruß
Thomas

  • Anmelden oder Registrieren um Kommentare zu schreiben

Dann ist die Form-ID falsch

Eingetragen von wla (9461)
am 28.11.2013 - 14:44 Uhr

Dann ist die Form-ID falsch eingetragen. Darum habe ich mich jetzt nicht gekümmert. ich benutze zum Debuggen eine kleine Funktion, die Inhalte in eine Datei ausgibt.

<?
/*
* My tool to debug and develop the module software  :-)
* This will work on Mac OSX and other Unixes
*/
function wla_logging($text) {
$fp = fopen("/tmp/wla_log", "a+");
chmod ("/tmp/wla_log", 0777); // importand to read and clean with an editor
fputs($fp, $text, strlen($text));
fclose($fp);
}
// */
?>

Vor die If-Abfrage einfach die Zeile
<?
wla_logging("$form_id \n");
?>

einbauen, und die Funktion ans Ende des Moduls. Dann kannst Du in der Datei in tmp anschließend nachsehen, welche FormIDs angeliefert wurden. Wenn Du die richtige hast, den Code korrigieren. (Ist vermutlich ein Problem mit "-" und "_")

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ups, Pardon. Hätte es wohl

Eingetragen von glycid (921)
am 28.11.2013 - 14:44 Uhr

Ups, Pardon. Hätte es wohl testen sollen. So passt es:

function savebutton_form_alter(&$form, $form_state, $form_id){
// dpm ($form_id);
   if ($form_id == 'edit_profile_user_profile_form') {
     $form['actions']['submit']['#value'] = t('Profile speichern'); // 'Profile speichern' in Deinen Text ändern
   }
}

Drupal verarbeitet die form_id intern mit Unterstrichen!!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Klasse, jetzt funktioniert

Eingetragen von ThuleNB (380)
am 28.11.2013 - 15:10 Uhr

Klasse, jetzt funktioniert es. Herzlichen Dank an euch!!!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Rolle erstellen nicht zu finden
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
Weiter

Neue Kommentare

  • Rollen
    vor 16 Stunden 4 Minuten
  • Inzwischen sind wir bei
    vor 1 Woche 4 Tagen
  • Migrieren von D7 auf D8/ D10/ D11
    vor 1 Woche 5 Tagen
  • melde mich mal wieder, da ich
    vor 9 Wochen 2 Tagen
  • Hey danke
    vor 9 Wochen 2 Tagen
  • Update: jetzt gibt's ein
    vor 9 Wochen 3 Tagen
  • Hallo, im Prinzip habe ich
    vor 10 Wochen 1 Tag
  • Da scheint die Terminologie
    vor 10 Wochen 1 Tag
  • Kannst doch auch alles direkt
    vor 10 Wochen 5 Tagen
  • In der entsprechenden View
    vor 10 Wochen 5 Tagen

Statistik

Beiträge im Forum: 250237
Registrierte User: 20464

Neue User:

  • ocvk2810
  • marouane.blel
  • capilclinic

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 28 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association