drupal_execute Fatal error: Unsupported operand types in form.inc on line 522
Eingetragen von mab (54)
am 09.09.2010 - 11:13 Uhr in
am 09.09.2010 - 11:13 Uhr in
Hallo,
ich versuche per Script und drupal_execute nodes zu generieren:
<?php
$node = new stdClass();
$node->type = 'vehicle';
$form_state = array();
$form_state['values']['title'] = "Title";
$form_state['values']['body'] = 'This is the body text!';
$form_state['values']['name'] = 'batch';
$form_state['values']['op'] = t('Save');
// create the usernode
drupal_execute('vehicle_node_form', $form_state, $node);
?>
Ich erhalte nun jedes Mal den Fehler:
Fatal error: Unsupported operand types in ....\form.inc on line 522
Kennt jmd diesen Fehler? Es läuft drupal 6.1.9 und PHP 5.2.9.
Vielen dank,
mab
P.S.:node_safe möchte ich nicht verwenden, weil ich damit keine CCK-fields speichern kann, selbst wenn die Felder korrekt angegeben sind -...[0]['value']
PHP downgraden ist eigentlich auch nicht die gewünschte Lösung.
- Anmelden oder Registrieren um Kommentare zu schreiben
Ich hab dazu mal ein Tutorial
am 09.09.2010 - 13:30 Uhr
Ich hab dazu mal ein Tutorial geschrieben. Siehe hier: http://www.sense-design.de/tutorial/drupal-6-programmatisches-anlegen-ei...
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
hey. danke für deine antwort,
am 09.09.2010 - 14:20 Uhr
hey. danke für deine antwort, aber die meldung kommt immer noch:
Fatal error: Unsupported operand types in .....\form.inc
Poste mal den Quelltext den
am 09.09.2010 - 14:29 Uhr
Poste mal den Quelltext den Du jetzt verwendest.
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
ich hab fast deinen code
am 09.09.2010 - 14:36 Uhr
der fehler taucht in verbindung mit drupal_execute auf.
ich hab fast deinen code verwendet:
<?php
// definition of the form_id (page is the node type)
$form_id = 'vehicle_node_form';
module_load_include('inc', 'node', 'node.pages');
// set the node type
$node = array('type' => 'vehicle');
// provide data for node
$node_data = array(
'values' => array(
'title' => $modell,
'name' => $GLOBALS['user']->name,
'uid' => $GLOBALS['user']->uid,
'body' => 'node body',
'field_vehicle_kategorie' => array( // for cck textfields
0 => array(
'value' => 'text in cck field 1',
),
),
'status' => 1,
'promote' => 0,
'op' => t('Save'),
),
);
// save node with drupal_execute
drupal_execute($form_id, $node_data, (object)$node);
?>
wär cool, wenn du den fehler findest. steh voll auf der leitung...
Poste mal die Zeile Deiner
am 09.09.2010 - 15:02 Uhr
Poste mal die Zeile Deiner form.inc wo der Fehler auftritt, damit wir hier über die gleiche Zeile reden und eventuelle Log Einträge aus der Logübersicht.
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Den Logfiles konnte ich
am 13.09.2010 - 07:35 Uhr
Den Logfiles konnte ich nichts besonderes entnehmen.
In der form.inc steht folgendes:
$form += _element_info('form');
Ich habe es dann mit folgendem Code versucht:
$form = array_merge(_element_info('form'),$form);
Hat leider beim ersten Versuch noch nichts gebracht. Vermutlich muss ich dann doch die PHP-Version wechseln oder hast du noch eine Idee? Danke...
Ich hab wirklich alles
am 14.09.2010 - 14:29 Uhr
Ich hab wirklich alles versucht, sogar ein Standard-Coding hilft nicht weiter. Drupal läuft doch mit PHP-Version 5.2.9?
$form_state = array();
module_load_include('inc', 'node', 'node.pages');
$node = array('type' => 'story');
$form_state['values']['title'] = 'My node';
$form_state['values']['body'] = 'This is the body text!';
$form_state['values']['name'] = 'batch';
$form_state['values']['op'] = t('Save');
drupal_execute('story_node_form', $form_state, (object)$node);
Kann jmd. weiterhelfen??
Besten Dank!
Also, ich habe das Ganze mal
am 16.09.2010 - 14:06 Uhr
Also,
ich habe das Ganze mal auf einer sauberen Installation ausprobiert und bei mir läuft dies ohne Probleme.
Was hast Du an Zusatzmodulen installiert und mit welchen Feldern ist der Inhaltstyp erweitert?
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
hallo, danke für deine
am 16.09.2010 - 14:47 Uhr
hallo,
danke für deine mühe.
habe nur das admin_menu modul installiert, ansonsten eine ganz saubere installation mit xampp 1.7.2 und 1.7.1 also mit PHP 5.3 und 5.2.9 getestet.
<?php
// definition of the form_id (page is the node type)
$form_id = 'page_node_form';
// include node.pages for functionality
module_load_include('inc', 'node', 'node.pages');
// set the node type
$node = array('type' => 'page');
// provide data for node
$node_data = array(
'values' => array(
'title' => 'node title',
'name' => 'admin',
'uid' => 3,//$GLOBALS['user']->uid,
'body' => 'node body',
'status' => 1,
'promote' => 0,
'op' => t('Save'),
),
);
// save node with drupal_execute
drupal_execute($form_id, $node_data, (object)$node);
?>
Ich vermute es liegt daran:
<?php
$cdir = getcwd();
chdir('D:/xampp/htdocs/testsite');
include_once('./includes/bootstrap.inc');
include_once('./includes/form.inc');
include_once('./modules/node/content_types.inc');
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
//bootstrap_invoke_all('init');
chdir($cdir);
?>
Das Script liegt im Ordner testsite/create_node. Welche Daten muss ich denn laden, damit ich die Befehle korrekt ausführen kann?
Danke,
mab
Au weia, wieso schreibst Du
am 16.09.2010 - 14:57 Uhr
Au weia,
wieso schreibst Du das nicht alles in ein Modul, das würde die ganze Sache doch deutlich vereinfachen?
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
ja, du hast recht. bin aber
am 16.09.2010 - 15:57 Uhr
ja, du hast recht. bin aber noch nicht so tief in der modul-entwicklung...aber der import funktioniert nun;)
hast du mir noch einen kleinen tipp....
function _WHATEVER_page() wird immer beim aufrufen der entsprechenden seite ausgeführt. wie erreiche, dass z.B. funktion A beim ausführen von submit button 1 ausgeführt wird und funktion B beim ausführen von submit button 2.
besser wäre noch folgendes
- Import []
- Löschen []
Wenn die checkbox bei Import aktiviert ist, wird funktion A ausgeführt, wenn Löschen aktiviert ist, dann funktion B.
danke für die hilfe!
Wenn Du mir mehr Details dazu
am 16.09.2010 - 16:04 Uhr
Wenn Du mir mehr Details dazu schickst, dann mach ich Dir da grad nen Modul von, wo Du Deine Programmierung rein packen kannst!
Was hälste davon, hab heut Abend nen bissl Langeweile ... ;)
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Das wär cool, danke für das
am 16.09.2010 - 16:14 Uhr
Das wär cool, danke für das Angebot.
Im Prinzip brauch ich nur eine Seite mit der Möglichkeit verschiedene Operationen auszuführen. Diese Operationen sind alle untereinander aufgelistet mit einer Checkbox:
- Einfügen
- Anzeigen
- Löschen
Je nachdem was aktiviert wurde, wird die dazugehörige Funktion ausgeführt. Eigentlich recht simple, wenn man weiß, wie die form hooks etc. heißen.
Danke für deine Hilfe.
mab
Also die eine Funktion
am 16.09.2010 - 16:30 Uhr
Also die eine Funktion importiert die Nodes, die Andere zeigt sie an und die letzte löscht alle wieder?
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Anbei das entsprechende
am 16.09.2010 - 19:43 Uhr
Anbei das entsprechende Modul, du findest den Menüeintrag unter Inhaltsverwaltung -> Importieren
Bitte nicht auf Produktivumgebung testen, vorher Datenbank BackUp machen.
Der Inhaltstyp ist auf "page" gesetzt, den müsstest Du dir entsprechend anpassen, folgenden Zeilen sind betroffen:
import.module: 46, 52, 79, 97
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
besten dank für deine
am 17.09.2010 - 07:05 Uhr
besten dank für deine unterstützung. du hast mir mit dem code einen guten einblick gegeben. kannst du ein buch empfehlen, wo speziell auf die modul-entwicklung eingegangen wird?
http://www.drupalcenter.de/ha
am 17.09.2010 - 07:39 Uhr
http://www.drupalcenter.de/handbuch/17962
Ist für den Einstieg ziemlich gut geeignet.
http://www.drupalcenter.de/handbuch/buecherecke
Drupalcenter Bücherecke
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.