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

Create Node bearbeiten

Eingetragen von das-schaf (8)
am 24.01.2008 - 14:59 Uhr in
  • Views
  • Drupal 5.x oder neuer

Hallo,
ich habe folgende Frage, ich habe mit cck einen Node-Type erstellt. Wenn ich jetzt auf "Create My Node" gehe und einen neuen node meines Typs erstellen will soll im ersten Textfeld das ich angelegt habe bereits ein Wert stehn, dieser wert ist aber jedes mal anders, ist quasi eine fortlaufende nummer die ich aus der datenbank hole.

Nun meine Frage, wo, d.h. in welcher Datei muss ich php-code reinschreiben damit das geht?

tobi

‹ Felder zuordnen datefield als exposed filter mit dropdown menü ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Du kannst diesen Feld (wenn

Eingetragen von pebosi (2645)
am 24.01.2008 - 15:41 Uhr

Du kannst diesen Feld (wenn mit CCK angelegt) einen Standardwert geben, dieser kann auch per PHP irgendwo her geholt werden.

gruß pebosi

  • Anmelden oder Registrieren um Kommentare zu schreiben

Re: Create Node bearbeiten

Eingetragen von traxer (1009)
am 24.01.2008 - 16:02 Uhr
pebosi schrieb

Du kannst diesen Feld (wenn mit CCK angelegt) einen Standardwert geben, dieser kann auch per PHP irgendwo her geholt werden.

Ich versuche, möglichst wenig Funktionalität in der Datenbank zu halten. Quelltext hat ein höheres Wiederverwendungspotential als Datenbankeinträge.

Außerdem kann man sich mit dem Eingabeformat "PHP" ganz schnell die Seite zerschießen und man muß manuell in die Datenbank eingreifen um die Seite wieder zum Laufen zu bekommen.

Unter Anderem deshalb ist dieses Eingabeformat in Drupal 6 in ein eigenes Modul ausgelagert worden, das standardmäßig nicht aktiviert ist.

das-schaf schrieb

Nun meine Frage, wo, d.h. in welcher Datei muss ich php-code reinschreiben damit das geht?

Du kannst also schon PHP. Das ist gut, dann ist der Rest auch nicht schwer. Schreibe ein Modul:

  1. Erzeuge ein neues Verzeichnis in sites/default/modules (falls das modules Vezeichnis nicht existiert, dann musst du es natürlich ebenfalls anlegen). Das Verzeichnis sollte nach deinem Modul benannt sein, ich nehme foo als Beispiel. Alle Dateien die zu deinem Modul gehören, kommen in dieses Verzeichnis.
  2. Erzeuge eine Datei foo.info. Dort schreibst du rein was im Artikel Writing .info files (Drupal 5.x) steht.
  3. Erzeuge eine Datei foo.module
  4. In der Datei foo.module definierst du eine Funktion
    <?php
    /**
    * Implementation of hook_form_alter().
    */
    function foo_form_alter($form_id, &$form) {
      if (
    $form_id != 'node-form') {
        return;
      }
     
    $node = $form['#node'];
     
    drupal_set_message("Node type is " . $node->type);
    }
    ?>
  5. Aktiviere dein Modul
  6. Gehe zu dem Formular, mit dem du einen neuen Node deines Typs anlegst. Du solltest eine Nachricht sehen, die dir den Node Typ verräht. Ich nehme als Beispiel bar.
  7. Ersetze den Aufruf von drupal_set_message durch
    <?php
     
    if ($node->type != 'bar') {
        return;
      }
     
    drupal_set_message(
       
    '<pre>'
         
    . highlight_string('<?php '.var_export($form,true), true) .
       
    '</pre>'
     
    );
    ?>
  8. Gehe erneut zu dem Formular, mit dem du einen neuen Node deines Typs anlegst. Du solltest eine Nachricht sehen, die dir die Struktur des Formulars anzeigt.
  9. Identifiziere in der Struktur das Feld, in dem du den Eintrag vornehmen willst. Ich nehme als Beispiel das Feld baz
  10. Ersetze den Aufruf von drupal_set_message durch
    <?php
     
    if (! empty($form['baz']['#default_value'])) {
        return;
      }
     
    // TODO: hole den Wert aus der Datenbank und speichere ihn in der Variablen $value
     
    $form['baz']['#default_value'] = $value;
    ?>

--
XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Cool, danke, ...

Eingetragen von das-schaf (8)
am 24.01.2008 - 16:26 Uhr

Vielen Dank erstmal, hab mir schon sowas ähnliches gedacht, Module hab ich ja auch schon geschrieben. Ich verstehe eben noch nicht so ganz die zusammenhänge in Drupal. Ich hätte ja auch eine Extra Modul schreiben können in dem ich ein form erzeuge und das dann alles in die datenbank speichern. Aber ich möchte eben gerne die Drupalfunktionalität nutzt, d.h. z.b. cck, was eigentlich ein cooles Modul ist.

Aber du kannst mir dann ja auch bestimmt beantworten wie ich aus meinem Node-type das "Titel" und "Body"-Feld rausbekomme? Brauch ich nicht, ich brauch nur meine eigenen Felder, ...

mfg
tobi

  • Anmelden oder Registrieren um Kommentare zu schreiben

Re: Cool, danke, ...

Eingetragen von traxer (1009)
am 24.01.2008 - 17:08 Uhr
das-schaf schrieb

Ich verstehe eben noch nicht so ganz die zusammenhänge in Drupal.

Tja, es dauert halt manchmal lange, den kürzesten Weg zu finden; und noch länger, den schönsten Weg zu finden.

das-schaf schrieb

... wie ich aus meinem Node-type das "Titel" ... -Feld rausbekomme?

Überhaupt nicht, da hängt zu viel Drupal-Internes dran. Ich würde den Titel in hook_form_alter in ein value-Feld ändern und mit "New Node" vorbelegen und in hook_nodeapi($op='save') auf "Node $nid" ändern.

das-schaf schrieb

... wie ich aus meinem Node-type das ... "Body"-Feld rausbekomme?

admin/content/types/<typ> im Abschnitt "Beitragsformular".

--
XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Dnake, hat alles geklappt, ...

Eingetragen von das-schaf (8)
am 25.01.2008 - 01:44 Uhr

Also erstmal Danke, hat gleich funktioniert, aber jetzt hab ich wieder das nächste Problem, oder besser gesagt, eine Frage: Ich hab das date Modul installiert und ein Datefield angelegt. SO, ich will das Datum in folgendem Format anzeigen lassen: 02/2008 also Monat/Jahr. Wenn man einen neuen node anlegt soll dann das aktuelle datum schon drin stehn. Weisst du vielleicht ne Lösung?

  • 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 6 Tagen
  • Hey danke
    vor 2 Wochen 14 Stunden
  • Update: jetzt gibt's ein
    vor 2 Wochen 1 Tag
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 5 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 5 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 3 Tagen
  • In der entsprechenden View
    vor 3 Wochen 3 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 3 Tagen
  • gelöst
    vor 5 Wochen 6 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 14 Stunden

Statistik

Beiträge im Forum: 250233
Registrierte User: 20453

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