Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modul-Entwicklung ›

[gelöst]2 Fragen zu hook_form(type=>date_popup) und hook_view

Eingetragen von mheit (14)
am 14.11.2010 - 23:18 Uhr in
  • Modul-Entwicklung
  • Drupal 6.x

Hallo,
wie im Titel geschrieben hab ich zwei Fragen:

1) Ich nutze in einem eigenen node-Modul die Form (type=>date_popup) das funktioniert auch. Allerdings mit einer Einschränkung: Beim "Inhalt erstellen" der node wird das Datum im Datumsfeld nicht angezeigt. Sobald ich das Feld klicke, erscheint der Kalender und das Datum wird eingetragen, wenn ich es wähle (mit Return wird auch das aktuelle Datum eingetragen). Ich hätte es gern so, dass das aktuelle Datum auch beim Erstellen im Feld angezeigt und später übernommen wird. Nun ist es so, dass ich bereits ein default-Datum (#default_value => 'now') probiert habe, auch einfach #value => irgendwas, aber dann hab ich zwar Anzeige im Feld aber immer vom 01.01.2010.

Kann man das richten?

Der aktuelle Code:

$form['field_invoice_date'] = array(
    '#type' => 'date_popup',
        '#title' => 'Date',
        '#date_format' => $format,
        '#date_label_position' => 'within',
        '#date_timezone' => 'Europe/Berlin',
        '#date_increment' => 15,
        '#date_year_range' => '0:+2',
);

2) Ich versteh die hook_view absolut nicht. Kann mir da jemand helfen, bitte!
Mein Problem ist, dass ich momentan nur unformatierte Texte in der Ansicht habe, sprich alle Daten schön hintereinandergereiht ohne Titel. Nun hab ich das auch mit dem '#value' => theme('mymodule_myfield', $node->myfield) Eintrag aus der Api versucht, aber dann hab ich keine Anzeige; außer wenn ich 'page' als erstes Argument liefere. Dann wird aber - wie der Name sagt - eine ganze Seite im Node eingebunden.
Wie kann ich hook_view nutzen, um mir die Ausgabe des nodes etwa wie bei Eingeben anzeigen zu lassen. (node_api hab ich auch probiert, nüscht jutes)
Nachhilfe sehr, sehr willkommen!

Der aktuelle Code:

function rechnung_view($node, $teaser = FALSE, $page = FALSE) {
    $node = node_prepare($node, $teaser);
    $node->content['field_user'] = array(
        '#value' =>  $node->field_user,
        '#weight' => 1);
    $node->content['field_invoice_no'] = array(
        '#value' => $node->field_invoice_no,
        '#weight' => 49);
  return $node;
}

Danke schonmal!

Gruß
Michael

‹ In Ubercart->Warenkorb die Anzahl unveränderbar machen User bearbeiten: brauche vom jeweilegen Konto den Namen und die Mail-Werte ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

So richtig werde aus deinen

Eingetragen von wla (9461)
am 15.11.2010 - 00:17 Uhr

So richtig werde aus deinen Erklärungen nicht schlau aber vielleicht zwei Hinweise
Du mußt #default_value verwenden, sonst können die Werte im Formular nicht geändert werden.
Wenn #default_value => 'now' nicht wirkt versuche doch mal #default_value => time().
Der hook_view wird aufgerufen, wenn Dein Node angezeigt werden soll. Du mußt also die Ausgabe des Nodes codieren. Du solltest das Kapitel im Handbuch oder in dem Buch "Pro Drupal Development" noch mal gründlich durchlesen.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Okay, ich versuch noch mal

Eingetragen von mheit (14)
am 15.11.2010 - 07:36 Uhr

Okay, ich versuch noch mal bisschen anders zu erklären:

1) Wenn ich die node erstelle, wird nach den verschiedenen Eingaben gefragt. Unter anderem Datum. Das Datumsfeld ist dann immer leer (ohne default_vlaue), bis ich darauf klicke und der Kalender öffnet, dann sehe ich das aktuelle Datum im Kalender.
Wenn ich nun default_value im Modul angebe, ist das Feld Datum sofort beim Erstellen gefüllt. Allerdings mit dem dem Datum 01.01.2010, also nicht wie eingestellt mit aktuellem Datum.

Ich hätte gern Feld: sofort gefüllt mit aktuellem Datum. Klappt aber irgendwie nicht.

2)
Bei dem view auf die node werden mir die entsprechenden Infos unformatiert ausgegeben. Alle in einer Reihe und ohne Titel der Felder. Verstehe nicht warum und was ich ändern muss.

Gelesen hab ich übrigens bevor ich hier poste. Aber daraus werde ich eben nicht schlau.

Gruß
Michael

  • Anmelden oder Registrieren um Kommentare zu schreiben

1) Du hast offensichtlich

Eingetragen von wla (9461)
am 15.11.2010 - 17:49 Uhr

1) Du hast offensichtlich einen Fehler in der Variablen $format, die Du in der Form anziehst. Da ich nicht wußte, was Du da drin stehen hattest, habe ich diese Zeile auskommentiert. Wenn ich dann im Code habe '#default_value' => 'now', bekomme ich das aktuelle Datum und die Zeit gemäß Deiner Vorgabe von 15 Minuten Increments in den beiden Feldern angezeigt.
2) Wenn Du ein eigenes Node-Modul schreibst, bist Du auch für die Ausgabe verantwortlich und mußt den entsprechenden HTML-Code mit den Daten ausgeben. Das macht man üblicherweise in einer eigenen Theme-Funktion. Da packt man div-Tags etc mit Klassen dazu und evtl <br /> damit man das anschließend über CSS stylen kann bzw die Ausgabe schon mehrzeilig vorbereitet hat.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke für die Hilfe. 1) So

Eingetragen von mheit (14)
am 16.11.2010 - 09:37 Uhr

Danke für die Hilfe.

1) So hab noch rumprobiert. Du hast recht, so funktioniert es bei mir auch, wenn ich das Format auslasse.
Bei mir soll/ist $format = 'd. M. Y' sein, damit dann das Zeitfeld erst gar nicht angezeigt wird. Funktioniert auch, aber mit der eingangs erwähnten Einschränkung.

2) Tja, aller Anfang ist schwer. Hatte ich irgendwie glatt übersehen/ nicht bedacht, dass ich das Ganze selbst formatieren muss. Bin dem Irrtum aufgesessen, ich könnte die Titel der hook_form irgendwie auch im hook_view verwenden. Nach 2 stündiger Suche in der API hab ich es jetzt erstmal über die node-Template zurechtgebogen.

Gruß
Michael

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich weiß nicht was Du falsch

Eingetragen von wla (9461)
am 16.11.2010 - 10:24 Uhr

Ich weiß nicht was Du falsch machst, aber bei mir ist das Ergenis von:

    $form['field_invoice_date'] = array(
      '#type' => 'date_popup',
      '#title' => 'Date',
      '#date_format' => 'd. M. Y',
      '#date_label_position' => 'within',
      '#date_timezone' => 'Europe/Berlin',
//      '#date_increment' => 15,
      '#date_year_range' => '0:+2',
      '#default_value' => 'now',
  );

date field

Ok. Gerade gesehen, das Datum ist falsch sorry. Da bleibt wohl nur mit CSS ausblenden über die Id "edit-field-invoice-date-timeEntry-popup-1". Mußt Du mal nachsehen, ob die bei Dir identisch ist.
Beste Grüße
Werner

AnhangGröße
Screenshot_datefield.png 6.17 KB
  • Anmelden oder Registrieren um Kommentare zu schreiben

Dieses doofe Datum zermürbt

Eingetragen von mheit (14)
am 16.11.2010 - 12:52 Uhr

Dieses doofe Datum zermürbt mich so langsam ;)

Ich hab jetzt versucht, per phpAdmin den Feld-Typ auf Date zuändern, was auch klappt. Wird aber leider nicht von drupal .install gefeatured, nur datetime, also wieder db-Fehler bei der Modulinstallation. Na egal.

Also ich werd mal deinen Tipp versuchen, und das Feld einfach ausblenden. Bzw. bei der Ansicht muss das sowieso irgendwie gemacht werden, weil als Datum immer die Datetime ausgegeben wird. Das sieht schäbig aus.

Danke nochmal für die Hilfe. Meld mich, wenn alles geklappt hat.

Edit: Ja, containername ist der selbe. Mit visibility:hidden klappt das auch. So werd ich's jetzt machen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • 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
  • Welche KI verwendet ihr?
Weiter

Neue Kommentare

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

Statistik

Beiträge im Forum: 250235
Registrierte User: 20462

Neue User:

  • marouane.blel
  • capilclinic
  • Quabzibboter

» 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 16 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