advent-2000.de


Freitag, 4. Februar 2000 Heute ist der 35. Tag des Jahres, es folgen noch 331

Der 4. Februar hat folgende kulturhistorische Bedeutung:

Am 4. Februar 1902 wurde in Detroit, US-Bundesstaat Michigan, ein Mann geboren, der Ende der 20er Jahre in die Luftfahrtgeschichte einging: Mit seiner einmotorigen Maschine The Spirit Of St. Louis gelang ihm 1927 den ersten Non-Stop-Flug über den Atlantik. Der Pilot startete am 20. Mai 1927 um 07.52 Uhr von Long Island und landete 33½ Stunden später um 22.22 Uhr in Paris Le Bourget. 1932 kam er erneut in die Schlagzeilen, als sein 20 Monate altes Baby am 29. Februar gekidnappt und am 12. Mai in einem Wald in der Nähe seines Hauses tot aufgefunden wurde. Seine in der Öffentlichkeit große Popularität sank 1938, als er von Herrmann Göring das "Verdienstkreuz des Deutschen Adlers" für seinen Einsatz für die weltweite Luftfahrt erhielt und sich drei Wochen später weigerte, den Orden nach der Reichspogrommnacht zurückzugeben: Charles A. Lindbergh.

4. Februar 2000 - Kleine Erfolgserlebnisse...

 

...machen das Alltagsleben schöner. Dies gilt auch für die Arbeit am Computer!

advent-2000.de berichtet heute sozusagen in eigener Sache und die folgende, kleine Erfolgsstory hilft, deutlich zu machen, warum es am heutigen Tag beinahe keinen Inhalt auf dieser Seite gegeben hätte.

Die Seiten von advent-2000.de werden jeden Tag mit Inhalt für den nächsten Tag gefüllt (die Vorlagen wurden bereits erstellt). Jeden Tag wird im Schnitt 2 bis 3 Stunden nach Events für den jeweiligen Tagesaufmacher und für die Inhalte (auch diejenigen, die advent-2000.de zugeschickt bekommt, müssen angepasst werden) benötigt. Daher wird an dieser Stelle nochmals um Unterstützung für das Projekt gebeten (siehe auch: hier).

Grund für den Mangel an Vorsprung ist zum einen der eigene Job aber auch die Arbeit an andere Projekte. So muss die Freizeit in verschiedene Stücke, in Zeit für das eine und Zeit für das andere Projekt aufgeteilt werden. Manch eine Aufgabe erfordert aber Konzentration, die Zeit vergeht, und ohne das man sich versieht, bleibt nur eine Stunde für advent-2000.de übrig, dessen neue Seite ja pünktlich um 00.00 Uhr online sein soll.

Für ein Projekt soll ein Forum eingerichtet werden. Als Basis dient das von Matt Wright an sehr vielen Stellen des WWW eingesetzte Script WWWBoard, das jedoch nicht nur ans Layout angepasst, sondern auch etwas abgeändert und um einige Schmankerln erweitert werden soll.

Eine der Änderungen, die ich an Matt Wrights Script vornehmen wollte, betrifft die Quotierung des Vorgängertexts: Die Textzeilen des Forumsbesuchers, auf welchen geantwortet wird, werden vom Originalscript mit einem Doppelpunkt : gequotet (zitiert). Anstelle des Doppelpunktes wollte ich nun eine fettformatierte Quotierung, so dass der Vorgängertext in Fettschrift erscheint.

Die entsprechenden Codezeilen im Originalscript lauten:

   if ($quote_text == 1) {
      @chunks_of_body = split(/\<\;p\>\;/,$hidden_body);
      foreach $chunk_of_body (@chunks_of_body) {
         @lines_of_body = split(/\<\;br\>\;/,$chunk_of_body);
         foreach $line_of_body (@lines_of_body) {
            print NEWFILE ": $line_of_body\n";
         }
         print NEWFILE "\n";
      }

Diese Codezeile: print NEWFILE ": $line_of_body\n"; enthält den Doppelpunkt, den ich als Perl-Laie durch eine Fettformatierung ersetzen wollte. Also wurde an dieser Stelle den HTML-Befehl für Fettschrift eingefügt und die gleiche Zeile hatte nun folgenden Code:

print NEWFILE "<b>$line_of_body</b>\n";

Klar war mir dabei schon, das dies nur bei einer ersten Antwort auf einem Posting korrekt sein würde, dass aber, je mehr Antworten folgen sollten, desto mehr <b>- und </b>-Tags den Text des ersten Autors umfassen würden:
Wenn die erste Nachricht nur aus "Hallo" besteht, ergibt meine Änderung bei der ersten Antwort <b>Hallo</b>, bei der zweiten aber schon <b><b>Hallo</b></b>, so dass es bei langen Threads in den Formulartextfeldern nicht mehr feierlich ausgesehen hätte -
<b><b><b><b><b><b>Hallo</b></b></b></b></b></b> beispielsweise für die sechste FollowUp-Ebene!

Es galt also, die Wiederholung des <b>-Tags zu vermeiden. Hierfür änderten wir den oben zitierten Code-Ausschnitt wie folgt:

   if ($quote_text == 1) {
      @chunks_of_body = split(/\<\;p\>\;/,$hidden_body);
      foreach $chunk_of_body (@chunks_of_body) {
         @lines_of_body = split(/\<\;br\>\;/,$chunk_of_body);
         foreach $line_of_body (@lines_of_body) {
                 $line_of_body =~ s/<b>//g;
                 $line_of_body =~ s/<\/b>//g;
            print NEWFILE "<b>$line_of_body</b>\n";
         }
         print NEWFILE "\n";
      }
   }

Die zwei zusätzlichen Zeilen:

$line_of_body =~ s/<b>//g;
$line_of_body =~ s/<\/b>//g;


bedeuten im Klartext, dass wenn die Tags <b> und </b> in einer Textzeile vorkommen, diese durch "nichts" ersetzt werden, so dass:

print NEWFILE "<b>$line_of_body</b>\n";

in unserem Beispiel auch in der zweiten Ebene nicht mehr <b><b>Hallo</b></b>, sondern nur <b>Hallo</b> ergeben würde.

Leider funktionierte das nicht und brachte mich zur Verzweiflung! Ich probierte dies und jenes, änderte dies und das an anderer Stelle, bis ich am Ende sicher war, dass nur an diesen Zeilen die Änderung wirksam zu sein hatte... Die Syntax für das Ändern ( $variable =~ s/das ändern wir/in dies/g;) war auch korrekt, wie ich mich anhand verschiedener anderer Beispiele überzeugen konnte. Warum funktionierte es dann nicht?

Kurz vor 22.00 Uhr fielen mir, als ich bereits nach einigen Stunden aufgeben wollte, folgende Zeilen zu Beginn des Scriptes wieder auf:

   if ($quote_text == 1) {
      $hidden_body = "$body";
      $hidden_body =~ s/</&lt;/g;
      $hidden_body =~ s/>/&gt;/g;
      $hidden_body =~ s/"/&quot;/g;
   }

Dann allerdings war mir klar, warum meine Idee zwar richtig war, in diesem Fall aber nicht funktionieren konnte! Das Script ersetzt unter anderem die spitzen Tagklammern < und > durch ihre HTML-Maskierung &lt; und &gt;!

Das war's! Die zwei zusätzlichen Zeilen änderte ich entsprechend:

$line_of_body =~ s/&lt;b&gt;//g;
$line_of_body =~ s/&lt;\/b&gt;//g;


und seitdem funzt die Sache!

Tja, vor lautem virtuellem Wald sieht man oft die digitalen Bäume nicht!

Patrick Andrieu, advent-2000.de

Wenn auch Sie eine Ihrer persönlichen Erfolgsgeschichten am PC auf advent-2000.de wiederfinden wollen, benutzen Sie bitte folgendes Formular:

Ihr Vorname, Name*: 
Ihre E-Mail-Adresse*: 
URL Ihrer Homepage: 

Ihre Erfolgsstory: 

Die mit* gekennzeichneten Felder müssen ausgefüllt werden. Diese Angaben werden mit der Vorstellung Ihrer PPPPP-Geschichte veröffentlicht. Wenn Sie einen Link zu Ihrer Homepage wünschen, geben Sie diese im entsprechenden Feld ein.




Zurück 3. Februar 5. Februar Nächster Tag

Zurück zur Startseite
Layout und Projektidee: © 1999, Patrick Andrieu  |  Inhalte: siehe Impressum