Unter http://galleryupdates.jpmullan.com/ habe ich
das ZIP Paket für die PHP-Nuke Integration von Gallery2 gefunden. Nach Download, entpacken, und Aufruf
der Konfiguration unter PHP-Nuke Adminconsole komme ich mit der Konfiguration des "Embed" Files bzw.
der Speicherung der Konfiguration (modules/gallery2/gallery2.cfg not writable) nicht weiter. Trotz aller Rechte
(rwx^3) auf diese Datei komme ich aus der Konfigurationsschleife nicht heraus ... ;(
Zwar ist in der Anleitung beschrieben, dass man wohl eine Weile braucht, bis man sämtliche Parameter
richtig eingegeben hat, aber das hat mit der Speicherung nix zu tun .... selbst sämtliche Parameter
vorweg in die CFG eingetragen, geht es über das Speichern der Werte nicht drüber hinaus.
Ok, also einen Schritt zurück. Vielleicht lässt sich ja vielleicht Gallery 1.5 in PHP-Nuke einbinden?
Von den Überresten der Mambo-Gallery 1.5 Installation war eine direkte Einbindung nicht möglich. Also
komplette Neuinstallation, mit Angabe sämtlicher Konfig-Parameters. Von der Gallery2 Installation hatte
ich ja noch den Datenpfad G2Date. Den wollte ich jetzt auch für Gallery 1.5 nutzen. Nach Grundinstallation
und dem ersten Hochladen eines Bildes wurden aber keine Bilder angezeigt, weil der Datenpfad in einem virtuellen
Verzeichnis "versteckt" war. Also Datenpfad ins Webverzeichnis verschoben. Jetzt konnte Gallery 1.5
nicht mehr auf die Userdatabase zugreifen. Also config.php manuell geändert.
Beim erneuten Bilder Upload lief nun alles wie gewünscht. Bilder werden angezeigt. PHP-Nuke Users können
die Bilder und Alben in der Gallery betrachten. Weitere Forschungen und Experimente folgen....
Webportal | Gallery 1.5 | Gallery 2.0 |
PHP-Nuke | ||
Mambo |
Bei der weiteren Prüfung, inwieweit Alben für unterschiedliche Gruppen zur Verfügung gestellt werden können, zeigte sich, dass bei der PHP-NUKE Einbindung nur eine einzige (!) Gruppe von Users möglich scheint. Die einzigste Erweiterung ist die im Gallery Code hardcoded "Admin" Erweiterung. User.php ... if myuserename admin=1 Ansonsten können sonst welche Alben und Users Zuordnungen erstellt werden - haben allesamt allerdings keinerlei Einfluss darauf, was durch PHP-NUKE hindurch sichtbar ist. Hier gibt es wohl nur die Everybody or Admin Unterscheidung. Den Code konnte ich bis zu folgender Zeile folgen, an dem der entscheidende Zugriff auf die Albenliste passiert:
..\gallery\albums.php line 62
list ($numPhotos, $numAccess, $numAlbums) = $albumDB->numAccessibleItems($gallery->user);
In den nachfolgenden Zeilen wird aufgrunddessen nur noch aufgebaut. Der eigentliche Knackpunkt versteckt sich dann hinter der Funktion $albumDB->numAccessibleItems(). Beim Debuggen bin ich dann auf 2 unterschiedliche User IDs gestossen. Mit einem regulären Useraccount direkt in Gallery eingeloggt liefert die UserID "1116753920_1781994325", während der User mit dem gleichen Namen unter PHP-Nuke "5" ausgibt! Was für ein Unterschied!
Da in der Funktion $albumDB->numAccessibleItems() eine Unterfunktion $user->canReadAlbum($album) aufgerufen wird, die aufgrund der UID ermittelt wird, ist nun klar, warum trotz des gleichen Usernamens, ein freigegebenes Album nicht zur Anzeige gelangt. In der Funktion $albumDB->numAccessibleItems() fehlt die mögliche Unterscheidung zwischen "Gallery-internem" und "Embeded User".
Nächster Schritt, die nuke5 class weiter durchforstet. Da taucht in USER.PHP die Funktion loadByUserName($uname) auf. Wenn dem so wäre, dass die falsche UID herangezogen wird, so müsste bei Angabe der Gallery UID bei einem "normalen" User bei der Anzeige der Alben dir richtigen Alben erscheinen, auf die dieser User Zugriff hätte. Debug =>
... und siehe da, der Testuser kann die geschützte Alben sehen, auf die er Zugriff hat.
Erweiterung Gallery->INIT.PHP um
Erweiterung Gallery-Classes-Nuke5->UserDB.PHP um
Erweiterung Gallery-Classes-Nuke5->User.PHP um
Das funktioniert nun für alle PHP-NUKE User, die auch in Gallery registriert sind. Für PHP-NUKE User, die nicht in Gallery registriert sind, gibt es jetzt keine Rückmeldung weil mit einem nicht registriertem User die Funktion $this->rebuildUserMap(); in Class nuke5 Funktion getUserByUsername() ins Nirwana läuft. Daher muss dies in der Funktion getUserByUsername() noch abgefangen werden:
Erweiterung Gallery-Classes-Nuke5->UserDB.PHP um
User in Gallery mit speziellen Berechtigungen erhalten nun die Alben zu Gesicht, auf die sie auch Zugriff haben. Hierfür muss der User aber doppelt, sowohl in PHP-Nuke alsauch in Gallery registriert sein. Alle anderen PHP-Nuke User erhalten das "Everybody" Profil.
Date | Activities |
---|---|
29.5.05 | Durchbruch in der Gallery 1.5 zu PHP-Nuke Einbindung! User in Gallery mit speziellen Berechtigungen erhalten nun die Alben zu Gesicht, auf die sie auch Zugriff haben. |
22.5.05 | Einbindung Gallery 1.5 in PHP-Nuke 7.6 liefert für den gleichen Username in PHP-Nuke eine unterschiedliche UserID! |
21.5.05 | Einbindung Gallery 1.5 in PHP-Nuke 7.6 hat im Prinzip funktioniert |
16.5.05 | Versuch Einbindung Gallery2 in PHP-Nuke (siehe ausführliche Beschreibung) |
15.5.05 | Mambo unterliegt im direkten Vergleich zu PHP-Nuke aufgrund Performance Problemen und fehlender Multilanguage Fähigkeit. |
9.5.05 | Einbindung Menalto Gallery2 in Mambo Plus 2.0. Problem: Admin kann sich nicht mehr anmelden. unter v2.0 |
8.5.05 | Einbindung Menalto Gallery 1.5 in Mambo Plus 2.0 fehlgeschlagen. Erneuter Versuch mit Gallery2. |
4.7.04 | Erster Kontakt mit Webportal Systemen: see Torsten Bamberg's PHPBB2 Deployment PHPBB2/PHP-NUKE Portal unter Webinterface II Project |
© 2003-2024 by Ulrich Schroeter | 01537 |