Arbeiten mit TNG (10) Zeitstrahl-Erweiterungen

Klick: zurück zu der Seite, von der Sie gekommen sind  zurück Klick: zurück zu Startseite Startseite  weiter Klick: zur nächsten Seite
ausdrucken : Strg-P

Die gezeigten Screenshots basieren auf dem TNG-Template 1. Die anderen Templates zeigen ähnliche Darstellungen.
Die Bildschirmausgabe ist für den Browser Internet Explorer, Version 7, Textgröße "Mittel" sowie einen 19-Zoll-Bildschirm optimiert.



> >  Inhaltsverzeichnis

Sie sind hier:
zu Deutsch etwa:
TNG - The Next Generation Of Genealogy Sitebuilding
Die nächste Generation der genealogischen Seitenerstellung

Es wird der Umgang mit Zeitstrahl-Erweiterungen erläutert.
Zweckmäßigerweise druckt man sich die nachfolgende Anweisung aus und legt sie sich neben die Tastatur, um alles in Ruhe abzuarbeiten.




1. Lokaler Server    (auf dem Heimcomputer)
1.1 Allgemeines
Im vorhergehenden Beitrag "Arbeiten mit TNG (9) Zeitstrahl-Ereignisse" wurde erläutert, wie man einer Person Ereignisse im Laufe ihres Lebens zuordnet und im Verlaufe eines sogenannten Zeitstrahls darstellt.
Es waren dort aber nur Ereignisse eines bestimmten Jahres darzustellen.

Es ergab sich nun der Wunsch, auch Ereignisse eines bestimmten Zeitbereiches (also eines ganzen Jahrhunderts oder eines Jahrzehnts) darzustellen.
Darüber hinaus sollte es möglich sein, auch Verlinkungen ins Internet zu realisieren.

Beides war aber mit den bislang in TNG integrierten Möglichkeiten nicht zu verwirklichen.

So wurden Überlegungen angestellt, wie man Ereignisse in der Welt, eines ganzen Zeitbereichs (z.B. eines Jahrhunderts - 1701 bis 1800 oder eines Jahrzehnts - 1701 bis 1710), integrieren und allen Personen, die in diesen Zeiträumen gelebt haben, zuordnen konnte - und zwar automatisch.
Und diese Ereignisse sollten dann auch am Zeitstrahlbildschirm betrachtet und der Link aufgerufen werden können.

In zwei Schritten wurde dieses Vorhaben verwirklicht.
1. Es mußte eine Eingabemöglichkeit für einen Zeitraum geschaffen werden (also von Jahr xxxx bis Jahr xxxx)
2. Es mußte eine Möglichkeit geschaffen werden, einen Link zu solchen Ereignissen im Internet zu setzen.

Zu Punkt 1 : Dem Entwickler der TNG-Anwendung wurde der Vorschlag gemacht, diese Erweiterung in einem der nächsten TNG-Updates einzubauen. Bislang (Aug 2008) sieht er dafür keine Möglichkeit/Notwendigkeit.
Deshalb muß jeder TNG-User, wenn er denn diese Erweiterung wünscht, selbst den Erweiterungs-Code in diverse Dateien einfügen.
Das wiederum bedeutet allerdings auch, dass bei jedem TNG-Update dieser Erweiterungs-Code erneut wieder in die betreffenden Dateien eingefügt werden muß.

Der Code für diese Erweiterung wurde von Thomas Greve erstellt. Siehe unter Punkt 1.3

Zu Punkt 2 :
In der Eingabebox für ein Zeitstrahl-Ereignis läßt sich ein HTML-Code einfügen.
Dieser Code bewirkt, dass zu einer bestimmten Seite im Internet verzweigt werden kann.
Eine solche Seite besteht unter folgender Internet-Adresse :
http://de.wikipedia.org/wiki/Jahreskalender

Dort kann man das Jahrhundert aufrufen, in dem eine bestimmte Person gelebt hat.
Im o.a. Falle 1701 bis 1800 - also das 18. Jahrhundert - wäre das folgende Internetadresse
http://de.wikipedia.org/wiki/18._Jahrhundert

Man kann dort alle Ereignisse in der Welt, die in dem Jahrhundert stattfanden, nachlesen und weiß so, in welchen Verhältnissen der Vorfahr lebte / leben mußte. Man braucht also selbst überhaupt keine Ereignisse selbst einzugeben.

Der zu kopierende Code findet sich unter Punkt 1.3

1.2 Zeitstrahl-Ereignisse verwalten, bearbeiten, hinzufügen und löschen
Hierzu geht man in der gleichen Weise vor, wie unter dem Beitrag "Arbeiten mit TNG (9) Zeitstrahl-Ereignisse1" beschrieben - mit dem Unterschied, dass man zwei Jahreszahlen (Beginn und Ende) sowie den untenstehenden HTML-Code in die Eingabebox einfügen muß.

1.3 HTML-Code einfügen
Folgender HTML-Code ist gemäß Punkt 1.2 in die Box "Ereignis-Beschreibung" zu kopieren : (siehe Bild)



<a href="http://de.wikipedia.org/wiki/18._Jahrhundert" target="_new"><font color="#0000FF">18. Jahrhundert/Century in Wikipedia</a>
   <a href="http://en.wikipedia.org/wiki/18th_century"><img src="flagge_en1.jpg" width="20" height="15" border="0" alt="18th Century in Wikipedia"></a></font>

Ein Flaggen-Icon (der engl. Flagge     ) ist als Bild "flagge_en1.jpg" hochzuladen, damit es angezeigt werden kann (siehe nächstes Bild).
Dabei ist die Bilddatei in das TNG-Basis-Verzeichnis  u n d  in das Verzeichnis " admin " zu kopieren bzw. hochzuladen.
Dies ist erforderlich, damit das Fahnen-Symbol im Verwaltungsteil sowie in der Personenansicht erscheint.
Für andere Jahrhunderte ist jeweils die Zahl für das jeweilige Jahrhundert im vorstehenden Code auszutauschen.

Auf diese Weise braucht man nur zwölf Link-Ereignisse einzufügen.
Man überstreicht damit die Zeitspanne vom 10. bis zum 21. Jahrhundert (siehe Bild)
So weit zurück kommen vermutlich die wenigsten Ahnenforscher mit ihren Forschungen.
Man braucht selbstredend natürlich auch nur einige wenige Jahrhunderte einzufügen.
Später können dann immer noch weitere Jahrhunderte hinzugefügt werden.




Klickt man in der Spalte "Ereignis-Beschreibung" auf einen der dortigen Einträge, wird auf das zugehörige Jahrhundert im Internet verzweigt.
Neben jedem Link befindet sich ein Flaggen-Icon. Wenn man dort draufklickt, wird auf die entsprechnde englischsprachige Internetseite verzweigt.

In der Personenansicht sieht das z.B. wie folgt aus, wenn die Person über eine Jahrhundertgrenze hinweg gelebt hat:


Personenansicht mit Zeitstrahl

1.4 Erweiterungs-Code
Um die Zeitstrahl-Erweiterung zu verwirklichen geht man wie nachfolgend dargestellt vor.
(Auch die nachfolgend beschriebenen Programm-Änderungen und -Ergänzungen wurden von Thomas Greve erstellt)
Hinweis:
Bevor man irgendeine Datei verändert, sollte man von ihr eine Kopie anfertigen. Dann kann man, wenn mal etwas schiefgeht, immer wieder zurück.

1.4.1 Man startet das Programm phpMyAdmin (gibt es kostenlos im Internet bzw. wird bei Installation der Lokal-Server-Software mit installiert) im Localservermodus (mit : "http://localhost/xampp/phpmyadmin/" siehe Bild);


1.4.2 Man lädt die Datenbank seines TNG (z.B. tng_neu) (siehe Bild).
Dazu klickt man links bei "Datenbanken" auf den kleinen Pfeil.
Es öffnet sich ein Dropdown-Menü, in dem man die gewünschte Datenbank durch Klick auswählt.


1.4.3 Bei "tng_timlineevents" (unten 4.letzter Eintrag - auf dem Bild nicht zu sehen) klickt man auf das zweite Icon "Struktur".
Es öffnet sich folgendes Fenster: (siehe Bild) ;


1.4.4 Unten bei "Felder hinzufügen" klickt man in den Kreis vor dem Wort "Nach", so dass dort ein grüner Punkt erscheint;
1.4.5 In dem Feld "tleventID" klickt man auf den kleinen Pfeil;
1.4.6 In dem Pulldownmenü klickt man auf "evyear" und dann auf "Ok";
1.4.7 In dem sich öffnenden Fenster tippt man bei "Feld" ein : 'evyearmax';
1.4.8 Bei Type : "varchar" auswählen;
1.4.9 Bei "Länge/Set" : 10;
1.4.10 "Kollation" und "Attribute" bleiben zunächst frei;
1.4.11 Bei "Null" : "not null";
1.4.12 Die übrigen Felder bleiben so, wie sie sind;
1.4.13 Klick auf "Speichern".
1.4.14 Nun hat die Tabelle ein weiteres Feld, das mit Werten gefüllt werden wird.

1.4.15 In der Datei timeline2.php müssen folgende Änderungen vorgenommen werden :
Suchen nach
Code:
$tlquery = "SELECT evday, evmonth, evyear, evdetail FROM $tlevents_table WHERE evyear BETWEEN \"$earliest\" AND \"$latest\" ORDER BY evyear, evmonth, evday";

ersetzen durch
Code:
$tlquery = "SELECT evday, evmonth, evyear, evyearmax, evdetail FROM $tlevents_table WHERE (evyear BETWEEN \"$earliest\" AND \"$latest\") OR (evyear < \"$earliest\" AND evyearmax > \"$earliest\") ORDER BY evyear, evmonth, evday";

Suchen nach
Code:
while( $tlrow = mysql_fetch_assoc($tlresult)) { $evyear = $tlrow[evyear];

dahinter einfügen
Code:
$evyearmax = $tlrow[evyearmax]; if($evyearmax > "") $evyear = $evyear . "-" . $evyearmax;

1.4.16 In der Datei admin/timelineevents.php müssen folgende Änderungen vorgenommen werden :
Suchen nach (Vers. 7 Zeile 46)
Code:
$query = "SELECT tleventID, evyear, evdetail FROM $tlevents_table $wherestr ORDER BY evyear, tleventID LIMIT $newoffset" . $maxsearchresults;

ersetzen durch
Code:
$query = "SELECT tleventID, evyear, evyearmax, evdetail FROM $tlevents_table $wherestr ORDER BY evyear, tleventID LIMIT $newoffset" . $maxsearchresults;

Suchen nach (Vers. 7 Zeile 109/119)
Code:
<td class="fieldnameback"><span class="fieldname"><nobr> <?php echo $admtext[evyear]; ?> </td>

dahinter einfügen
Code:
<td class="fieldnameback"><span class="fieldname"><nobr> <?php echo $admtext[evyearmax]; ?> </td>

Suchen nach (Vers. 7 Zeile Zeile 134/138)
Code:
echo "<td class=\"lightback\" valign=\"top\" align=\"center\"><span class=\"normal\">$row[evyear] </td>

dahinter einfügen
Code:
<td class=\"lightback\" valign=\"top\" align=\"center\"><span class=\"normal\">$row[evyearmax] </td>

1.4.17 In den Sprachdateien German/admintext.php sind folgende Änderungen vorzunehmen
(Beispiel deutsche Version - für die anderen Sprachen muß dies entsprechend, in den jeweiligen Sprachordnern, gemacht werden) :
Suchen nach (Vers. 7 Zeile 1282)
Code:
$admtext[evyear] = "Ereignis-Jahr";

Das Wort "Ereignis-Jahr" austauschen durch "von Jahr" .

hinter der vorbezeichneten Code-Zeile einfügen
Code:
$admtext[evyearmax] = "bis Jahr";

Suchen nach (Vers. 7 Zeile 1296/1297)
Code:
$admtext[yrreq] = "(nur die Angabe des Jahrs ist erforderlich, Tag/Monat sind optional)";

ersetzen durch
Code:
$admtext[yrreq] = "(nur die Angabe des Jahrs ist erforderlich, Tag/Monat, 'bis Jahr' sind optional)";

1.4.18 In der Datei admin/newtlevent.php sind folgenden Änderungen vorzunehmen:
Suchen nach (Vers. 7: Zeile 80)
Code:
<input type="text" name="evyear" size="4"><span class="normal">

ersetzen durch
Code:
<input type="text" name="evyear" size="4"> - <input type="text" name="evyearmax" size="4">

1.4.19 In der Datei admin/addtlevent.php ist folgende Änderung vorzunehmen:
Suchen nach (Vers. 7: Zeile 24)
Code:
$query = "INSERT INTO $tlevents_table (evday,evmonth,evyear,evdetail) VALUES ($evday,$evmonth,\"$evyear\",\"$evdetail\")";

ersetzen durch
Code:
$query = "INSERT INTO $tlevents_table (evday,evmonth,evyear,evyearmax,evdetail) VALUES ($evday,$evmonth,\"$evyear\",\"$evyearmax\",\"$evdetail\")";

1.4.20 In der Datei admin/edittlevent.php ist folgende Änderung vorzunehmen:
Suchen nach (Vers. 7: Zeile 86/87)
Code:
<input type="text" name="evyear" size="4" value="">

ersetzen durch
Code:
<input type="text" name="evyear" size="4" value=""> <input type="text" name="evyearmax" size="4" value="">

1.4.21 In der Datei admin/updatetlevent.php ist folgende Änderung durchzuführen:
Suchen nach (Vers. 7: Zeile 24/26)
Code:
$query = "UPDATE $tlevents_table SET evday=$evday, evmonth=$evmonth, evyear=\"$evyear\",evdetail=\"$evdetail\" WHERE tleventID=\"$tleventID\"";

ersetzen durch
Code:
$query = "UPDATE $tlevents_table SET evday=$evday, evmonth=$evmonth, evyear=\"$evyear\",evyearmax=\"$evyearmax\",evdetail=\"$evdetail\" WHERE tleventID=\"$tleventID\"";




2. Webserver    (beim Provider)
Auf dem Webserver läuft es ähnlich ab, wie auf dem Lokalserver.
Mit dem Unterschied, dass der Provider das Programm PhpMyAdmin auf dem Server bereitstellt.
Man muß also die entsprechenden Änderungen an der MySQL-Datenbank dort auf dem Server selbst durchführen - wie unter Punkt 1.4 beschrieben.

Die übrigen Änderungen / Ergänzungen werden mit Hilfe eines Texteditors an den jeweiligen Dateien (ab Punkt 1.4.15) auf dem heimischen PC durchgeführt.
Dann werden die so geänderten Dateien auf den Webhost "hochgeladen".
Auch hier wird dringend empfohlen, die betroffenen zu ändernden Dateien auf dem Webhost zuvor zu sichern oder wenigstens umzubenennen, damit dann, wenn etwas schieflaufen sollte, der vorherige Zustand wieder hergestellt werden kann.

Alle folgenden Schritte werden so durchgeführt, wie unter Ziffer 1. beschrieben.

                  Update: 18 Apr 09

Klick: zurück zu der Seite, von der Sie gekommen sind  zurück Startseite  weiter