Hallo zusammen
@Michael genau das habe ich nicht gemacht, ich habe nur den DHL Teil getauscht.Das kommt davon wenn man keine Ahnung hat. Bitte nicht böse sein.
Jetzt habe ich in mein altes Plugin Deinen Teil eingefügt und es kommt "wurde in der Filiale abgeholt". Allerdings weis ich nicht ob das Icon stimmt.Ich habe ein Häußchen mit einem Paket drin.Eigentlich müsste ich doch so eine ganze Reihe Icons haben und zuletzt ein abgehaktes Paket oder.??
Vielleicht habe ich auch beim Einfügen einen Fehler gemacht.Ich hänge mein Plugin nochmal mit dran,vielleicht seht Ihr den Fehler.
Ich habe auch Spoo3ners DHL Teil in mein Plugin kopiert auch mit dem Rest von Michael ,allerdings kommt da Sendung nicht gefunden.
Ich habe noch eine Bitte, könnte Ihr bitte auch noch mal schauen ob mein Paket Plugin auf dem neusten Stand ist.? Danke schon mal.
Volker
@Michael genau das habe ich nicht gemacht, ich habe nur den DHL Teil getauscht.Das kommt davon wenn man keine Ahnung hat. Bitte nicht böse sein.
Jetzt habe ich in mein altes Plugin Deinen Teil eingefügt und es kommt "wurde in der Filiale abgeholt". Allerdings weis ich nicht ob das Icon stimmt.Ich habe ein Häußchen mit einem Paket drin.Eigentlich müsste ich doch so eine ganze Reihe Icons haben und zuletzt ein abgehaktes Paket oder.??
Vielleicht habe ich auch beim Einfügen einen Fehler gemacht.Ich hänge mein Plugin nochmal mit dran,vielleicht seht Ihr den Fehler.
PHP:
<?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='';
$i=0; $datum=$stat_txt=$inhalt=$posi=$bild=$shedule='';
$trans = array('Die ' => '', 'wurde ' => '', 'zu dieser Sendung wurden vom Absender ' => '', 'an DHL ' => '', 'im Zustell-Depot ' => '');
$stat_bild = array('eingeliefert' => array('Auftragsdaten elektronisch übermittelt', 'Paket eingeliefert', 'Sendung vom Absender in der Filiale eingeliefert'),
'transport' => array('Sendung wird zum Paketzentrum transportiert', 'Sendung wird zum Ziel-Paketzentrum transportiert', 'Sendung im Start-Paketzentrum bearbeitet', 'Auslands-Sendung im Start-Paketzentrum bearbeitet', 'Auslands-Sendung wird zum Export-Paketzentrum transportiert',
'Auslandssendung im Export-Paketzentrum bearbeitet'),
'Paketzentrum' => array('Sendung im Ziel-Paketzentrum bearbeitet', 'Sendung im Paketzentrum bearbeitet', 'Sendung wird zur Zustellbasis transportiert', 'Auslands-Sendung wird für den Transport ins Zielland vorbereitet',
'Sendung ist im Zielland eingetroffen', 'Sendung hat das Import-Paketzentrum im Zielland verlassen'),
'Zustellung' => array('Zustellung', 'Sendung in das Zustellfahrzeug geladen', 'Sendung wird für die Zustellung vorbereitet', 'Sendung konnte nicht zugestellt werden, da der Empfänger nicht angetroffen wurde, und wird gelagert. Der Empfänger benachrichtigt'),
'zugestellt' => 'Sendung erfolgreich zugestellt'
);
$bild_name = array(0 => 'eingeliefert', 1 => 'transport', 2 => 'Paketzentrum', 3 => 'Zustellung', 4 => 'zugestellt');
$url = 'http://nolp.dhl.de/nextt-online-public/set_identcodes.do?lang=de&idc='.$trackingnumber;
$xml = new DOMDocument();
$xml->loadHTMLFile($url);
$xpath = new DOMXPath($xml);
foreach($xpath->query('//*[@class="mm_bold text-right"]') as $div) {
$datum = $this->after(', ', $div->nodeValue);
if ($datum) {
$stat_txt = trim(str_replace('.','',($xpath->query('//*[@class="mm_delivered"]')->item(0)->nodeValue)));
//echo "Text: ".$datum. " - ".$stat_txt.PHP_EOL;
if ( ($stat_txt) AND (strpos($stat_txt, 'Paketzentrum transportiert') !== FALSE) AND (strpos($stat_txt, 'Start-Paketzentrum bearbeitet') !== FALSE) ) {
$stat_txt = strtr($stat_txt, $trans);
} else {
$stat_txt = strtr($stat_txt, $trans);
}
$posi = array_search(recursive_array_search($stat_txt, $stat_bild), $bild_name);
for ($i=0; $i<=$posi; $i++) {
if ( ($i==0) AND (strpos($stat_txt, 'übermittelt') !== FALSE) ) {
$bild[$i] = 'resources/icons/dhl_übermittelt.png';
}elseif ( ($i>=1) AND ((strpos($stat_txt, 'Auslandssendung') !== FALSE) OR (strpos($stat_txt, 'Zielland') !== FALSE)) ) {
$bild[$i] = 'resources/icons/dhl_ausland_'.$bild_name[$i].'.png';
}else {
$bild[$i] = 'resources/icons/dhl_'.$bild_name[$i].'.png';
}
}
return array($stat_txt, $datum, $bild, $id, $posi);
} 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);
}
private function recursive_array_search($needle, $haystack) {
foreach($haystack as $key => $value) {
$current_key = $key;
if($needle === $value OR (is_array($value) && recursive_array_search($needle, $value) !== FALSE)) {
return $current_key;
}
}
return false;
}
private function array_reverse_recursive($arr) {
foreach ($arr as $key => $val) {
if (is_array($val))
$arr[$key] = array_reverse_recursive($val);
}
return array_reverse($arr);
}
private function after ($needle, $inthat){
if (!is_bool(strpos($inthat, $needle)))
return substr($inthat, strpos($inthat,$needle)+strlen($needle));
}
// 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());
}
}
?>
Ich habe auch Spoo3ners DHL Teil in mein Plugin kopiert auch mit dem Rest von Michael ,allerdings kommt da Sendung nicht gefunden.
Ich habe noch eine Bitte, könnte Ihr bitte auch noch mal schauen ob mein Paket Plugin auf dem neusten Stand ist.? Danke schon mal.
Volker