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

[Gelöst] Printer, e-mail and PDF - Pflichtfeld entfernen, aber wie?

Eingetragen von krapofni21 (84)
am 26.01.2012 - 14:10 Uhr in
  • Anfängerfragen
  • Drupal 6.x

Hallo,

ich arbeite mit Printer, e-mail and PDF versions. Im Formual für das versenden einer Seite ist das Feld Messages als Pflichtfeld angegeben. Weiß jemand wie und on, wo ich das rausnehmen kann?

Danke vorab.
Manuela

PS: hab das Problem selber lösen können. Für alle die mal an der gleichen Stellen sind. Im Modul gibt es die Datei print_mail.inc. Dort einfach an der ensprechenden Stelle das " '#required' => TRUE, " rausnehmen. Dann geht es.

‹ Drupal Upload/Download von Windows-Client aus Modul Calendar, Anzeige von unterschiedlichen Inhalten möglich? ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

was machst du denn, wenn z.B.

Eingetragen von torfnase (1525)
am 27.01.2012 - 17:21 Uhr

was machst du denn, wenn z.B. das Modul in einem halben Jahr oder so aktualisiert wird.
Dann wird deine Änderung überschrieben und du fragst dich...

1. Wieso klappt das nicht mehr, warum ist das wieder ein Pfichtfeld ?
2. Wie habe ich seinerzeit das Problem gelöst ?

nun eine "richtige" Lösung:
nutze den form_alter - Hook um die Form (bei dir die print_mail_form) in der template.php zu überschreiben und setze dort das #required auf false.

und schon bist du davor gefeit, falls es mal ein Update des Moduls gibt.

nur so ein Tipp für dich
Nie also absolut nie die Modul-Dateien irgendwie verändern, sondern immer die Funktionen z.B. in der template.php überschreiben.
Das erspart dir eine Menge Ärger, denn wenn du das nicht tust, dann wird die Seite über kurz oder lang unwartbar (tolles Wort, nicht wahr)

lieben Gruß
Berthold Lausch

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das verstehe ich nicht

Eingetragen von krapofni21 (84)
am 30.01.2012 - 10:23 Uhr

Das verstehe ich nicht ganz...ich habe nur eine template-Datei. print.tpl und da kann ich nur angeben, welcher Inhalt rausgeworfen werden soll??

Eine andere Frage dazu: Ich möchte wenn ich im Contentbereich bin eine anderen Inhalt sowohl für Print als auch Mail versenden haben. Als z.B. in einem View. Sprich aktuell ist für Print und mail senden eingestellt print Content. Ich möchte aber beim Mailversand nicht den gesamten Conten node-types versenden sondern nur einen Teil davon.

ist es möglich für Print und Mail verschiedene Templates zu definieren? Wenn ja, wo mache ich das? Ist es auch möglci für bestimmte Node-Typs und Views unterschiedlichen Contenr für print und Mail zu definieren?

Vielleicht sollte ich kurz erklären was ich machen möchte. Ich habe nen Contenttyp angelegt. Dort gebe ich verschiedene daten ein. rausgeworfen wird ein Datenblatt. Dieses möchte ich per Mail versenden und auch drucken können, jedoch nicht mit dem gleichen Inhalt der angezeigt wird, sondern nur mit einem Teil davon.

Zu den Contentyp habe ich dann einen View. Dort sind alle Datensätze in einer Tabellen. Diese möchte ich wiederrum ebenfalls versenden oder Drucken können. Allerdings sort mit dem gesamten Inhalt.

Vielleicht weiß jemand wie das gehen könnte. Oder es gibt sogar ein Modul dafür???

  • Anmelden oder Registrieren um Kommentare zu schreiben

Noch mal zum Ausgangspunkt.

Eingetragen von wla (9461)
am 30.01.2012 - 10:55 Uhr

Noch mal zum Ausgangspunkt. In vom System oder Modulen gelieferten Formularen wird nie direkt geändert. Das macht man in einem eigenen (Mini-) Modul, indem man unter Benutzung des hook_form_alter den Form-Array vor der Ausgabe des Formulars ändert. Das ist der innerhalb von Drupal vorgesehene Weg.
Für die weiteren Fragen machst Du besser einen neuen Thread auf, den nach dem [gelöst] werden sich nicht mehr so viele hierher verirren.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

das heißt ich müsste dazu ein

Eingetragen von krapofni21 (84)
am 30.01.2012 - 11:07 Uhr

das heißt ich müsste dazu ein eigens Modul schreiben?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Und dann die nächste Frage.

Eingetragen von krapofni21 (84)
am 30.01.2012 - 11:12 Uhr

Und dann die nächste Frage. Falls ja, wie komme ich dazu, dass dieses Modul dann aufgerufen wird und mir die entsprechende Ausgabe bringt?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja, Du mußt ein eigenes Modul

Eingetragen von wla (9461)
am 30.01.2012 - 11:20 Uhr

Ja, Du mußt ein eigenes Modul schreiben. Durch das Implementieren von hook_form_alter (das Wort hook wird dabei durch den Namen Deines Moduls ersetzt) registriert sich Dein Modul in Drupal. Vor der Ausgabe eines Formulars ruft Drupal jetzt alle Module auf, die hook_form_alter implementiert haben und übergibt die Form-ID und das Form-Array. Die Module prüfen dann, ob es sich um ein zu änderndes Formular handelt und liefern das geänderte Form-Array zurück. Erst danach wird das Formular gezeigt.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

mmh...dann wird das wohl so

Eingetragen von krapofni21 (84)
am 30.01.2012 - 12:12 Uhr

mmh...dann wird das wohl so nix, hab so was noch nie gemacht und seh da bisher nicht durch :-(

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hier mal ein Beispiel für

Eingetragen von wla (9461)
am 30.01.2012 - 12:32 Uhr

Hier mal ein Beispiel für Änderungen am Search-Block unter Benutzung der Funktion hook_form_FORM_ID_alter(). Das Modul heißt weitblick_formchanges und das ist die Datei weitblick_formchanges.module. Es wird der Submit-Button in ein Bild geändert.

<?php
/**
*    Implementation of hook_form_FORM_ID_alter().
*    Chages to the search block form
*/
// ID = search_block_form
function weitblick_formchanges_form_search_block_form_alter (&$form, &$form_state) {
 
  $form['submit'] = array(
    '#type'   => 'image_button',
    '#name'   => 'go',
    '#id'     => 'go',
    '#value'  => t(' '),
    '#src'    => drupal_get_path('theme', 'weitblick') . '/images/btn_form_go.jpg',
  );

}

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

wäre das dann so richtig ?

Eingetragen von krapofni21 (84)
am 30.01.2012 - 14:09 Uhr

wäre das dann so richtig ? Und die Datei lege ich dann im entsprechnden´Ordner bei Prints ab oder muss ich einen neuen Ordner erstellen?

<?php
/**
* Implementation of hook_form_FORM_ID_alter().
* Changes to the message block form
*/
// ID = print_mail_form
function sending_form_search_block_form_alter (&$form, &$form_state) {

$form['txt_message'] = array(
'#type' => 'textarea',
'#title' => t('Your message'),
'#rows' => 6,
'#required' => False,
);

}

  • Anmelden oder Registrieren um Kommentare zu schreiben

Du legst einen neuen Ordner

Eingetragen von wla (9461)
am 30.01.2012 - 14:43 Uhr

Du legst einen neuen Ordner an unter sites/all/modules. Ich nenne den jetzt mal meinmodul. In dieses Ordner kommen die Dateien meinmodul.info und meinmodul.module. Wenn die Form, die Du ändern willst jetzt die ID print_mail_form hat, dann muß die Funktion im .module-File meinmodul_form_print_mail_form_alter heißen. Wie das Textfeld heißt, habe ich jetzt nicht nachgesehen, aber gehen wird mal davon aus, daß deine Angabe "txt_message" richtig ist. Dann brauchst Du nur noch eine Zeile Code in der Funktion

<?php
function meinmodul_form_print_mail_form_alter (&$form, &$form_state) {
  $form['txt_message']['#required'] = False;
}
Schließlich willst Du ja nur diesen einen Wert ändern. In meinem Beispiel von oben habe ich den Typ des Buttons geändert, dann muß ich alle benötigten Felder aufführen.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

oh Werner, da habe ich dir ja

Eingetragen von torfnase (1525)
am 30.01.2012 - 15:12 Uhr

oh Werner, da habe ich dir ja was angezettelt :-)

liebe Grüße
Berthold

  • Anmelden oder Registrieren um Kommentare zu schreiben

So hab das jetzt mal

Eingetragen von krapofni21 (84)
am 30.01.2012 - 15:39 Uhr

So hab das jetzt mal probiert.

1) ordner angelegt: sendingdogs
2) Info-Datei: sendingdogs.info
Mit Inhalt:

name = "Sending Dogs"
description = "Send the Doge-Page per E-Mail."
version = "6.x"
package = "Mini modules"

3) Modul-Datei: sendingdogs.module
Mit Inhalte:
<?php
function sendingdogs_form_print_mail_form_alter (&$form, &$form_state) {
$form['txt_message']['#required'] = False;
}

Aber leider finktioniert das nicht???

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hast Du denn Dein neues Modul

Eingetragen von wla (9461)
am 30.01.2012 - 15:51 Uhr

Hast Du denn Dein neues Modul auch aktiviert? Das muß wie jedes andere Modul auch behandelt werden.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Kann das Modul nicht aktiviere, da er mir anzeigt:

Eingetragen von krapofni21 (84)
am 30.01.2012 - 16:00 Uhr

Kann das Modul nicht aktiviere, da er mir anzeigt: This version is incompatible with the 6.22 version of Drupal core.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Dann ist Dein .info-File

Eingetragen von wla (9461)
am 30.01.2012 - 16:12 Uhr

Dann ist Dein .info-File fehlerhaft. Das muß nicht version = "6.x" heißen sondern core = 6.x
Bei mir sieht der funktionierende .info-File so aus

; $Id$
name = weitblick_formchanges
description = Change certain forms via hook_form_FORMID_alter
package = wla
core = 6.x

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wau, ich bin begeistert. Es

Eingetragen von krapofni21 (84)
am 31.01.2012 - 09:23 Uhr

Wau, ich bin begeistert. Es hat tatsächlich geklapp und ich hab ne Menge dazu gelernt.

Nun noch die Frage:

Ich will ja nun, wenn das Formular abgeschickt wird einen speziellen Inhalt von mir definiert versenden. Aktuell greift das Modul ka auch die tpl zu, wo auch Druckfunktion, PDF betroffen sind. In der .tpl ist pint = content definiert. Für die Druckfunktion und Pdf soll das auch so bleiben. Allerdings möchte ich für einen bestimmten Content-Typ den Inhalt nicht als kompletten Conten sondern nur ein Teil des Contens versenden.
Das betrifft allerdings auch nicht alle Contentypeb. Sondern ich möchte das nur für einen bestimmten tun.

Gibt es dazu ein Modul oder müsste ich da was eigenes schreiben. Ist wahrscheinlich sehr schwer umzusetzen?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe im Modul

Eingetragen von wla (9461)
am 31.01.2012 - 12:13 Uhr

Ich habe im Modul nachgesehen, und Du kannst speziell für das Print-Modul ein Node-Template aufsetzen, das dann print_node.tpl.php heißen muß. Es geht sogar noch spezieller mit print_node_html.[node-type].tpl.php wobei Du [node-type] durch den speziellen Namen des Node-Types (Maschinen-Namen) ersetzen mußt. In jedem Fall handelt es sich um einen Node-Template, indem Du den kompletten Node vorliegen hast und damit selbst bestimmen kannst, was Du ausgeben willst. Du mußt Dich dazu aber in die Logik eines Node-Templates erst einarbeiten.
Ein Modul für Deine Wünsche durfte es kaum geben.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke Dir, dann schaue ich

Eingetragen von krapofni21 (84)
am 31.01.2012 - 13:08 Uhr

Danke Dir, dann schaue ich mir mal die Logik dazu an und falls ich nicht weiterkomme muss ich eben fragen :-)

Grüße,
Manuela

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • 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
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Woche 4 Tagen
  • Hey danke
    vor 1 Woche 5 Tagen
  • Update: jetzt gibt's ein
    vor 1 Woche 6 Tagen
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 3 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 3 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 1 Tag
  • In der entsprechenden View
    vor 3 Wochen 1 Tag
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 1 Tag
  • gelöst
    vor 5 Wochen 4 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 5 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20451

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» 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 1 Benutzer und 19 Gäste online.

Benutzer online

  • C_Logemann

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