/** * Extracts the array elements with given keys * * @param array $array * @param array $keys * * @return array the filtered array **/ function arrayByKeys($array, $keys = array(), $keep_keys = true) { $returned = array(); foreach ($array as $key => $value) { if (in_array($key, $keys)) { if ($keep_keys == true) { $returned[$key] = $value; } else { $returned[] = $value; } } } return $returned; } ?> /** * Subtracts $arr2 from $arr1 * * @param array $arr1 * @param array $arr2 * * @return array the array after the subtraction **/ function arrayDiffKeyRecursive(array $arr1, array $arr2) { $diff = array_diff_key($arr1, $arr2); $intersect = array_intersect_key($arr1, $arr2); foreach ($intersect as $k => $v) { if (is_array($arr1[$k]) && is_array($arr2[$k])) { $d = arrayDiffKeyRecursive($arr1[$k], $arr2[$k]); if ($d) { $diff[$k] = $d; } } } return $diff; } ?> ########################################### # # name: HTML2PDF # function: HTML2PDF # author: erdsoft.com # ########################################### # DESCRIPTION: # A funkcio html kodbol elkesziti es elmenti a pdf fajlt. ########################################### # INPUT: # 1. $url - az oldal linkjet tartalmazza # 2. $savetofile - ha igaz, akkor lementi a megadott helyre a fajlt es visszaadja a fajl eleresi utvonalat a roothoz kepest # 3. $filename - fajl neve direktoriumokhoz kepest, roothoz kepest kell megadni ########################################### # OUPTUP: a pdf fajl linkje ########################################### function HTML2PDF($url, $savetofile = true, $filename = 'files/other/ErdsoftPDF.pdf') { error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); define("_MAINPATH", realpath(dirname(__FILE__) . '/..')); define("_CLASS_FOLDER", _MAINPATH . '/class/mPDF'); // pdf osztaly betoltese require_once(_CLASS_FOLDER . '/mpdf.php'); // temp folderek definialasa define("_MPDF_TEMP_PATH", _CLASS_FOLDER . '/tmp'); define("_MPDF_TTFONTDATAPATH", _CLASS_FOLDER . '/tmp'); // oldal tartalmanak lekerese if (strpos($url, '://') === false) { $url = $_CONFIG['url'] . '/' . $url; } $htmlcode = implode(file($url)); // stiluslapok keresese a kodban $dom = new DOMDocument(); $dom->loadHTML($htmlcode); $linktags = $dom->getElementsByTagName('link'); $stylesheets = array(); foreach ($linktags as $lt) { foreach ($lt->attributes as $name => $attr) { if ($name == 'href' && strpos($attr->value, '.css') !== false) { $stylesheets[] = str_replace('DOMNamedNodeMap Object ( )', '', $attr->value); } } } $mpdf = new mPDF( 'utf-8', // mode - default '' 'A4', // format - A4, for example, default '' 0, // font size - default 0 '', // default font family 0, // margin_left 0, // margin right 0, // margin top 0, // margin bottom 0, // margin header 0, // margin footer 'P' // L - landscape, P - portrait ); // fajlba iras foreach ($stylesheets as &$stylesheet) { if (strpos($stylesheet, '://') === false) { $stylecode = file_get_contents($_CONFIG['url'] . '/' . $stylesheet); } $mpdf->WriteHTML( str_replace( array('"../', "'../", '(../'), array('"' . $_CONFIG['url'], "'" . $_CONFIG['url'], '(' . $_CONFIG['url']), $stylecode ), 1 ); } $mpdf->WriteHTML($htmlcode, 2); // fajlba mentes, ha igaz // kulonben csak megjelenitjuk legeneralt pdf fajlt if ($savetofile) { $mpdf->Output(_MAINPATH . '/' . $filename, 'F'); return $filename; } else { $mpdf->Output(); } exit; } ?> function ID_COLLECTOR($table, $lng, $id = 0, &$a = array(), $depth = 0) { global $SQL; $sql = "SELECT cat_group_id AS id, parent, name FROM $table WHERE lng = '$lng' AND parent = " . $id . " AND parent != 0 AND deleted = 0 ORDER BY cat_group_id ASC"; if($SQL->sqlNum($sql) > 0) { $sql = $SQL->sqlAllAssoc($sql); foreach($sql as $v) { $id = $v['id']; $a[$id] = array( 'id'=>$v['id'], 'name'=>$v['name'], 'parent'=>$v['parent'], 'depth'=>$depth+1 ); $c_1 = count($a); $a = ID_COLLECTOR($table, $lng, $id, $a, ($depth+1) ); $c_2 = count($a); if($c_2 > $c_1) { $a[$id]['disabled'] = true; } else { $a[$id]['disabled'] = false; } } } return $a; } ?> ########################################### # # name: IMAGE UPLOAD # function: IMAGE_UPLOAD # author: erdsoft.com # ########################################### # DESCRIPTION: # A funkció elmenti a képeket a megfelelő helyre ########################################### # INPUT: # 1. $f - a feltöltendő képek # 2. $folder - hova mentse el ########################################### # OUPTUP: mappa és alapnév, false ########################################### function IMAGE_UPLOAD($f, $folder, $sizes = 'default', $as_png = false, $return_full_name = false) { global $_CONFIG; $type = $f['type']; if ($type == "image/jpeg" || $type == "image/png" || $type == "image/gif") { if ($f['error'] == 0) { if (!file_exists($folder)) { mkdir($folder, 0755, true); } $file = explode('.', $f['name']); $ext = strtolower(end($file)); unset($file[count($file) - 1]); $filename = implode('.', $file); // removeDiacritics is in file_upload.php $filename = date("Y.m.d.H.i.s") . '_' . uniqid() . '_' . removeDiacritics(str_replace(' ', '-', $filename)); $moved = move_uploaded_file($f['tmp_name'], $folder . $filename . '.' . $ext); if ($moved === false) { $moved = copy($f['tmp_name'], $folder . $filename . '.' . $ext); } if ($moved !== false) { if ($type == "image/gif") { $img = @imagecreatefromgif($folder . $filename . '.gif'); unlink($folder . $filename . '.gif'); } else if ($type == "image/png") { $img = @imagecreatefrompng($folder . $filename . '.png'); imagealphablending($img, false); imagesavealpha($img, true); if (!$as_png) { unlink($folder . $filename . '.png'); } } else { // create JPEG image from original extension $img = @imagecreatefromjpeg($folder . $filename . '.' . $ext); if (!$img) { error_log("IMAGE_UPLOAD: Failed imagecreatefromjpeg for file " . $folder . $filename . '.' . $ext); return false; } // only unlink original if type is 'jpeg' or 'jpg' if ($ext != 'jpg') { unlink($folder . $filename . '.' . $ext); } } if (!$img) { return false; } else { if ($as_png !== false) { $full_name = $folder . $filename . '.png'; imagepng($img, $full_name); } else { $full_name = $folder . $filename . '.jpg'; $quality = end($_CONFIG[$sizes]); // make bg // check color if ($type == "image/png") { if (!isset($quality['base_color'])) { $quality['base_color'] = $_CONFIG['base_color']; } $w = imagesx($img); $h = imagesy($img); $color = $quality['base_color']; $color = str_replace('#', '', $color); $color = str_split($color, 2); $color = (count($color) === 3 ? $color : str_split('ffffff', 2)); foreach ($color as $k => $c) { $color[$k] = hexdec($c); } $bg = imagecreatetruecolor($w, $h); $bgColor = imagecolorallocate($bg, $color[0], $color[1], $color[2]); imagefill($bg, 0, 0, $bgColor); imagealphablending($bg, true); imagesavealpha($bg, true); imagecopy($bg, $img, 0, 0, 0, 0, $w, $h); $img = $bg; } imagejpeg($img, $full_name, (isset($quality['image_quality']) ? $quality['image_quality'] : $_CONFIG['image_quality'])); } if (function_exists('convertImage') === true && convertImage($full_name, array('size' => $sizes)) === false) { return false; } foreach ($_CONFIG[$sizes] as $key => $value) { resize($filename, $folder, $value[0], $value[1], $key, $sizes, $as_png); } return ($return_full_name === true ? $full_name : $folder.$filename); } } else { return false; } } else { return false; } } else { return false; } } ########################################### # # name: MONEY_EXCHANGE # function: MONEY_EXCHANGE # author: erdsoft.com # ########################################### # DESCRIPTION: # A funkcio visszaadja a felvaltott penz osszeget. ########################################### # INPUT: # 1. $src_valuta - forras valuta (amibol valtunk) # 2. $dest_valuta - cel valuta (amibe valtunk) # 3. $amount - az osszeg amit valtani szeretnenk ########################################### # OUPTUP: a felvaltott osszeg ########################################### function money_exchange($src_valuta, $dest_valuta, $amount){ $link = 'http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s='. $src_valuta . $dest_valuta .'=X'; $fetch = @fopen($link, 'r'); if ($fetch) { $data = fgets($fetch, 4096); fclose($fetch); } $filtered = explode(',', $data); return round(($filtered[1] * $amount), 2); } ?> ########################################### # # name: CSV 2 ARRAY # function: CSV2ARRAY # author: erdsoft.com # ########################################### # DESCRIPTION: # A funkcio a CSV fajlbol az oszlopokat tombe rendezi. ########################################### # INPUT: # 1. $file - fajl elerhetosege # 2. $startROW - hanyadik sortol kezdje az adatfeltoldozast # 3. $stopCOL - a nulladik oszloptol hanyadik oszlopig vegye ki az adaokat ########################################### # OUPTUP: a TOMB[SOR][OSZLOP], vagy rovid uzenet az allapotrol ha nem sikerult ########################################### function CSV2ARRAY($file, $startROW = 0, $stopCOL){ if(($handle = fopen($file, "r")) !== FALSE){ $i=0; $tomb = array(); while(($data = fgetcsv($handle, 1000, ";")) !== FALSE){ if($i >= $startROW){ for($z=0; $z<$stopCOL; $z++){ if(isset($data[$z])){ $tomb[$i][$z] = $data[$z]; } } } $i++; } return $tomb; }else{ return "CANTOPEN"; } } ?> function endsWith($string, $test) { $strlen = strlen($string); $testlen = strlen($test); if ($testlen > $strlen) return false; return substr_compare($string, $test, -$testlen) === 0; } ?> function after($t, $inthat) { $pos = strpos($inthat, $t); if (!is_bool(strpos($inthat, $t))) { return $pos !== false ? substr($inthat, strpos($inthat,$t) + strlen($t)) : $inthat; } else { return $inthat; } }; function afterLast($t, $inthat) { $pos = strpos($inthat, $t); if (!is_bool(strrevpos($inthat, $t))) { return $pos !== false ? substr($inthat, strrevpos($inthat, $t) + strlen($t)) : $inthat; } else { return $inthat; } }; function before($t, $inthat) { $pos = strpos($inthat, $t); return $pos !== false ? substr($inthat, 0, strpos($inthat, $t)) : $inthat; }; function beforeLast($t, $inthat) { $pos = strpos($inthat, $t); return $pos !== false ? substr($inthat, 0, strrevpos($inthat, $t)) : $inthat; }; function between($t, $that, $inthat) { return before($that, after($t, $inthat)); }; function betweenLast($t, $that, $inthat) { return afterLast($t, beforeLast($that, $inthat)); }; // use strrevpos function in case your php version does not include it function strrevpos($instr, $needle) { $rev_pos = strpos(strrev($instr), strrev($needle)); if ($rev_pos === false) { return false; } else { return strlen($instr) - $rev_pos - strlen($needle); } }; ?>
ParaPoly Nürnberg ist dein interaktives Outdoor-Stadtabenteuer in der historischen Altstadt. Ihr übernehmt die Hauptrollen, löst knifflige Aufgaben, folgt versteckten Hinweisen und erlebt Nürnberg aus einer Perspektive, die euch sonst verborgen bleibt.
Vergiss klassische Stadtführungen und gewöhnliche Escape Rooms.
ParaPoly ist ein lebendiges, interaktives Outdoor-Abenteuerspiel zum Mitdenken, bei dem jede Gasse, jeder Platz und jedes Detail Teil eures Abenteuers wird.
⇒ Ein e-Ticket pro Team
mit 2-6 Spielern
(erhältlich im Ticketshop)
⇒ Die ausgedruckte Spielkarte
für eure Spielstrecke
⇒ Ein Stift für Notizen
⇒ Ein Smartphone mit
Internetverbidung
Optional:
⇒ Eine Taschenlampe
⇒ Wetterfeste Kleidung
⇒ Tickets für den ÖPNV
⇒Spieldauer:
ca 2,5 bis 3,5 Stunden
⇒Distanz:
ca 2-3 km, je nach Strecke
⇒Wissenfaktor:
Erfahrt Interessantes über
die Sehenswürdigkeiten
der Stadt
⇒Teamgröße:
2-6 Mispieler
⇒Spielzeiten:
Jederzeit 24/7
⇒Termine:
Nicht notwendig
⇒Aktiviert euer e-Ticket
um eure Zugangsdaten
zu erhalten und das Spiel
zu starten
⇒Loggt euch mit euren
Zugangsdaten im
Spielserver ein.
⇒Löst die erste,
ortsunabhängige Aufgabe
um euren Startpunkt
zu erfahren
⇒Löst die jeweilige Aufgabe
vor Ort, um euer nächstes
Rätsel freizuschalten.
⇒Knackt alle Codes und lüftet
jedes Geheimnis des Spiels
um zu gewinnen.
Für Familien
Ein gemeinsames Erlebnis, bei dem alle Generationen aktiv teilnehmen können.
Für Freundesgruppen
Spaß, Herausforderungen und gemeinsame Erfolgserlebnisse in einem besonderen Rahmen.
Für Paare
Ein außergewöhnliches Date, bei dem ihr gemeinsam rätseln und entdecken könnt.
Für Teams
Ein einzigartiges Outdoor-Erlebnis, das Zusammenarbeit und Kommunikation stärkt.
Wählt die passende Route für euer Team
✔️ Die Straßen der Stadt werden Teil des Spiels
✔️ Kein Zeitdruck, kein Stress
✔️ Logische Aufgaben und eine spannende Story
✔️ Keine spezielle Ausrüstung nötig – nur ein Smartphone
✔️ Jederzeit spielbar, das ganze Jahr über
Der ParaPoly Gutschein ist das perfekte Geschenk für Geburtstage, Jubiläen oder besondere Anlässe.
Keine festen Termine – die Beschenkten spielen, wann es für sie am besten passt.
🎁 Digitaler Gutschein
🎁 Sofort einlösbar
Das ParaPoly Stadtabenteuer ist die ideale Aktivität mit Familie, Freunden oder zu zweit.
Während des Spiels löst ihr nicht nur Aufgaben, sondern entdeckt die Nürnberger Innenstadt auf eine Weise, die klassische Stadtbesichtigungen nicht bieten können.
Mehr über Programme in Nürnberg erfahren
Das ParaPoly Outdoor-Abenteuerspiel in Nürnberg verbindet Teamarbeit, Rätselspaß und Stadterlebnis zu einem außergewöhnlichen Teambuilding. Gemeinsam entdeckt ihr die historische Nürnberger Altstadt, löst spannende Missionen und erlebt, wie Kommunikation und Zusammenarbeit ganz natürlich entstehen.
Ob Teamevent, Betriebsausflug, Firmenevent oder Schulausflug – ParaPoly bietet für unterschiedlichste Gruppen das passende Outdoor-Abenteuer.
Mehr über Teambuilding in Nürnberg erfahren
Noch Fragen zum ParaPoly Stadtabenteuer? Du bist dir unsicher, wie du das Erlebnis in deinen Tag in Nürnberg integrieren kannst?
Alle wichtigen Informationen und Antworten findest du im FAQ-Bereich