Wie die Werte des Node Formulars manuell beeinflussen ?
am 30.07.2008 - 16:34 Uhr in
Ich habe mir sämtliche APIs durchgelesen(form_api node_api usw.) aber habe niht rausgefunden, wie ich die Werte eines Formulares beeinflussen kann.
Mit folgendem Code habe ich in der node_edit.tpl.php alle verfügbaren Arrays:
<?php
print "<code>"; print_r(array_values($form));print "</code>";
?>Mit
<?php
print drupal_render($form);
?>Das ist alles schön und gut, was ich aber nicht geschafft habe, sind die Arrays zu ändern.
Ich habe mich an folgende Api gehalten:
forms_api: http://api.drupal.org/api/file/developer/topics/forms_api.html/6
Der Code sieht ungefähr so aus:
<?php
$form['foo'] = array(
'#type' => 'textfield',
'#title' => t('bar'),
'#default_value' => $object['foo'],
'#size' => 60,
'#maxlength' => 64,
'#description' => t('baz'),
);
?>Genau so etwas möchte ich machen, aber es funktioniert nicht, ich weiß auch nicht wo ich den Code hinschreiben muss usw. Ich habe es in der template.php - Datei ausprobiert, aber das was ich machen wollte zeigte keine Wirkung. Ich will '#default_value' des Feldes ändern, aber es hat sich nichts geändert.
Dann habe ich versucht den Code in die node_edit.tpl.php - Datei zu schreiben, aber das Feld ist sogar ganz verschwunden.
Kann mir vielleicht jemand weiterhelfen, wie genau ich mit den Arrays umgehen muss, um die Werte manuell setzen zu können?
- Anmelden oder Registrieren um Kommentare zu schreiben

Verstehe nicht 100% whin Du
am 30.07.2008 - 16:41 Uhr
Verstehe nicht 100% whin Du willst, aber
Code in die node_edit.tpl.php
ist definitiv falsch, wenn dann node-edit.tpl.php wobei dann auch noch die Frage ist, ob Drupal da einfach so drauf reagiert! was die Node angeht musste ich nämlich seinerzeit in der template.php auch noch die vars abfischen, aber das muss bei Deiner Sache nicht zwingend notwendig sein.
Immer schön ein paar Debug-Meldungen einbauen, damit Du auch weisst ob Du an der richtigen Datei schraubst!
-------------------
gruss
drupalino
Also ich habe in der
am 30.07.2008 - 16:49 Uhr
Also ich habe in der template-datei folgenden Code eingebaut:
// Add Form Start...........jghyde..if ((arg(0) == 'node') && (arg(1) == 'add') && (arg(2) == 'review')){
function phptemplate_node_form($form) {
return _phptemplate_callback('node_edit', array('user' => $user, 'form' => $form));
}
}
// Add Form End.................
// Edit Form Start...........Dublin Drupaller..
if ((arg(0) == 'node') && (arg(2) == 'edit')){
$node = node_load(array('nid' => arg(1)));
function phptemplate_node_form($form) {
return _phptemplate_callback('node_edit', array('user' => $user, 'form' => $form));
}
}
// Edit Form End........
Mit diesem Code funktioniert das definitiv!
Aber was verstehst du nicht?
Ich habe zum Beispiel ein Titelfeld. Da ich das Titelfeld nicht über admin/content/types/artikel/fields ändern kann, sondern nur selbst erstellte CCK-Felder, will ich den Standard-Wert(#default_value) des Titels ändern!
ich habe den auch schon gefunden, ich glaube im node.module, da steht node->title als default value.
Mein Ziel ist es mit case 'add' den default_value in einen statischen Text zu ändern.
Wenn man also ein Node erstellt, sieht man diesen Standardwert, und beim Bearbeiten den Titel des Nodes.