You are not logged in.

Dear visitor, welcome to Laras Levelbase Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

Karlo002

Skandalfreies Forumsmitglied

  • "Karlo002" is male

Posts: 1,756

Location: Hamburg

  • Send private message

741

Saturday, December 25th 2010, 6:24pm

Hallo zusammen!
Ich wünsche Euch frohe und besinnliche Weihnachten! :)

Gruß,
Oliver

exFenris

Unregistered

742

Sunday, December 26th 2010, 12:01pm

Wußte jetzt nicht so reht wohin damit, aber mich würde mal interessieren wie so nen Kalender gemacht wird. Den irgend nen Script muß ja dahinterstecken.
Wo gibt´s da Info´s wie man sowas macht ?

agnes

Administress

  • "agnes" is female

Posts: 11,682

wcf.user.option.userOption57: Uncharted auf PS4, warte auf das neue TR für Xbox

Location: Locarno-CH

  • Send private message

743

Sunday, December 26th 2010, 2:29pm

Der Kalender (Startseite und einzelne Seiten, Weiterleitung und Codierung) wurden von Technik programmiert.
Als Fertigpaket gibt es den Kalender nicht.
"Etwas anzunehmen bedeutet, sich die Genauigkeit zum Feinde zu machen."

exFenris

Unregistered

744

Sunday, December 26th 2010, 2:33pm

Ich hab ja auch nicht nach nem Fertigpaket gefragt, sonder wie so was geht und wo es darüber Info´s gibt :whistling:

Technik

Techniker ausser Konkurrenz

  • "Technik" is male

Posts: 1,872

wcf.user.option.userOption56: Den Adventskalender

wcf.user.option.userOption57: Nix

Location: Colmar/Frankreich

  • Send private message

745

Sunday, December 26th 2010, 10:42pm

Also, wie macht man sowas:

1.) Man lernt zunächst, Webseiten mit sauberem, W3C-konformem XHTML-Code und CSS zu schreiben.
2.) Man lernt danach von Grund auf die Programmiersprache PHP, die man dann dazu einsetzt, dynamisch sauberen, W3C-konformen XHTML-Code, und damit entsprechend dynamische Webseiten zu generieren.

Im Adventskalender gibt es zwei PHP-Scripts: Die index.php zeigt die Türchen vor dem Kalenderhintergrund an und entscheidet in Abhängigkeit vom Tagesdatum:
a) Ist das aktuelle Datum grösser oder gleich dem Türchendatum, wird bei Lara die Sprechblase "in wenigen Sekunden erfolgt die Weiterleitung..." angezeigt, dann entsprechende verschlüsselte Parameter generiert (um das Spickeln zu verhindern) und damit die index2.php aufgerufen.
b) Ist das aktuelle Datum kleiner als das Türchendatum, wird bei Lara die "Das ist noch zu früh"-Sprechblase angezeigt, die wiederum einen Link auf den Anfang enthält, dass man bei Klick wieder die Türchen ohne Sprechblase sieht und neu wählen kann.

Die index2.php prüft dann die übergebenen Parameter (alles was in der URL nach index2.php?... steht), ob die Verschlüsselung und die Prüfziffern konsistent sind (es könnte ja jemand mit irgendwelchen Zahlen ausprobieren...). Wenn nicht, kommt nur eine "Oooops!"-Fehlermeldung und ein Link zurück zum Kalender (index.php). Wenn ja, wird aus dem entsprechenden Unterordner die advent.ini eingelesen und anhand der darin festglegten Titel, Texte, Farbschema, Links, etc. die tatsächliche Seite für den Kalendertag erzeugt. Das Template oder "Gerüst" für die Tagesseite ist in der index2.php und einem zugehörigen css-Stylesheet fest hinterlegt, je nach in der ini-Datei festgelegtem Farbschema (blau, grün oder rot) wird dann dynamisch noch eine weitere css-Datei nachgeladen, die die detaillierten Farbtöne für das jeweilige Schema enthält. Deshalb sehen die Tagesseiten auch von der Struktur her alle gleich aus und unterscheiden sich nur im Content und ggf. dem Farbschema. (Ausnahmen am 17.12. Wettbewerb und 23.12. Autorenseite, da steckt ein anderer Trick dahinter)

Der Vorteil ist, dass man
1.) Nicht jedes Jahr die Kalenderseite neu machen muss, sondern nur das Hintergrundbild austauschen und die Position der Türchen verändern.
2.) Nicht für jeden Tag eine neue Seite machen, sondern nur den Inhalt in eine ini-Datei schreiben muss, damit die Seite dann passend generiert wird.

Das ist die Theorie. In der Praxis nutze ich aber jedes Jahr die Gelegenheit, um den Code im Hintergrund immer noch einen Tick besser und die Verschlüsselung noch undurchsichtiger zu machen.

Wenn jetzt irgendwann jemand sagt, dass ihm die Tagesseiten von der Farbe und der Struktur nicht gefallen, und anstatt nur zu mösern auch gleich noch einen besseren Vorschlag abliefert, den das Kalenderteam akzeptiert, dann bräuchte ich nur die index2.php einmal anzupassen und "flupp!" würden alle Tagesseiten im neuen Glanz erstrahlen.

So, alle Klarheiten restlos beseitigt?

Für die ganz Neugierigen noch die ini-Datei, aus der die Seite vom 01.12.2010 generiert wurde, das war der Level von dh5696:

Spoiler Spoiler

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
[Titel deutsch]
1 = "Level: One day before Christmas"
2 = "von dh5696"
3 = "blau"
4 = "01 Dec 2010"

[Titles english]
1 = "Level: One day before Christmas"
2 = "by dh5696"

[Überschriften deutsch]
1 = "Der Level"
2 = "Über mich"
3 = ""

[Headers english]
1 = "The Level"
2 = "About me"
3 = ""

[Texte deutsch]
1 = "Es ist der 23. Dezember, ein Tag vor Weihnachten, und Lara hat noch eine Menge Dinge zu erledigen.<br />
Hilfst du ihr dabei?<br />
Lara muss noch einen Kuchen backen und ein Buch suchen, was ihr verloren gegangen ist."
2 = "Das ist mein Erstlingswerk<br />
Bitte beim Review berücksichtigen. ;)<br />
Ich würde mich sehr über ein Review freuen.<br /><br />
Frohe Weihnachten."
3 = ""

[Texts english]
1 = "It's December 23rd, one day before Christmas and Lara has still a lot of things to do.<br />
Can you help her ?<br />
Lara has to bake a cake and to search a book which she has lost."
2 = "This my first Work with the Level Editor!<br />
If you want to write a review please think about that. ;)<br />
I would be happy about any review.<br /><br />
Merry Christmas"
3 = ""

[Verknüpfungen deutsch]
1 = ""
2 = "http://host.laraslevelbase.org/dl/download.php?file=%2F2010%2F1210%2FAdvent%2Fdh5696-OneDayBeforeChristmas.zip"
3 = ""

[Links english]
1 = ""
2 = "http://host.laraslevelbase.org/dl/download.php?file=%2F2010%2F1210%2FAdvent%2Fdh5696-OneDayBeforeChristmas.zip"
3 = ""

[Verknüpfungstexte deutsch]
1 = ""
2 = "Download"
3 = ""

[Link descriptors english]
1 = ""
2 = "Download"
3 = ""

[Bilddateien]
1 = "bild1.jpg"
2 = "bild2.jpg"
3 = ""
 


und das ist der Teil der index2.php, der nach Parametercheck die entsprechende advent.ini lädt und daraus die Seite generiert:

Spoiler Spoiler

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
<?php



	//fonctions:

	function cellule($classe, $contenu) {

		echo("				<td class=\"".$classe."\">".$contenu."</td>\n");		

	}

	

	function gen_lien($fich_a,$option,$text_a) {

		return("<p class=\"p_lien\"><a href=\"".$fich_a.(strlen($option)>0 ? "?".$option : "")."\">".(strlen($text_a)>0 ? $text_a : $fich_a)."</a></p>");

	}

	

	function gen_lien2($fich_a,$option,$text_a) {

		return("<a href=\"".$fich_a.(strlen($option)>0 ? "?".$option : "")."\">".(strlen($text_a)>0 ? $text_a : $fich_a)."</a>");

	}

	

	function gen_imag($fich_img) {

		return("<img src=\"".$fich_img."\" />\n");

	}

	

	function gen_bloc($tx_titre,$tx_text) {

		return((strlen($tx_titre)>0 ? "					<h3>".$tx_titre."</h3>\n" : "") ."<div>". $tx_text."</div>\n");

	}

	



	$language=(isset($_GET["lang"]) ? $_GET["lang"] : "de");


//Hier fehlt ein Stück vom Code, aber der ist geheim!
	

	if(!file_exists($deeper."advent.ini")) {
		if(

//Hier fehlt auch wieder ein Stückchen, das niemand etwas angeht... ;-)

		else {

			die("Ooooops, that was a page request with ugly or invalid parameters! ;-)<br />

			Please use your browser's Back function to return to the calendar page.");
		}

	} else {

 



	$config=parse_ini_file($deeper."advent.ini", true);			

	//pseudo-constantes:

	$lien_lang=($language=="de" ? "en" : "de");

	$ltex_lang=($language=="de" ? "English" : "Deutsch");

	$schema=$config["Titel deutsch"][3];





	

?>





<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/xhtml1-strict.dtd">

<html>

	<head>

		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-15" ->            

		<meta http-equiv="Content-Language" content="<?php echo($language); ?>" />

		<title><?php echo($language=="de" ? $config["Titel deutsch"][1] : $config["Titles english"][1]); ?></title>

		<link rel="stylesheet" type="text/css" href="<?php echo($deep."tech/structure.css"); ?>" />

		<link rel="stylesheet" type="text/css" href="<?php echo($deep."tech/".$schema.".css"); ?>" />

	</head>

	<body>

		<div id="main">

		<table id="principal">

			<tr>

<?php

	//Sélection de la langue:

	cellule("lad_date",$config["Titel deutsch"][4]);

	cellule("lad_language",gen_lien2("index2.php","id=".$incdir."&amp;iy=".($inchash)."&amp;lang=".$lien_lang,$ltex_lang));

?>

			</tr>

			<tr>

				<td colspan=2 class="lad_banner">

<?php

	//Titre:

	echo("					<h1>".htmlspecialchars($language=="de" ? $config["Titel deutsch"][1] : $config["Titles english"][1])."</h1>\n");

	echo("					<h2>".htmlspecialchars($language=="de" ? $config["Titel deutsch"][2] : $config["Titles english"][2])."</h2>\n");

?>	

				</td>

			</tr>

			<tr>

				<td class="lad_texte">

<?php

	//Premier bloc texte:

	if (strlen($language=="de" ? $config["Texte deutsch"][1] : $config["Texts english"][1])>0) {

		echo(gen_bloc(($language=="de" ? $config["Überschriften deutsch"][1] : $config["Headers english"][1]),($language=="de" ? $config["Texte deutsch"][1] : $config["Texts english"][1])));

	}

	//Premier lien:

	if (strlen($language=="de" ? $config["Verknüpfungen deutsch"][1] : $config["Links english"][1])>0) {

		echo(gen_lien($language=="de" ? $config["Verknüpfungen deutsch"][1] : $config["Links english"][1],"",$language=="de" ? $config["Verknüpfungstexte deutsch"][1] : $config["Link descriptors english"][1]));

	}

?>

				</td>

				<td class="lad_image">

<?php

	//Première image:

	if (strlen($config["Bilddateien"][1])>0) {

		echo(gen_imag($deeper.$config["Bilddateien"][1]));

	}

?>

				</td>

			</tr>

			<tr>

				<td class="lad_image">

<?php

	//Deuxième image:

	if (strlen($config["Bilddateien"][2])>0) {

		echo(gen_imag($deeper.$config["Bilddateien"][2]));

	}

?>

				</td>

				<td class="lad_texte">

<?php

	//Deuxième bloc texte:

	if (strlen($language=="de" ? $config["Texte deutsch"][2] : $config["Texts english"][2])>0) {

		echo(gen_bloc(($language=="de" ? $config["Überschriften deutsch"][2] : $config["Headers english"][2]),($language=="de" ? $config["Texte deutsch"][2] : $config["Texts english"][2])));

	}

	//Deuxième lien:

	if (strlen($language=="de" ? $config["Verknüpfungen deutsch"][2] : $config["Links english"][2])>0) {

		echo(gen_lien($language=="de" ? $config["Verknüpfungen deutsch"][2] : $config["Links english"][2],"",$language=="de" ? $config["Verknüpfungstexte deutsch"][2] : $config["Link descriptors english"][2]));

	}

?>

				</td>

			</tr>

			<tr>

				<td class="lad_texte">

<?php

	//Troisième bloc texte:

	if (strlen($language=="de" ? $config["Texte deutsch"][3] : $config["Texts english"][3])>0) {

		echo(gen_bloc(($language=="de" ? $config["Überschriften deutsch"][3] : $config["Headers english"][3]),($language=="de" ? $config["Texte deutsch"][3] : $config["Texts english"][3])));

	}

	//Troisième lien:

	if (strlen($language=="de" ? $config["Verknüpfungen deutsch"][3] : $config["Links english"][3])>0) {

		echo(gen_lien($language=="de" ? $config["Verknüpfungen deutsch"][3] : $config["Links english"][3],"",$language=="de" ? $config["Verknüpfungstexte deutsch"][3] : $config["Link descriptors english"][3]));

	}

?>

				</td>

				<td class="lad_image">

<?php

	//Troisième image:

	if (strlen($config["Bilddateien"][3])>0) {

		echo(gen_imag($deeper.$config["Bilddateien"][3]));

	}

?>

				</td>

			</tr>	

		</table>

	</div>

	</body>

</html>

<?php
}
?>

exFenris

Unregistered

746

Sunday, December 26th 2010, 11:05pm

Ich bin geplättet. Danke dir für die Arbeit die du dir da Gemacht hast. Werd mich mal damit auseinandersetzen

747

Monday, December 27th 2010, 12:39pm

Warum war Technik nicht damals mein Entwicklung von Internetanwendungen (kurz: EIA)- Dozent???? Ich hätte bestimmt mehr verstanden und spaß daran gehabt. :com:

Technik

Techniker ausser Konkurrenz

  • "Technik" is male

Posts: 1,872

wcf.user.option.userOption56: Den Adventskalender

wcf.user.option.userOption57: Nix

Location: Colmar/Frankreich

  • Send private message

748

Monday, December 27th 2010, 5:20pm

Warum war Technik nicht damals mein Entwicklung von Internetanwendungen (kurz: EIA)- Dozent???? Ich hätte bestimmt mehr verstanden und spaß daran gehabt. :com:


Weil Technik normalerweise keine Geduld und keinen Nerv zum Erklären und oftmals auch Schwierigkeiten hat, einzusehen, dass andere etwas nicht kapieren können, was ihm selbst sonnenklar erscheint. Deswegen hat Technik sich nach Abschluss seines Studiums währenddessen er sich und seine Nachhilfeschüler oft gequält hat, bewusst gegen die Lehrer-, bzw. Dozentenlaufbahn entschieden.

Techniks Arbeitsweise ist heute immer noch etwas anders. Man sagt ihm, was man braucht, zuerst meckert er, dass das viel zu kompliziert und sooo und in deeer Zeit sowieso nicht zu machen ist, dann zieht er sich mit viel Kaffee und Schokolade zurück und darf nicht gestört werden. Irgendwann taucht er grinsend wieder auf und hat eine Lösung entwickelt, die weit über die ursprüngliche Aufgabenstellung hinausgeht und viel komfortabler ist...

749

Monday, December 27th 2010, 5:53pm

Hehe, das erinnert mich jetzt irgendwie an den Schiffsingenieur Montgomery Scott von der Enterprise [hehe]
Widerstand ist zwecklos


750

Monday, December 27th 2010, 6:12pm

[offtopic]
Hehe, das erinnert mich jetzt irgendwie an den Schiffsingenieur Montgomery Scott von der Enterprise [hehe]


hat der nicht immer die reparatur-zeiten weitaus höher veranschlagt als nötig, um den eindruck zu erwecken, er könne wahre wunder vollbringen und alles schneller erledigen als angegeben. [hehe] [/offtopic]

751

Monday, December 27th 2010, 6:50pm

Jepp, der war das [:D]
Widerstand ist zwecklos


Eva

Member

Posts: 6,949

Location: Nähe Trier

  • Send private message

752

Monday, December 27th 2010, 9:31pm

eddy hat anscheinend schon voll den Durchblick *gg
Gruß
Eva

Urteile nicht über einen Menschen,
ehe du nicht fünf Minuten
in seinen Mokassins gelaufen bist.

753

Monday, December 27th 2010, 9:37pm

[offtopic]... nicht jeder wird als trekkie geboren. [hehe] [/offtopic]

754

Tuesday, January 18th 2011, 8:47pm

Und ich möchte auch an alle, die am Adventskalender mitgearbeitet haben,
herzlich Danke schön sagen.
Ist zwar schon etwas spät, aber ich denke, dafür ist immer Zeit.

Wie immer war es eine große Freude, hinter die Türchen zu gucken,
was dahinter für uns versteckt wurde.
.
Ciao Edith ..

Gerda

Unregistered

755

Sunday, October 23rd 2011, 5:18pm

So, länger kann ich mich nicht mehr zurückhalten, jetzt muss es raus, ich freue mich schon wieder wahnsinnig auf unseren

ADVENTSKALENDER 2011


es sind ja auch nur mehr 38 Tage und ich wünsche allen die daran arbeiten weiterhin viel Erfolg [TH]

P.S.: Freuen tu ich mich natürlich schon viel länger aber im Sommer damit rauszurücken wäre doch etwas verfrüht gewesen ;)

756

Sunday, October 23rd 2011, 5:20pm

So, länger kann ich mich nicht mehr zurückhalten, jetzt muss es raus, ich freue mich schon wieder wahnsinnig auf unseren

ADVENTSKALENDER 2011


es sind ja auch nur mehr 38 Tage und ich wünsche allen die daran arbeiten weiterhin viel Erfolg [TH]

P.S.: Freuen tu ich mich natürlich schon viel länger aber im Sommer damit rauszurücken wäre doch etwas verfrüht gewesen ;)


DITO [TH]

Sponge

unreticent member

Posts: 18,308

wcf.user.option.userOption56: Horror House

Location: Elbflorenz

  • Send private message

757

Sunday, October 23rd 2011, 6:27pm

38 Tage?!? 8| :schwitz:

Gerda

Unregistered

758

Sunday, October 23rd 2011, 6:46pm

38 Tage?!? 8| :schwitz:

Keine Panik, Sponge, das geht sich locker aus 8o

759

Tuesday, October 25th 2011, 9:25am

Gerda, du spri... ähm... schreibst mir aus der Seele.
Ich traute mich auch nicht, dass schon im Mai zu verkünden... [hehe]
LG Ayla

Loch in Erde,
Lara rin,
Falle zu,
Lara hin! [:D]

  • "Michael Otto" is male

Posts: 14,954

wcf.user.option.userOption56: Bauberater

Location: Erzgebirge

  • Send private message

760

Friday, November 4th 2011, 3:56pm

<--- schreibt schon fleissig...