[insert_php]

// +===========================================================================================+
// | Használtautó.hu HEX példa modul (c) 2011 |
// +——————————————————————————————-+
// | Beállítások |
// +——————————————————————————————-+
// | Mennyi hirdetés jelenjen meg egy oldalon? |
$_hex[‘results_per_page’] = 10;
// +——————————————————————————————-+
// | Weboldal címsora |
$_hex[‘title’] = “Használtautóink”;
// +——————————————————————————————-+
// | a “” kozé, a minta szó helyett írja be az export azonosítóját, amelyet emailben kapott! |
$_hex[‘export_name’] = “bagiauto_hex”;
// +——————————————————————————————-+
// | A használni kívánt HEX verziószáma |
// | (újabbra áttéres esetén programfrissítés lehet szükséges) |
$_hex[‘xml_version’] = “1.0”;
// +——————————————————————————————-+
// | Gyorsítótár beállításai |
// +——————————————————————————————-+
// | Helyi cache állomány elérési útja |
$_hex[‘local_cache_file’] = ‘cache/hasznaltauto_cache.temp’;
// +——————————————————————————————-+
// | Gyorsítótár elévülési ideje percekben megadva |
$_hex[‘local_cache_minutes’] = 10;
// +——————————————————————————————-+
// | Gyorsítótár letiltása – NEM AJÁNLOTT
$_hex[‘disable_local_cache’] = false;
// +——————————————————————————————-+
// | Innentől kezdve kérem, NE szerkessze a fájlokat! |
// +===========================================================================================+

ini_set(‘memory_limit’, ’32M’);
define(‘HEX_CLIENT_VERSION’, ‘1.0’);

/* Hibaüzenet kiírása START */
function errormessage($error) {
echo ”

$error

“;
exit;
}
/* Hibaüzenet kiírása END */

/* CURL START */
function copen($url) {
$curl = @curl_init();
@curl_setopt($curl, CURLOPT_URL, $url);
@curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
if (!$retval = @curl_exec($curl)) {
errormessage(@curl_error($curl));
}
@curl_close($curl);
return $retval;
}
/* CURL END */

header(‘Content-Type: text/html; charset=utf-8’);

echo “


{$_hex[‘title’]}

“;

/* Kliens oldali gyorsítótárazás START */

if ($_hex[‘disable_local_cache’] || !is_file($_hex[‘local_cache_file’]) || filemtime($_hex[‘local_cache_file’]) < time() - 60 * $_hex['local_cache_minutes']) { /* HEX XML és HEX XSD állományok letöltése START */ $xml_url = "http://hex.hasznaltauto.hu/{$_hex['xml_version']}/xml/{$_hex['export_name']}"; $xsd_url = "http://hex.hasznaltauto.hu/{$_hex['xml_version']}/hex.xsd"; if (ini_get("allow_url_fopen")) { $xml_string = @file_get_contents($xml_url); $xsd_string = @file_get_contents($xsd_url); } else if (function_exists("curl_init")) { $xml_string = copen($xml_url); $xsd_string = copen($xsd_url); } else { errormessage("A HEX állományok nem tölthetőek le, mert a szerver beállításai ezt nem teszik lehetővé."); } if (!$xml_string || !$xsd_string) { errormessage("Hiba a HEX állományok letöltése közben."); } /* HEX XML és HEX XSD állományok letöltése END */ /* HEX XML ellenőrzése START */ libxml_use_internal_errors(true); $objDomDocument = new DomDocument(); $objDomDocument->loadXML($xml_string);

if (!$hirdetesek = @simplexml_import_dom($objDomDocument)) {
errormessage(“A feldolgozandó XML üres, vagy nem XML adatokat tartalmaz: $xml_url”);
}

if ($hirdetesek->getName() != ‘hirdetesek’) {
errormessage(“HEX hiba: ” . (string)$hirdetesek);
}

if (!isset($hirdetesek->attributes()->min_client_version) || !isset($hirdetesek->attributes()->max_client_version)) {
errormessage(“A használt XML nem tartalmazza a szükséges kliens-verziószám megkötéseket. Az XML nem dolgozható fel.”);
}

if (version_compare(HEX_CLIENT_VERSION, (string)$hirdetesek->attributes()->min_client_version) < 0 || version_compare((string)$hirdetesek->attributes()->max_client_version, HEX_CLIENT_VERSION) < 0) { errormessage("A használni kívánt HEX XML nem használható ezzel a programmal. Kérem, ellenőrizze a verziószámokat és szükség esetén frissítse a HEX klienst!"); } if (!@$objDomDocument->schemaValidateSource($xsd_string)) {
$xsd_errors = array();
foreach (libxml_get_errors() as $eachError) {
$xsd_errors[] = $eachError->message;
}
errormessage(“Az XML nem felel meg a sémának. Hibák: ” . implode(“/n”, $xsd_errors));
}

$hirdetesek_szama = count($hirdetesek->children());
if ($hirdetesek_szama == 0) {
errormessage(“Jelenleg nincsenek megjeleníthető hirdetések.”);
}

/* HEX XML ellenőrzése END */

/* HEX XML adatainak feldolgozása tömbbe START */

$adatok = array();
$i = 0;

foreach ($hirdetesek->children() as $hirdetes) {

$adatok[$i] = array(
‘hirdeteskod’ => (int)$hirdetes->attributes()->hirdeteskod,
‘gyartmany’ => (string)$hirdetes->attributes()->gyartmany,
‘tipus’ => (string)$hirdetes->attributes()->tipus,
‘kategoria’ => (string)$hirdetes->attributes()->kategoria,
‘adatok’ => array(),
‘kepek’ => array()
);

foreach ($hirdetes->children() as $elem) {
if ($elem->getName() == ‘kepek’) {
foreach($elem->children() as $kep) {
$adatok[$i][‘kepek’][] = array(
‘kicsi’ => (string)$kep->attributes()->kicsi,
‘kozepes’ => (string)$kep->attributes()->kozepes,
‘nagy’ => (string)$kep
);
}
} else {
$adatok[$i][‘adatok’][(string)$elem->getName()] = array(
‘nev’ => (string)$elem->attributes()->megnevezes,
‘ertek’ => (string)$elem
);
}
}

$i++;
}

/* HEX XML adatainak feldolgozása tömbbe END */

/* Helyi gyorsítótár-állomány írása START */

if (!$_hex[‘disable_local_cache’] && (!is_file($_hex[‘local_cache_file’]) || is_writable($_hex[‘local_cache_file’]))) {
$handle = fopen($_hex[‘local_cache_file’], “w”);
fwrite($handle, serialize($adatok));
fclose($handle);
}

/* Helyi gyorsítótár-állomány írása START */

} else if (is_file($_hex[‘local_cache_file’])) {

/* Helyi gyorsítótár-állomány beolvasása START */

$adatok = unserialize(file_get_contents($_hex[‘local_cache_file’]));
$hirdetesek_szama = count($adatok);

/* Helyi gyorsítótár-állomány beolvasása END */
}
/* Kliens oldali gyorsítótárazás END */

if (isset($_GET[‘hirdeteskod’]) && is_numeric($_GET[‘hirdeteskod’])) {

$row = false;
foreach ($adatok as $sorszam => $tartalom) {
if ($tartalom[‘hirdeteskod’] == $_GET[‘hirdeteskod’]) {
$row = $tartalom;
}
}

if (!$row) {
errormessage(“A megadott kódú hirdetés nem található az adatbázisban!”);
} else {

if (isset($_GET[‘kep’]) && is_numeric($_GET[‘kep’])) {

/* KÉP megjelenítése START */

foreach ($row[‘kepek’] as $kepindex => $kep) {
if ($kepindex == $_GET[‘kep’]) {
$nagykep = $kep;
break;
}
}
if (isset($nagykep)) {
echo ”

“;
} else {
errormessage(“A megadott kép nem található az adatbázisban!”);
}

/* KÉP megjelenítése END */

} else {

/* Jármű adatlapja START */

echo ”

{$row[‘gyartmany’]} {$row[‘tipus’]}

“;
$i = 0;
foreach ($row[‘adatok’] as $elem) {
echo ”

“;
$i++;
}

echo ”

{$elem[‘nev’]}: {$elem[‘ertek’]}
“;
foreach ($row[‘kepek’] as $kepindex => $kep) {
echo “\"\"“;
}
echo ”

« Vissza

“;

/* Jármű adatlapja END */
}
}

} else {

/* Hirdetések listázása START */

$page = isset($_GET[‘page’]) && is_numeric($_GET[‘page’]) && ($_GET[‘page’] – 1) * $_hex[‘results_per_page’] < $hirdetesek_szama ? $_GET['page'] : 1; $from = ($page - 1) * $_hex['results_per_page']; $to = min($page * $_hex['results_per_page'] - 1, $hirdetesek_szama - 1); echo "

Adatbázisban talált járművek

“;

for ($i = $from; $i <= $to; $i++) { echo "

“;
}
echo ”

Találatok száma: ” . count($adatok) . “
Gyártmány, típus Vételár Évjárat Telj. Motor
” . ($i+1) . “. ” . (count($adatok[$i][‘kepek’]) > 0 ? “\"\"” : ” “) . “ {$adatok[$i][‘gyartmany’]} {$adatok[$i][‘tipus’]} {$adatok[$i][‘adatok’][‘ar’][‘ertek’]} {$adatok[$i][‘adatok’][‘evjarat’][‘ertek’]} ” . (isset($adatok[$i][‘adatok’][‘teljesitmeny’]) ? $adatok[$i][‘adatok’][‘teljesitmeny’][‘ertek’] : ” “) . “ ” . (isset($adatok[$i][‘adatok’][‘uzemanyag’]) ? $adatok[$i][‘adatok’][‘uzemanyag’][‘ertek’] : ” “).”

“;

/* Oldalszámozás START */
if ($to < $hirdetesek_szama - 1 || $from > 0) {
echo ”

” .
($from > 0 ? “« Előző” :””) .
($to < $hirdetesek_szama - 1 && $from > 0 ? ” | ” : “”) .
($to < $hirdetesek_szama - 1 ? "Következő »” : “”) . ”

“;
}
/* Oldalszámozás END */

/* Hirdetések listázása START */
}
/* Oldalak megjelenítése START */

echo ”

“;

[/insert_php]