<?php /** * @author Caspar Armster * @copyright 2016 Caspar Armster, Freifunk Hennef/Freie Netzwerker e.V. (www.freifunk-hennef.de / www.freie-netzwerker.de) * @license Licensed under GPLv3 * */ error_reporting (E_ALL | E_STRICT); ini_set ('display_errors', 'On'); require_once('community-config.inc.php'); require_once('config.inc.php'); require_once('ffrouter.class.php'); require_once('ffrouter_parsen.function.php'); echo <<<EOT <!DOCTYPE html> <html lang="de"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Freifunk Hennef Firmware Downloadseite</title> <meta name="author" content="LayoutIt!"> <link href="css/bootstrap.min.css" rel="stylesheet"> <link href="css/styles.css" rel="stylesheet"> <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"> <link rel="icon" href="favicon.ico" type="image/x-icon"> EOT; try { require_once('ffrouter_parsen.function.php'); } catch(Exception $e) { echo("Fehler: ".$e->getMessage()); die(); } $router_json = json_encode($router); echo("\n<script>\n"); echo("var router_text = '".$router_json."';\n"); echo("var router_json = JSON.parse(router_text);\n"); echo("var anzahl_hersteller = ".$anzahl_hersteller.";\n"); echo("var herstellername = ["); for( $i=0; $i<$anzahl_hersteller; $i++) { echo("\"".$hersteller[$i]['name']."\""); if( $i != $anzahl_hersteller-1) { echo(", "); } } echo("];\n"); echo <<<EOT function populateA(){ var s1 = document.getElementById("fw-dl-1"); var s2 = document.getElementById("fw-dl-2"); var s3 = document.getElementById("fw-dl-3"); var s4 = document.getElementById("fw-dl-4"); var s5 = document.getElementById("fw-dl-5"); var s6 = document.getElementById("fw-dl-6"); var img_router_front = document.getElementById("img_router_front"); var img_router_back = document.getElementById("img_router_back"); var optionArray = new Array(); s2.innerHTML = ""; for(i=0; i<anzahl_hersteller; i++) { if(s1.value == herstellername[i]) { optionArray[0] = "|Modell auswählen"; var j = 0; while(j < router_json.length) { if(router_json[j].hersteller == herstellername[i]) { optionArray[j+1] = router_json[j].modell+"|"+router_json[j].modell; if(j<router_json.length-1) { while(router_json[j].modell == router_json[j+1].modell) { if(j<router_json.length-1) { j++; } else { break; } } } } j++; } } } for(var option in optionArray){ var pair = optionArray[option].split("|"); var newOption = document.createElement("option"); newOption.value = pair[0]; newOption.innerHTML = pair[1]; s2.options.add(newOption); } while(s3.length > 1) { s3.remove(s3.length-1); } while(s4.length > 1) { s4.remove(s4.length-1); } while(s5.length > 1) { s5.remove(s5.length-1); } s6.href = "#"; s6.className = s6.className.replace( /(?:^|\s)disabled(?!\S)/g , '' ); s6.className = s6.className.replace( /(?:^|\s)btn-primary(?!\S)/g , '' ); s6.className = s6.className.replace( /(?:^|\s)btn-danger(?!\S)/g , '' ); s6.className = s6.className.replace( /(?:^|\s)btn-warning(?!\S)/g , '' ); s6.className = s6.className.replace( /(?:^|\s)btn-success(?!\S)/g , '' ); s6.className += " btn-primary disabled"; s6.innerHTML = "Download Firmware"; img_router_front.src = "router_images/keinbild.jpg"; img_router_back.src = "router_images/keinbild.jpg"; } function populateB(){ var s1 = document.getElementById("fw-dl-2"); var s2 = document.getElementById("fw-dl-3"); var s4 = document.getElementById("fw-dl-4"); var s5 = document.getElementById("fw-dl-5"); var s6 = document.getElementById("fw-dl-6"); var img_router_front = document.getElementById("img_router_front"); var img_router_back = document.getElementById("img_router_back"); var optionArray = new Array(); optionArray[0] = "|Modell auswählen"; s2.innerHTML = ""; var i = 0; while(i < router_json.length) { if(router_json[i].modell == s1.value) { optionArray[i+1] = i+"|"+router_json[i].version; if(i<router_json.length-1) { while(router_json[i].modell == router_json[i+1].modell) { if(i<router_json.length-1) { i++; optionArray[i+1] = i+"|"+router_json[i].version; } else { break; } } } } i++; } for(var option in optionArray){ var pair = optionArray[option].split("|"); var newOption = document.createElement("option"); newOption.value = pair[0]; newOption.innerHTML = pair[1]; s2.options.add(newOption); } while(s4.length > 1) { s4.remove(s4.length-1); } while(s5.length > 1) { s5.remove(s5.length-1); } s6.href = "#"; s6.className = s6.className.replace( /(?:^|\s)disabled(?!\S)/g , '' ); s6.className = s6.className.replace( /(?:^|\s)btn-primary(?!\S)/g , '' ); s6.className = s6.className.replace( /(?:^|\s)btn-danger(?!\S)/g , '' ); s6.className = s6.className.replace( /(?:^|\s)btn-warning(?!\S)/g , '' ); s6.className = s6.className.replace( /(?:^|\s)btn-success(?!\S)/g , '' ); s6.className += " btn-primary disabled"; s6.innerHTML = "Download Firmware"; img_router_front.src = "router_images/keinbild.jpg"; img_router_back.src = "router_images/keinbild.jpg"; } function populateC(){ var s1 = document.getElementById("fw-dl-3"); var s2 = document.getElementById("fw-dl-4"); var s5 = document.getElementById("fw-dl-5"); var s6 = document.getElementById("fw-dl-6"); var img_router_front = document.getElementById("img_router_front"); var img_router_back = document.getElementById("img_router_back"); var optionArray = new Array(); optionArray[0] = "|Erstinstallation?"; s2.innerHTML = ""; var newImageFront = router_json[s1.value].imagefront; var newImageBack = router_json[s1.value].imageback; var i = 1; if((router_json[s1.value].betafactory == 1) || (router_json[s1.value].brokenfactory == 1) || (router_json[s1.value].experimentalfactory == 1) || (router_json[s1.value].stablefactory == 1)) { optionArray[i] = s1.value+"J|Ja"; i++; } if((router_json[s1.value].betasysupgrade == 1) || (router_json[s1.value].brokensysupgrade == 1) || (router_json[s1.value].experimentalsysupgrade == 1) || (router_json[s1.value].stablesysupgrade == 1)) { optionArray[i] = s1.value+"N|Nein"; } for(var option in optionArray){ var pair = optionArray[option].split("|"); var newOption = document.createElement("option"); newOption.value = pair[0]; newOption.innerHTML = pair[1]; s2.options.add(newOption); } while(s5.length > 1) { s5.remove(s5.length-1); } s6.href = "#"; s6.className = s6.className.replace( /(?:^|\s)disabled(?!\S)/g , '' ); s6.className = s6.className.replace( /(?:^|\s)btn-primary(?!\S)/g , '' ); s6.className = s6.className.replace( /(?:^|\s)btn-danger(?!\S)/g , '' ); s6.className = s6.className.replace( /(?:^|\s)btn-warning(?!\S)/g , '' ); s6.className = s6.className.replace( /(?:^|\s)btn-success(?!\S)/g , '' ); s6.className += " btn-primary disabled"; s6.innerHTML = "Download Firmware"; img_router_front.src = newImageFront; img_router_back.src = newImageBack; } function populateD(){ var s1 = document.getElementById("fw-dl-4"); var s2 = document.getElementById("fw-dl-5"); var s6 = document.getElementById("fw-dl-6"); var optionArray = new Array(); optionArray[0] = "|Entwicklungsstadium?"; s2.innerHTML = ""; var id = parseInt(s1.value.slice(0,s1.value.length)); var jein = s1.value.slice(-1); var i = 1; if(jein == "J") { if(router_json[id].betafactory == 1) { optionArray[i] = id+"Jbeta|Beta"; i++; } if(router_json[id].brokenfactory == 1) { optionArray[i] = id+"Jbroken|Broken"; i++; } if(router_json[id].experimentalfactory == 1) { optionArray[i] = id+"Jexp|Experimental"; i++; } if(router_json[id].stablefactory == 1) { optionArray[i] = id+"Jstable|Stable"; i++; } } if(jein == "N") { if(router_json[id].betasysupgrade == 1) { optionArray[i] = id+"Nbeta|Beta"; i++; } if(router_json[id].brokensysupgrade == 1) { optionArray[i] = id+"Nbroken|Broken"; i++; } if(router_json[id].experimentalsysupgrade == 1) { optionArray[i] = id+"Nexp|Experimental"; i++; } if(router_json[id].stablesysupgrade == 1) { optionArray[i] = id+"Nstable|Stable"; i++; } } for(var option in optionArray){ var pair = optionArray[option].split("|"); var newOption = document.createElement("option"); newOption.value = pair[0]; newOption.innerHTML = pair[1]; s2.options.add(newOption); } s6.href = "#"; s6.className = s6.className.replace( /(?:^|\s)disabled(?!\S)/g , '' ); s6.className = s6.className.replace( /(?:^|\s)btn-primary(?!\S)/g , '' ); s6.className = s6.className.replace( /(?:^|\s)btn-danger(?!\S)/g , '' ); s6.className = s6.className.replace( /(?:^|\s)btn-warning(?!\S)/g , '' ); s6.className = s6.className.replace( /(?:^|\s)btn-success(?!\S)/g , '' ); s6.className += " btn-primary disabled"; s6.innerHTML = "Download Firmware"; } function populateE(){ var s1 = document.getElementById("fw-dl-5"); var s2 = document.getElementById("fw-dl-6"); s2.innerHTML = ""; if(s1.value.lastIndexOf("Jbeta") != -1) { var id = parseInt(s1.value.slice(0,s1.value.length-4)); var link = router_json[id].betafactorylink; var linkclass = " btn-warning"; } if(s1.value.lastIndexOf("Jbroken") != -1) { var id = parseInt(s1.value.slice(0,s1.value.length-6)); var link = router_json[id].brokenfactorylink; var linkclass = " btn-danger"; } if(s1.value.lastIndexOf("Jexp") != -1) { var id = parseInt(s1.value.slice(0,s1.value.length-3)); var link = router_json[id].experimentalfactorylink; var linkclass = " btn-warning"; } if(s1.value.lastIndexOf("Jstable") != -1) { var id = parseInt(s1.value.slice(0,s1.value.length-6)); var link = router_json[id].stablefactorylink; var linkclass = " btn-success"; } if(s1.value.lastIndexOf("Nbeta") != -1) { var id = parseInt(s1.value.slice(0,s1.value.length-4)); var link = router_json[id].betasysupgradelink; var linkclass = " btn-warning"; } if(s1.value.lastIndexOf("Nbroken") != -1) { var id = parseInt(s1.value.slice(0,s1.value.length-6)); var link = router_json[id].brokensysupgradelink; var linkclass = " btn-danger"; } if(s1.value.lastIndexOf("Nexp") != -1) { var id = parseInt(s1.value.slice(0,s1.value.length-3)); var link = router_json[id].experimentalsysupgradelink; var linkclass = " btn-warning"; } if(s1.value.lastIndexOf("Nstable") != -1) { var id = parseInt(s1.value.slice(0,s1.value.length-6)); var link = router_json[id].stablesysupgradelink; var linkclass = " btn-success"; } s2.href = link; s2.className = s2.className.replace( /(?:^|\s)disabled(?!\S)/g , '' ); s2.className = s2.className.replace( /(?:^|\s)btn-primary(?!\S)/g , '' ); s2.className = s2.className.replace( /(?:^|\s)btn-danger(?!\S)/g , '' ); s2.className = s2.className.replace( /(?:^|\s)btn-warning(?!\S)/g , '' ); s2.className = s2.className.replace( /(?:^|\s)btn-success(?!\S)/g , '' ); s2.className += linkclass; s2.innerHTML = "Download Firmware"; } </script> </head> <body> <div class="container-fluid"> EOT; for($i=0; $i<$err; $i++) { echo("<div class=\"alert alert-warning alert-dismissible\" role=\"alert\">\n"); echo(" <span class=\"glyphicon glyphicon-exclamation-sign\" aria-hidden=\"true\"></span>\n"); echo(" <span class=\"sr-only\">Warning:</span>\n"); echo(" <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\"><span aria-hidden=\"true\">×</span></button>\n"); echo(" <strong>Warning!</strong> ".$error_text[$i]."\n"); echo("</div>\n"); } echo <<<EOT <div class="row"> <div class="col-md-12"> <div class="jumbotron"> EOT; echo("<img src=\"".$logo_url."\" alt=\"".$logo_alt."\" style=\"float:right;\">"); echo <<<EOT <h2> EOT; echo($text_h1); echo <<<EOT </h2> <p> EOT; echo($text_h2); echo <<<EOT </p> <p> EOT; echo("<a class=\"btn btn-primary btn-large\" href=\"".$link_h2_url."\">".$link_h2_text."</a>"); echo <<<EOT </p> </div> </div> </div> <div class="row"> <div class="col-md-12"> <div class="panel panel-primary"> <div class="panel-heading"> <h3 class="panel-title"> EOT; echo($text_h1); echo <<<EOT </h3> </div> <div class="panel-body"> <img src="router_images/keinbild.jpg" id="img_router_back" alt="Router Rückseite" width=200px" style="float:right;"> <img src="router_images/keinbild.jpg" id="img_router_front" alt="Router Vorderseite" width=200px" style="float:right;"> Bitte suchen Sie den passenden Router aus, indem Sie den Hersteller, das Modell und die Version auswählen.<br /> Legen Sie anschließend fest, ob sie den Router zum ersten Mal mit einer Freifunk Firmware flashen und welches Entwicklungsstadium die Firmware haben soll.<br /> <br /> Bitte wählen Sie "stable" im Entwicklungsstadium aus, wenn Sie nicht genau wissen was Sie sonst erwartet! </div> <div class="panel-footer"> <img src="images/ccbyncsa.png" alt="CC BY-NC-SA" width="60px"> Die Router Bilder sind von Daniel Krah und sind lizensiert unter einer <a href="http://creativecommons.org/licenses/by-nc-sa/4.0/" target:"_blank">Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz</a> </div> </div> </div> </div> <div class="row"> <div class="col-md-4"> <div class="panel panel-primary"> <div class="panel-heading"> <h3 class="panel-title"> Router Hersteller </h3> </div> <div class="panel-body"> <select id="fw-dl-1" name="fw-dl-1" onchange="populateA()"> <option value="">Hersteller auswählen</option> EOT; for($i=0; $i<$anzahl_hersteller; $i++) { echo("<option value=\"".$hersteller[$i]['name']."\">".$hersteller[$i]['name']."</option>"); } echo <<<EOT </select> </div> <div class="panel-footer"> </div> </div> </div> <div class="col-md-4"> <div class="panel panel-primary"> <div class="panel-heading"> <h3 class="panel-title"> Router Modell </h3> </div> <div class="panel-body"> <select id="fw-dl-2" name="fw-dl-2" onchange="populateB()"></select> </div> <div class="panel-footer"> </div> </div> </div> <div class="col-md-4"> <div class="panel panel-primary"> <div class="panel-heading"> <h3 class="panel-title"> Router Version </h3> </div> <div class="panel-body"> <select id="fw-dl-3" name="fw-dl-3" onchange="populateC()"></select> </div> <div class="panel-footer"> </div> </div> </div> </div> <div class="row"> <div class="col-md-4"> <div class="panel panel-primary"> <div class="panel-heading"> <h3 class="panel-title"> Firmware Erstinstallation </h3> </div> <div class="panel-body"> <select id="fw-dl-4" name="fw-dl-4" onchange="populateD()"></select> </div> <div class="panel-footer"> </div> </div> </div> <div class="col-md-4"> <div class="panel panel-primary"> <div class="panel-heading"> <h3 class="panel-title"> Firmware Entwicklungsstadium </h3> </div> <div class="panel-body"> <select id="fw-dl-5" name="fw-dl-5" onchange="populateE()"></select> </div> <div class="panel-footer"> </div> </div> </div> <div class="col-md-4"> <div class="panel panel-primary"> <div class="panel-heading"> <h3 class="panel-title"> Firmware Download </h3> </div> <div class="panel-body"> <a href="#" id="fw-dl-6" name="fw-dl-6" role="button" class="btn btn-primary disabled">Download Firmware</a> </div> <div class="panel-footer"> Licensed under GPLv3 / Copyright 2016 by Caspar Armster, <a href="http://www.freifunk-hennef.de/">Freifunk Hennef</a> / <a href="http://www.freie-netzwerker.de/">Freie Netzwerker e.V.</a> </div> </div> </div> </div> </div> <script src="js/jquery-2.2.3.min.js"></script> <script src="js/bootstrap.min.js"></script> <!-- <script src="js/scripts.js"></script> --> </body> </html> EOT; ?>