An dieser Stelle versuche ich, die Entstehung und die Geschichte der PonyGallery ML niederzuschreiben. Die folgenden Zeilen sind mehr ein persönlicher Bericht, als eine technische Dokumentation; u.a. auch deswegen, weil die Änderungen, die jede einzelne Version der ML erfahren hat, ausführlich in diesem Thread nachzulesen sind. Und außerdem werden die technischen Aspekte der Galerie in den FAQ's ausgiebig behandelt werden.
Eigentlich wollte ich doch nur...
Angefangen hat alles am 29.10.2005. An diesem Tag habe ich mich im Joomlaportal registriert. Ich habe - wie viele andere auch - eine Möglichkeit gesucht, möglichst schnell eine Webseite zu erstellen und dies - wenn möglich - mit einem Content Management System; damals glaubte ich noch, dass ein solches CMS die Lösung aller Probleme darstellen würde. Dabei wollte ich eigentlich nur eine Webseite für meine damals vier Jahre alte Tochter erstellen. Oder präzise gesagt nicht für sie, sondern für die lieben Verwandten; diese sollten die Möglichkeit haben, sich über den Entwicklungsstand unserer kleinen Maus täglich informieren zu können. Anstatt aber eine Blog-Software zu verwenden (was durchaus Sinn gemacht hätte), entschied ich mich dafür, ein CMS zu verwenden. Und Joomla war gerade hip! Ich war ja so ahnungslos!
Egal, meine Entscheidung war getroffen und so habe ich dann mal Joomla installiert. Ging auch soweit alles ganz easy. Ich muss an dieser Stelle noch ergänzend hinzufügen, dass ich gelernter Fachinformatiker mit der Fachrichtung Systemintegration bin. Allerdings habe ich diese Ausbildung erst im zarten Alter von knapp 40 Jahren als Umschüler abgeschlossen; eigentlich bin ich Tischler. Dies erwähne ich nur deswegen, um zu verdeutlichen, dass mein Horizont schon - was Computer betrifft - etwas erweitert ist. Zumindest die Installation von Joomla hat also reibungslos geklappt.
Und dann ging es los: ich wollte ja eine Seite für meine Tochter (bzw. für Omi und Opi) machen, und was gibt es Schöneres, als ständig aktualisierte bzw. neue Bilder der Kleinen? Es mußte also eine Galerie-Komponente her. Ich habe mich dann im Forum umgeschaut und mir die verschiedenen Threads zu den Galerie-Komponenten zu Gemüte geführt. Wirklich schlauer, welche ich denn jetzt mal ausprobieren sollte, war ich danach nicht. Aber für mich stand fest, dass es eine Galerie sein muss, die sich nahtlos in Joomla integriert (ich hatte gleich die Vorahnung, dass ich mit jeder externen Galerie einen erhöhten Aufwand bezüglich des Designs haben würde). Und von diesen integrierten Galerien gab es nicht viele. Die Zoom-Galerie wurde im Forum immer wieder als zu verbuggt bezeichnet und außerdem gefiel sie mir rein optisch nicht.
Dann blieb da noch die PonyGallery und die gefiel mir. Zunächst...
Das kleine Pony
Zum Zeitpunkt meiner damaligen Recherche war die PonyGallery in der Version 1.1.2 aktuell. Ich bin auch nie tiefer in die "Ahnenforschung" eingestiegen; das, was ich weiß, ist, dass die PonyGallery aus der AkoGallery von Arthur Konze hervorgegangen ist. Konze muss zum damaligen Zeitpunkt extrem aktiv gewesen sein; viele heutige Komponenten unter Joomla basieren auf seinen ersten "Entwürfen": AkoLegal, AkoComment, AkoBook und eben auch AkoGallery.
Danial Taherzadeh hat dann irgendwann aus der AkoGallery die PonyGallery gemacht. Ob mit der Namensänderung auch wirkliche Verbesserungen in die Galerie eingeflossen sind, entzieht sich meiner Kenntnis. Was mir auf jeden Fall vorlag, war die 1.1.2.
Nach der Installation der PonyGallery habe ich mich gewundert, dass einige Texte in der Ausgabe auf der Seite in Englisch erfolgten, obwohl ich Joomla in den Globalen Einstellungen auf Deutsch gestellt hatte. Das hat mich dann doch ziemlich genervt und ich begann, die Komponente im Code zu untersuchen. Wie ich bereits erwähnte, habe ich eine Ausbildung als Fachinformatiker genossen. Allerdings mit der Fachrichtung Systemintegration, was - im Gegensatz zur Fachrichtung Anwendungsentwicklung - sehr wenig mit Programmiersprachen zu tun hat. HTML als Auszeichnungssprache war mir zwar nicht unbekannt und als Hobby-Webdesigner habe ich die eine oder andere Webseite mit meinem beschränkten Wissen zusammengeschustert (das werde ich nie wieder machen, versprochen), aber PHP war mir absolut fremd.
Nun, die meisten Komponenten für Joomla wie Joomla selbst sind in PHP geschrieben. Also stand ich da erstmal wie der legendäre Ochs vorm Berg. Nun, ich bin ein Mann und Männern wird nachgesagt, dass sie eine besondere Affinität zu logischen Dingen haben. Das mag stimmen oder auch nicht. Was mich betrifft, so stimmt es. Naja, zumindest was das Verständnis von PHP betrifft. Vieles war mir damals vollkommen unklar (und ist es auch heute noch), aber ich konnte eine gewisse Struktur erkennen und habe mich dann weiter damit beschäftigt. Schließlich hatte ich ein nicht ganz unbedeutendes Ziel: Omi und Opi glücklich zu machen.
Verzettelt...
Ich muss gestehen, dass mir das bis zum heutigen Tag nicht gelungen ist. Das ist zwar unglaublich, aber selbst nach mehr als zwei Jahren steht die Seite für Omi und Opi immer noch nicht. Mit anderen Worten, ich habe mich verzettelt. Und zwar gewaltig! Was anfänglich nur so aussah, als müßte man lediglich ein paar Übersetzungen machen, hat sich als Never-ending-Story entpuppt und ich habe mich darin eindeutig verloren. Und nicht nur mich, sondern auch meine guten Vorsätze.
Inspektion
Aber zurück zur Geschichte: ich habe mir also den Code der PonyGallery mal angesehen. Natürlich habe ich erstmal garnichts verstanden, aber je länger ich mich damit beschäftigt habe (ich kann schon hartnäckig sein), umso eindeutiger fiel mir auf, dass viele Texte im Code hardcodiert waren, also direkt im Code standen. Das heißt, dass man diese Texte je nach verwendeter Sprache direkt im Code hätte ändern müssen. Mir war da bereits klar, dass das nicht richtig sein kann. Aber wie geht es richtig?
Die Antwort lag im Code selbst: mir fiel auf, dass die bereits erfolgreich ersetzten Teile in der PonyGallery auf sogenannte Konstanten zurückgriffen. Damals gab es lediglich eine englische Sprachdatei, in der die Konstanten definiert waren. Konstanten sind quasi so eine Art Variablen, nur dass sie - sofern die Sprachdatei zur Verfügung steht - global zur Verfügung stehen und man überall im Skript auf sie zugreifen kann. Bei der Verwendung von Konstanten ist es also nur noch die Frage, welche Sprachdatei geladen wird. Und das kann man bereits in den globalen Einstellungen von Joomla bestimmen.
Aber ich will hier auch nicht zu weit ausholen. Also: im Code befanden sich noch viele hardcodierte Ausdrücke und eine vernünftige deutsche Sprachdatei gab es auch nicht. Also habe ich mich ans Forum gewandt, um zu erfahren, wie das mit den Konstanten funktioniert und wie man die syntaktisch richtig einsetzen muss. Ich hätte nicht gedacht, dass ich eine Antwort erhalte, aber ich bekam eine. Von Îvanhoe72, der mir eine erste Andeutung gab, wie die vermissten Konstanten richtig zu setzen sind. Hätte er damals nicht geantwortet, all das hier wäre nie geschehen...
Ehrgeiz
Aber er hat. Und dann hat mich mein Ehrgeiz gepackt. Ich wollte die PonyGallery Deutsch bekommen. Egal wie. Das ist aber nicht so einfach, wenn man keine Ahnung von PHP hat. Da mir die Syntax von PHP noch völlig unbekannt war, habe ich dann letztendlich nur durch stundenlanges Probieren herausbekommen, wie die Konstanten in den verschiedensten Situationen syntaktisch richtig aufgerufen werden müssen. Und keine zwei Tage, nachdem ich die PonyGallery zum ersten mal gesehen hatte, habe ich es gewagt, eine "verbesserte Version" der PonyGallery im Forum zu veröffentlichen!
Übersteigertes Selbstbewußtsein würde ich heute sagen. Ich Besserwisser ich!
Naja, zumindest ein paar Unzulänglichkeiten in der Fähigkeit, sich auf verschiedene Sprachen einzustellen, hatte ich der PonyGallery schon genommen. Das war dann die erste Version der PonyGallery ML, damals hieß meine erste Veröffentlichung noch "PONYGALLERY_112_MULTILANG" und bestand lediglich aus den von mir veränderten Dateien. Installieren konnte man meine Version noch nicht. Bereits am nächsten Tag mußte ich meine erste Version korrigieren, da ich Fehler gemacht hatte. Und so ging das dann immer weiter. Innerhalb von sechs Wochen habe ich ganze 23 Versionen veröffentlicht, ab der sechsten waren sie sogar installationsfähig. Das hatte ich der Hilfe von Ivanhoe72 und octane zu verdanken, die mir dabei sehr unter die Arme gegriffen haben.
Nach einer gewissen Zeit - ich glaubte mittlerweile, ich hätte alle Sprach-Konstanten richtig gesetzt - habe ich angefangen, die bekannten Bugs in der PonyGallery zu beheben. Man muss sich das vorstellen: ich hatte nur sehr sehr begrenzte Kenntnisse von PHP aber trotzdem waren die ausreichend, um einige der damals bekannten Bugs in der PonyGallery zu beheben. Das ist umso erstaunlicher, als dass es ein Entwickler-Team für die PonyGallery gab. Und die von diesen Bugs wußten. Aber die Reaktionszeiten dieses Teams waren unterirdisch.
Meine "Mission"
Damals war ich bei jeder neuen Version so aufgeregt! Habe zigmal kontrolliert, ob die Dateien auch wirklich ok sind und habe dann die Reaktionen im Forum abgewartet. Meistens kam aber nicht viel. Teilweise habe ich neue Versionen rausgebracht, ohne dass sich jemand zur Vorgängerversion irgendwie geäußert hat. Aber das war mir dann irgendwann auch egal.
Ich hatte eine Mission!
Nein, ganz so war es nicht und ich würde lügen, wenn ich sagen würde, dass mir die Reaktionen egal gewesen wären. Das sind sie auch bis heute nicht. Im Gegenteil: sie sind immer wieder Antrieb, weiterzumachen.
Nachdem ich dann eine - nach meiner Auffassung - ziemlich gute und stabile eigene Version der PonyGallery erstellt hatte, habe ich mich an das Entwicklerteam der PonyGallery gewandt und denen meine Veränderungen vorgestellt. Diese Version beinhaltete aber schon viele Veränderungen, die nicht auf meinem Mist gewachsen waren. Durch den erhöhten Bekanntheitsgrad der Galerie haben sich auch immer wieder freiwillige Helfer gefunden, die wertvolle Programmteile beigesteuert haben oder mir zumindest dabei geholfen haben. Damals waren das insbesondere Lonki und Peter B. Dank auch an dieser Stelle!
Mitglied im Entwicklerteam
Tja, die aus dem Entwicklerteam waren ganz angetan. Zumindest einer der Mitentwickler, ein Amerikaner. Er hat mich dann mit ins Team geholt und wir haben zusammen die meisten meiner Änderungen in den Entwicklungsstand der PonyGallery eingepflegt. Dazu war seine Hilfe auch dringend erforderlich, da ich mich mit der Versionsverwaltung bei Softwareprojekten überhaupt nicht auskannte. Schließlich wurde dann die 1.1.5 Beta bzw. 1.5 Alpha der PonyGallery veröffentlicht (ich habe den Versionswirrwar nie verstanden), allerdings ohne mich als Team-Mitglied zu informieren und ohne meine weiteren Änderungen zu übernehmen.
Dadurch, dass ich nicht rechtzeitig informiert worden war, fehlten auch noch ein paar wenige Übersetzungen in den deutschen Language-Dateien. Und zu allem Überfluss gab der Teamleiter bekannt, dass an einer kommerziellen Version einer Galerie bearbeitet würde. Für mich war das das Aus. So war ich bereits nach wenigen Wochen wieder raus aus dem Team.
Back to the Roots
Die "offizielle" BETA 1 der PonyGallery 1.1.5 wurde vollkommen übereilt auf den Markt geworfen. Auch wenn BETA im Namen stand, war doch vieles noch so unausgereift, dass man es den Anwendern nicht hätte präsentieren sollen. Es war auch die letzte "offizielle" Version der PonyGallery. Das Team hat sich in der Folgezeit komplett aufgelöst und von einer kommerziellen Variante der PonyGallery habe ich auch nie wieder etwas gehört.
Allerdings enthielt die BETA 1 ja die meisten meiner Änderungen und noch ein paar gute Weiterentwicklungen aus dem Team. Meine letzte Version basierte noch auf der 1.1.2, also was lag näher, als die BETA 1 im Forum weiterzuentwickeln? Und das habe ich dann auch gemacht. Allerdings direkt unter einem veränderten Namen der Galerie, nämlich PonyGallery ML. Und so heißt sie auch heute noch.
Mitte Dezember 2005 habe ich dann meine Version der BETA veröffentlicht. Als BETA 2 war sie die erste von insgesamt 17 weiteren BETA-Versionen, die in der Folgezeit erschienen sind (die letzte BETA 18 erschien am 13.08.2006). Natürlich hatte ich mittlerweile etwas mehr Ahnung von PHP, aber ich hatte nie das Gefühl, diese Programmiersprache wirklich zu beherrschen (bis heute eigentlich nicht). Deswegen wurden die Versionen auch weiterhin als BETA's bezeichnet.
Und die Ansprüche änderten sich. Nicht nur meine, sondern auch die Erwartungen der Anwender wurden immer größer. Mittlerweile ging es nicht mehr hauptsächlich um die Sprachfähigkeit der Galerie (die war integriert) oder um die Behebung von Bugs (die waren auch zu einem Großteil behoben), sondern es ging um neue Features und darum, den Code zu verbessern.
Aus Ermangelung an noch bestehenden Bugs und auf Druck durch die Anwender habe ich dann immer mehr neue Features in die Galerie eingebaut. Die natürlich auch immer neue Bugs gebracht haben...
Und dann kam b2m!
Eigentlich genau in einer Phase, als ich das Gefühl hatte, dass meine Kenntnisse für weitere Features nicht mehr ausreichen würden, tobte der im Mega-Thread rum und schrieb ziemlich beeindruckende Posts. Zumindest waren sie für mich beeindruckend, da da offensichtlich jemand wirklich Ahnung von der Materie hatte und sich gleichzeitig auch noch mit der ML ziemlich gut auskannte. Glücklicherweise hatte er auch noch Lust, an der Galerie mit mir zusammen weiterzuarbeiten.
Ein neues Team-Mitglied! Überhaupt ein Team! Wow.
b2m hat dann in der Folgezeit die PonyGallery ML gepimpt. Wirklich! Viele seiner Änderungen hätte ich nie hinbekommen und gerade die machen die ML so attraktiv: z.B. ist die Einbindung der Lightbox ganz alleine ihm zu verdanken. Und das ist nur eines von vielen Beispielen!
Wir haben dann einige Versionen zusammen entwickelt und uns eingehend um den Support gekümmert. Der Support ist mir persönlich extrem wichtig: zum einen erfährt man eigentlich nur so, was von den Anwendern für zukünftige Versionen gewüscht wird und zum anderen finde ich, dass man eine Software, die man ins Netz stellt, auch persönlich betreuen sollte.
Fortsetzung folgt.....
|