Node per Modul aktualisieren und Image upload
am 26.10.2013 - 10:17 Uhr in
Hallo Forum,
mit meinem aktuellen Modul kann ich Werte eines Nodes aktuallisieren. Das ganze geschieht über eine get-URL. Nun besitzt dieser Node aber ein Image, welches ich auch erneuern möchte. Kann ich den ganzen Spaß irgendwie auf Post umstellen? Und wie lösche ich das vorhandene Image und ersetze es mit einem neuen? das ist mir nicht ganz schlüssig.
mit besten Grüßen
Andy
Code:
function nodetest_menu() {
$items=array();
$items['weatherupdate']=array(
'title'=>'WeatherUpdate',
'description'=>'Modul zum Updaten eines Wetternodes',
'access callback'=>TRUE,
'page callback'=>'nodetest_function_nodeupdate',
);
return $items;
}
function nodetest_function_nodeupdate($nodeid,$temp,$humidity,$speed,$direction,$rain,$lon,$lat,$sat,$acc){
echo "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN''http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>";
echo "<html xmlns='http://www.w3.org/1999/xhtml' lang='de'>";
echo "<head>";
echo "<meta http-equiv='content-type' content='text/html; charset=utf-8' />";
echo "<title>WeatherUpdate</title>";
echo "</head>";
echo "<body>";
echo "<p>Modulaufruf erfolgreich</p>";
echo "</body>";
echo "</html>";
$node = node_load($nodeid);
$node->field_temprature['und'][0]['value'] = $temp;
$node->field_humidity['und'][0]['value'] = $humidity;
$node->field_windspeed['und'][0]['value'] = $speed;
$node->field_winddirection['und'][0]['value'] = $direction;
node_save($node);- Anmelden oder Registrieren um Kommentare zu schreiben

Warum willst Du das über Code
am 26.10.2013 - 21:18 Uhr
Warum willst Du das über Code lösen? Wenn das eine Übungsaufgabe ist, dann mußt Du Dich auch in das File-Management von Drupal einarbeiten und Dir die dazu notwendigen API-Funktionen raus suchen. Wenn es nur darum geht den Node zu editieren nimm die URL deine.domain/node/id-des-nodes-hier/edit.
Beste Grüße
Werner
Ich glaube ich habe mit FIle
am 27.10.2013 - 09:50 Uhr
Ich glaube ich habe mit FIle API auch schon die richtige Stelle gefunden. Ich mache das ganze damit meine Wetterstation den entsprechenden Node automatisiert aktualisieren kann*G*.
mit besten Grüßen Andy
Hi, ich tue mich leider immer
am 02.11.2013 - 17:45 Uhr
Hi, ich tue mich leider immer noch sehr schwer Daten per post einzubinden. Wie komme ich an die Postparameter heran?
Wenn ich obige Funktion um $_POST["Temperatur"] erweitere bekomme ich lediglich den Hinweis:
Notice: Undefined index: temperatur in nodetest_function_nodeupdate();
Aber irgendwie muss ich Post-Daten doch auch verwerten können, mir fehlt lediglich ein Hinweis.
mit besten Grüßen
Andy
Sorrie,mit $_REQUEST["name"]
am 03.11.2013 - 10:13 Uhr
Sorrie,
mit $_REQUEST["name"] komme ich natürlich an die entsprechende Variable. Aber auch mit $_POST klappt es, habe mich wahrscheinlich irgendwo vertippt gehabt.
[gelöst]Jetzt stehe ich doch auf dem
am 03.11.2013 - 11:20 Uhr
Der Fileupload kann dann im Menü so aussehen:
$node = node_load($nodeid);$image = file_get_contents($_FILES["file"]["tmp_name"]);
$file = file_save_data($image, 'public://' . 'weather.jpg', FILE_EXISTS_REPLACE);
$node->field_weatherimage = array(LANGUAGE_NONE => array('0' => (array)$file));
wichtig ist, das hier zusätzlich ein Test nach der Art des Dateninputs erfolgt, nicht dass sonst noch andere Dateien auf den Server gelangen. Und unnötig einfach muss es der bösen Macht da draussen ja nicht gemacht werden.
mit besten Grüßen
Andy