Csomagkövetés

Általános kérdések a Webshop Hun1 Smarty programról.
Post Reply
Avatar
Tompika100
Hozzászólások: 122
Csatlakozott: hétf. nov. 26, 2012 5:48 pm
Kapcsolat:

Csomagkövetés

Hozzászólás Szerző: Tompika100 »

Az lenne a kérdésem hogy pl a Gls csomaglövetö formja /http://online.gls-hungary.com/search_stat.php/ beágyazhato -e a webshopba ugy hogy a saját oldalunkon jelenjenek meg az adatok saját skinnel?
Tomka Pál

Avatar
mezofi
Site Admin
Hozzászólások: 933
Csatlakozott: csüt. okt. 16, 2008 7:30 am
Kapcsolat:

Re: Csomagkövetés

Hozzászólás Szerző: mezofi »

Ja, ez jó ötlet. Én is most a GLS-el szállítok, ezt az oldalt még nem is láttam.
Létrehozol egy új oldalt a templates/használt_skin/center könyvtárban az alábbi tartalommal, csak az alábbi tatalommal, nem kell semmi további html tag:

Kód: Egész kijelölése

<iframe src="http://online.gls-hungary.com/search_stat.php" frameborder="0" height="500" width="400"></iframe>
A templates/használt_skin/center.tpl-be pedig a felsorolások köz berakod ezt:

Kód: Egész kijelölése

{elseif $smarty.get.center == "gls_csomag_kovetes"}
	{include file="center/gls_csomag_kovetes.tpl"}
Valahogy így:

Kód: Egész kijelölése

{* Ha be kell tölteni egy tpl-t elore start *}
{if $centerTplNeve != NULL}
{include file="languages/$nyelv_mappa/$centerTplNeve"}
{/if}
{* Ha be kell tölteni egy tpl-t elore end *}
{if $smarty.get.center} {* Ha van választott oldal *}
	{if $smarty.get.center == "kategoria_valaszto"}
	{include file="center/kategoria_valaszto.tpl"}
    {elseif $smarty.get.center == "gls_csomag_kovetes"}
	{include file="center/gls_csomag_kovetes.tpl"}
	{elseif  $smarty.get.center == "adatkezeles"}
	{include file="center/adatkezeles.tpl"}
...
..
.
Ezután erre a linkre be fog jönni az oldal:
index.php?center=gls_csomag_kovetes
Persze nagyobb az eredeti oldal, ezért a scroll ott lesz, de használható.

Ezt lehetne tovább fokozni, hogy a rendelési oldalon megadni a csomagszámot, és amikor érdeklődik adott rendelésére akkor Ajax-al lekérni ezt az oldalt mindjárt POST-al átadni a csomag számot, és feldolgozni a kapott tartalmat, és akkor szép kivitelben lehetne elé tálalni az eredményt. De ez a jövő zenéje.

Mezőfi

Avatar
mezofi
Site Admin
Hozzászólások: 933
Csatlakozott: csüt. okt. 16, 2008 7:30 am
Kapcsolat:

Re: Csomagkövetés

Hozzászólás Szerző: mezofi »

Ma délután kicsit bubuckodtam, és összeraktam egy jó kis programot, de valószínűleg nem fogod tudni használni, kivéve ha meg tudod győzni a szolgáltatódat, hogy engedélyezze a file_get_contents() php függvény külső elérését.
Két fájl az egész, Ajax segítségével bekéri a csomag dolgait xml-en keresztül, és megjeleníti az oldalon. Nálam szépen működik. Ha nálad nem engedi a szolgáltató, akkor kitalálunk valami mást, pl egy felugró ablakba megjeleníti a csomag állapotokat, de első körben próbáld ezt, esztétikusabb szerintem.
Tehát ez legyen a gls_csomag_kovetes.tpl tartalma:

Kód: Egész kijelölése

<div style="margin: 20px 0px;">
    <div id="glsresult"></div>
    <div align="center"><fieldset style="width: 400px; padding:20px;">
            <legend>&nbsp;GLS Csomag állapot lekérdezés&nbsp;</legend>
            <input type="text" name="glsNumero" id="glsNumero" value="" maxlength="11" placeholder="Csomag ellen&#337;rz&#337; száma" style="width: 200px;" /><br />
                    <input type="submit" name="glsBtn" id="glsBtn" value="Csomag állapot lekérdezés" style="margin-top:15px;" />
                    </fieldset></div>
</div>
{literal}
<script type="text/javascript">
$(document).ready(function(){	
	jQuery('#glsBtn').click(function(){
	var m = jQuery("#glsNumero").val();
			if(m == ''){
			jQuery("#glsNumero").focus();
			jQuery("#glsNumero").css('backgroundColor','RED');
			alert("Üres");
			return false;
			}else{
			/* Mehet a lekérdezés */
				 $.ajax({
					   type: "GET",
					   url: "include/ajax/ajax_gls.php?feladNumero="+ m.toString(),
					   success: function (oXHR, status){
						jQuery('#glsresult').html(oXHR);
					   },
					   error: function (oXHR, status){
						   alert("Hiba történt");
						   }
					});
				
			}							 
		});
});
</script>
{/literal}
És kell még egy fájl aminek a neve legyen: ajax_gls.php, és tedd a shop/include/ajax könyvtárba. Tartalma pedig ez legyen:

Kód: Egész kijelölése

<?php
session_start();
/* 
    ********************************************
    *     A php és mysql scripteket írta:      *
	*              Mezofi István               *
	*        http://www.mezofi.hu              *
    ********************************************
 */
function glsCodeTable($code){
	switch($code){
	case "01":
	$code = "IRSZ & Súly rögzítése, beérkezés";
	break;
	case "03":
	$code = "Érkezés a depóba";
	break;
	case "04":
	$code = "Kézbesítésre átvéve";
	break;
	case "05":
	$code = "Kiszállítva";
	break;
	case "07":
	$code = "Betárolva a Depóban";
	break;
	case "08":
	$code = "Ügyfeles felvétel ";
	break;
	case "09":
	$code = "Meghatározott id&#337;pontra történ&#337; kiszállítás ";
	break;
	case "11":
	$code = "Szabadság";
	break;
	case "12":
	$code = "Átvev&#337; nem található";
	break;
	case "13":
	$code = "Depó továbbítási hiba";
	break;
	case "14":
	$code = "Áruátvétel bezárva";
	break;
	case "16":
	$code = "Pénzhiány";
	break;
	case "17":
	$code = "Átvétel megtagadása";
	break;
	case "18":
	$code = "Hibás cím";
	break;
	case "19":
	$code = "Megközelíthetetlen";
	break;
	case "20":
	$code = "Rossz irányítószám";
	break;
	case "21":
	$code = "HUB rakodási hiba";
	break;
	case "22":
	$code = "Vissza a HUB-nak";
	break;
	case "23":
	$code = "Vissza a feladónak";
	break;
	case "24":
	$code = "Depó ismételt kiszállítás";
	break;
	case "25":
	$code = "APL-hiba";
	break;
	case "29":
	$code = "Nincs adat";
	break;
	case "30":
	$code = "Sérülten érkezett";
	break;
	case "31":
	$code = "Totálkár beérkezéskor";
	break;
	case "32":
	$code = "Esti kézbesítés";
	break;
	case "33":
	$code = "Id&#337;n túli várakoztatás";
	break;
	case "34":
	$code = "Kés&#337;i szállítás";
	break;
	case "35":
	$code = "Nem rendelték";
	break;
	case "36":
	$code = "Zárt lépcs&#337;ház";
	break;
	case "37":
	$code = "Központ utasítására vissza";
	break;
	case "38":
	$code = "Nincs szállítólevél a csomagon";
	break;
	case "39":
	$code = "Nem igazolják le a szállítót";
	break;
	case "51":
	$code = "Ügyfeles adat fogadva";
	break;
	case "52":
	$code = "Ügyfeles utánvét adat fogadva";
	break;
	case "83":
	$code = "P&S/P&R rögzítve";
	break;
	case "84":
	$code = "P&S/P&R kinyomtatva";
	break;
	case "85":
	$code = "P&S/P&R rollkartén";
	break;
	case "86":
	$code = "P&S/P&R felvéve";
	break;
	case "87":
	$code = "Nincs P&S/P&R csomag";
	break;
	case "88":
	$code = "Küldemény nem áll készen";
	break;
	case "89":
	$code = "Kevesebb csomagcímke";
	break;
	case "90":
	$code = "Feladva más úton";
	break;
	case "91":
	$code = "P&S, P&R törölve";
	break;
	}
return $code;
}


define('IN_MAIN',true); # Az aloldalakat ne lehessen külön behívni
$kimenet = "hiba|Nincs meg minden azonosító!";

if(isset($_GET["feladNumero"]) && trim($_GET["feladNumero"]) != "" ){
	if(!@file_get_contents("http://online.gls-hungary.com/tt_page_xml.php?pclid=".trim($_GET["feladNumero"]),"rb")){
	$kimenet = "<span style='color: RED;'>A file_get_contents() függvény használata le van tíltva küls&#337; elérésre!</span>";
	echo iconv("iso-8859-2","utf-8",$kimenet);
	exit;
	}else{
	$xml_string = file_get_contents("http://online.gls-hungary.com/tt_page_xml.php?pclid=".trim($_GET["feladNumero"]),"rb");
	$xm = xml_parser_create();
	}

require_once('../../constants.php');
require_once('../../connections/bolt.php');
require_once("../../functions/general.php");

xml_parse_into_struct($xm, $xml_string,$ertekek,$kulcsok);
xml_parser_free($xm);
//dolgozzuk tömbbe
$sorok = array();
$csomagszam = "";
$suly = "";
	foreach($ertekek as $a){
		if(isset($a["attributes"]["WEIGHT"])){
		$suly = $a["attributes"]["WEIGHT"];
		}
		if(isset($a["attributes"]["PCLID"]) && is_array($a["attributes"])){
		$csomagszam = $a["attributes"]["PCLID"];
		}
		if(isset($a["attributes"]["STCODE"]) && is_array($a["attributes"])){
		$sorok[] = '<td align="center">'.$a["attributes"]["STDATE"] .'</td>
					<td align="left">'. glsCodeTable($a["attributes"]["STCODE"]) .'</td>
					<td  align="center">'.$a["attributes"]["DEPO"] .'</td>
					<td  align="left">'. $a["attributes"]["STINFO"] .'</td>';
		}
	} // foreach($ertekek as $a){ end
	
	if( count($sorok) > 0){
	$kimenet = '<table style="margin-top: 50px; font-size:12px;" align="center">
					<tr style="background-color: #F8B500; color: #0D006A;">
						<th colspan="4" class="center" align=center>Csomagszám: '. $csomagszam .'</th>
					</tr>
					<tr style="background-color: #0D006A; color: white;" >
						<th class="center">Dátum</th>
						<th class="left">Státusz</th>
						<th class="center">Depó</th>
						<th class="left">Info</th>
					</tr>';
		for($i = 0; $i < count($sorok); $i++){
			if($i%2 == 0){
			$sor = "0";
			}else{
			$sor = "1";
			}
		$kimenet .= '<tr class="colored_'. $sor .'">';
		$kimenet .= $sorok["$i"];
		$kimenet .= '</tr>';
		}
	$kimenet .= '<tr style="background-color: #F8B500; color: #0D006A;">
					<td colspan=2 align="right">Súly:</td>
					<td colspan=2 align="left">'. $suly .' Kg</td>
				</tr>
				</table>';
	}

mysql_close();
} // if(isset($_GET["bankId"]) && is_numeric($_GET["bankId"]) ){ end

echo iconv("iso-8859-2","utf-8",$kimenet);
?>
Várom a visszajelzést. :)

Avatar
mezofi
Site Admin
Hozzászólások: 933
Csatlakozott: csüt. okt. 16, 2008 7:30 am
Kapcsolat:

Re: Csomagkövetés

Hozzászólás Szerző: mezofi »

Itt a másik, ez egy sokkal egyszerűbb. Nem olyan guszta mint az Ajax-os, de nagy vállalatoknál is ezt láttam.
Ez a gls_csomag_kovetes.tpl fájl tartalma, és nem kell más fájl.

Kód: Egész kijelölése

<div style="margin: 20px 0px;">
    <div id="glsresult"></div>
    <div align="center"><fieldset style="width: 400px; padding:20px;">
            <legend>&nbsp;GLS Csomag állapot lekérdezés&nbsp;</legend>
            <input type="text" name="glsNumero" id="glsNumero" value="" maxlength="11" placeholder="Csomag ellen&#337;rz&#337; száma" style="width: 200px;" /><br />
                    <input type="submit" name="glsBtn" id="glsBtn" value="Csomag állapot lekérdezés popUp" style="margin-top:15px;" onclick="glsCheck();" />
                    </fieldset></div>
</div>
{literal}
<script type="text/javascript">
function glsCheck(){
var m = jQuery("#glsNumero").val();
	if(m == ''){
			jQuery("#glsNumero").focus();
			jQuery("#glsNumero").css('backgroundColor','RED');
			alert("Üres");
			return false;
			}else{
            openNewWindow("http://online.gls-hungary.com/tt_page.php?tt_value="+m+"&lng=hu", 800, 500, 1);
			}
}
</script>
{/literal}

Avatar
Tompika100
Hozzászólások: 122
Csatlakozott: hétf. nov. 26, 2012 5:48 pm
Kapcsolat:

Re: Csomagkövetés

Hozzászólás Szerző: Tompika100 »

Király müködik ezt adtam csomagszámnak 122300
Tomka Pál

Avatar
mezofi
Site Admin
Hozzászólások: 933
Csatlakozott: csüt. okt. 16, 2008 7:30 am
Kapcsolat:

Re: Csomagkövetés

Hozzászólás Szerző: mezofi »

Szuper,
Az én tárhelyemen írnom kellett a szolgáltatónak, hogy engedélyezze a külső elérést, mert különben nem tudom használni, még nem válaszolt.
Szerintem ez jobb megoldás mint a PopUp-os dolog.
;)
Mezőfi

Avatar
Tompika100
Hozzászólások: 122
Csatlakozott: hétf. nov. 26, 2012 5:48 pm
Kapcsolat:

Re: Csomagkövetés

Hozzászólás Szerző: Tompika100 »

nagyon szép KÖSZÖNÖM!
Tomka Pál

Avatar
mezofi
Site Admin
Hozzászólások: 933
Csatlakozott: csüt. okt. 16, 2008 7:30 am
Kapcsolat:

Re: Csomagkövetés

Hozzászólás Szerző: mezofi »

Nincs mit.
Mezőfi

Post Reply

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 5 vendég