Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Benutzerhandbuch › Drupal 6 Module › Site Module (Mini Module) ›

Namen von Submitbutton ändern, form_alter (Drupal 5)

Eingetragen von quiptime (4972) am 01.04.2008 - 13:37 Uhr in
  • Drupal 5.x

Mitunter möchte man die Bezeichnung eines Submitbuttons ändern. Z. Bsp. heißt ein Button "Speichern" obwohl er "Suchen" heißen sollte.

Ich erkläre die Möglichkeit der Änderung der Buttonbezeichnung an einem konkreten Beispiel, einer Suche in der Hilfe einer Website.

Ein View mit einem exposed Filter, um in einem bestimmten Bereich (die Hilfeseiten) Inhalte zu suchen. Der im Views-Formular gebildete Button hat zunächst die Bezeichnung "Speichern". Die soll in "Suchen" geändert werden.

Codeschnipsel aus dem HTML-Code des Formulares des fertigen Views, also der Suchseite:

<form action="http://www.hundelobby-dresden-ev.de/help/search"  accept-charset="UTF-8" method="get" id="views-filters">

Bei diesem Code interessiert uns id="views-filters". Ich komme weiter unten darauf zurück.

Minimodul erstellen

Ein Minimodul wird erstellt. Dafür wird folgendes angelegt:

  1. Ordner mit Name "help_search"
  2. im Ordner eine Datei: Name: "help_search.info"
  3. im Ordner eine Datei: Name: "help_search.module"

 

Inhalt der Datei "help_search.info":

; $Id: legal_button.info,v 1.0 2008/03/27 21:03:18 quiptime Exp $
name = "Help Search Button"
description = "Defines the submit button for the help search."
version = "5.x"
package = "Mini modules"
dependencies = views search

; Information added by quiptime.com
version = "5.x-1.0"

Mit package = "Mini modules" erzeugt man in der Moduladministration einen extra Bereich für seine Minimodule.
Die dependencies erklären sich selbst: Das Minimodul macht ohne die dabei genannten Module keinen Sinn

 

Inhalt der Datei "help_search.module":

<?php
/* $Id: help_search.module,v 1.0 2008/04/01 13:38:22 quiptime Exp $ */
function help_search_form_alter($form_id, &$form) {
  if(
$form_id == 'views_filters') {
   
$form['submit']['#value'] = t('Search');
  }
}
?>

Kleine Fallstricke

Es gibt kleine Fallen, die bei Nichtbeachtung dazu führen das die Buttonänderung nicht funktioniert:

  • Im HTML Quellcode hat die Form ID die Bezeichnung "views-filters". Also mit Bindestrich.
    <form action="http://www.hundelobby-dresden-ev.de/help/search"  accept-charset="UTF-8" method="get" id="views-filters">

    Aber Minimodul wird als Form ID "views_filters" eingetragen. Also mit Unterstrich.
    function help_search_form_alter($form_id, &$form)
  • Der Name des Minimodules und der Name der Funktion in der Minimodul-Datei müssen konform gehen.
    D. bedeutet., wenn das Minimodul den Namen "help_search" hat dann muss die Funktion im Modulcode "function help_search_form_alter" heißen.

Minimodul aktivieren

Hat man das Minimodul erstell wird der Ordner "help_search" in den Bereich der Module von Drupal hochgeladen. Das neue Minimodul wird in der Administration /admin/build/modules aktiviert. Der Button hat nun die Bezeichnung "Suchen".

Besonderheit bei Views Buttons

Die Form ID's von Views haben alle die Form ID "views-filters"/"views_filters". Um nun mit einem einzelnen Minimodul nicht die Buttons aller Views zu ändern kann die Funktion im Minimodul derart erweitert werden das man das Minimodul nur auf einzelne Views anwendet.

<?php
/* $Id: help_search.module,v 1.0 2008/04/01 13:38:22 quiptime Exp $ */
function help_search_form_alter($form_id, &$form) {
  if(
$form_id == 'views_filters' && $form['#view_name'] == 'Name_des_View' ) {
   
$form['submit']['#value'] = t('Search');
  }
}
?>

Der "Name_des_View" ist exakt der Name wie er im View in der Basiskonfiguration eingetragen ist.

‹ Mini Modul mit Drupal 6, andere Syntax gegenüber Drupal 5 nach oben Passwort- und E-Mail-Feld im Userprofil-Formular ausblenden ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Klasse Sache

Eingetragen von eigentor (1424)
am 11.04.2008 - 10:21 Uhr

Werde es bei Gelegenheit ausprobieren - das finde ich sehr praktisch.
Zu erwähnen ist, daß man Buttonbezeichnungen natürlich auch in der Lokalisierung ändern kann, dann heissen allerdings plötzlich alle z.B. "Absenden" statt speichern, was selten erwünscht ist.

Drupal - the Linux of the Web

  • Anmelden oder Registrieren um Kommentare zu schreiben

ID des Submit

Eingetragen von kidata (17)
am 16.07.2008 - 10:18 Uhr

Hab das soweit übernommen, das Modul heißt nur "buttons_senden" wie man an der Funktion sehen kann:

function buttons_senden_form_alter($form_id, &$form) {
  if($form_id == 'webform_client_form_14') {
    $form['submit']['#value'] = t('Absenden');
  }
}

Dabei wird aber nicht die Value des Submit verändert sondern nur der Text vor den Button geschrieben:
Absenden<input type="submit" name="op" id="edit-submitbutton" value="Speichern"  class="form-submit" />

Das Problem in diesem Fall: die ID des Submits lautet "submitbutton", also muss der korrekte Code lauten:

$form['submitbutton']['#value'] = t('Absenden');

also im Zweifelsfall hilft ein print_r($form) innerhalb der Funktion durchaus mal weiter.

  • Anmelden oder Registrieren um Kommentare zu schreiben

eigentor schrieb Werde es

Eingetragen von aschiwi (1113)
am 22.09.2008 - 09:45 Uhr
eigentor schrieb

Werde es bei Gelegenheit ausprobieren - das finde ich sehr praktisch.
Zu erwähnen ist, daß man Buttonbezeichnungen natürlich auch in der Lokalisierung ändern kann, dann heissen allerdings plötzlich alle z.B. "Absenden" statt speichern, was selten erwünscht ist.

Drupal - the Linux of the Web

Die Lokalisierung ändert aber den Text für alle Buttons des Typs Submit. Der Code hier ist wohl dafür gedacht auch einzelne Buttons zu ändern, also z.B. kann in Nodes "speichern" bleiben, aber bei Kontaktformularen "senden" oder eben bei nem Views Filter "suchen".

  • Anmelden oder Registrieren um Kommentare zu schreiben

Was tut es?

Eingetragen von Neuling08 (22)
am 12.11.2008 - 03:22 Uhr

Hallo,
ich habe leider nicht sehr viel Ahnung von Drupal und PHP.
Habe eben dieses Minimodul erstellt, aber es scheint nicht zu funktionieren. Was macht es denn?
Habe ein Formular erstellt (mit angegebener id) und das Modul ein- und ausgeschaltet. Aber es gibt keine Veränderungen...
Hoffe mir kann das jemand erklären. Danke! :-)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hast du es mit Drupal 5

Eingetragen von aschiwi (1113)
am 12.11.2008 - 09:53 Uhr

Hast du es mit Drupal 5 probiert? Im Text steht, dass der Text des "submit"-Button eines Views Exposed Filters geändert wird. Statt "speichern" wird da nun "suchen" stehen. Damit du die Änderung deines Moduls siehst, brauchst du also schon mal einen View mit Exposed Filter. Außerdem muss das Modul "Search" aktiviert werden, sonst macht das Minimodul keinen Sinn :-)

Wenn du dich genau an die Anleitung hältst, wird es sicher klappen. Wenn nicht, beschreibe genau deine Schritte und poste den von dir verwendeten Code, dann kriegen wir den Fehler schon raus ;-)

Und vielleicht noch als Lesetipp: http://dug-hannover.org/content/treffen-vom-11-november-2008-modulsystem..., Das ist die Präsentation, die derhasi gestern beim DUG Hannover Treffen gehalten hat.

-------------------------------------------------
I don't know the question but the answer is Views

  • Anmelden oder Registrieren um Kommentare zu schreiben

Minimodul, form_alter, Formulare pimpen

Eingetragen von quiptime (4972)
am 28.11.2008 - 02:41 Uhr

Ergänzende und weiterführende Tipps um Formulare zu gestalten und/oder zu ändern

finden sich hier: Da beisst die Maus keinen Faden ab.

Auf jeden Fall sollte man immer die Form API (FAPI) von Drupal zu rate ziehen wenn man mit Formularen arbeitet.

FAPI Drupal 5
FAPI Drupal 6
FAPI Drupal 7

-------------
quiptime

Nur tote Fische schwimmen mit dem Strom.

XING

  • 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

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

Statistik

Beiträge im Forum: 250236
Registrierte User: 20463

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 35 Gäste online.

DrupalCenter durchsuchen:

Benutzerhandbuch

  • FAQ - Häufig gestellte Fragen.
  • Links & Downloads
  • Über Drupalcenter.de und das deutschsprachige Benutzerhandbuch
  • Über Drupal
  • Einsteiger
  • Fortgeschrittene
  • Entwicklung von Modulen und Themes
  • Drupalcenters Community
  • Drupal 7 Video-Trainings (Deutsch)
  • Drupal-Testumgebung erstellen
  • Drupal 6 Module
    • Kern-Module
    • Administration
    • Anzeige von Inhalten
    • Benachrichtigungen
    • Benutzer (Zugriff/Authentifizierung)
    • Benutzerverwaltung
    • Bewertung (Rating, Voting usw.)
    • Community
    • Content Construction Kit ( CCK )
    • Dateiverwaltung
    • E-Commerce
    • E-Mail
    • Entwickler
    • Events
    • Geodaten
    • Import/Export
    • Inhalt
    • Integration anderer PHP-Systeme
    • Javascript - JQuery - AJAX -AHAH
    • Kategorien (Taxonomy)
    • Medien
    • Mehrsprachigkeit
    • Organic Groups
    • Paging
    • Sicherheit
    • Statistik
    • Suche
    • Syndication
    • Themes
    • Views (deutsch: Ansichten)
    • WYSIWYG / Filter
    • Weitere Module
    • Werbung (Einbindung von AdSense & Co.)
    • Site Module (Mini Module)
      • Autor-Information in allen Node-Formularen aufgeklappt
      • Mini Modul mit Drupal 6, andere Syntax gegenüber Drupal 5
      • Namen von Submitbutton ändern, form_alter (Drupal 5)
      • Passwort- und E-Mail-Feld im Userprofil-Formular ausblenden
      • Select Listen im Profil ändern
      • Signature-Feld im Userprofil-Formular ausblenden
  • Drupal 7 Module
  • Drupal Screencasts auf deutsch
  • Archiv

Das Copyright des deutschsprachigen Drupal-Benutzerhandbuches unterliegt den jeweiligen Autoren. Übersetzungen des englischsprachigen Drupal-Benutzerhandbuches unterliegen der Creative Commons License, Attribution-ShareAlike 2.0.

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