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

Kein 'title' und kein 'body' bei eigenem Node

Eingetragen von haggis (35)
am 03.12.2008 - 22:38 Uhr in
  • Modul-Entwicklung
  • Drupal 6.x

Hallo,
ich habe ein Testmodul geschrieben, das einen eigenen Inhaltstyp erstellt. In hook_node_info() sind die Attribute 'has_title' und 'has_body' beide auf TRUE gesetzt - in der Datenbank ist es auch so angekommen. Wenn ich nun allerdings einen Inhalt dieses Typs erstellen möchte, dann werden mir alle andern Felder angezeigt, nur Title und Body nicht :(

Woran könnte das liegen? Habe den Code aus einem Buch und bin ihn schon zig mal durchgegangen. Habe nichts falsch abgetippt und der Code scheint dem entsprechenden Beispielcode von drupal.org sehr ähnlich:

function node_example_form(&$node) {
  $type = node_get_types('type', $node);

  if ($type->has_title) {
    $form['title'] = array(
      '#type' => 'textfield',
      '#title' => check_plain($type->title_label),
      '#required' => TRUE,
      '#default_value' => $node->title,
      '#weight' => -5
    );
  }

  if ($type->has_body) {
    $form['body_field'] = node_body_field($node, $type->body_label, $type->min_word_count);
  }

  // Bis hierher ist alles genau gleich, deswegen verstehe ich nicht warum title und body nicht
  // angezeigt werden.


  // Now we define the form elements specific to our node type.
  $form['color'] = array(
    '#type' => 'textfield',
    '#title' => t('Color'),
    '#default_value' => isset($node->color) ? $node->color : '',
  );
  $form['quantity'] = array(
    '#type' => 'textfield',
    '#title' => t('Quantity'),
    '#default_value' => isset($node->quantity) ? $node->quantity : 0,
    '#size' => 10,
    '#maxlength' => 10
  );

  return $form;
}

Wäre für jeden Tipp dankbar!

Grüße
Haggis

‹ Form API - options css class zuweisen Individueller Zeitstempel -> individuelles DB-Feld in User-Tabelle problematisch? ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Nicht, dass ich Entwickler

Eingetragen von s.Daniel (331)
am 04.12.2008 - 00:04 Uhr

Nicht, dass ich Entwickler wäre, aber das titel feld wird bei cck dann nicht angezeigt wenn es keinen Namen hat.
Evtl. hilft das. Stichwort title_label

Schau dir mal das hier dazu an: http://drupal.org/node/265028

  • Anmelden oder Registrieren um Kommentare zu schreiben

leider liegts daran auch

Eingetragen von haggis (35)
am 04.12.2008 - 13:51 Uhr

leider liegts daran auch nicht 'hook_node_info()' sieht wie folgt aus:

function node_example_node_info() {
  return array(
    'node_example' => array(
      'name' => t('Example node'),
      'module' => 'node_example',
      'description' => t("This is an example node type with a few fields."),
      'has_title' => TRUE,
      'title_label' => t('Example Title'),
      'has_body' => TRUE,
      'body_label' => t('Example Body'),
    )
  );
}

Mittlerweile denke ich eher, dass es an einer Einstellung in Drupal selbst klemmt.
Danke für den kurzen Hoffnungsschimmer ;)
Ah, der Node wird übrigens nicht mit CCK erstellt sondern komplett mit dem eigenen Modul.

Grüße

  • Anmelden oder Registrieren um Kommentare zu schreiben

Probiere mal alle optionalen Attribute wegzulassen

Eingetragen von quiptime (4972)
am 04.12.2008 - 14:05 Uhr

Probiere mal alle optionalen Attribute wegzulassen: 'has_title', 'title_label', 'has_body' und 'body_label'

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

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Schade, dann noch viel

Eingetragen von s.Daniel (331)
am 04.12.2008 - 14:05 Uhr

Schade, dann noch viel Erfolg.

Zitat:

Ah, der Node wird übrigens nicht mit CCK erstellt sondern komplett mit dem eigenen Modul.

Schon klar, nur hätte es ja sein können, dass die gleichen Symptome auf eine gleiche bzw. ähnliche Uhrsache zurück zu führen sind.
Du schreibst, dass Du den code aus einem Buch hast, lohnt evtl. noch der Verweis auf die online Version: http://api.drupal.org/api/file/developer/examples/node_example.module/6/...

  • Anmelden oder Registrieren um Kommentare zu schreiben

node_example_form() <- node_example ???

Eingetragen von quiptime (4972)
am 04.12.2008 - 14:09 Uhr

Du zitierst hiermit Den Code Deines Modules?

Zitat:

function node_example_form(&$node)

Ist das richtig so?

Wie ist den der Name Deines Modules? Lautet er "node_example"?

Nehmen wir an er lautet "my_super_node" ("my_super_node.module" und "my_super_node.info"). Dann muss in Deinem Code von "my_super_node.module" stehen:

<?php
function my_super_node_form(&$node)
?>

Damit ergibt sich auch:

<?php
function my_super_node_info()
?>

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

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

biography_form()

Eingetragen von haggis (35)
am 04.12.2008 - 14:47 Uhr
quiptime schrieb

Du zitierst hiermit Den Code Deines Modules?

Zitat:

function node_example_form(&$node)

Ist das richtig so?

Wie ist den der Name Deines Modules? Lautet er "node_example"?

Nein, ich hab aus dem drupal.org Code zitiert, weil der exakt gleich ist, bis auf die zusätzlichen Felder (die bei mir auch angezeigt werden). Von daher habe ich vorsichtshalber aus Copyrightgründen lieber auf das Zitat aus dem Buch verzichtet ;)
Mein Modul heißt 'biography' und die Dateien und Methoden entsprechend:

biography.info
biography.install
biography.module

  • biography_help($path, $arg)
  • biography_node_info()
  • biography_form(&$node)
quiptime schrieb

Probiere mal alle optionalen Attribute wegzulassen: 'has_title', 'title_label', 'has_body' und 'body_label'

Auch dann werden die Eingabefelder nicht angezeigt, obwohl in der DB in der Tabell 'nody_type' die Felder mit Standardwerten gefüllt und 'has_title/body'=1 gesetzt werden.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Mache doch mal einen Test

Eingetragen von quiptime (4972)
am 04.12.2008 - 15:17 Uhr

Dieser Konstrukt funktioniert?

<?php
$type
= node_get_types('type', $node);
 
  if (
$type->has_title) {
   
$form['title'] = array(
     
'#type' => 'textfield',
     
'#title' => check_plain($type->title_label),
     
'#required' => TRUE,
     
'#default_value' => $node->title,
     
'#weight' => -5
   
);
  }
?>

Mache doch mal einen Test:

<?php
$type
= node_get_types('type', $node);
 
  if (
$type->has_title) {
    print
'DEBUG title';
   
$form['title'] = array(
     
'#type' => 'textfield',
     
'#title' => check_plain($type->title_label),
     
'#required' => TRUE,
     
'#default_value' => $node->title,
     
'#weight' => -5
   
);
  }
?>

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

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

OMG!

Eingetragen von haggis (35)
am 04.12.2008 - 15:30 Uhr

Oh mein Gott...ich Dödel!
Das ist peinlich, sorry dass ich eure Zeit so verschwendet habe :(
Eigentlich sollte ich den Fehler lieber für mich behalten..aber naja, das bin ich euch schuldig:

<?php
$type
= node_get_types('type', $node);
?>

...und was hatte ich?

<?php
$type
= node_get_types('type', '$node');
?>

100 mal nachkontrolliert und 100 mal übersehen! Danke, dein Test hat mich darauf aufmerksam gemacht :)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wie Jetzt? Das funktioniert nun? Kann eigentlich nicht sein.

Eingetragen von quiptime (4972)
am 04.12.2008 - 15:44 Uhr

Wie Jetzt? Das funktioniert nun?

<?php
$type
= node_get_types('type', '$node');
?>

Kann eigentlich nicht sein.

In diesem Code wird '$node' NICHT als Variable verwendet. Wird dieser 2. Parameter beim Aufruf von node_get_types() verwendet MUSS er eine Variable sein. Siehe node_get_types.

node_get_types schrieb

$node A node object, array, or string that indicates the node type to return. Leave at default value (NULL) to return a list of all node types.

Es sei denn der String

<?php
'$node'
?>
wird von der Funktion node_get_types() ignoriert und dieser Parameter als NULL betrachtet. Dann kann man auch dies mal probieren:

<?php
$type
= node_get_types('type');
?>

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

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

$node

Eingetragen von stBorchert (6003)
am 04.12.2008 - 15:47 Uhr

Nee, er hatte erst '$node' und hat es jetzt geändert...

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

es scheint nun zu funktionieren

Eingetragen von quiptime (4972)
am 04.12.2008 - 15:57 Uhr
Zitat:

Nee, er hatte erst '$node' und hat es jetzt geändert...

Ok, Missverstaendnis meinerseits.

Obwohl im Eroeffnungspost des Thread eindeutig dies steht:

<?php
function node_example_form(&$node) {
 
$type = node_get_types('type', $node);
?>

Und das ist ja wohl NICHT "er hatte erst '$node'". Da finde ich den Verlauf der Posts schon eigenartig.

Aber egal, es scheint nun zu funktionieren.

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

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

ja, im Eröffnungspost steht

Eingetragen von haggis (35)
am 04.12.2008 - 18:36 Uhr

ja, im Eröffnungspost steht es richtig, WEIL:
ich dort von drupal.org zitiert habe, weil der Code genau der selbe ist wie meiner...ich aber lieber auf den drupal.org-Code zurückgegriffen habe um nicht alles aus dem Buch zitieren zu müssen. Ich bin meinen Code ja mehrmals durchgegangen und habe keinen Tippfehler gefunden...umso peinlicher, dass es sich doch als solcher herausgestellt hat und ich zudem noch von einer anderen Stelle gequotet habe.

Bevor noch weiteres Wirrwar gestiftet wird, wärs vielleicht besser das Topic zu schließen ;)

mit hängenden Hauptes,
LG Haggis

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hmm, warum nicht einfach das

Eingetragen von japanitrat (11)
am 20.12.2008 - 19:35 Uhr

Hmm, warum nicht einfach das Modul Automatic Nodetitles benutzen?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Soweit ich das richtig

Eingetragen von haggis (35)
am 20.12.2008 - 20:32 Uhr

Soweit ich das richtig verstehe, ist das Modul dazu da, den Titel zu verstecken. Mein Problem war allerdings, dass er gar nicht erst angezeigt wurde obwohl er es sollte.

Und da ich gerade am ausprobieren bin, wollte ich das auch lieber 'manuell' lösen als über ein fertiges Modul ;)

  • Anmelden oder Registrieren um Kommentare zu schreiben

ah, hatte ich falsch

Eingetragen von japanitrat (11)
am 20.12.2008 - 20:50 Uhr

ah, hatte ich falsch verstandn :x

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

Statistik

Beiträge im Forum: 250233
Registrierte User: 20460

Neue User:

  • Znogsnernoimb
  • ByteScrapers
  • Mroppoofpaync

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