<?php
/***************************************************************************
* InfoFrame (image generator for digital picture frames)
* Copyright (C) 2009 Tobias Kolb
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see http://www.gnu.org/licenses/
***************************************************************************/
class PaketPlugin implements IPlugin
{
private $dbconn = NULL;
private $config = NULL;
public function __construct($dbconn, $config) {
$this->dbconn = $dbconn;
$this->config = $config;
}
public function doUpdate() {
// hole Dienstleister aus der Datenbank
$query = "SELECT * FROM if_paket";
$result = mysql_query($query, $this->dbconn)or die(mysql_error());
if (mysql_num_rows($result) == 0) return;
while ($row = mysql_fetch_assoc($result)) {
$id = $row['ID'];
$trackingnumber = $row['paketnummer'];
if ($row['dienst'] == 'DHL') {
list($stat_txt, $datum, $bild, $id, $posi, $shedule) = $this->dhlTracking($trackingnumber, $id);
} elseif($row['dienst'] == 'GLS') {
list($stat_txt, $datum, $bild, $id, $posi, $shedule) = $this->glsTracking($trackingnumber, $id);
} elseif($row['dienst'] == 'hermes') {
list($stat_txt, $datum, $bild, $id, $posi, $shedule) = $this->hermesTracking($trackingnumber, $id);
} elseif($row['dienst'] == 'UPS') {
list($stat_txt, $datum, $bild, $id, $posi, $shedule) = $this->upsTracking($trackingnumber, $id);
} elseif($row['dienst'] == 'DPD') {
list($stat_txt, $datum, $bild, $id, $posi, $shedule) = $this->dpdTracking($trackingnumber, $id);
} elseif($row['dienst'] == 'TNT') {
return;
}
$this->addPaket($stat_txt, $datum, $bild, $id, $posi, $shedule);
}
mysql_free_result($result);
}
public function doOutput($image, $style, $updateData, &$yoffset) {
if ($updateData)
$this->doUpdate();
$query = "SELECT * FROM `if_paket`";
$result = mysql_query($query, $this->dbconn);
if (mysql_num_rows($result) == 0) return;
// define styles
$opt_header = array(
'width' => imagesx($image)-290,
'line_height' => 18,
'align' => ALIGN_LEFT
);
$opt_entry = array(
'width' => imagesx($image)-290,
'height' => 12,
'line_height' => 12,
'align' => ALIGN_LEFT,
'word_wrap_hyphen' => '...',
'aggressive_word_wrap' => TRUE,
);
/********************************************* Roundboxtrans funktioniert, fuer upload daektiviert************************
$entrylimit = $this->config['max_displayed_trackings'];
$db_zeilenc = mysql_num_rows($result);
$db_zeilen = $db_zeilenc;
if ($entrylimit < $db_zeilenc) $db_zeilen = $entrylimit+1;
// if ($row['liefertermin']) $db_zeilen = $db_zeilen+1;
$ba = 8;
$ue_hoehe = 18;
$inhalt_hoehe = 18;
if ( (mysql_num_rows($result) <= 2) && ($yoffset <= (imagesy($image)-60)) ) $inhalt_hoehe = 60;
roundbox_trans($image, 0, 0, 0, 0, 0, 0, $ba, $db_zeilen, $ue_hoehe, $inhalt_hoehe, $yoffset);
******************************************************************************************************************************/
// print header
$text = 'Paketverfolgung';
imagettftextboxopt($image, 18, 0, 40, $yoffset, $style['textcolor'], $style['font'], $text, $opt_header);
$icon = ImageCreateFromPNG ( 'resources/icons/tracking.png' );
ImageCopy($image, $icon, 8, $yoffset-3, 0, 0, imagesx($icon), imagesy($icon));
ImageDestroy($icon);
$yoffset += 25;
// print entries
$counter = 0;
while ($row = mysql_fetch_assoc($result)) {
$counter++;
$rest = (mysql_num_rows($result) - $counter) + 1;
if ( (($entrylimit) && ($counter > $entrylimit)) || (($yoffset >= (imagesy($image) - 25)) && ($rest > 1)) ) {
if ($rest > 1)
$text = "... $rest weitere Pakete";
else
$text = "... $rest weiteres Paket";
imagettftextboxopt($image, 12, 0, 30, $yoffset, $style['textcolor'], $style['fontb'], $text, $opt_entry);
$yoffset += 15;
break;
}
if ($row['datum'] and $row['status']) {
// print entry text
$text = $row['datum'].'Uhr: '.$row['status'];
// dirty trick for replacing inch-symbol \xE2\x80\xB3 by nomal " (because not supported by imagettftext)
$text = str_replace("\xE2\x80\xB3", "\"", $text);
} else {
$text = 'Sendung "'.$row['paketnummer'].'" nicht gefunden!';
}
//*********************************große Symbole wenn weniger als 2 Trackings gleichzeitig und mehr als 60px Platz *************
if ( ((mysql_num_rows($result) <= 2) && ($yoffset <= (imagesy($image)-60))) ) {
$xoffset = 0;
$bilder = explode('|', $row['bild']);
if ( ($row['dienst'] == "UPS") || ($row['dienst'] == "DPD") ){
$bild = $bilder[$row['position']];
$icon = ImageCreateFromPng($bild);
ImageCopy($image, $icon, 45+$xoffset, $yoffset+5, 0, 0, imagesx($icon), imagesy($icon));
ImageDestroy($icon);
}else{
if (($row['dienst']) == "GLS") {
$xoffset += 75;
} elseif ( ($row['dienst'] == "DHL") || ($row['dienst'] == "hermes") ){
$xoffset += 45;
for ($i=0; $i<=$row['position']; $i++) {
$bild = $bilder[$i];
$icon = ImageCreateFromPng($bild);
ImageCopy($image, $icon, 45+($xoffset*$i), $yoffset+5, 0, 0, imagesx($icon), imagesy($icon));
ImageDestroy($icon);
}
}
}
imagettftextboxopt($image, 11, 0, 43, $yoffset+45, $style['textcolor'], $style['fontb'], $text, $opt_entry);
if ($row['liefertermin']) {
$yoffset += 13;
imagettftextboxopt($image, 11, 0, 43, $yoffset+45, $style['textcolor'], $style['fontb'], $row['liefertermin'], $opt_entry);
}
$yoffset += 60;
//*********************************************************************************************************************************************
} else {
$xoffset = 0;
// ***********************************icons nach dienstleister, wenn mehr als 3 pakete oder weniger als 60px platz ****************************
if (($row['dienst']) == "DHL") {
$icon = ImageCreateFromPNG('resources/icons/dhl_logo.png');
$xoffset = 6;
} elseif (($row['dienst']) == "GLS") {
$icon = ImageCreateFromPNG('resources/icons/gls_logo.png');
} elseif (($row['dienst']) == "UPS") {
$icon = ImageCreateFromPNG('resources/icons/ups_logo.png');
$xoffset = -2;
} elseif (($row['dienst']) == "DPD") {
$icon = ImageCreateFromPNG('resources/icons/dpd_logo.png');
$xoffset = 3;
} elseif (($row['dienst']) == "TNT") {
$icon = ImageCreateFromPNG('resources/icons/tnt_logo.png');
$xoffset = 12;
} elseif (($row['dienst']) == "hermes") {
$icon = ImageCreateFromPNG('resources/icons/hermes_logo.png');
$xoffset = 4;
} else {
$icon = ImageCreateFromPNG('resources/icons/lieferung.png');
}
//********************************************************************************************************************************************
ImageCopy($image, $icon, 23-$xoffset, $yoffset+0, 0, 0, imagesx($icon), imagesy($icon));
ImageDestroy($icon);
imagettftextboxopt($image, 11, 0, 55, $yoffset, $style['textcolor'], $style['font'], $text, $opt_entry);
$yoffset += 18;
}
}
$yoffset += 10;
}
// eigentliche Tracking funtionen
private function glsTracking($trackingnumber, $id) {
$datum=$stat_txt=$bild=$posi=$shedule='';
$bild_name = array('erfasst', 'Transport', 'Zustellung', 'zugestellt');
$bild_nr = array('0', '1', '2', '3');
$stat_bild = array(
'erfasst' => array('Paket erfasst', 'Paket eingeliefert'),
'Transport' => array('Transport', 'Paket am Umschlagplatz', 'Paket im Zielland', 'Paket hat Deutschland verlassen', 'Paket in der Verzollung', 'Paket im Zieldepot'),
'Zustellung' => 'Paket in Zustellung',
'zugestellt' => array("Paket zugestellt", 'Im PaketShop zugestellt', 'Zwischenlagerung im GLS-Depot', 'Zustellung nicht möglich')
);
$url ='http://www.gls-germany.com/de/online/paketstatus_xml.php3?datatype=paketnr&filter=all&paketliste[0]='.$trackingnumber;
$glsxml = file_get_contents($url);
$glsxml = simplexml_load_string($glsxml);
if(!empty($glsxml)) {
$path = '/paketstatus/paketdaten';
if (!$glsxml = $glsxml->xpath($path)) {
return;
} else {
$stat_txt = $glsxml[0]->stat_txt;
$stat_txt = $this->glsStatusReplace($stat_txt);
$datum = $glsxml[0]->ps_dat.' '.$glsxml[0]->ps_zeit;
$posi = str_replace($bild_name, $bild_nr, recursive_array_search($stat_txt, $stat_bild));
for ($i=0; $i<=$posi; $i++) {
$bild[$i] = 'resources/icons/gls_'.$bild_name[$i].'.png';
if ($i == '3') {
if ($stat_txt == 'Paket zugestellt') $bild[$i] = 'resources/icons/gls_zugestellt.png';
if (strpos($stat_txt, 'PaketShop') !== FALSE) $bild[$i] = 'resources/icons/gls_paketshop.png';
if (strpos($stat_txt, 'Zwischenlagerung') !== FALSE) $bild[$i] = 'resources/icons/gls_zwischenlagerung.png';
if (strpos($stat_txt, 'nicht') !== FALSE) $bild[$i] = 'resources/icons/gls_nicht.png';
}
}
}
}
return array($stat_txt, $datum, $bild, $id, $posi, $shedule);
}
private function dhlTracking($trackingnumber, $id) {
$i=0; $datum=$stat_txt=$inhalt=$posi=$bild=$shedule='';
$trans = array('Die ' => '', 'wurde ' => '', 'zu dieser Sendung wurden vom Absender ' => '', 'an DHL ' => '');
$stat_bild = array('übermittelt' => array('Auftragsdaten elektronisch übermittelt', 'Paket eingeliefert', 'Sendung vom Absender in der Filiale eingeliefert'),
'transport' => array('Sendung wird zum Ziel-Paketzentrum transportiert', 'Sendung im Start-Paketzentrum bearbeitet'),
'Paketzentrum' => array('Sendung im Ziel-Paketzentrum bearbeitet', 'Sendung wird zur Zustellbasis transportiert'),
'Zustellung' => array('Zustellung', 'Sendung in das Zustellfahrzeug geladen'),
'zugestellt' => 'Sendung erfolgreich zugestellt'
);
$bild_name = array(0 => 'übermittelt', 1 => 'transport', 2 => 'Paketzentrum', 3 => 'Zustellung', 4 => 'zugestellt');
$uri = '/nextt-online-public/set_identcodes.do?lang=de&idc='.$trackingnumber;
//header("Content-type: text/html");
$sock = fsockopen("nolp.dhl.de", 80, $errno, $errstr, 5); // 80 = Port, 5 = Timeout
if (!$sock) {
return;
} else {
fputs($sock, "GET ".$uri." HTTP/1.1\r\n");
fputs($sock, "User-Agent: Mozilla/5.0 (X11; U; Linux i686; de-DE; rv:1.2.1) Gecko/20021204\r\n");
fputs($sock, "Host: www.nolp.dhl.de\r\n");
fputs($sock, "Connection: close\r\n\r\n");
while(!feof($sock)) {
$zeile[$i++] = trim(fgets($sock));
}
fclose($sock);
}
for ($j=0; $j<$i; $j++)
$inhalt .= strip_tags(trim($zeile[$j]));
if ($inhalt) {
preg_match('#Status vom [A-Za-z]{2}, (\d{2}\.\d{2}\.\d{4}\s\d{1,2}:\d{2}) Uhr(.*?)\. (N.chster Schritt(.*?)\.)?#iuS', $inhalt, $treffer);
$datum = $treffer[1];
if ( ($treffer[4]) and (strpos($treffer[4], 'Paketzentrum transportiert') !== FALSE) ) {
$stat_txt = strtr($treffer[4], $trans);
} else {
$stat_txt = strtr($treffer[2], $trans);
}
$posi = array_search(recursive_array_search($stat_txt, $stat_bild), $bild_name);
for ($i=0; $i<=$posi; $i++)
$bild[$i] = 'resources/icons/dhl_'.$bild_name[$i].'.png';
} else {
$stat_txt = 'Sendung nicht gefunden';
$datum = date('d.m.Y H:m:s', time());
}
return array($stat_txt, $datum, $bild, $id, $posi);
}
private function upsTracking($trackingnumber, $id) {
$i=0; $datum=$stat_txt=$posi=$bild=$content=$shedule='';
$search = array(' ', 'On:', 'To:', 'at ', '. ', ' Pünktlich', ',');
$replace = array('', '|', '|', '', '', '', ' ');
$url = 'http://wwwapps.ups.com/ietracking/tracking.cgi?tracknum='.$trackingnumber.'&IATA=de&Lang=ger';
$bild_name = array(0 => 'erfasst', 1 => 'Transport', 2 => 'Zustellung', 3 => 'zugestellt', 4 =>'fehler');
$stat_bild = array(
'erfasst' => array('Auftrag bearbeitet: Für UPS bereit', 'Scan in der Abholniederlassung'),
'Transport' => array('Paket wird transportiert', 'Zollabfertigung abgeschlossen', 'Zollabfertigung läuft', 'Umschlagplatz ausgang', 'Bestimmungsort-Scan'),
'Zustellung' => 'Paket in der Zustellung',
'zugestellt' => array('Paket zugestellt', 'Im örtlichen Postamt', 'Abgabe in einem UPS Store', 'Für die Zustellung an das örtliche Postamt übergeben'),
'fehler' => array('Ausnahme: Aktion erforderlich', 'Ausnahme', 'Zustellung nicht möglich', 'Zurückgesendet an Absender', 'Zurück an den Absender', 'Sendungsinformationen storniert')
);
$file = fopen ($url,"r");
if (!$file) {
return;//
} else {
while (!feof($file)) {
$zeile[$i++] = fgets($file);
}
fclose($file);
}
for ($j=0; $j<$i; $j++) {
$content .= trim($zeile[$j]);
}
if ($content) {
preg_match('#<td class="nowrap">(.*?)</td><td class="nowrap">(\d{2}/\d{2}/\d{4})</td><td class="nowrap">(\d{1,2}:\d{2}\s[A|P]\.M\.)</td><td>(.*?)</td>#', $content, $matches);
preg_match('#Scheduled Delivery:</label></dt><dd>(.*?),(.*?)(\d{2}/\d{2}/\d{4}),(.*?)</dd>#', $content, $match);
if ($match) {
$shedule_date = datumDeutsch($match[1]).' '.strftime('%d.%m.%Y', strtotime($match[3]));
$shedule = 'Voraussichtliche Lieferung: '.$shedule_date;
}
$ups_stat_txt = str_replace($search, $replace, $this->upsStatusReplace($matches[4]));
$datum = strftime('%d.%m.%Y - %H:%m', strtotime($matches[2].$matches[3]));
$posi = array_search(recursive_array_search($ups_stat_txt, $stat_bild), $bild_name);
$stat_txt = $matches[1].': '.$ups_stat_txt;
for ($i=0; $i<=$posi; $i++)
$bild[$i] = 'resources/icons/ups_'.$bild_name[$i].'.png';
} else {
$stat_txt = 'Sendung nicht gefunden';
$datum = date('d.m.Y H:m:s', time());
}
return array($stat_txt, $datum, $bild, $id, $posi, $shedule);
}
private function dpdTracking($trackingnumber, $id) {
$i=0; $zeit=$status=$shedule=$posi=$bild=$inhalt='';
$trans = array(' ' => '', '•' => '');
$bild_name = array(0 => 'Eingang', 1 => 'Transport', 2 => 'Auslieferung', 3 => 'zugestellt', 4 =>'fehler');
$stat_bild = array(
'Eingang' => array('Einrollung', 'Erfasst'),
'Transport' => array('Eingang', 'HUB-Durchlauf', 'In Verzollung', 'Konsolidierung'),
'Auslieferung' => array('Lager', 'Ausrollung'),
'zugestellt' => array('Zustellung', 'zugestellt'),
'fehler' => array('Zustellversuch nicht erfolgreich', 'System-Retoure', 'Ausrollretoure')
);
$uri = '/cgi-bin/delistrack?typ=1&lang=de&pknr='.$trackingnumber;
$sock = fsockopen("extranet.dpd.de", 80, $errno, $errstr, 5); // 80 = Port, 5 = Timeout
if (!$sock) {
return;
} else {
fputs($sock, "GET ".$uri." HTTP/1.1\r\n");
fputs($sock, "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021204\r\n");
fputs($sock, "Host: www.extranet.dpd.de\r\n");
fputs($sock, "Connection: close\r\n\r\n");
while(!feof($sock)) {
$zeile[$i++] = trim(fgets($sock));
}
fclose($sock);
}
for ($j=5; $j<$i; $j++) {
$inhalt .= strip_tags(trim($zeile[$j]), '<td><b>');
}
if ($inhalt) {
$inhalt = strtr($inhalt, $trans);
preg_match_all('#(\d{2}\.\d{2}\.\d{4}\s\d{1,2}:\d{2})(.*?)</b>(.*?)</td><td style="padding-left: 10px;">(.*?)</td>#is', $inhalt, $matches);
$last_matches = array_reverse_recursive($matches);
$dpd_stat_txt = $last_matches[0][0];
if (strpos($last_matches[0][0], 'Zustellung') !== FALSE ){
$last_matches[0][0] = str_replace('Zustellung', 'zugestellt',(substr($last_matches[0][0], 12)));
$dpd_stat_txt = 'zugestellt';
}
$stat_txt = $last_matches[0][0].' '.$last_matches[1][0];
$datum = $last_matches[3][0];
$posi = array_search(recursive_array_search($dpd_stat_txt, $stat_bild), $bild_name);
for ($i=0; $i<=$posi; $i++)
$bild[$i] = 'resources/icons/ups_'.$bild_name[$i].'.png';
} else {
$stat_txt = 'Sendung nicht gefunden';
$datum = date('d.m.Y H:m:s', time());
}
return array($stat_txt, $datum, $bild, $id, $posi, $shedule);
}
private function hermesTracking($trackingnumber, $id) {
$i=0; $inhalt=$bild=$posi=$shedule='';
$trans = array('an die Hermes Logistik Gruppe' => '', 'Hermes' => '','Die' => '', 'Sendung wurde' =>'Sendung ', 'ist' => '', 'für den weiteren Transport' => '');
$patterns = array('übermittelt', 'verlassen', 'übernommen', 'sortiert', 'eingetroffen', 'Zustellung', 'zugestellt');
// aktuelle session id holen
$url = 'https://www.myhermes.de/wps/portal/paket/Home/privatkunden/sendungsverfolgung';
$ch = curl_init();
$options = array(CURLOPT_SSL_VERIFYPEER => TRUE, CURLOPT_HEADER => FALSE, CURLOPT_URL => $url, CURLOPT_SSLVERSION => 3, CURLOPT_RETURNTRANSFER => TRUE);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
curl_close($ch);
preg_match('#<form name="mhStatusForm" id="mhStatusForm" action="(.*?)" onsubmit=.*?>#i', $result, $matches);
// mit aktueller session id die trackingnummer abfragen
$url = 'https://www.myhermes.de'.preg_replace('#<!.*>$#', '', $matches[1]).'?action=trace&shipmentID='.$trackingnumber.'&receiptID=';
$file = 'cache/hermes.txt';
$handle = fopen($file, 'w+');
$ch = curl_init();
$options = array(CURLOPT_SSL_VERIFYPEER => TRUE, CURLOPT_URL => $url, CURLOPT_SSLVERSION => 3, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_FILE => $handle);
curl_setopt_array($ch, $options);
curl_exec($ch);
curl_close($ch);
rewind($handle);
while(!feof($handle)) {
$zeile[$i++] = trim(utf8_decode(fgets($handle)));
}
fclose($handle);
for ($j=0; $j<$i; $j++) {
$inhalt .= strip_tags($zeile[$j], '<tbody>');
}
$inhalt = str_replace($trackingnumber, ' ', $inhalt);
preg_match_all('#<tbody>(\d{2}\.\d{2}\.\d{4})(\d{2}:\d{2}:\d{2})(.+)</tbody>#', $inhalt, $matches);
$datum = $matches[1][0].' '.$matches[2][0];
$stat_txt = strtr(substr($matches[3][0], 0 , strpos($matches[3][0], '.')), $trans);
foreach ($patterns as $pattern) {
if(strpos($stat_txt, $pattern) !== FALSE){
$posi = array_search($pattern, $patterns);
for ($k=0; $k<=$posi; $k++)
$bild[$k] = 'resources/icons/hermes_'.$patterns[$k].'.png';
}
}
if ( ($posi >= 2) and ($posi <= 3) )
unset($bild[1]);
if ($posi >= 4)
unset($bild[1], $bild[3]);
$bild = array_values($bild);
return array($stat_txt, $datum, $bild, $id, $posi, $shedule);
}
// Ausgabe Bereinigung, falls zu unübersichtlich in der Trackingfunktion selber
private function glsStatusReplace($stat_txt) {
$glsStatus = array('HSC: Abgabe Empfaenger', 'HSC: Rollkartenscannung', 'Eingang I-Punkt EPL', 'ZUP-Durchlauf NORMAL', 'Eingang APL I-Punkt', 'NIF-Eingang', 'NIF-Ausgang', 'Kunde nicht angetroffen',
'PK im Verzollungsprozess', 'Paket im Lager', 'STAT_DEFAULT', 'Fix-Termin', 'Adresse falsch', 'RUP-Durchlauf'
);
$normalisiert = array('Paket zugestellt', 'Paket in Zustellung', 'Paket im Zieldepot', 'Paket am Umschlagplatz', 'Paket eingeliefert', 'Paket im Zielland', 'Paket hat Deutschland verlassen', 'Kunde nicht angetroffen',
'Paket in der Verzollung', 'Zwischenlagerung im GLS-Depot', 'Paket erfasst', 'Termin mit Kunden', 'Adresse falsch', 'Paket am Umschlagplatz'
);
return str_replace($glsStatus, $normalisiert, $stat_txt);
}
private function upsStatusReplace($stat_txt){
$englisch = array('Delivered', 'In Transit', 'Out For Delivery', 'Arrival Scan', 'At Local Post Office', 'Clearance Completed', 'Clearance in Progress', 'Departure Scan',
'Destination Scan', 'Dropped off at a UPS Retail Location', 'Exception: Action Required', 'Exception', 'Order Processed: Ready for UPS', 'Origin Scan',
'Returned to Sender', 'Returning to Sender', 'Shipment Information Voided', 'Transferred to Local Post Office for Delivery', 'On Time'
);
$deutsch = array('Paket zugestellt', 'Paket wird transportiert', 'Paket in der Zustellung', 'Umschlagplatz eingang', 'Im örtlichen Postamt', 'Zollabfertigung abgeschlossen', 'Zollabfertigung läuft', 'Umschlagplatz ausgang',
'Bestimmungsort-Scan', 'Abgabe in einem UPS Store', 'Ausnahme: Aktion erforderlich', 'Ausnahme', 'Auftrag bearbeitet: Für UPS bereit', 'Scan in der Abholniederlassung',
'Zurückgesendet an Absender', 'Zurück an den Absender', 'Sendungsinformationen storniert', 'Für die Zustellung an das örtliche Postamt übergeben', 'Pünktlich'
);
return str_replace($englisch, $deutsch, $stat_txt);
}
// In die Datenbank schreiben
private function addPaket($stat_txt, $datum, $bild, $id, $posi, $shedule) {
$bild = implode('|',$bild);
if ( (strpos($stat_txt, 'zugestellt') !== FALSE) and (time() - strtotime($datum) >= 36000) ) {
$query = "DELETE FROM `if_paket` WHERE id='$id'";
}else{
$query = "UPDATE `if_paket` SET datum='".mysql_real_escape_string($datum)."', status='".mysql_real_escape_string($stat_txt)."', bild='".mysql_real_escape_string($bild)."', position='$posi', liefertermin='".mysql_real_escape_string($shedule)."' WHERE id='$id'";
}
mysql_query($query, $this->dbconn) or die ('PaketPlugin'.mysql_error());
}
}
?>