Merge pull request #1 from anoymouserver/master

beautify and unify code
This commit is contained in:
Caspar Armster 2016-07-24 22:13:24 +02:00 committed by GitHub
commit e987207218
10 changed files with 1277 additions and 1375 deletions

17
.editorconfig Normal file
View File

@ -0,0 +1,17 @@
# EditorConfig is awesome: http://editorconfig.org
root = true
[*]
charset = utf-8
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true
indent_style = space
indent_size = 4
[*.md]
trim_trailing_whitespace = false
[*.js]
indent_size = 2

View File

@ -7,14 +7,14 @@
/** Texte für die 2 Stufige Auswahl einer Meta-Community. /** Texte für die 2 Stufige Auswahl einer Meta-Community.
*/ */
$texte = array( $texte = array(
"ebene1_titel" => "Freifunk Community", "ebene1_titel" => "Freifunk Community",
"ebene1_text" => "Freifunk Community auswählen", "ebene1_text" => "Freifunk Community auswählen",
"ebene2_titel" => "Bereich der Community", "ebene2_titel" => "Bereich der Community",
"ebene2_text" => "Bereich der Community auswählen", "ebene2_text" => "Bereich der Community auswählen",
"ebene3_titel" => "Firmware Downloader", "ebene3_titel" => "Firmware Downloader",
"ebene3_text" => "Zur Firmware-Download Seite" "ebene3_text" => "Zur Firmware-Download Seite"
); );
/** Beispiel für eine einzelne Community. Das Array entkommentieren und ausfüllen, sowie das Array der Meta-Community löschen oder auskommentieren und der Downloader leitet dann automatisch direkt auf die Firmware Download Seite um. /** Beispiel für eine einzelne Community. Das Array entkommentieren und ausfüllen, sowie das Array der Meta-Community löschen oder auskommentieren und der Downloader leitet dann automatisch direkt auf die Firmware Download Seite um.
* $community = array( * $community = array(
@ -37,216 +37,215 @@
/** Beispiel für eine Meta-Community. /** Beispiel für eine Meta-Community.
*/ */
$community = array( $community = array(
0 => array( 0 => array(
"community_id" => 0, "community_id" => 0,
"name" => "Freifunk Rhein-Sieg", "name" => "Freifunk Rhein-Sieg",
"head_titel" => "Freifunk Rhein-Sieg Firmware", "head_titel" => "Freifunk Rhein-Sieg Firmware",
"head_text" => "Auf dieser Seite können Sie die passende Community für die Firmware für ihren Router aus dem Rhein-Sieg-Kreis auswählen!", "head_text" => "Auf dieser Seite können Sie die passende Community für die Firmware für ihren Router aus dem Rhein-Sieg-Kreis auswählen!",
"link_text" => "Zurück zur Startseite", "link_text" => "Zurück zur Startseite",
"link_url" => "http://www.freifunk-rhein-sieg.de/", "link_url" => "http://www.freifunk-rhein-sieg.de/",
"logo_alt" => "Freifunk Rhein-Sieg-Kreis Logo", "logo_alt" => "Freifunk Rhein-Sieg-Kreis Logo",
"logo_url" => "images/Freifunk-logo-rhein-sieg-klein-200.png", "logo_url" => "images/Freifunk-logo-rhein-sieg-klein-200.png",
"lang_titel" => "Freifunk Rhein-Sieg Community Auswahl", "lang_titel" => "Freifunk Rhein-Sieg Community Auswahl",
"lang_text" => "Bitte suchen Sie die passende Community aus, indem Sie die Community und gegebenenfalls noch einen Bereich in der Community auswählen.<br />Sie werden dann weitergeleitet auf die eigentliche Firmware Download Seite für die gewähle Community.", "lang_text" => "Bitte suchen Sie die passende Community aus, indem Sie die Community und gegebenenfalls noch einen Bereich in der Community auswählen.<br />Sie werden dann weitergeleitet auf die eigentliche Firmware Download Seite für die gewählte Community.",
"download_path" => "", "download_path" => "",
"sub_auswahl" => "" "sub_auswahl" => ""
), ),
1 => array( 1 => array(
"community_id" => 1, "community_id" => 1,
"name" => "Freifunk Hennef", "name" => "Freifunk Hennef",
"head_titel" => "Freifunk Hennef Firmware", "head_titel" => "Freifunk Hennef Firmware",
"head_text" => "Auf dieser Seite können Sie die passende Firmware für ihren Router in Hennef auswählen und herunterladen!", "head_text" => "Auf dieser Seite können Sie die passende Firmware für ihren Router in Hennef auswählen und herunterladen!",
"link_text" => "Zurück zur Startseite", "link_text" => "Zurück zur Startseite",
"link_url" => "http://downloader.freifunk-rhein-sieg.de/", "link_url" => "http://downloader.freifunk-rhein-sieg.de/",
"logo_alt" => "Freifunk Hennef Logo", "logo_alt" => "Freifunk Hennef Logo",
"logo_url" => "images/Freifunk-logo-hennef-klein-200.png", "logo_url" => "images/Freifunk-logo-hennef-klein-200.png",
"lang_titel" => "Freifunk Hennef Firmware Auswahl", "lang_titel" => "Freifunk Hennef Firmware Auswahl",
"lang_text" => "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!", "lang_text" => "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!",
"download_path" => "../fwuploads/hennef/", "download_path" => "../fwuploads/hennef/",
"sub_auswahl" => "" "sub_auswahl" => ""
), ),
2 => array( 2 => array(
"community_id" => 2, "community_id" => 2,
"name" => "Freifunk Lohmar", "name" => "Freifunk Lohmar",
"head_titel" => "Freifunk Lohmar Firmware", "head_titel" => "Freifunk Lohmar Firmware",
"head_text" => "Auf dieser Seite können Sie die passende Firmware für ihren Router in Lohmar auswählen und herunterladen!", "head_text" => "Auf dieser Seite können Sie die passende Firmware für ihren Router in Lohmar auswählen und herunterladen!",
"link_text" => "Zurück zur Startseite", "link_text" => "Zurück zur Startseite",
"link_url" => "http://downloader.freifunk-rhein-sieg.de/", "link_url" => "http://downloader.freifunk-rhein-sieg.de/",
"logo_alt" => "Freifunk Lohmar Logo", "logo_alt" => "Freifunk Lohmar Logo",
"logo_url" => "images/Freifunk-logo-lohmar-klein-200.png", "logo_url" => "images/Freifunk-logo-lohmar-klein-200.png",
"lang_titel" => "Freifunk Lohmar Firmware Auswahl", "lang_titel" => "Freifunk Lohmar Firmware Auswahl",
"lang_text" => "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!", "lang_text" => "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!",
"download_path" => "../fwuploads/lohmar/", "download_path" => "../fwuploads/lohmar/",
"sub_auswahl" => "" "sub_auswahl" => ""
), ),
3 => array( 3 => array(
"community_id" => 3, "community_id" => 3,
"name" => "Freifunk Meckenheim", "name" => "Freifunk Meckenheim",
"head_titel" => "Freifunk Meckenheim Firmware", "head_titel" => "Freifunk Meckenheim Firmware",
"head_text" => "Auf dieser Seite können Sie die passende Firmware für ihren Router in Meckenheim auswählen und herunterladen!", "head_text" => "Auf dieser Seite können Sie die passende Firmware für ihren Router in Meckenheim auswählen und herunterladen!",
"link_text" => "Zurück zur Startseite", "link_text" => "Zurück zur Startseite",
"link_url" => "http://downloader.freifunk-rhein-sieg.de/", "link_url" => "http://downloader.freifunk-rhein-sieg.de/",
"logo_alt" => "Freifunk Meckenheim Logo", "logo_alt" => "Freifunk Meckenheim Logo",
"logo_url" => "images/Freifunk-logo-meckenheim-klein-200.png", "logo_url" => "images/Freifunk-logo-meckenheim-klein-200.png",
"lang_titel" => "Freifunk Meckenheim Firmware Auswahl", "lang_titel" => "Freifunk Meckenheim Firmware Auswahl",
"lang_text" => "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!", "lang_text" => "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!",
"download_path" => "../fwuploads/meckenheim/", "download_path" => "../fwuploads/meckenheim/",
"sub_auswahl" => "" "sub_auswahl" => ""
), ),
4 => array( 4 => array(
"community_id" => 4, "community_id" => 4,
"name" => "Freifunk Much", "name" => "Freifunk Much",
"head_titel" => "Freifunk Much Firmware", "head_titel" => "Freifunk Much Firmware",
"head_text" => "Auf dieser Seite können Sie die passende Firmware für ihren Router in Much auswählen und herunterladen!", "head_text" => "Auf dieser Seite können Sie die passende Firmware für ihren Router in Much auswählen und herunterladen!",
"link_text" => "Zurück zur Startseite", "link_text" => "Zurück zur Startseite",
"link_url" => "http://downloader.freifunk-rhein-sieg.de/", "link_url" => "http://downloader.freifunk-rhein-sieg.de/",
"logo_alt" => "Freifunk Rhein-Sieg Logo", "logo_alt" => "Freifunk Rhein-Sieg Logo",
"logo_url" => "images/Freifunk-logo-rhein-sieg-klein-200.png", "logo_url" => "images/Freifunk-logo-rhein-sieg-klein-200.png",
"lang_titel" => "Freifunk Much Firmware Auswahl", "lang_titel" => "Freifunk Much Firmware Auswahl",
"lang_text" => "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!", "lang_text" => "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!",
"download_path" => "../fwuploads/much/", "download_path" => "../fwuploads/much/",
"sub_auswahl" => "" "sub_auswahl" => ""
), ),
5 => array( 5 => array(
"community_id" => 5, "community_id" => 5,
"name" => "Freifunk Neunkirchen-Seelscheid", "name" => "Freifunk Neunkirchen-Seelscheid",
"head_titel" => "Freifunk Neunkirchen-Seelscheid Firmware", "head_titel" => "Freifunk Neunkirchen-Seelscheid Firmware",
"head_text" => "Auf dieser Seite können Sie die passende Firmware für ihren Router in Neunkirchen-Seelscheid auswählen und herunterladen!", "head_text" => "Auf dieser Seite können Sie die passende Firmware für ihren Router in Neunkirchen-Seelscheid auswählen und herunterladen!",
"link_text" => "Zurück zur Startseite", "link_text" => "Zurück zur Startseite",
"link_url" => "http://downloader.freifunk-rhein-sieg.de/", "link_url" => "http://downloader.freifunk-rhein-sieg.de/",
"logo_alt" => "Freifunk Rhein-Sieg Logo", "logo_alt" => "Freifunk Rhein-Sieg Logo",
"logo_url" => "images/Freifunk-logo-rhein-sieg-klein-200.png", "logo_url" => "images/Freifunk-logo-rhein-sieg-klein-200.png",
"lang_titel" => "Freifunk Neunkirchen-Seelscheid Firmware Auswahl", "lang_titel" => "Freifunk Neunkirchen-Seelscheid Firmware Auswahl",
"lang_text" => "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!", "lang_text" => "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!",
"download_path" => "../fwuploads/neunkirchen/", "download_path" => "../fwuploads/neunkirchen/",
"sub_auswahl" => "" "sub_auswahl" => ""
), ),
6 => array( 6 => array(
"community_id" => 6, "community_id" => 6,
"name" => "Freifunk Niederkassel", "name" => "Freifunk Niederkassel",
"head_titel" => "Freifunk Niederkassel Firmware", "head_titel" => "Freifunk Niederkassel Firmware",
"head_text" => "Auf dieser Seite können Sie die passende Firmware für ihren Router in Niederkassel auswählen und herunterladen!", "head_text" => "Auf dieser Seite können Sie die passende Firmware für ihren Router in Niederkassel auswählen und herunterladen!",
"link_text" => "Zurück zur Startseite", "link_text" => "Zurück zur Startseite",
"link_url" => "http://downloader.freifunk-rhein-sieg.de/", "link_url" => "http://downloader.freifunk-rhein-sieg.de/",
"logo_alt" => "Freifunk Rhein-Sieg Logo", "logo_alt" => "Freifunk Rhein-Sieg Logo",
"logo_url" => "images/Freifunk-logo-rhein-sieg-klein-200.png", "logo_url" => "images/Freifunk-logo-rhein-sieg-klein-200.png",
"lang_titel" => "Freifunk Niederkassel Firmware Auswahl", "lang_titel" => "Freifunk Niederkassel Firmware Auswahl",
"lang_text" => "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!", "lang_text" => "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!",
"download_path" => "../fwuploads/niederkassel/", "download_path" => "../fwuploads/niederkassel/",
"sub_auswahl" => "" "sub_auswahl" => ""
), ),
7 => array( 7 => array(
"community_id" => 7, "community_id" => 7,
"name" => "Freifunk Rheinbach", "name" => "Freifunk Rheinbach",
"head_titel" => "Freifunk Rheinbach Firmware", "head_titel" => "Freifunk Rheinbach Firmware",
"head_text" => "Auf dieser Seite können Sie die passende Firmware für ihren Router in Rheinbach auswählen und herunterladen!", "head_text" => "Auf dieser Seite können Sie die passende Firmware für ihren Router in Rheinbach auswählen und herunterladen!",
"link_text" => "Zurück zur Startseite", "link_text" => "Zurück zur Startseite",
"link_url" => "http://downloader.freifunk-rhein-sieg.de/", "link_url" => "http://downloader.freifunk-rhein-sieg.de/",
"logo_alt" => "Freifunk Rheinbach Logo", "logo_alt" => "Freifunk Rheinbach Logo",
"logo_url" => "images/Freifunk-logo-rheinbach-klein-200.png", "logo_url" => "images/Freifunk-logo-rheinbach-klein-200.png",
"lang_titel" => "Freifunk Rheinbach Firmware Auswahl", "lang_titel" => "Freifunk Rheinbach Firmware Auswahl",
"lang_text" => "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!", "lang_text" => "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!",
"download_path" => "../fwuploads/rheinbach/", "download_path" => "../fwuploads/rheinbach/",
"sub_auswahl" => "" "sub_auswahl" => ""
), ),
8 => array( 8 => array(
"community_id" => 8, "community_id" => 8,
"name" => "Freifunk Ruppichteroth", "name" => "Freifunk Ruppichteroth",
"head_titel" => "Freifunk Ruppichteroth Firmware", "head_titel" => "Freifunk Ruppichteroth Firmware",
"head_text" => "Auf dieser Seite können Sie die passende Firmware für ihren Router in Ruppichteroth auswählen und herunterladen!", "head_text" => "Auf dieser Seite können Sie die passende Firmware für ihren Router in Ruppichteroth auswählen und herunterladen!",
"link_text" => "Zurück zur Startseite", "link_text" => "Zurück zur Startseite",
"link_url" => "http://downloader.freifunk-rhein-sieg.de/", "link_url" => "http://downloader.freifunk-rhein-sieg.de/",
"logo_alt" => "Freifunk Ruppichteroth Logo", "logo_alt" => "Freifunk Ruppichteroth Logo",
"logo_url" => "images/Freifunk-logo-ruppichteroth-klein-200.png", "logo_url" => "images/Freifunk-logo-ruppichteroth-klein-200.png",
"lang_titel" => "Freifunk Ruppichteroth Firmware Auswahl", "lang_titel" => "Freifunk Ruppichteroth Firmware Auswahl",
"lang_text" => "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!", "lang_text" => "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!",
"download_path" => "../fwuploads/ruppichteroth/", "download_path" => "../fwuploads/ruppichteroth/",
"sub_auswahl" => "" "sub_auswahl" => ""
), ),
9 => array( 9 => array(
"community_id" => 9, "community_id" => 9,
"name" => "Freifunk Sankt Augustin", "name" => "Freifunk Sankt Augustin",
"head_titel" => "Freifunk Sankt Augustin Firmware", "head_titel" => "Freifunk Sankt Augustin Firmware",
"head_text" => "Auf dieser Seite können Sie die passende Firmware für ihren Router in Sankt Augustin auswählen und herunterladen!", "head_text" => "Auf dieser Seite können Sie die passende Firmware für ihren Router in Sankt Augustin auswählen und herunterladen!",
"link_text" => "Zurück zur Startseite", "link_text" => "Zurück zur Startseite",
"link_url" => "http://downloader.freifunk-rhein-sieg.de/", "link_url" => "http://downloader.freifunk-rhein-sieg.de/",
"logo_alt" => "Freifunk Rhein-Sieg Logo", "logo_alt" => "Freifunk Rhein-Sieg Logo",
"logo_url" => "images/Freifunk-logo-rhein-sieg-klein-200.png", "logo_url" => "images/Freifunk-logo-rhein-sieg-klein-200.png",
"lang_titel" => "Freifunk Sankt Augustin Firmware Auswahl", "lang_titel" => "Freifunk Sankt Augustin Firmware Auswahl",
"lang_text" => "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!", "lang_text" => "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!",
"download_path" => "../fwuploads/sanktaugustin/", "download_path" => "../fwuploads/sanktaugustin/",
"sub_auswahl" => "" "sub_auswahl" => ""
), ),
10 => array( 10 => array(
"community_id" => 10, "community_id" => 10,
"name" => "Freifunk Siegburg", "name" => "Freifunk Siegburg",
"head_titel" => "Freifunk Siegburg Firmware", "head_titel" => "Freifunk Siegburg Firmware",
"head_text" => "Auf dieser Seite können Sie die passende Firmware für ihren Router in Siegburg auswählen und herunterladen!", "head_text" => "Auf dieser Seite können Sie die passende Firmware für ihren Router in Siegburg auswählen und herunterladen!",
"link_text" => "Zurück zur Startseite", "link_text" => "Zurück zur Startseite",
"link_url" => "http://downloader.freifunk-rhein-sieg.de/", "link_url" => "http://downloader.freifunk-rhein-sieg.de/",
"logo_alt" => "Freifunk Rhein-Sieg Logo", "logo_alt" => "Freifunk Rhein-Sieg Logo",
"logo_url" => "images/Freifunk-logo-rhein-sieg-klein-200.png", "logo_url" => "images/Freifunk-logo-rhein-sieg-klein-200.png",
"lang_titel" => "Freifunk Siegburg Firmware Auswahl", "lang_titel" => "Freifunk Siegburg Firmware Auswahl",
"lang_text" => "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!", "lang_text" => "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!",
"download_path" => "../fwuploads/siegburg/", "download_path" => "../fwuploads/siegburg/",
"sub_auswahl" => "" "sub_auswahl" => ""
), ),
11 => array( 11 => array(
"community_id" => 11, "community_id" => 11,
"name" => "Freifunk Troisdorf", "name" => "Freifunk Troisdorf",
"head_titel" => "Freifunk Troisdorf Fußgängerzone Firmware", "head_titel" => "Freifunk Troisdorf Fußgängerzone Firmware",
"head_text" => "Auf dieser Seite können Sie die passende Firmware für ihren Router in der Troisdorfer Fußgängerzone auswählen und herunterladen!", "head_text" => "Auf dieser Seite können Sie die passende Firmware für ihren Router in der Troisdorfer Fußgängerzone auswählen und herunterladen!",
"link_text" => "Zurück zur Startseite", "link_text" => "Zurück zur Startseite",
"link_url" => "http://downloader.freifunk-rhein-sieg.de/", "link_url" => "http://downloader.freifunk-rhein-sieg.de/",
"logo_alt" => "Freifunk Troisdorf Logo", "logo_alt" => "Freifunk Troisdorf Logo",
"logo_url" => "images/Freifunk-logo-troisdorf-klein-200.png", "logo_url" => "images/Freifunk-logo-troisdorf-klein-200.png",
"lang_titel" => "Freifunk Troisdorf Fußgängerzone Firmware Auswahl", "lang_titel" => "Freifunk Troisdorf Fußgängerzone Firmware Auswahl",
"lang_text" => "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!", "lang_text" => "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!",
"download_path" => "../fwuploads/troisdorf/inn/", "download_path" => "../fwuploads/troisdorf/inn/",
"sub_auswahl" => "Fußgängerzone" "sub_auswahl" => "Fußgängerzone"
), ),
12 => array( 12 => array(
"community_id" => 11, "community_id" => 11,
"name" => "Freifunk Troisdorf", "name" => "Freifunk Troisdorf",
"head_titel" => "Freifunk Troisdorf Firmware", "head_titel" => "Freifunk Troisdorf Firmware",
"head_text" => "Auf dieser Seite können Sie die passende Firmware für ihren Router in Troisdorf auswählen und herunterladen!", "head_text" => "Auf dieser Seite können Sie die passende Firmware für ihren Router in Troisdorf auswählen und herunterladen!",
"link_text" => "Zurück zur Startseite", "link_text" => "Zurück zur Startseite",
"link_url" => "http://downloader.freifunk-rhein-sieg.de/", "link_url" => "http://downloader.freifunk-rhein-sieg.de/",
"logo_alt" => "Freifunk Troisdorf Logo", "logo_alt" => "Freifunk Troisdorf Logo",
"logo_url" => "images/Freifunk-logo-troisdorf-klein-200.png", "logo_url" => "images/Freifunk-logo-troisdorf-klein-200.png",
"lang_titel" => "Freifunk Troisdorf Firmware Auswahl", "lang_titel" => "Freifunk Troisdorf Firmware Auswahl",
"lang_text" => "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!", "lang_text" => "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!",
"download_path" => "../fwuploads/troisdorf/tdf/", "download_path" => "../fwuploads/troisdorf/tdf/",
"sub_auswahl" => "Troisdorf" "sub_auswahl" => "Troisdorf"
), ),
13 => array( 13 => array(
"community_id" => 11, "community_id" => 11,
"name" => "Freifunk Troisdorf", "name" => "Freifunk Troisdorf",
"head_titel" => "Freifunk Troisdorf Soziale Projekte Firmware", "head_titel" => "Freifunk Troisdorf Soziale Projekte Firmware",
"head_text" => "Auf dieser Seite können Sie die passende Firmware für ihren Router für Troisdorfer Soziale Projekte auswählen und herunterladen!", "head_text" => "Auf dieser Seite können Sie die passende Firmware für ihren Router für Troisdorfer Soziale Projekte auswählen und herunterladen!",
"link_text" => "Zurück zur Startseite", "link_text" => "Zurück zur Startseite",
"link_url" => "http://downloader.freifunk-rhein-sieg.de/", "link_url" => "http://downloader.freifunk-rhein-sieg.de/",
"logo_alt" => "Freifunk Troisdorf Logo", "logo_alt" => "Freifunk Troisdorf Logo",
"logo_url" => "images/Freifunk-logo-troisdorf-klein-200.png", "logo_url" => "images/Freifunk-logo-troisdorf-klein-200.png",
"lang_titel" => "Freifunk Troisdorf Soziale Projekte Firmware Auswahl", "lang_titel" => "Freifunk Troisdorf Soziale Projekte Firmware Auswahl",
"lang_text" => "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!", "lang_text" => "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!",
"download_path" => "../fwuploads/troisdorf/flu/", "download_path" => "../fwuploads/troisdorf/flu/",
"sub_auswahl" => "Soziale Projekte" "sub_auswahl" => "Soziale Projekte"
), ),
14 => array( 14 => array(
"community_id" => 12, "community_id" => 12,
"name" => "Freifunk Wachtberg", "name" => "Freifunk Wachtberg",
"head_titel" => "Freifunk Wachtberg Firmware", "head_titel" => "Freifunk Wachtberg Firmware",
"head_text" => "Auf dieser Seite können Sie die passende Firmware für ihren Router in Wachtberg auswählen und herunterladen!", "head_text" => "Auf dieser Seite können Sie die passende Firmware für ihren Router in Wachtberg auswählen und herunterladen!",
"link_text" => "Zurück zur Startseite", "link_text" => "Zurück zur Startseite",
"link_url" => "http://downloader.freifunk-rhein-sieg.de/", "link_url" => "http://downloader.freifunk-rhein-sieg.de/",
"logo_alt" => "Freifunk Wachtberg Logo", "logo_alt" => "Freifunk Wachtberg Logo",
"logo_url" => "images/Freifunk-logo-wachtberg-klein-200.png", "logo_url" => "images/Freifunk-logo-wachtberg-klein-200.png",
"lang_titel" => "Freifunk Wachtberg Firmware Auswahl", "lang_titel" => "Freifunk Wachtberg Firmware Auswahl",
"lang_text" => "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!", "lang_text" => "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!",
"download_path" => "../fwuploads/wachtberg/", "download_path" => "../fwuploads/wachtberg/",
"sub_auswahl" => "" "sub_auswahl" => ""
) )
); );
?>

View File

@ -1,135 +1,134 @@
<?php <?php
/** /**
* @author Caspar Armster * @author Caspar Armster
* @copyright 2016 Caspar Armster, Freifunk Hennef/Freie Netzwerker e.V. (www.freifunk-hennef.de / www.freie-netzwerker.de) * @copyright 2016 Caspar Armster, Freifunk Hennef/Freie Netzwerker e.V. (www.freifunk-hennef.de / www.freie-netzwerker.de)
* @license Licensed under GPLv3 * @license Licensed under GPLv3
*/ */
$entwicklung = array( $entwicklung = array(
0 => "beta", "beta",
1 => "broken", "broken",
2 => "experimental", "experimental",
3 => "stable" "stable"
); );
$installation = array( $installation = array(
0 => "factory", "factory",
1 => "sysupgrade" "sysupgrade"
); );
for( $i=0; $i<count($entwicklung); $i++ ) { for ($i = 0; $i < count($entwicklung); $i++) {
for( $j=0; $j<count($installation); $j++ ) { for ($j = 0; $j < count($installation); $j++) {
$variante[$entwicklung[$i]][$installation[$j]] = 0; $variante[$entwicklung[$i]][$installation[$j]] = 0;
} }
} }
$hersteller = array( $hersteller = array(
0 => array( array(
"name" => "8devices", "name" => "8devices",
"filename" => "8devices", "filename" => "8devices",
"offset_modell" => 9, "offset_modell" => 9,
"offset_version" => 3 "offset_version" => 3
), ),
1 => array( array(
"name" => "Alfa", "name" => "Alfa",
"filename" => "alfa", "filename" => "alfa",
"offset_modell" => 5, "offset_modell" => 5,
"offset_version" => 4 "offset_version" => 4
), ),
2 => array( array(
"name" => "Allnet", "name" => "Allnet",
"filename" => "allnet", "filename" => "allnet",
"offset_modell" => 7, "offset_modell" => 7,
"offset_version" => 4 "offset_version" => 4
), ),
3 => array( array(
"name" => "Buffalo", "name" => "Buffalo",
"filename" => "buffalo", "filename" => "buffalo",
"offset_modell" => 8, "offset_modell" => 8,
"offset_version" => 4 "offset_version" => 4
), ),
4 => array( array(
"name" => "D-Link", "name" => "D-Link",
"filename" => "d-link", "filename" => "d-link",
"offset_modell" => 7, "offset_modell" => 7,
"offset_version" => -1 "offset_version" => -1
), ),
5 => array( array(
"name" => "GL-Inet", "name" => "GL-Inet",
"filename" => "gl-inet", "filename" => "gl-inet",
"offset_modell" => 8, "offset_modell" => 8,
"offset_version" => -1 "offset_version" => -1
), ),
6 => array( array(
"name" => "LeMaker", "name" => "LeMaker",
"filename" => "lemaker", "filename" => "lemaker",
"offset_modell" => 8, "offset_modell" => 8,
"offset_version" => 4 "offset_version" => 4
), ),
7 => array( array(
"name" => "Linksys", "name" => "Linksys",
"filename" => "linksys", "filename" => "linksys",
"offset_modell" => 8, "offset_modell" => 8,
"offset_version" => 4 "offset_version" => 4
), ),
8 => array( array(
"name" => "Meraki", "name" => "Meraki",
"filename" => "meraki", "filename" => "meraki",
"offset_modell" => 7, "offset_modell" => 7,
"offset_version" => 4 "offset_version" => 4
), ),
9 => array( array(
"name" => "Netgear", "name" => "Netgear",
"filename" => "netgear", "filename" => "netgear",
"offset_modell" => 8, "offset_modell" => 8,
"offset_version" => 4 "offset_version" => 4
), ),
10 => array( array(
"name" => "Onion", "name" => "Onion",
"filename" => "onion", "filename" => "onion",
"offset_modell" => 6, "offset_modell" => 6,
"offset_version" => 4 "offset_version" => 4
), ),
11 => array( array(
"name" => "Openmesh", "name" => "Openmesh",
"filename" => "openmesh", "filename" => "openmesh",
"offset_modell" => 9, "offset_modell" => 9,
"offset_version" => 4 "offset_version" => 4
), ),
12 => array( array(
"name" => "Raspberry Pi", "name" => "Raspberry Pi",
"filename" => "raspberry-pi", "filename" => "raspberry-pi",
"offset_modell" => 13, "offset_modell" => 13,
"offset_version" => 4 "offset_version" => 4
), ),
13 => array( array(
"name" => "TP-Link", "name" => "TP-Link",
"filename" => "tp-link", "filename" => "tp-link",
"offset_modell" => 8, "offset_modell" => 8,
"offset_version" => -1 "offset_version" => -1
), ),
14 => array( array(
"name" => "Ubiquiti", "name" => "Ubiquiti",
"filename" => "ubiquiti", "filename" => "ubiquiti",
"offset_modell" => 9, "offset_modell" => 9,
"offset_version" => 4 "offset_version" => 4
), ),
15 => array( array(
"name" => "Western Digital", "name" => "Western Digital",
"filename" => "-wd-", "filename" => "-wd-",
"offset_modell" => 5, "offset_modell" => 5,
"offset_version" => 4 "offset_version" => 4
), ),
16 => array( array(
"name" => "x86", "name" => "x86",
"filename" => "x86", "filename" => "x86",
"offset_modell" => 4, "offset_modell" => 4,
"offset_version" => 4 "offset_version" => 4
) )
); );
$anzahl_hersteller = count($hersteller); $anzahl_hersteller = count($hersteller);
$offset_sysupgrade = array( $offset_sysupgrade = array(
0 => 0, 0 => 0,
1 => 11 1 => 11
); );
?>

16
css/bootstrap.min.css vendored

File diff suppressed because one or more lines are too long

View File

@ -1,22 +1,42 @@
/** /**
* @author Caspar Armster * @author Caspar Armster
* @copyright 2016 Caspar Armster, Freifunk Hennef * @copyright 2016 Caspar Armster, Freifunk Hennef
* @license Licensed under GPLv3 * @license Licensed under GPLv3
* *
*/ */
.panel-footer { @import url("https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,700,400italic");
font-size: 80%; body {
} font-family: "Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;
.btn-primary { color:#555555;
background-color: #dc0067 !important; }
border-color: #cc0057 !important;
} .panel-default > .panel-heading {
.panel-primary > .panel-heading { background-color: #111;
background-color: #000000 !important; color: #fff;
} }
@media (min-width: 1200px) { .panel-footer {
.container{ font-size: 80%;
width:auto; }
max-width: 1550px;
} .btn {
} font-variant: small-caps;
font-weight: bold;
}
.btn-primary {
background-color: #dc0067 !important;
border-color: #cc0057 !important;
}
.img-box {
width: 175px;
height: 175px;
object-fit: contain;
margin: 5px;
}
@media (min-width: 1200px) {
.container{
width:auto;
max-width: 1550px;
}
}

View File

@ -1,35 +1,34 @@
<?php <?php
/** /**
* @author Caspar Armster * @author Caspar Armster
* @copyright 2016 Caspar Armster, Freifunk Hennef/Freie Netzwerker e.V. (www.freifunk-hennef.de / www.freie-netzwerker.de) * @copyright 2016 Caspar Armster, Freifunk Hennef/Freie Netzwerker e.V. (www.freifunk-hennef.de / www.freie-netzwerker.de)
* @license Licensed under GPLv3 * @license Licensed under GPLv3
*/ */
class ffrouter { class ffrouter {
function __construct() { function __construct() {
$this->hersteller = ""; $this->hersteller = "";
$this->modell = ""; $this->modell = "";
$this->version = ""; $this->version = "";
$this->imagefront = ""; $this->imagefront = "";
$this->imageback = ""; $this->imageback = "";
$this->betafactory = 0; $this->betafactory = 0;
$this->betasysupgrade = 0; $this->betasysupgrade = 0;
$this->brokenfactory = 0; $this->brokenfactory = 0;
$this->brokensysupgrade = 0; $this->brokensysupgrade = 0;
$this->experimentalfactory = 0; $this->experimentalfactory = 0;
$this->experimentalsysupgrade = 0; $this->experimentalsysupgrade = 0;
$this->stablefactory = 0; $this->stablefactory = 0;
$this->stablesysupgrade = 0; $this->stablesysupgrade = 0;
$this->betafactorylink = ""; $this->betafactorylink = "";
$this->betasysupgradelink = ""; $this->betasysupgradelink = "";
$this->brokenfactorylink = ""; $this->brokenfactorylink = "";
$this->brokensysupgradelink = ""; $this->brokensysupgradelink = "";
$this->experimentalfactorylink = ""; $this->experimentalfactorylink = "";
$this->experimentalsysupgradelink = ""; $this->experimentalsysupgradelink = "";
$this->stablefactorylink = ""; $this->stablefactorylink = "";
$this->stablesysupgradelink = ""; $this->stablesysupgradelink = "";
} }
} }
?>

View File

@ -1,124 +1,123 @@
<?php <?php
/** /**
* @author Caspar Armster * @author Caspar Armster
* @copyright 2016 Caspar Armster, Freifunk Hennef/Freie Netzwerker e.V. (www.freifunk-hennef.de / www.freie-netzwerker.de) * @copyright 2016 Caspar Armster, Freifunk Hennef/Freie Netzwerker e.V. (www.freifunk-hennef.de / www.freie-netzwerker.de)
* @license Licensed under GPLv3 * @license Licensed under GPLv3
*/ */
if(!is_dir($firmware_download_path)) { if(!is_dir($firmware_download_path)) {
throw new Exception("Firmwareverzeichnis existiert nicht!"); throw new Exception("Firmwareverzeichnis existiert nicht!");
} }
$err = 0; $err = 0;
for( $i=0; $i<count($entwicklung); $i++ ) { for( $i=0; $i<count($entwicklung); $i++ ) {
for( $j=0; $j<count($installation); $j++ ) { for( $j=0; $j<count($installation); $j++ ) {
if(is_dir($firmware_download_path.$entwicklung[$i]."/")) { if(is_dir($firmware_download_path.$entwicklung[$i]."/")) {
if(is_dir($firmware_download_path.$entwicklung[$i]."/".$installation[$j]."/")) { if(is_dir($firmware_download_path.$entwicklung[$i]."/".$installation[$j]."/")) {
$variante[$entwicklung[$i]][$installation[$j]] = 1; $variante[$entwicklung[$i]][$installation[$j]] = 1;
$files[$entwicklung[$i]][$installation[$j]] = array_slice(scandir($firmware_download_path.$entwicklung[$i]."/".$installation[$j]."/"), 2); $files[$entwicklung[$i]][$installation[$j]] = array_slice(scandir($firmware_download_path.$entwicklung[$i]."/".$installation[$j]."/"), 2);
for( $x=0; $x<count($files[$entwicklung[$i]][$installation[$j]]); $x++ ) { for( $x=0; $x<count($files[$entwicklung[$i]][$installation[$j]]); $x++ ) {
if(is_dir($firmware_download_path.$entwicklung[$i]."/".$installation[$j]."/".$files[$entwicklung[$i]][$installation[$j]][$x])) { if(is_dir($firmware_download_path.$entwicklung[$i]."/".$installation[$j]."/".$files[$entwicklung[$i]][$installation[$j]][$x])) {
array_splice($files[$entwicklung[$i]][$installation[$j]], $x, 1); array_splice($files[$entwicklung[$i]][$installation[$j]], $x, 1);
$x--; $x--;
} else { } else {
$pos = stripos($files[$entwicklung[$i]][$installation[$j]][$x], 'manifest'); $pos = stripos($files[$entwicklung[$i]][$installation[$j]][$x], 'manifest');
if($pos !== false) { if($pos !== false) {
array_splice($files[$entwicklung[$i]][$installation[$j]], $x, 1); array_splice($files[$entwicklung[$i]][$installation[$j]], $x, 1);
$x--; $x--;
} }
} }
} }
} }
} }
} }
} }
for( $i=0; $i<count($entwicklung); $i++ ) { for( $i=0; $i<count($entwicklung); $i++ ) {
for( $j=0; $j<count($installation); $j++ ) { for( $j=0; $j<count($installation); $j++ ) {
if($variante[$entwicklung[$i]][$installation[$j]] == 1) { if($variante[$entwicklung[$i]][$installation[$j]] == 1) {
$x = 0; $x = 0;
while($files[$entwicklung[$i]][$installation[$j]][$x] !== false) { while($files[$entwicklung[$i]][$installation[$j]][$x] !== false) {
$pos_hersteller[$entwicklung[$i]][$installation[$j]] = stripos($files[$entwicklung[$i]][$installation[$j]][$x], "tp-link"); $pos_hersteller[$entwicklung[$i]][$installation[$j]] = stripos($files[$entwicklung[$i]][$installation[$j]][$x], "tp-link");
if ($pos_hersteller[$entwicklung[$i]][$installation[$j]] !== false) { if ($pos_hersteller[$entwicklung[$i]][$installation[$j]] !== false) {
break; break;
} }
$x++; $x++;
} }
} else { } else {
$pos_hersteller[$entwicklung[$i]][$installation[$j]] = 0; $pos_hersteller[$entwicklung[$i]][$installation[$j]] = 0;
} }
} }
} }
$router = array(); $router = array();
for( $i=0; $i<count($entwicklung); $i++ ) { for( $i=0; $i<count($entwicklung); $i++ ) {
for( $j=0; $j<count($installation); $j++ ) { for( $j=0; $j<count($installation); $j++ ) {
if($variante[$entwicklung[$i]][$installation[$j]] == 1) { if($variante[$entwicklung[$i]][$installation[$j]] == 1) {
for( $x=0; $x<count($files[$entwicklung[$i]][$installation[$j]]); $x++) { for( $x=0; $x<count($files[$entwicklung[$i]][$installation[$j]]); $x++) {
for( $y=0; $y<$anzahl_hersteller; $y++) { for( $y=0; $y<$anzahl_hersteller; $y++) {
if($pos = stripos($files[$entwicklung[$i]][$installation[$j]][$x], $hersteller[$y]['filename'], $pos_hersteller[$entwicklung[$i]][$installation[$j]]-1) !== false) { if($pos = stripos($files[$entwicklung[$i]][$installation[$j]][$x], $hersteller[$y]['filename'], $pos_hersteller[$entwicklung[$i]][$installation[$j]]-1) !== false) {
$router_tmp[$x]['hersteller'] = $hersteller[$y]['name']; $router_tmp[$x]['hersteller'] = $hersteller[$y]['name'];
switch($router_tmp[$x]['hersteller']) { switch($router_tmp[$x]['hersteller']) {
case "D-Link": case "D-Link":
$router_tmp[$x]['version'] = substr($files[$entwicklung[$i]][$installation[$j]][$x], strripos($files[$entwicklung[$i]][$installation[$j]][$x], "rev"), -4-$offset_sysupgrade[$j]); $router_tmp[$x]['version'] = substr($files[$entwicklung[$i]][$installation[$j]][$x], strripos($files[$entwicklung[$i]][$installation[$j]][$x], "rev"), -4-$offset_sysupgrade[$j]);
break; break;
case "GL-Inet": case "GL-Inet":
$router_tmp[$x]['version'] = substr($files[$entwicklung[$i]][$installation[$j]][$x], strripos($files[$entwicklung[$i]][$installation[$j]][$x], "v"), -4-$offset_sysupgrade[$j]); $router_tmp[$x]['version'] = substr($files[$entwicklung[$i]][$installation[$j]][$x], strripos($files[$entwicklung[$i]][$installation[$j]][$x], "v"), -4-$offset_sysupgrade[$j]);
break; break;
case "TP-Link": case "TP-Link":
$router_tmp[$x]['version'] = substr($files[$entwicklung[$i]][$installation[$j]][$x], strripos($files[$entwicklung[$i]][$installation[$j]][$x], "v"), -4-$offset_sysupgrade[$j]); $router_tmp[$x]['version'] = substr($files[$entwicklung[$i]][$installation[$j]][$x], strripos($files[$entwicklung[$i]][$installation[$j]][$x], "v"), -4-$offset_sysupgrade[$j]);
break; break;
default: default:
$router_tmp[$x]['version'] = "Alle"; $router_tmp[$x]['version'] = "Alle";
} }
$router_tmp[$x]['modell'] = strtoupper(substr($files[$entwicklung[$i]][$installation[$j]][$x], $pos_hersteller[$entwicklung[$i]][$installation[$j]]+$hersteller[$y]['offset_modell'], strripos($files[$entwicklung[$i]][$installation[$j]][$x], ".", -4)-strlen($files[$entwicklung[$i]][$installation[$j]][$x])-strlen($router_tmp[$x]['version'])+$hersteller[$y]['offset_version']-$offset_sysupgrade[$j])); $router_tmp[$x]['modell'] = strtoupper(substr($files[$entwicklung[$i]][$installation[$j]][$x], $pos_hersteller[$entwicklung[$i]][$installation[$j]]+$hersteller[$y]['offset_modell'], strripos($files[$entwicklung[$i]][$installation[$j]][$x], ".", -4)-strlen($files[$entwicklung[$i]][$installation[$j]][$x])-strlen($router_tmp[$x]['version'])+$hersteller[$y]['offset_version']-$offset_sysupgrade[$j]));
} }
} }
if(isset($router_tmp[$x]['hersteller']) != true) { if(isset($router_tmp[$x]['hersteller']) != true) {
$error_text[$err]="Unbekannten Hersteller im Dateinamen gefunden, bitte Script updaten! (".$files[$entwicklung[$i]][$installation[$j]][$x].")"; $error_text[$err]="Unbekannten Hersteller im Dateinamen gefunden, bitte Script updaten! (".$files[$entwicklung[$i]][$installation[$j]][$x].")";
$err++; $err++;
} else { } else {
$router_neu = 1; $router_neu = 1;
for( $z=0; $z<count($router); $z++) { for( $z=0; $z<count($router); $z++) {
if(isset($router[$z])) { if(isset($router[$z])) {
if((strcasecmp($router[$z]->hersteller, $router_tmp[$x]['hersteller']) == 0) && (strcasecmp($router[$z]->modell, $router_tmp[$x]['modell']) == 0) && (strcasecmp($router[$z]->version, $router_tmp[$x]['version']) == 0)) { if((strcasecmp($router[$z]->hersteller, $router_tmp[$x]['hersteller']) == 0) && (strcasecmp($router[$z]->modell, $router_tmp[$x]['modell']) == 0) && (strcasecmp($router[$z]->version, $router_tmp[$x]['version']) == 0)) {
$entinst = $entwicklung[$i].$installation[$j]; $entinst = $entwicklung[$i].$installation[$j];
$entinstlink = $entwicklung[$i].$installation[$j]."link"; $entinstlink = $entwicklung[$i].$installation[$j]."link";
$router[$z]->$entinst = 1; $router[$z]->$entinst = 1;
$router[$z]->$entinstlink = $firmware_download_path.$entwicklung[$i]."/".$installation[$j]."/".$files[$entwicklung[$i]][$installation[$j]][$x]; $router[$z]->$entinstlink = $firmware_download_path.$entwicklung[$i]."/".$installation[$j]."/".$files[$entwicklung[$i]][$installation[$j]][$x];
$router_neu = 0; $router_neu = 0;
break; break;
} }
} }
} }
if($router_neu == 1) { if($router_neu == 1) {
$z = count($router); $z = count($router);
$router[$z] = new ffrouter(); $router[$z] = new ffrouter();
$router[$z]->hersteller = $router_tmp[$x]['hersteller']; $router[$z]->hersteller = $router_tmp[$x]['hersteller'];
$router[$z]->version = $router_tmp[$x]['version']; $router[$z]->version = $router_tmp[$x]['version'];
$router[$z]->modell = $router_tmp[$x]['modell']; $router[$z]->modell = $router_tmp[$x]['modell'];
$entinst = $entwicklung[$i].$installation[$j]; $entinst = $entwicklung[$i].$installation[$j];
$entinstlink = $entwicklung[$i].$installation[$j]."link"; $entinstlink = $entwicklung[$i].$installation[$j]."link";
$router[$z]->$entinst = 1; $router[$z]->$entinst = 1;
$router[$z]->$entinstlink = $firmware_download_path.$entwicklung[$i]."/".$installation[$j]."/".$files[$entwicklung[$i]][$installation[$j]][$x]; $router[$z]->$entinstlink = $firmware_download_path.$entwicklung[$i]."/".$installation[$j]."/".$files[$entwicklung[$i]][$installation[$j]][$x];
} }
} }
} }
} }
$router_tmp = array(); $router_tmp = array();
} }
} }
for( $i=0; $i<count($router); $i++ ) { // Routerbilder einbauen for( $i=0; $i<count($router); $i++ ) { // Routerbilder einbauen
if(is_dir(strtolower("router_images/".$router[$i]->hersteller))) { if(is_dir(strtolower("router_images/".$router[$i]->hersteller))) {
if(is_file(strtolower("router_images/".$router[$i]->hersteller."/".$router[$i]->modell."-".$router[$i]->version.".jpg"))) { if(is_file(strtolower("router_images/".$router[$i]->hersteller."/".$router[$i]->modell."-".$router[$i]->version.".jpg"))) {
$router[$i]->imagefront = strtolower("router_images/".$router[$i]->hersteller."/".$router[$i]->modell."-".$router[$i]->version.".jpg"); $router[$i]->imagefront = strtolower("router_images/".$router[$i]->hersteller."/".$router[$i]->modell."-".$router[$i]->version.".jpg");
} else { } else {
$router[$i]->imagefront = "router_images/keinbild.jpg"; $router[$i]->imagefront = "router_images/keinbild.jpg";
} }
if(is_file(strtolower("router_images/".$router[$i]->hersteller."/".$router[$i]->modell."-".$router[$i]->version."_back.jpg"))) { if(is_file(strtolower("router_images/".$router[$i]->hersteller."/".$router[$i]->modell."-".$router[$i]->version."_back.jpg"))) {
$router[$i]->imageback = strtolower("router_images/".$router[$i]->hersteller."/".$router[$i]->modell."-".$router[$i]->version."_back.jpg"); $router[$i]->imageback = strtolower("router_images/".$router[$i]->hersteller."/".$router[$i]->modell."-".$router[$i]->version."_back.jpg");
} else { } else {
$router[$i]->imageback = "router_images/keinbild.jpg"; $router[$i]->imageback = "router_images/keinbild.jpg";
} }
} else { } else {
$router[$i]->imagefront = "router_images/keinbild.jpg"; $router[$i]->imagefront = "router_images/keinbild.jpg";
$router[$i]->imageback = "router_images/keinbild.jpg"; $router[$i]->imageback = "router_images/keinbild.jpg";
} }
} }
?>

View File

@ -1,494 +1,425 @@
<?php <?php
/** /**
* @author Caspar Armster * @author Caspar Armster
* @copyright 2016 Caspar Armster, Freifunk Hennef/Freie Netzwerker e.V. (www.freifunk-hennef.de / www.freie-netzwerker.de) * @copyright 2016 Caspar Armster, Freifunk Hennef/Freie Netzwerker e.V. (www.freifunk-hennef.de / www.freie-netzwerker.de)
* @license Licensed under GPLv3 * @license Licensed under GPLv3
*/ */
error_reporting (E_ALL | E_STRICT); error_reporting (E_ALL ^ E_NOTICE);
ini_set ('display_errors', 'On'); require_once('community-config.inc.php');
require_once('community-config.inc.php'); require_once('config.inc.php');
require_once('config.inc.php'); require_once('ffrouter.class.php');
require_once('ffrouter.class.php'); $community_id = $_REQUEST['id'];
$community_id = $_REQUEST['id']; ?>
<!DOCTYPE html>
echo <<<EOT <html lang="de">
<!DOCTYPE html> <head>
<html lang="de"> <meta charset="utf-8" />
<head> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1" />
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <title><?php echo $community[$community_id]["head_titel"]?></title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Caspar Armster" />
EOT;
echo("<title>".$community[$community_id]["head_titel"]."</title>"); <link href="css/bootstrap.min.css" rel="stylesheet">
echo <<<EOT <link href="css/styles.css" rel="stylesheet">
<meta name="author" content="Caspar Armster"> <link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="icon" href="favicon.ico" type="image/x-icon">
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/styles.css" rel="stylesheet"> <?php
$firmware_download_path = $community[$community_id]["download_path"];
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="icon" href="favicon.ico" type="image/x-icon"> try {
EOT; require_once('ffrouter_parsen.function.php');
} catch(Exception $e) {
$firmware_download_path = $community[$community_id]["download_path"]; echo("Fehler: ".$e->getMessage());
die();
try { }
require_once('ffrouter_parsen.function.php'); ?>
} catch(Exception $e) {
echo("Fehler: ".$e->getMessage()); <script>
die(); <?php
} echo "var router_json = ".json_encode($router)."\n";
$router_json = json_encode($router); echo "var texte_json = ".json_encode($texte)."\n";
$texte_json = json_encode($texte); echo "var anzahl_hersteller = ".$anzahl_hersteller."\n";
$manufacturer = array();
echo("\n<script>\n"); foreach ($hersteller as $i => $value) {
echo("var router_text = '".$router_json."';\n"); array_push($manufacturer, $value['name']);
echo("var router_json = JSON.parse(router_text);\n"); }
echo("var texte_text = '".$texte_json."';\n"); echo "var herstellername = ".json_encode($manufacturer)."\n";
echo("var texte_json = JSON.parse(texte_text);\n"); ?>
echo("var anzahl_hersteller = ".$anzahl_hersteller.";\n");
function populateA () {
echo("var herstellername = ["); var s1 = document.getElementById('fw-dl-1')
for( $i=0; $i<$anzahl_hersteller; $i++) { var s2 = document.getElementById('fw-dl-2')
echo("\"".$hersteller[$i]['name']."\""); var s3 = document.getElementById('fw-dl-3')
if( $i != $anzahl_hersteller-1) { var s4 = document.getElementById('fw-dl-4')
echo(", "); var s5 = document.getElementById('fw-dl-5')
} var s6 = document.getElementById('fw-dl-6')
} var img_router_front = document.getElementById('img_router_front')
echo("];\n"); var img_router_back = document.getElementById('img_router_back')
var optionArray = [ ]
echo <<<EOT s2.innerHTML = ''
function populateA(){ for (var i = 0; i < anzahl_hersteller; i++) {
var s1 = document.getElementById("fw-dl-1"); if (s1.value == herstellername[i]) {
var s2 = document.getElementById("fw-dl-2"); optionArray[0] = '|Modell auswählen'
var s3 = document.getElementById("fw-dl-3"); var j = 0
var s4 = document.getElementById("fw-dl-4"); while (j < router_json.length) {
var s5 = document.getElementById("fw-dl-5"); if (router_json[j].hersteller == herstellername[i]) {
var s6 = document.getElementById("fw-dl-6"); optionArray[j + 1] = router_json[j].modell + '|' + router_json[j].modell
var img_router_front = document.getElementById("img_router_front"); if (j < router_json.length - 1) {
var img_router_back = document.getElementById("img_router_back"); while (router_json[j].modell == router_json[j + 1].modell) {
var optionArray = new Array(); if (j < router_json.length - 1) {
s2.innerHTML = ""; j++
for(i=0; i<anzahl_hersteller; i++) { } else {
if(s1.value == herstellername[i]) { break
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; j++
if(j<router_json.length-1) { }
while(router_json[j].modell == router_json[j+1].modell) { }
if(j<router_json.length-1) { }
j++; for (var option in optionArray) {
} else { var pair = optionArray[option].split('|')
break; var newOption = document.createElement('option')
} newOption.value = pair[0]
} newOption.innerHTML = pair[1]
} s2.options.add(newOption)
} }
j++; while (s3.length > 1) {
} s3.remove(s3.length - 1)
} }
} while (s4.length > 1) {
for(var option in optionArray){ s4.remove(s4.length - 1)
var pair = optionArray[option].split("|"); }
var newOption = document.createElement("option"); while (s5.length > 1) {
newOption.value = pair[0]; s5.remove(s5.length - 1)
newOption.innerHTML = pair[1]; }
s2.options.add(newOption); s6.href = '#'
} s6.classList.remove('disabled', 'btn-primary', 'btn-danger', 'btn-warning', 'btn-success')
while(s3.length > 1) { s6.className.add('btn-primary', 'disabled')
s3.remove(s3.length-1); s6.textContent = 'Download Firmware'
} img_router_front.src = 'router_images/keinbild.jpg'
while(s4.length > 1) { img_router_back.src = 'router_images/keinbild.jpg'
s4.remove(s4.length-1); }
} function populateB () {
while(s5.length > 1) { var s2 = document.getElementById('fw-dl-2')
s5.remove(s5.length-1); var s3 = document.getElementById('fw-dl-3')
} var s4 = document.getElementById('fw-dl-4')
s6.href = "#"; var s5 = document.getElementById('fw-dl-5')
s6.className = s6.className.replace( /(?:^|\s)disabled(?!\S)/g , '' ); var s6 = document.getElementById('fw-dl-6')
s6.className = s6.className.replace( /(?:^|\s)btn-primary(?!\S)/g , '' ); var img_router_front = document.getElementById('img_router_front')
s6.className = s6.className.replace( /(?:^|\s)btn-danger(?!\S)/g , '' ); var img_router_back = document.getElementById('img_router_back')
s6.className = s6.className.replace( /(?:^|\s)btn-warning(?!\S)/g , '' ); var optionArray = [ ]
s6.className = s6.className.replace( /(?:^|\s)btn-success(?!\S)/g , '' ); optionArray[0] = '|Modell auswählen'
s6.className += " btn-primary disabled"; s3.innerHTML = ''
s6.innerHTML = "Download Firmware"; var i = 0
img_router_front.src = "router_images/keinbild.jpg"; while (i < router_json.length) {
img_router_back.src = "router_images/keinbild.jpg"; if (router_json[i].modell == s2.value) {
} optionArray[i + 1] = i + '|' + router_json[i].version
function populateB(){ if (i < router_json.length - 1) {
var s1 = document.getElementById("fw-dl-2"); while (router_json[i].modell == router_json[i + 1].modell) {
var s2 = document.getElementById("fw-dl-3"); if (i < router_json.length - 1) {
var s4 = document.getElementById("fw-dl-4"); i++
var s5 = document.getElementById("fw-dl-5"); optionArray[i + 1] = i + '|' + router_json[i].version
var s6 = document.getElementById("fw-dl-6"); } else {
var img_router_front = document.getElementById("img_router_front"); break
var img_router_back = document.getElementById("img_router_back"); }
var optionArray = new Array(); }
optionArray[0] = "|Modell auswählen"; }
s2.innerHTML = ""; }
var i = 0; i++
while(i < router_json.length) { }
if(router_json[i].modell == s1.value) { for (var option in optionArray) {
optionArray[i+1] = i+"|"+router_json[i].version; var pair = optionArray[option].split('|')
if(i<router_json.length-1) { var newOption = document.createElement('option')
while(router_json[i].modell == router_json[i+1].modell) { newOption.value = pair[0]
if(i<router_json.length-1) { newOption.innerHTML = pair[1]
i++; s3.options.add(newOption)
optionArray[i+1] = i+"|"+router_json[i].version; }
} else { while (s4.length > 1) {
break; s4.remove(s4.length - 1)
} }
} while (s5.length > 1) {
} s5.remove(s5.length - 1)
} }
i++; s6.href = '#'
} s6.classList.remove('disabled', 'btn-primary', 'btn-danger', 'btn-warning', 'btn-success')
for(var option in optionArray){ s6.className.add('btn-primary', 'disabled')
var pair = optionArray[option].split("|"); s6.textContent = 'Download Firmware'
var newOption = document.createElement("option"); img_router_front.src = 'router_images/keinbild.jpg'
newOption.value = pair[0]; img_router_back.src = 'router_images/keinbild.jpg'
newOption.innerHTML = pair[1]; }
s2.options.add(newOption); function populateC () {
} var s3 = document.getElementById('fw-dl-3')
while(s4.length > 1) { var s4 = document.getElementById('fw-dl-4')
s4.remove(s4.length-1); var s5 = document.getElementById('fw-dl-5')
} var s6 = document.getElementById('fw-dl-6')
while(s5.length > 1) { var img_router_front = document.getElementById('img_router_front')
s5.remove(s5.length-1); var img_router_back = document.getElementById('img_router_back')
} var optionArray = [ ]
s6.href = "#"; optionArray[0] = '|Erstinstallation?'
s6.className = s6.className.replace( /(?:^|\s)disabled(?!\S)/g , '' ); s4.innerHTML = ''
s6.className = s6.className.replace( /(?:^|\s)btn-primary(?!\S)/g , '' ); var newImageFront = router_json[s3.value].imagefront
s6.className = s6.className.replace( /(?:^|\s)btn-danger(?!\S)/g , '' ); var newImageBack = router_json[s3.value].imageback
s6.className = s6.className.replace( /(?:^|\s)btn-warning(?!\S)/g , '' ); var i = 1
s6.className = s6.className.replace( /(?:^|\s)btn-success(?!\S)/g , '' ); if ((router_json[s3.value].betafactory == 1) || (router_json[s3.value].brokenfactory == 1) || (router_json[s3.value].experimentalfactory == 1) || (router_json[s3.value].stablefactory == 1)) {
s6.className += " btn-primary disabled"; optionArray[i] = s3.value + 'J|Ja'
s6.innerHTML = "Download Firmware"; i++
img_router_front.src = "router_images/keinbild.jpg"; }
img_router_back.src = "router_images/keinbild.jpg"; if ((router_json[s3.value].betasysupgrade == 1) || (router_json[s3.value].brokensysupgrade == 1) || (router_json[s3.value].experimentalsysupgrade == 1) || (router_json[s3.value].stablesysupgrade == 1)) {
} optionArray[i] = s3.value + 'N|Nein'
function populateC(){ }
var s1 = document.getElementById("fw-dl-3"); for (var option in optionArray) {
var s2 = document.getElementById("fw-dl-4"); var pair = optionArray[option].split('|')
var s5 = document.getElementById("fw-dl-5"); var newOption = document.createElement('option')
var s6 = document.getElementById("fw-dl-6"); newOption.value = pair[0]
var img_router_front = document.getElementById("img_router_front"); newOption.innerHTML = pair[1]
var img_router_back = document.getElementById("img_router_back"); s4.options.add(newOption)
var optionArray = new Array(); }
optionArray[0] = "|Erstinstallation?"; while (s5.length > 1) {
s2.innerHTML = ""; s5.remove(s5.length - 1)
var newImageFront = router_json[s1.value].imagefront; }
var newImageBack = router_json[s1.value].imageback; s6.href = '#'
var i = 1; s6.classList.remove('disabled', 'btn-primary', 'btn-danger', 'btn-warning', 'btn-success')
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)) { s6.className.add('btn-primary', 'disabled')
optionArray[i] = s1.value+"J|Ja"; s6.textContent = 'Download Firmware'
i++; img_router_front.src = newImageFront
} img_router_back.src = newImageBack
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"; function populateD () {
} var s4 = document.getElementById('fw-dl-4')
for(var option in optionArray){ var s5 = document.getElementById('fw-dl-5')
var pair = optionArray[option].split("|"); var s6 = document.getElementById('fw-dl-6')
var newOption = document.createElement("option"); var optionArray = [ ]
newOption.value = pair[0]; optionArray[0] = '|Entwicklungsstadium?'
newOption.innerHTML = pair[1]; s5.innerHTML = ''
s2.options.add(newOption); var id = parseInt(s4.value.slice(0, s4.value.length))
} var jein = s4.value.slice(-1)
while(s5.length > 1) { var i = 1
s5.remove(s5.length-1); if (jein == 'J') {
} if (router_json[id].betafactory == 1) {
s6.href = "#"; optionArray[i] = id + 'Jbeta|Beta'
s6.className = s6.className.replace( /(?:^|\s)disabled(?!\S)/g , '' ); i++
s6.className = s6.className.replace( /(?:^|\s)btn-primary(?!\S)/g , '' ); }
s6.className = s6.className.replace( /(?:^|\s)btn-danger(?!\S)/g , '' ); if (router_json[id].brokenfactory == 1) {
s6.className = s6.className.replace( /(?:^|\s)btn-warning(?!\S)/g , '' ); optionArray[i] = id + 'Jbroken|Broken'
s6.className = s6.className.replace( /(?:^|\s)btn-success(?!\S)/g , '' ); i++
s6.className += " btn-primary disabled"; }
s6.innerHTML = "Download Firmware"; if (router_json[id].experimentalfactory == 1) {
img_router_front.src = newImageFront; optionArray[i] = id + 'Jexp|Experimental'
img_router_back.src = newImageBack; i++
} }
function populateD(){ if (router_json[id].stablefactory == 1) {
var s1 = document.getElementById("fw-dl-4"); optionArray[i] = id + 'Jstable|Stable'
var s2 = document.getElementById("fw-dl-5"); i++
var s6 = document.getElementById("fw-dl-6"); }
var optionArray = new Array(); }
optionArray[0] = "|Entwicklungsstadium?"; if (jein == 'N') {
s2.innerHTML = ""; if (router_json[id].betasysupgrade == 1) {
var id = parseInt(s1.value.slice(0,s1.value.length)); optionArray[i] = id + 'Nbeta|Beta'
var jein = s1.value.slice(-1); i++
var i = 1; }
if(jein == "J") { if (router_json[id].brokensysupgrade == 1) {
if(router_json[id].betafactory == 1) { optionArray[i] = id + 'Nbroken|Broken'
optionArray[i] = id+"Jbeta|Beta"; i++
i++; }
} if (router_json[id].experimentalsysupgrade == 1) {
if(router_json[id].brokenfactory == 1) { optionArray[i] = id + 'Nexp|Experimental'
optionArray[i] = id+"Jbroken|Broken"; i++
i++; }
} if (router_json[id].stablesysupgrade == 1) {
if(router_json[id].experimentalfactory == 1) { optionArray[i] = id + 'Nstable|Stable'
optionArray[i] = id+"Jexp|Experimental"; i++
i++; }
} }
if(router_json[id].stablefactory == 1) { for (var option in optionArray) {
optionArray[i] = id+"Jstable|Stable"; var pair = optionArray[option].split('|')
i++; var newOption = document.createElement('option')
} newOption.value = pair[0]
} newOption.innerHTML = pair[1]
if(jein == "N") { s5.options.add(newOption)
if(router_json[id].betasysupgrade == 1) { }
optionArray[i] = id+"Nbeta|Beta"; s6.href = '#'
i++; s6.classList.remove('disabled', 'btn-primary', 'btn-danger', 'btn-warning', 'btn-success')
} s6.className.add('btn-primary', 'disabled')
if(router_json[id].brokensysupgrade == 1) { s6.textContent = 'Download Firmware'
optionArray[i] = id+"Nbroken|Broken"; }
i++; function populateE () {
} var s5 = document.getElementById('fw-dl-5')
if(router_json[id].experimentalsysupgrade == 1) { var s6 = document.getElementById('fw-dl-6')
optionArray[i] = id+"Nexp|Experimental"; var id = 0
i++; var link = '#'
} var linkclass = ''
if(router_json[id].stablesysupgrade == 1) { if (s5.value.lastIndexOf('Jbeta') != -1) {
optionArray[i] = id+"Nstable|Stable"; id = parseInt(s5.value.slice(0, s5.value.length - 4))
i++; link = router_json[id].betafactorylink
} linkclass = ' btn-warning'
} }
for(var option in optionArray){ if (s5.value.lastIndexOf('Jbroken') != -1) {
var pair = optionArray[option].split("|"); id = parseInt(s5.value.slice(0, s5.value.length - 6))
var newOption = document.createElement("option"); link = router_json[id].brokenfactorylink
newOption.value = pair[0]; linkclass = ' btn-danger'
newOption.innerHTML = pair[1]; }
s2.options.add(newOption); if (s5.value.lastIndexOf('Jexp') != -1) {
} id = parseInt(s5.value.slice(0, s5.value.length - 3))
s6.href = "#"; link = router_json[id].experimentalfactorylink
s6.className = s6.className.replace( /(?:^|\s)disabled(?!\S)/g , '' ); linkclass = ' btn-warning'
s6.className = s6.className.replace( /(?:^|\s)btn-primary(?!\S)/g , '' ); }
s6.className = s6.className.replace( /(?:^|\s)btn-danger(?!\S)/g , '' ); if (s5.value.lastIndexOf('Jstable') != -1) {
s6.className = s6.className.replace( /(?:^|\s)btn-warning(?!\S)/g , '' ); id = parseInt(s5.value.slice(0, s5.value.length - 6))
s6.className = s6.className.replace( /(?:^|\s)btn-success(?!\S)/g , '' ); link = router_json[id].stablefactorylink
s6.className += " btn-primary disabled"; linkclass = ' btn-success'
s6.innerHTML = "Download Firmware"; }
} if (s5.value.lastIndexOf('Nbeta') != -1) {
function populateE(){ id = parseInt(s5.value.slice(0, s5.value.length - 4))
var s1 = document.getElementById("fw-dl-5"); link = router_json[id].betasysupgradelink
var s2 = document.getElementById("fw-dl-6"); linkclass = ' btn-warning'
s2.innerHTML = ""; }
if(s1.value.lastIndexOf("Jbeta") != -1) { if (s5.value.lastIndexOf('Nbroken') != -1) {
var id = parseInt(s1.value.slice(0,s1.value.length-4)); id = parseInt(s5.value.slice(0, s5.value.length - 6))
var link = router_json[id].betafactorylink; link = router_json[id].brokensysupgradelink
var linkclass = " btn-warning"; linkclass = ' btn-danger'
} }
if(s1.value.lastIndexOf("Jbroken") != -1) { if (s5.value.lastIndexOf('Nexp') != -1) {
var id = parseInt(s1.value.slice(0,s1.value.length-6)); id = parseInt(s5.value.slice(0, s5.value.length - 3))
var link = router_json[id].brokenfactorylink; link = router_json[id].experimentalsysupgradelink
var linkclass = " btn-danger"; linkclass = ' btn-warning'
} }
if(s1.value.lastIndexOf("Jexp") != -1) { if (s5.value.lastIndexOf('Nstable') != -1) {
var id = parseInt(s1.value.slice(0,s1.value.length-3)); id = parseInt(s5.value.slice(0, s5.value.length - 6))
var link = router_json[id].experimentalfactorylink; link = router_json[id].stablesysupgradelink
var linkclass = " btn-warning"; linkclass = ' btn-success'
} }
if(s1.value.lastIndexOf("Jstable") != -1) { s6.href = link
var id = parseInt(s1.value.slice(0,s1.value.length-6)); s6.classList.remove('disabled', 'btn-primary', 'btn-danger', 'btn-warning', 'btn-success')
var link = router_json[id].stablefactorylink; s6.className.add(linkclass)
var linkclass = " btn-success"; s6.textContent = 'Download Firmware'
} }
if(s1.value.lastIndexOf("Nbeta") != -1) { </script>
var id = parseInt(s1.value.slice(0,s1.value.length-4)); </head>
var link = router_json[id].betasysupgradelink; <body>
var linkclass = " btn-warning"; <div class="jumbotron">
} <div class="container">
if(s1.value.lastIndexOf("Nbroken") != -1) { <div class="col-xs-12">
var id = parseInt(s1.value.slice(0,s1.value.length-6)); <img src="<?php echo $community[$community_id]['logo_url']?>" alt="<?php echo $community[$community_id]['logo_alt']?>" class="pull-right img-box" />
var link = router_json[id].brokensysupgradelink; <h2><?php echo $community[$community_id]['head_titel']?></h2>
var linkclass = " btn-danger"; <p><?php echo $community[$community_id]['head_text']?></p>
} <p>
if(s1.value.lastIndexOf("Nexp") != -1) { <a class="btn btn-primary btn-large" href="<?php echo $community[$community_id]['link_url']?>"><?php echo $community[$community_id]['link_text']?></a>
var id = parseInt(s1.value.slice(0,s1.value.length-3)); </p>
var link = router_json[id].experimentalsysupgradelink; </div>
var linkclass = " btn-warning"; </div>
} </div>
if(s1.value.lastIndexOf("Nstable") != -1) {
var id = parseInt(s1.value.slice(0,s1.value.length-6)); <div class="container">
var link = router_json[id].stablesysupgradelink; <?php for ($i = 0; $i < $err; $i++): ?>
var linkclass = " btn-success"; <div class="alert alert-warning alert-dismissible" role="alert">
} <span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span>
s2.href = link; <span class="sr-only">Warning:</span>
s2.className = s2.className.replace( /(?:^|\s)disabled(?!\S)/g , '' ); <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
s2.className = s2.className.replace( /(?:^|\s)btn-primary(?!\S)/g , '' ); <strong>Warning!</strong> <?php echo $error_text[$i] ?>
s2.className = s2.className.replace( /(?:^|\s)btn-danger(?!\S)/g , '' ); </div>
s2.className = s2.className.replace( /(?:^|\s)btn-warning(?!\S)/g , '' ); <?php endfor ?>
s2.className = s2.className.replace( /(?:^|\s)btn-success(?!\S)/g , '' );
s2.className += linkclass; <div class="row">
s2.innerHTML = "Download Firmware"; <div class="col-md-12">
} <div class="panel panel-default">
</script> <div class="panel-heading">
</head> <h3 class="panel-title"><?php echo $community[$community_id]["lang_title"]?></h3>
<body> </div>
<div class="container"> <div class="panel-body">
EOT; <img src="router_images/keinbild.jpg" class="pull-right img-box" id="img_router_back" alt="Router Rückseite" />
for($i=0; $i<$err; $i++) { <img src="router_images/keinbild.jpg" class="pull-right img-box" id="img_router_front" alt="Router Vorderseite" />
echo("<div class=\"alert alert-warning alert-dismissible\" role=\"alert\">\n"); <p><?php echo $community[$community_id]["lang_text"]?></p>
echo(" <span class=\"glyphicon glyphicon-exclamation-sign\" aria-hidden=\"true\"></span>\n"); </div>
echo(" <span class=\"sr-only\">Warning:</span>\n"); <div class="panel-footer">
echo(" <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\"><span aria-hidden=\"true\">&times;</span></button>\n"); <img src="images/ccbyncsa.png" alt="CC BY-NC-SA" class="pull-left" style="width: 60px; margin-right: 15px;" />
echo(" <strong>Warning!</strong> ".$error_text[$i]."\n"); <p>Die Router Bilder sind von Daniel Krah und unter <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> lizensiert.</p>
echo("</div>\n"); </div>
} </div>
echo <<<EOT </div>
<div class="row"> </div>
<div class="col-md-12"> <div class="row">
<div class="jumbotron"> <div class="col-md-4">
EOT; <div class="panel panel-default">
echo("<img src=\"".$community[$community_id]["logo_url"]."\" alt=\"".$community[$community_id]["logo_alt"]."\" style=\"float:right;\">"); <div class="panel-heading">
echo <<<EOT <h3 class="panel-title">Router Hersteller</h3>
<h2> </div>
EOT; <div class="panel-body">
echo($community[$community_id]["head_titel"]); <select id="fw-dl-1" name="fw-dl-1" class="form-control" onchange="firmwarePage.onUpdate_1()">
echo <<<EOT <option value="">Hersteller auswählen</option>
</h2> <?php foreach ($hersteller as $value): ?>
<p> <option value="<?php echo $value['name']?>"><?php echo $value['name']?></option>
EOT; <?php endforeach ?>
echo($community[$community_id]["head_text"]); </select>
echo <<<EOT </div>
</p> </div>
<p> </div>
EOT; <div class="col-md-4">
echo("<a class=\"btn btn-primary btn-large\" href=\"".$community[$community_id]["link_url"]."\">".$community[$community_id]["link_text"]."</a>"); <div class="panel panel-default">
echo <<<EOT <div class="panel-heading">
</p> <h3 class="panel-title">Router Modell</h3>
</div> </div>
</div> <div class="panel-body">
</div> <select id="fw-dl-2" name="fw-dl-2" class="form-control" onchange="populateB()"></select>
<div class="row"> </div>
<div class="col-md-12"> </div>
<div class="panel panel-primary"> </div>
<div class="panel-heading"> <div class="col-md-4">
<h3 class="panel-title"> <div class="panel panel-default">
EOT; <div class="panel-heading">
echo($community[$community_id]["lang_titel"]); <h3 class="panel-title">Router Version</h3>
echo <<<EOT </div>
</h3> <div class="panel-body">
</div> <select id="fw-dl-3" name="fw-dl-3" class="form-control" onchange="populateC()"></select>
<div class="panel-body"> </div>
<img src="router_images/keinbild.jpg" id="img_router_back" alt="Router Rückseite" width=200px" style="float:right;"> </div>
<img src="router_images/keinbild.jpg" id="img_router_front" alt="Router Vorderseite" width=200px" style="float:right;"> </div>
EOT; </div>
echo($community[$community_id]["lang_text"]); <div class="col-md-4">
echo <<<EOT <div class="panel panel-default">
</div> <div class="panel-heading">
<div class="panel-footer"> <h3 class="panel-title">Firmware Erstinstallation</h3>
<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 class="panel-body">
</div> <select id="fw-dl-4" name="fw-dl-4" class="form-control" onchange="populateD()"></select>
</div> </div>
</div> </div>
<div class="row"> </div>
<div class="col-md-4"> <div class="col-md-4">
<div class="panel panel-primary"> <div class="panel panel-default">
<div class="panel-heading"> <div class="panel-heading">
<h3 class="panel-title"> <h3 class="panel-title">Firmware Entwicklungsstadium</h3>
Router Hersteller </div>
</h3> <div class="panel-body">
</div> <select id="fw-dl-5" name="fw-dl-5" class="form-control" onchange="populateE()"></select>
<div class="panel-body"> </div>
<select id="fw-dl-1" name="fw-dl-1" class="form-control" onchange="populateA()"> </div>
<option value="">Hersteller auswählen</option> </div>
EOT; <div class="col-md-4">
for($i=0; $i<$anzahl_hersteller; $i++) { <div class="panel panel-default">
echo("<option value=\"".$hersteller[$i]['name']."\">".$hersteller[$i]['name']."</option>"); <div class="panel-heading">
} <h3 class="panel-title">Firmware Download</h3>
echo <<<EOT </div>
</select> <div class="panel-body">
</div> <a href="#" id="fw-dl-6" name="fw-dl-6" role="button" class="btn btn-primary btn-block disabled">Download Firmware</a>
<div class="panel-footer"> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="col-md-4">
<div class="panel panel-primary"> <hr />
<div class="panel-heading">
<h3 class="panel-title"> <footer>
Router Modell <div class="col-xs-12 text-muted text-center">
</h3> <p>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></p>
</div> </div>
<div class="panel-body"> </footer>
<select id="fw-dl-2" name="fw-dl-2" class="form-control" onchange="populateB()"></select> </div>
</div> <script src="js/jquery-2.2.3.min.js"></script>
<div class="panel-footer"> <script src="js/bootstrap.min.js"></script>
</div> </body>
</div> </html>
</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" class="form-control" 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" class="form-control" 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" class="form-control" 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;
?>

404
index.php
View File

@ -1,231 +1,173 @@
<?php <?php
/** /**
* @author Caspar Armster * @author Caspar Armster
* @copyright 2016 Caspar Armster, Freifunk Hennef/Freie Netzwerker e.V. (www.freifunk-hennef.de / www.freie-netzwerker.de) * @copyright 2016 Caspar Armster, Freifunk Hennef/Freie Netzwerker e.V. (www.freifunk-hennef.de / www.freie-netzwerker.de)
* @license Licensed under GPLv3 * @license Licensed under GPLv3
*/ */
error_reporting (E_ALL | E_STRICT); error_reporting (E_ALL ^ E_NOTICE);
ini_set ('display_errors', 'On'); require_once('community-config.inc.php');
require_once('community-config.inc.php'); require_once('config.inc.php');
require_once('config.inc.php'); if (count($community) == 1) {
if(count($community) == 1) { header('Location: firmware.php?id=0');
header('Location: firmware.php?id=0'); exit;
exit; }
} ?>
echo <<<EOT <!DOCTYPE html>
<!DOCTYPE html> <html lang="de">
<html lang="de"> <head>
<head> <meta charset="utf-8" />
<meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1"> <title><?php echo $community[0]["head_titel"]?></title>
EOT;
echo("<title>".$community[0]["head_titel"]."</title>"); <meta name="author" content="Caspar Armster" />
echo <<<EOT
<link href="css/bootstrap.min.css" rel="stylesheet">
<meta name="author" content="Caspar Armster"> <link href="css/styles.css" rel="stylesheet">
<link href="css/bootstrap.min.css" rel="stylesheet"> <link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link href="css/styles.css" rel="stylesheet"> <link rel="icon" href="favicon.ico" type="image/x-icon">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon"> <script>
<link rel="icon" href="favicon.ico" type="image/x-icon"> <?php
EOT; echo "var community_json = ".json_encode($community)."\n";
echo "var texte_json = ".json_encode($texte)."\n";
$community_json = json_encode($community); echo "var community_anzahl = ".count($community)."\n";
$texte_json = json_encode($texte); ?>
echo("\n<script>\n"); function populateA () {
echo("var community_text = '".$community_json."';\n"); var s1 = document.getElementById('fw-dl-1')
echo("var community_json = JSON.parse(community_text);\n"); var s2 = document.getElementById('fw-dl-2')
echo("var texte_text = '".$texte_json."';\n"); var s3 = document.getElementById('fw-dl-3')
echo("var texte_json = JSON.parse(texte_text);\n"); s3.classList.remove('disabled', 'btn-primary', 'btn-success')
echo("var community_anzahl = ".count($community).";\n"); var optionArray = []
s2.innerHTML = ''
echo <<<EOT var i = 1
function populateA(){ var j = 1
var s1 = document.getElementById("fw-dl-1"); var skip_sub = 0
var s2 = document.getElementById("fw-dl-2"); while (i < community_anzahl) {
var s3 = document.getElementById("fw-dl-3"); if (s1.value == community_json[i]['name']) {
s3.className = s3.className.replace( /(?:^|\s)disabled(?!\S)/g , '' ); if (community_json[i]['sub_auswahl'] != '') {
s3.className = s3.className.replace( /(?:^|\s)btn-primary(?!\S)/g , '' ); optionArray[j] = i + '|' + community_json[i]['sub_auswahl']
s3.className = s3.className.replace( /(?:^|\s)btn-success(?!\S)/g , '' ); $('#fw-dl-2').prop('disabled', false)
var optionArray = new Array(); optionArray[0] = '|' + texte_json['ebene2_text']
s2.innerHTML = ""; } else {
var i=1; $('#fw-dl-2').prop('disabled', true)
var j=1; optionArray[0] = '|'
var skip_sub = 0; var link = 'firmware.php?id=' + i
while(i<community_anzahl) { var linkclass = 'btn-success'
if(s1.value == community_json[i]["name"]) { skip_sub = 1
if(community_json[i]["sub_auswahl"] != "") { }
optionArray[j] = i+"|"+community_json[i]["sub_auswahl"]; j++
$('#fw-dl-2').prop('disabled', false); }
optionArray[0] = "|"+texte_json["ebene2_text"]; i++
} else { }
$('#fw-dl-2').prop('disabled', true); for (var option in optionArray) {
optionArray[0] = "|"; var pair = optionArray[option].split('|')
var link = "firmware.php?id="+i; var newOption = document.createElement('option')
var linkclass = " btn-success"; newOption.value = pair[0]
skip_sub = 1; newOption.innerHTML = pair[1]
} s2.options.add(newOption)
j++; }
} if (skip_sub == 1) {
i++; s3.href = link
} s3.classList.add(linkclass)
for(var option in optionArray){ } else {
var pair = optionArray[option].split("|"); s3.href = '#'
var newOption = document.createElement("option"); s3.classList.add('btn-primary', 'disabled')
newOption.value = pair[0]; }
newOption.innerHTML = pair[1]; s3.textContent = texte_json['ebene3_text']
s2.options.add(newOption); }
}
s3.innerHTML = ""; function populateB () {
if(skip_sub == 1) { var s2 = document.getElementById('fw-dl-2')
s3.href = link; var s3 = document.getElementById('fw-dl-3')
s3.className += linkclass; s3.classList.remove('disabled', 'btn-primary', 'btn-success')
} else { if (s2.value != 0) {
s3.href = "#"; s3.href = 'firmware.php?id=' + s2.value
s3.className += " btn-primary disabled"; s3.classList.add('btn-success')
} }
s3.innerHTML = texte_json["ebene3_text"]; s3.href = link
} s3.textContent = texte_json['ebene3_text']
function populateB(){ }
var s1 = document.getElementById("fw-dl-1"); </script>
var s2 = document.getElementById("fw-dl-2"); </head>
var s3 = document.getElementById("fw-dl-3"); <body>
s3.innerHTML = ""; <div class="jumbotron">
if(s2.value != 0) { <div class="container">
var link = "firmware.php?id="+s2.value; <div class="col-xs-12">
var linkclass = " btn-success"; <img src="<?php echo $community[0]['logo_url']?>" alt="<?php echo $community[0]['logo_alt']?>" class="pull-right img-box" />
} <h2><?php echo $community[0]['head_titel']?></h2>
s3.href = link; <p><?php echo $community[0]['head_text']?></p>
s3.className = s3.className.replace( /(?:^|\s)disabled(?!\S)/g , '' ); <p>
s3.className = s3.className.replace( /(?:^|\s)btn-primary(?!\S)/g , '' ); <a class="btn btn-primary btn-large" href="<?php echo $community[0]['link_url']?>"><?php echo $community[0]['link_text']?></a>
s3.className = s3.className.replace( /(?:^|\s)btn-success(?!\S)/g , '' ); </p>
s3.className += linkclass; </div>
s3.innerHTML = texte_json["ebene3_text"]; </div>
} </div>
</script>
</head> <div class="container">
<body> <div class="row">
<div class="container"> <div class="col-md-12">
<div class="row"> <div class="panel panel-default">
<div class="col-md-12"> <div class="panel-heading">
<div class="jumbotron"> <h3 class="panel-title"><?php echo $community[0]["lang_titel"] ?></h3>
EOT; </div>
echo("<img src=\"".$community[0]["logo_url"]."\" alt=\"".$community[0]["logo_alt"]."\" style=\"float:right;\">"); <div class="panel-body"><p><?php echo $community[0]["lang_text"] ?></p></div>
echo <<<EOT </div>
<h2> </div>
EOT; </div>
echo($community[0]["head_titel"]); <div class="row">
echo <<<EOT <div class="col-md-4">
</h2> <div class="panel panel-default">
<p> <div class="panel-heading">
EOT; <h3 class="panel-title"><?php echo $texte["ebene1_titel"]?></h3>
echo($community[0]["head_text"]); </div>
echo <<<EOT <div class="panel-body">
</p> <select id="fw-dl-1" name="fw-dl-1" class="form-control" onchange="populateA()">
<p> <option value=""><?php echo $texte["ebene1_text"]?></option>
EOT; <?php $lastName = "" ?>
echo("<a class=\"btn btn-primary btn-large\" href=\"".$community[0]["link_url"]."\">".$community[0]["link_text"]."</a>"); <?php foreach ($community as $i => $value): ?>
echo <<<EOT <?php if ($value['name'] != $lastName): ?>
</p> <option value="<?php echo $value['name']?>"><?php echo $value['name']?></option>
</div> <?php endif ?>
</div> <?php $lastName = $value['name'] ?>
</div> <?php endforeach ?>
<div class="row"> </select>
<div class="col-md-12"> </div>
<div class="panel panel-primary"> </div>
<div class="panel-heading"> </div>
<h3 class="panel-title"> <div class="col-md-4">
EOT; <div class="panel panel-default">
echo($community[0]["lang_titel"]); <div class="panel-heading">
echo <<<EOT <h3 class="panel-title"><?php echo $texte["ebene2_titel"]?></h3>
</h3> </div>
</div> <div class="panel-body">
<div class="panel-body"> <select id="fw-dl-2" name="fw-dl-2" class="form-control" disabled="disabled" onchange="populateB()"></select>
EOT; </div>
echo($community[0]["lang_text"]); </div>
echo <<<EOT </div>
</div> <div class="col-md-4">
<div class="panel-footer"> <div class="panel panel-default">
</div> <div class="panel-heading">
</div> <h3 class="panel-title"><?php echo $texte["ebene3_titel"]?></h3>
</div> </div>
</div> <div class="panel-body">
<div class="row"> <a href="#" id="fw-dl-3" name="fw-dl-3" role="button" class="btn btn-primary btn-block disabled"><?php echo $texte["ebene3_text"]?></a>
<div class="col-md-4"> </div>
<div class="panel panel-primary"> </div>
<div class="panel-heading"> </div>
<h3 class="panel-title"> </div>
EOT;
echo($texte["ebene1_titel"]); <hr />
echo <<<EOT
</h3> <footer>
</div> <div class="col-xs-12 text-muted text-center">
<div class="panel-body"> <p>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></p>
<select id="fw-dl-1" name="fw-dl-1" class="form-control" onchange="populateA()"> </div>
EOT; </footer>
echo("<option value=\"\">".$texte["ebene1_text"]."</option>"); </div>
for($i=1; $i<count($community); $i++) {
echo("<option value=\"".$community[$i]['name']."\">".$community[$i]['name']."</option>"); <script src="js/jquery-2.2.3.min.js"></script>
if($i<count($community)-1) { <script src="js/bootstrap.min.js"></script>
while($community[$i]['name'] == $community[$i+1]['name']) { </body>
if($i<count($community)-1) { </html>
$i++;
} else {
break;
}
}
}
}
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">
EOT;
echo($texte["ebene2_titel"]);
echo <<<EOT
</h3>
</div>
<div class="panel-body">
<select id="fw-dl-2" name="fw-dl-2" class="form-control" disabled 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">
EOT;
echo($texte["ebene3_titel"]);
echo <<<EOT
</h3>
</div>
<div class="panel-body">
EOT;
echo("<a href=\"#\" id=\"fw-dl-3\" name=\"fw-dl-3\" role=\"button\" class=\"btn btn-primary disabled\">".$texte["ebene3_text"]."</a>");
echo <<<EOT
</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;
?>

206
readme.md
View File

@ -1,102 +1,104 @@
Freifunk Hennef Firmware Downloader Freifunk Hennef Firmware Downloader
=================================== ===================================
Beschreibung Beschreibung
------------ ------------
Der Freifunk Hennef Firmware Downloader soll es Laien ermöglichen schneller und sicherer die zu ihrem Router passende Firmware zu finden. Der Freifunker kann nacheinander aus automatisch generierten Listen seinen Router auswählen: Hersteller -> Modell -> Version und dann festlegen ob es eine Erstinstallation ist oder nicht, sowie am Ende wählen welches Entwicklungsstadium die Firmware haben soll. Dabei wird automatisch gewarnt (Download Button verändert die Farbe) falls nicht "stable" ausgewählt wird. Zusätzlich werden etliche der Router auch als Grafik (Front & Back Ansicht) gezeigt, so dass der Freifunker auf den ersten Blick erkennen kann wenn er den falschen Router ausgewählt hat. Einmal anschauen kann man sich den Firmware Downlaoder unter http://images.freifunk-hennef.de/downloader/. Der Freifunk Hennef Firmware Downloader soll es Laien ermöglichen schneller und sicherer die zu ihrem Router passende Firmware zu finden. Der Freifunker kann nacheinander aus automatisch generierten Listen seinen Router auswählen: Hersteller -> Modell -> Version und dann festlegen ob es eine Erstinstallation ist oder nicht, sowie am Ende wählen welches Entwicklungsstadium die Firmware haben soll. Dabei wird automatisch gewarnt (Download Button verändert die Farbe) falls nicht "stable" ausgewählt wird. Zusätzlich werden etliche der Router auch als Grafik (Front & Back Ansicht) gezeigt, so dass der Freifunker auf den ersten Blick erkennen kann wenn er den falschen Router ausgewählt hat. Einmal anschauen kann man sich den Firmware Downlaoder unter http://images.freifunk-hennef.de/downloader/.
Der Freifunk Hennef Firmware Downloader kann auch mit Metacommunities umgehen, bei der, vor der Auswahl der eigentlichen Firmware, noch eine Auswahl der Community/Subcommunity oder Technologie auszuwählen ist. Als Beispiel kann hier die Metacommunity Rhein-Sieg dienen, unter http://downloader.freifunk-rhein-sieg.de/ könnt ihr euch das anschauen. Der Freifunk Hennef Firmware Downloader kann auch mit Metacommunities umgehen, bei der, vor der Auswahl der eigentlichen Firmware, noch eine Auswahl der Community/Subcommunity oder Technologie auszuwählen ist. Als Beispiel kann hier die Metacommunity Rhein-Sieg dienen, unter http://downloader.freifunk-rhein-sieg.de/ könnt ihr euch das anschauen.
Technik Technik
------- -------
Der Freifunk Hennef Firmware Downloader erzeugt auf Grund der angegebenen Metadaten in der community-config.inc.php eine Auswahlseite für die Metacommunity (oder bei nur einer vorhandenen Community Konfiguration überspringt er diese Vorauswahl). Nach der Auswahl der Community (plus optionaler Subauswahl) erscheint der Link der zum eigentlichen Firmware Downloader führt. Der Freifunk Hennef Firmware Downloader scannt dann das in der community-config.inc.php angegebene Verzeichnis auf Firmwares in den Unterverzeichnissen (beta/broken/experimental/stable) und dort in (stable/sysupgrade). Aus dem Ergebnis baut das PHP Script ein interaktives Javascript für die Auswahl und verwendet dabei Bootstrap für das Layout. Der Freifunk Hennef Firmware Downloader erzeugt auf Grund der angegebenen Metadaten in der community-config.inc.php eine Auswahlseite für die Metacommunity (oder bei nur einer vorhandenen Community Konfiguration überspringt er diese Vorauswahl). Nach der Auswahl der Community (plus optionaler Subauswahl) erscheint der Link der zum eigentlichen Firmware Downloader führt. Der Freifunk Hennef Firmware Downloader scannt dann das in der community-config.inc.php angegebene Verzeichnis auf Firmwares in den Unterverzeichnissen (beta/broken/experimental/stable) und dort in (stable/sysupgrade). Aus dem Ergebnis baut das PHP Script ein interaktives Javascript für die Auswahl und verwendet dabei Bootstrap für das Layout.
Bisher werden Router der folgenden Hersteller automatisch erkannt: Bisher werden Router der folgenden Hersteller automatisch erkannt:
- 8devices - 8devices
- Alfa - Alfa
- Allnet - Allnet
- Buffalo - Buffalo
- D-Link - D-Link
- GL-Inet - GL-Inet
- LeMaker - LeMaker
- Linksys - Linksys
- Meraki - Meraki
- Netgear - Netgear
- Onion - Onion
- Openmesh - Openmesh
- Raspberry Pi - Raspberry Pi
- TP-Link - TP-Link
- Ubiquiti - Ubiquiti
- Western Digital - Western Digital
- x86 - x86
Soll eine Firmware für Router von anderen Herstellern angeboten werden muss erst das Script geändert werden! Bitte mich dann informieren über das github, oder caspar@freifunk-hennef.de. Soll eine Firmware für Router von anderen Herstellern angeboten werden muss erst das Script geändert werden! Bitte mich dann informieren über das github, oder caspar@freifunk-hennef.de.
Bilder Bilder
------ ------
Die Bilder der Router kommen von Daniel Krah und sind lizensiert unter einer Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz (CC-BY NC SA). Die Bilder der Router kommen von Daniel Krah und sind lizensiert unter einer Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz (CC-BY NC SA).
Installation Installation
------------ ------------
Den Freifunk Hennef Firmware Downloader in ein eigenes Unterverzeichnis des Webservers kopieren/entpacken, auf dem auch die Firmwares liegen. In der community-config.inc.php werden dann diverse Variablen gesetzt: Den Freifunk Hennef Firmware Downloader in ein eigenes Unterverzeichnis des Webservers kopieren/entpacken, auf dem auch die Firmwares liegen. In der community-config.inc.php werden dann diverse Variablen gesetzt:
- $texte ist das Array mit den einzelnen Überschriften/Texten für die Auswahlstufen - $texte ist das Array mit den einzelnen Überschriften/Texten für die Auswahlstufen
- $community ist das Array mit den Metadaten für die Metacommunity und die einzelnen Subcommunites. Wenn hier nur eine Community angegeben wird wird die Communtiyauswahl übersprungen und direkt auf die Firmware Downloader Seite verwiesen. - $community ist das Array mit den Metadaten für die Metacommunity und die einzelnen Subcommunites. Wenn hier nur eine Community angegeben wird wird die Communtiyauswahl übersprungen und direkt auf die Firmware Downloader Seite verwiesen.
0 => array( // ID die bei 0 Anfängt und hochgezählt wird ```
"community_id" => 0, // ID der Community, wiederholt sich bei den zusammengehörigen Subcommunities 0 => array( // ID die bei 0 Anfängt und hochgezählt wird
"name" => "Name der Community", "community_id" => 0, // ID der Community, wiederholt sich bei den zusammengehörigen Subcommunities
"head_titel" => "Header Titel", "name" => "Name der Community",
"head_text" => "Header Text", "head_titel" => "Header Titel",
"link_text" => "Header Link Text", "head_text" => "Header Text",
"link_url" => "Header Link URL", "link_text" => "Header Link Text",
"logo_alt" => "Logo Alt Text", "link_url" => "Header Link URL",
"logo_url" => "Logo URL", "logo_alt" => "Logo Alt Text",
"lang_titel" => "Langtext Titel", "logo_url" => "Logo URL",
"lang_text" => "Langtext Text", "lang_titel" => "Langtext Titel",
"download_path" => "Pfad zur Firmware", // Bleibt bei der Metacommunity leer "lang_text" => "Langtext Text",
"sub_auswahl" => "Name der Subcommunity" // Wird nur verwendet wenn die Community Subcommunites/Technologien als Auswahl hat "download_path" => "Pfad zur Firmware", // Bleibt bei der Metacommunity leer
), "sub_auswahl" => "Name der Subcommunity" // Wird nur verwendet wenn die Community Subcommunites/Technologien als Auswahl hat
),
In der config.inc.php sind die Angaben über die Hersteller, Entwicklungsstufen & Art der Firmware Installation. Hier muss man normalerweise nichts anpassen, außer man verwendet Firmwares für Router von Herstellern, die noch nicht integriert sind, dann bitte ich allerdings auch um Kontaktaufnahme (caspar@freifunk-hennef.de, bzw. im github). ```
- $entwicklung = Entwicklungsstufen der Firmware (beta/broken/experimental/stable) - (sollte man in Ruhe lassen normalerweise)
- $installation = Art der Installation (factory/sysupgrade) - (sollte man in Ruhe lassen normalerweise) In der config.inc.php sind die Angaben über die Hersteller, Entwicklungsstufen & Art der Firmware Installation. Hier muss man normalerweise nichts anpassen, außer man verwendet Firmwares für Router von Herstellern, die noch nicht integriert sind, dann bitte ich allerdings auch um Kontaktaufnahme (caspar@freifunk-hennef.de, bzw. im github).
- $hersteller = Array mit Informationen zu den Herstellern - $entwicklung = Entwicklungsstufen der Firmware (beta/broken/experimental/stable) - (sollte man in Ruhe lassen normalerweise)
- -> name = Name des Herstellers - $installation = Art der Installation (factory/sysupgrade) - (sollte man in Ruhe lassen normalerweise)
- -> filename = Name des Herstellers wie er in den Dateinamen der Firmware auftaucht - $hersteller = Array mit Informationen zu den Herstellern
- -> offset_modell = Offset für das Parsen des Modells im Dateinamen der Firmware - -> name = Name des Herstellers
- -> offset_version = Offset für das Parsen der Version im Dateinamen der Firmware - -> filename = Name des Herstellers wie er in den Dateinamen der Firmware auftaucht
- $offset_sysupgrade = Offset für "-sysupgrade" im Dateinamen der Firmware - -> offset_modell = Offset für das Parsen des Modells im Dateinamen der Firmware
- -> offset_version = Offset für das Parsen der Version im Dateinamen der Firmware
Die Firmware liegt in folgenden Unterverzeichnissen: - $offset_sysupgrade = Offset für "-sysupgrade" im Dateinamen der Firmware
* firmware/
* beta/ Die Firmware liegt in folgenden Unterverzeichnissen:
* factory/ * firmware/
* sysupgrade/ * beta/
* broken/ * factory/
* factory/ * sysupgrade/
* sysupgrade/ * broken/
* experimental/ * factory/
* factory/ * sysupgrade/
* sysupgrade/ * experimental/
* stable/ * factory/
* factory/ * sysupgrade/
* sysupgrade/ * stable/
* factory/
Das Layout der Seite baut auf Bootstrap (http://getbootstrap.com/) auf und kann mittels eigener angepaster StyleSheets sehr einfach verändert werden. Dank Bootstrap ist das Layout von sich aus direkt responsive. * sysupgrade/
Code Das Layout der Seite baut auf Bootstrap (http://getbootstrap.com/) auf und kann mittels eigener angepaster StyleSheets sehr einfach verändert werden. Dank Bootstrap ist das Layout von sich aus direkt responsive.
----
Code
Der Code ist nun halbwegs aufgeräumt und generiert aus dem PHP heraus ein Objekt ($router der Klasse: ffrouter) und übergibt ein daraus erzeugtes JSON an den Javascript Code zum erzeugen der Menustruktur. ----
Lizenz Der Code ist nun halbwegs aufgeräumt und generiert aus dem PHP heraus ein Objekt ($router der Klasse: ffrouter) und übergibt ein daraus erzeugtes JSON an den Javascript Code zum erzeugen der Menustruktur.
------
Lizenz
* author Caspar Armster ------
* copyright 2016 by Caspar Armster, [Freifunk Hennef](http://www.freifunk-hennef.de/ "Freifunk Hennef") / [Freie Netzwerker e.V.](http://www.freie-netzwerker.de/ "Freie Netzwerker e.V.")
* license Licensed under GPLv3 * author Caspar Armster
* copyright 2016 by Caspar Armster, [Freifunk Hennef](http://www.freifunk-hennef.de/ "Freifunk Hennef") / [Freie Netzwerker e.V.](http://www.freie-netzwerker.de/ "Freie Netzwerker e.V.")
* license Licensed under GPLv3