JOOM::GALLERY::FORUM

JoomGallery 2.x ACL => Migration => Thema gestartet von: seminox am 15-02-2012 21:06:01



Titel: Migrationsskripte selbst erstellen
Beitrag von: seminox am 15-02-2012 21:06:01
Hallo Community,

ich stelle mich mal kurz vor:

- Ich heiße Marco (eigentlich)
- Bin Mitte 30
- Männlich ;-))
- entwickle und betreibe ca. 40 Joomla basierte Webseiten als Nebenjob
- Einige davon mit Fotogalerien (Zoom, PonyML, SIGE, Exposé, icegallery)
- Suche eine Fotogalerie mit extensiven Verwaltungs und Administrationsmöglichkeiten
- Für flockige Galerien mit bis zu 10K Bildern

Ich bin mir ziemlich sicher in JOOMGALLERY einen würdigen Kandidaten für diese Aufgabe gefunden zu haben.

Jetzt zu meinem eigentlichen Anliegen:

Als Beispielgalerie kann folgende Homepage dienen:
http://www.giggalesbronzer.de/CMS/index.php/fotogalerie11/ansicht.html

-> Kann ich mit support bei der Erstellung eines Migrationsscriptes von ICEGALLERY 0.7b3 (Markus Donhauser) in Joomla 1.7.3 nach Joomgallery in aktueller Version auf Basis Joomla 2.5.1 rechnen?
-> Ziel sollte sein folgende Grundlegenden Infos zu übernehmen:

1. Kategorien
2. Unterkategorien
3. Rechte in den Kategorien und Unterkategorien
4. Bilder
5. Rechte an den Bildern
6. Veröffentlichungsstatus
7. Freigabestatus/Sichtbarkeit

Gibts für die Erstellung oder einen Ablauf (bspwse 1. FTP , 2. SQL, 3. PHP) einer Migrationsskripterstellung eine Richtlinie/Dokumentation.

Danke schon mal für eure Antworten und Einschätzungen.

Viele Grüße

seminox


Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: Chraneco am 15-02-2012 22:40:15
Hi,

vielen Dank für deine Vorstellung!
Das macht hier sonst leider kaum jemand.

Zitat von: seminox
Kann ich mit support bei der Erstellung eines Migrationsscriptes von ICEGALLERY 0.7b3 (Markus Donhauser) in Joomla 1.7.3 nach Joomgallery in aktueller Version auf Basis Joomla 2.5.1 rechnen?

Bei der Erstellung eines solchen Migrationsskriptes würde ich dich gerne unterstützen.

Zitat von:
Gibts für die Erstellung oder einen Ablauf (bspwse 1. FTP , 2. SQL, 3. PHP) einer Migrationsskripterstellung eine Richtlinie/Dokumentation.

Am besten du siehst dir zunächst einmal das Migrationsskript zur Migration von der Joomgallery 1.5 zur JoomGallery 2 (http://www.joomgallery.net/downloads/joomgallery-fuer-joomla-25/addons/migrationsskripte/migration-von-der-joomgallery-157.html) zusammen mit der entsprechenden Dokumentation (http://www.joomgallery.net/dokumentation/allgemeines/migration-von-der-jg-157-zur-jg-2.html) an.

Die PHP-Klasse des Migrationsskriptes erbt von der JoomGallery-Klasse 'JoomMigration', die du dir ebenfalls ansehen solltest, da jedes Migrationsskript von dieser Klasse erben sollte. Das hat den Grund, dass dort bereits alle wichtigen Funktionen zur Migration von einer beliebigen Galerie vorhanden sind (die also praktisch zum Import verwendet werden). Das eigentliche Migrationsskript für eine Galerie fällt dann recht übersichtlich aus, da dort praktisch nur noch die nötigen Daten gesammelt werden müssen.

Ich habe auch mal ein noch nicht ganz fertiges und noch unveröffentlichtes Migrationsskript für die Migration von einer 4Images-Galerie an diesen Post angehängt. Vielleicht hilft es dir ja.

Gruß
Chraneco


Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: seminox am 15-02-2012 22:52:42
hi,

freut mich so schnell bereits fundierte infos zu bekommen. ich zieh mir das skript morgen mal und schau mir das an.

vielen dank schonmal für den herzlichen und vor allen schnellen empfang hier ;-))

viele grüße


Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: seminox am 16-02-2012 15:29:24
So, schon gehts los:

anbei mal die Datenbankauszüge aus der IceGallery 0.7b3 mit den Kategorien und den Bildern
ebenso hänge ich mal einen Tree aus dem filesystem mit an damit man sieht wo das zeug liegt ;-))

wo fange ich am besten an....

am besten ich schau mir mal die db-struktur von joomgallery an. dann weiß ich was ich befüllen muss. die quelle kenne ich ja bereits.....


Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: Chraneco am 16-02-2012 16:12:16
Hi,

die Struktur der JoomGallery musst du eigentlich gar nicht so genau kennen. Das einzige, was du tun musst, ist es, die Informationen der IceGallery so aufzubereiten, dass die JoomGallery diese erkennen kann.

Am Migrationsskript für die Migration von der 4Images-Galerie sieht man das recht gut.
Beispielsweise die Zeilen 173-179 sind dafür da, die Informationen von Kategorien von der 4Images-Galerie der JoomGallery zugänglich zu machen und das bedeutet meistens nur, dass man die Namen der Eigenschaften ändern muss. Danach wird mit dem entstehenden Objekt nur noch die Funktion 'createCategory' aufgerufen. Den ganzen Rest erledigt die Galerie also alleine. Nicht gesetzte Eigenschaften befüllt die JoomGallery mit Standardwerten.
Einen ähnlichen Code-Abschnitt (Zeilen 220-232) gibt es auch für die einzelnen Bilder.

Ich schlage vor, du nimmst das Migrationsskript zur Migratio von der JoomGallery 1.5 als Grundlage und änderst darin nur die IceGallery-spezifischen Dinge.

Gruß
Chraneco


Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: seminox am 18-02-2012 08:21:38
Guten Morgen,

jetzt hab ich mal was getan und komme leider nicht ganz bis zum Ende.

Ich hänge unten mal die von mir veränderte Migrationskomponente an. Angepasst wurde das ganze für die ICE Gallery von Markus Donhauser in Version 0.7b3.

Im Logfile sieht man den Fehler:

Auszug:
Code:
2012-02-18T07:07:45+00:00 INFO Category 248 created: 2012-02-10
2012-02-18T07:07:45+00:00 INFO Category 249 created: 2012-02-12
2012-02-18T07:07:45+00:00 INFO Category 250 created: 2012-02-12
2012-02-18T07:07:45+00:00 INFO Category 251 created: 2012-02-12
2012-02-18T07:07:45+00:00 INFO Build the nested set tree
2012-02-18T07:07:45+00:00 INFO Nested set tree successfully build
2012-02-18T07:07:45+00:00 ERROR Error: Image not found: /www/htdocs/w00c912a/mig/ice_media/*****HIER FEHLT DER PFAD*****/1988-89_2.jpg
2012-02-18T07:07:45+00:00 ERROR Error: Image not found: /www/htdocs/w00c912a/mig/ice_media/*****HIER FEHLT DER PFAD*****/1994-95_1.jpg
2012-02-18T07:07:45+00:00 ERROR Error: Image not found: /www/htdocs/w00c912a/mig/ice_media//1990-91_2.jpg
2012-02-18T07:07:45+00:00 ERROR Error: Image not found: /www/htdocs/w00c912a/mig/ice_media//2002-03_02_Waldstetten.jpg
2012-02-18T07:07:45+00:00 ERROR Error: Image not found: /www/htdocs/w00c912a/mig/ice_media//2002-03_03_Kinderumzug.jpg
2012-02-18T07:07:45+00:00 ERROR Error: Image not found: /www/htdocs/w00c912a/mig/ice_media//2002-03_04_Kinderumzug.jpg
2012-02-18T07:07:45+00:00 ERROR Error: Image not found: /www/htdocs/w00c912a/mig/ice_media//Bild_035.jpg
2012-02-18T07:07:45+00:00 ERROR Error: Image not found: /www/htdocs/w00c912a/mig/ice_media//Bild_030.jpg
2012-02-18T07:07:45+00:00 ERROR Error: Image not found: /www/htdocs/w00c912a/mig/ice_media//2002-03_09_Legau.jpg

Folgendes gilt:
Es werden nur Orginale migriert. Keine Thumbnails.
Die Thumbnails sollen nach Abschluß der Migration einheitlich sein und deswegen durch JoomGallery neu erstellt werden.


Die Kategorien werden sauber migriert. Allerdings bekomme ich den Aufbau des Pfades zu den Bildern nicht ganz gebacken. Mir fehlt der Pfad aus der Tabelle jos_ice.catdir für den jeweiligen Pfad zum Orginalbild.

Unten mal Eure durch mich veränderte Komponente - ich hoffe es ist einigermaßen klar was ich alles geschraubt hab. Würde mich freuen von Euch zu hören ;-)

PS: bin die nächsten Tage Faschingstechnisch im Einsatz und deshalb nicht den ganzen Tag hier im Board, melde mich aber sobald ich irgendwie kann.


Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: Chraneco am 18-02-2012 12:34:52
Hi,

Zitat von: seminox
Die Thumbnails sollen nach Abschluß der Migration einheitlich sein und deswegen durch JoomGallery neu erstellt werden.

Um das zu erreichen, muss der Funktion 'moveAndResizeImage' einfach nur der Pfad zum Originalbild übergeben werden und sonst keine weiteren Bilddateien. Die JoomGallery kümmert sich dann um den Rest.
Der Aufruf dieser Funktion fehlt bei dir momentan aber noch komplett. Ich vermute, das ging versehentlich verloren.

Zitat von: seminox
Allerdings bekomme ich den Aufbau des Pfades zu den Bildern nicht ganz gebacken. Mir fehlt der Pfad aus der Tabelle jos_ice.catdir für den jeweiligen Pfad zum Orginalbild.

Im Konstruktor verwendest du '$row->catdir' ohne die Variable $row irgendwo zu initialisieren. Ich vermute, das kann einfach gelöscht werden.

In der Funktion 'migrateImages' musst du bei der verwendeten Query vermutlich noch einen JOIN einbauen, wie es beim Migrationsskript zur Migration von der JoomGallery 1.5 der Fall ist, um den Kategorie-Pfad zu erhalten.

Gruß
Chraneco


Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: seminox am 19-02-2012 11:14:53
so, da bin ich wieder,

zunächst danke für den tip mit dem left JOIN. jetzt bekomme ich den pfad sauber hin.

folgendes neues Problem:

Ich möchte Galerien, die aktuell nur für registrierte Mitglieder sichtbar sind auch gleich wieder so umziehen, daß sie nach Abschluß der Migration ebenfalls nur für registrierte User sichtbar sind.

Ich dachte an folgendes:
(das /* auskommentierte zeigt meine Änderungswünsche)

Code:
 /**
   * Migrates all public categories
   *
   * @return  void
   * @since   1.6.0
   */
  protected function migrateCategories()
  {
    $query = $this->_db2->getQuery(true)
          ->select('*')
          ->from($this->table_categories);
/*          ->where('catmembers = 1;-1;-1;-1;1');*/
    $this->prepareTable($query, $this->table_categories, 'subcat_id', array(0));

    while($cat = $this->getNextObject())
    {
      // Make information accessible for JoomGallery
      $cat->cid         = $cat->catid;
      $cat->name        = $cat->catname;
      $cat->description = $cat->catdescr;
      $cat->parent_id   = $cat->subcat_id;
      $cat->catpath     = $cat->catdir;
/*      $cat->access      = 1;*/
      $cat->published   = 1;

      $this->createCategory($cat);

      $this->markAsMigrated($cat->catid, 'catid', $this->table_categories);

      if(!$this->checkTime())
      {
        $this->refresh();
      }
    }

Leider läuft der Where Filter nicht...... kannst du mir da einen tip geben? Ich würde gerne für alle Kategorien, bei denen in den CATMEMBERS 1;-1;-1;-1;1 steht den access auf 1 setzen. Ebenso für CATMEMBERS 2;-1;-1;-1;2 auf access = 2.

Dazu hätte ich halt einfach eine neue Funktion geschrieben zB. protected function migrateRegisteredCategories() oder ?


Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: Chraneco am 19-02-2012 13:11:17
Hi,

ist '1;-1;-1;-1;1' ein String, der genau so in der Datenbank steht?

Dann wäre es viel einfacher, dass unten bei den Zuweisungen zu berücksichtigen.
Also bei der Datenbankabfrage liest du einfach alles aus (bleibt also so wie es ist) und unten ersetzt du das '/*      $cat->access      = 1;*/' mit folgendem Code:

Code
if($cat->catmembers == '2;-1;-1;-1;2')
{
 $cat->access = 2;
}
else
{
 $cat->access = 1;
}

Dann ist auch keine weitere Funktion nötig.

Gruß
Chraneco


Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: seminox am 19-02-2012 19:27:46
da sag ich mal dickes danke ! ich werde in den nächsten tagen produktiv testen was jetzt bereits zu 100% in meiner migrationstestseite funktioniert hat. sobald das soweit ist werde ich das teil hier anhängen, dann könnt ihrs wenn ihr möchtet auf eurer seite veröffentlichen. danke für den absolut erstklassigen support !

viele Grüße

Marco


Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: Chraneco am 19-02-2012 19:46:12
Hi,

alles klar, ebenfalls vielen Dank!

Wenn du in der globalen Konfiguration von Joomla! das 'Fehler berichten' auf 'Maximum' stellst (nicht 'Entwicklung' oder eine der anderen Optionen), werden dir eventuell noch Fehler im Skript angezeigt, die bisher verborgen blieben.

Gruß
Chraneco


Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: seminox am 24-02-2012 17:54:29

hi, da bin ich wieder:

wie bereits geschrieben läuft die migration auf meiner testkiste jetzt durch.

was bereits funktioniert:
-> Übernahme aller Originalbilder
-> Übernahme aller Detailbilder
-> Übernahme der Bildrechte
-> Übernahme der Kommentare
-> Übernahme der Kategorien und Unterkategorien Übernahme der
-> Kategorierechte

leider schlägt bei der migration die erstellung der thumbnails aus den originalen und der detailansichten aus den originalen fehl.

auszug aus dem logfile:

2012-02-24T08:19:38+00:00   INFO   Nested set tree successfully
build
2012-02-24T08:19:38+00:00   ERROR   Error: Could not create
thumbnail /var/www/htdocs/whgb/images/joomgallery/thumbnails/1988-1995_7/_20120224_1138156346.jpg
2012-02-24T08:19:38+00:00   INFO   -> Error migrating image: 374
Title: Foto
2012-02-24T08:19:38+00:00   ERROR   Error: Could not create
detail
image /var/www/htdocs/whgb/images/joomgallery/details/1988-1995_7/_20120224_1293604831.jpg
2012-02-24T08:19:38+00:00   ERROR   Error: Could not create
thumbnail /var/www/htdocs/whgb/images/joomgallery/thumbnails/1988-1995_7/_20120224_1293604831.jpg
2012-02-24T08:19:38+00:00   INFO   -> Error migrating image: 116
Title: Foto
2012-02-24T08:19:38+00:00   ERROR   Error: Could not create
detail
image /var/www/htdocs/whgb/images/joomgallery/details/1988-1995_7/_20120224_1890621450.jpg
2012-02-24T08:19:38+00:00   ERROR   Error: Could not create
thumbnail /var/www/htdocs/whgb/images/joomgallery/thumbnails/1988-1995_7/_20120224_1890621450.jpg
2012-02-24T08:19:39+00:00   INFO   -> Error migrating image: 112
Title: Foto
2012-02-24T08:19:39+00:00   ERROR   Error: Could not create
detail
image /var/www/htdocs/whgb/images/joomgallery/details/2002-2003_21/2002-03_02_waldstetten_20120224_2098156223.jpg
2012-02-24T08:19:39+00:00   ERROR   Error: Could not create
thumbnail /var/www/htdocs/whgb/images/joomgallery/thumbnails/2002-2003_21/2002-03_02_waldstetten_20120224_2098156223.jpg
2012-02-24T08:19:39+00:00   INFO   -> Error migrating image: 79
Title: 2002-03_02 Waldstetten.jpg
2012-02-24T08:19:39+00:00   ERROR   Error: Could not create
detail
image /var/www/htdocs/whgb/images/joomgallery/details/2002-2003_21/2002-03_03_kinderumzug_20120224_1551434388.jpg
2012-02-24T08:19:39+00:00   ERROR   Error: Could not create
thumbnail /var/www/htdocs/whgb/images/joomgallery/thumbnails/2002-2003_21/2002-03_03_kinderumzug_20120224_1551434388.jpg
2012-02-24T08:19:39+00:00   INFO   -> Error migrating image: 80
Title: 2002-03_03 Kinderumzug.jpg
2012-02-24T08:19:39+00:00   ERROR   Error: Could not create
detail
image /var/www/htdocs/whgb/images/joomgallery/details/2002-2003_21/2002-03_04_kinderumzug_20120224_1639553328.jpg
2012-02-24T08:19:39+00:00   ERROR   Error: Could not create
thumbnail /var/www/htdocs/whgb/images/joomgallery/thumbnails/2002-2003_21/2002-03_04_kinderumzug_20120224_1639553328.jpg
2012-02-24T08:19:39+00:00   INFO   -> Error migrating image: 81
Title: 2002-03_04 Kinderumzug.jpg

auch wenn ich versuche die thumbnails oder detailbilder im maintainance manager mit "recreate images" (Zahnradsymbol neben
Bild) neu zu erstellen kommt es zu einem fehler: "The thumbnail '/var/www/htdocs/whgb/images/joomgallery/thumbnails/1988-1995_7/_20120224_1293604831.jpg'
 could not be created."

hast du noch eine idee?

GD2 und imagemagick laufen auf meiner testkiste. ebenso natürlich apache2, mysql5 und php5.

danke!


Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: Chraneco am 24-02-2012 23:48:24
Hi,

hast du das mit dem 'Fehler berichten' schon ausprobiert (siehe weiter oben)?

Ich habe in deinem Migrationsskript noch ein paar Stellen gefunden, die nicht ganz korrekt sind und eigentlich PHP-Fehlermeldungen erzeugen sollten.

Gruß
Chraneco


Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: seminox am 27-02-2012 09:46:31
Hallo, da bin ich wieder.

Ich schick dir per PN einen Zugang zu meiner migrationstestseite. Ich hab Probleme mit der skriptlaufzeit. Die fehlerbericht-geschichte von joomla brachte indes keinen Fehler zutage.

Die Migration wird auch durchgeführt, nur denk ich gibts ein Problem beim erstellen der thumbs.

In der Test Seite richte ich gleich alles fertig zur Migration ein. Die alte Galerie liegt direkt im basisverzeichnis ice_media.

Kannst dich ja mal austoben. Ich wäre dir sehr sehr dankbar dafür. Keine angst, kann nix kaputtgehen, ist eine Kopie der lifesite.


Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: Chraneco am 27-02-2012 12:27:30
Hi,

vielen Dank für die Zugangsdaten!
Bevor ich die Migration dort gestartet habe, habe ich mir die dort hinterlegte Migrationsdatei noch einmal angesehen.
Scheinbar ist da beim Kopieren von dir mal etwas schiefgelaufen, da sich darin plötzlich eine doppelt verschachtelte While-Schleife befand mit jeweils demselben Code darin (im letzten Anhang von dir kannst du das auch noch sehen). Ich könnte mir vorstellen, dass es deshalb zu Problemen kam. Ich habe die Migrationsdatei ausgebessert (und auch ein paar andere kleine Fehler behoben) und die Migration dann damit gestartet.
Laut Log-File (es ist bei dir noch hinterlegt) kommt jetzt fast ausschließlich folgender Fehler:

Error: Viewsize-Image not found

Das könnte darauf hindeuten, dass seit der letzten Migration das Backup nicht richtig wieder eingespielt worden ist und die Ursprungsdateien in der IceGallery deshalb nicht gefunden werden können.

Gruß
Chraneco


Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: seminox am 27-02-2012 13:11:02
hi,

danke für die schnelle hilfe ;-))

die doppelte schleife hatte den hintergrund, daß er sowohl in die basisverzeichnisse, als auch in die viewsize verzeichnisse schauen sollte um die bilder zu migrieren. teilweise liegen nämlich nur in einem der beiden verzeichnisse daten.

ich zieh jetzt mal nochmal das backup zurück und setze dein skript ein. mal sehen was er tut. ich melde mich nachher wieder.

und nochmal danke für deine zeit !


Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: Chraneco am 27-02-2012 13:13:19
Hi,

ok, das wusste ich nicht (durch die merkwürdigen Einrückungen des Codes sah es nämlich falsch aus :-) ). Dann warte lieber mal noch kurz, ich sehe es mir noch einmal an.

Dies sollte dann etwas anders gelöst werden.

EDIT: Versuche es mal bitte mit dem Script im Anhang (ich habe es allerdings noch nicht getestet).

Gruß
Chraneco


Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: seminox am 27-02-2012 13:39:07
schon wieder danke ;-))

ich sehe du hast du if schleife oben bei den bildern einfach um das viewsize image erweitert. eigentlich logisch. manchmal sieht man den wald vor lauter bäumen nicht.

danke.

ich habs mal in die seite integriert. der server ist im moment noch beschäftigt das gesamte bilderverzeichnis (/ice_media) aus der lifesite zu kopieren. das dauert noch ein bisschen. alles andere ist vorbereitet.

bis gleich ;-)



Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: seminox am 27-02-2012 15:56:33
du darfst dir gratulieren. es hat alles funktioniert...... aaaaber ;-))


kannst dich ja nochmal anmelden und schauen wie weit das skript gekommen ist. mein hoster macht das script nach einigen sekunden zu und steigt mit einem 500er Fehler aus. Eine erhöhung der php max execution time in der htaccess datei hat keine besserung gebracht. irgendwie scheint die reload funktion in deinem script nicht zu greifen.

hast du noch eine idee was ich dagegen machen kann ?



Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: Chraneco am 27-02-2012 16:59:30
Hi,

das Erreichen der max_execution_time löst normalerweise keinen Error 500 aus. Ich vermute, es wäre, die max_execution_time eher nach unten zu korrigieren, damit früher neugestartet wird, bevor zu viele Daten gesammelt wurden.

Nach wie vielen Sekunden wurde denn abgebrochen?

Gruß
Chraneco


Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: seminox am 27-02-2012 23:02:22
Hi,

der Abbruch erfolgt nach etwa 15-20 Sekunden. Ich schau morgen mal im Logfile des Servers ob ich mehr zu dem fehler finde. Ich habe jetzt gerade  (22:56) nochmal einen produziert. vielleicht kann auch mein hosting provider was dazu beitragen.

Ich hoffe ich denke richtig wenn ich sage: ein 500er Fehler entsteht nicht auf der Client Seite sondern immer serverseitig.

Danke mal bisher. Ich melde mich sobald ich mehr weiß.



Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: seminox am 28-02-2012 21:22:15
Hallo,

hab den Fehler gefunden. Da ich PHP im CGI mode ausgeführt habe, bin ich mit sehr restriktiven beschränkungen bedacht worden. ich habe nun den cgi-mode wieder deaktiviert und das skript ausgeführt. daraufhin ist es durchgelaufen.

sieht schon sehr gut aus (wenn du reinschauen möchtest) allerdings noch nicht ganz perfekt. der von dir vergebene code:

Code:
    while($row = $this->getNextObject())
    {
      $original   = $this->path_originals.$row->catdir.DS.$row->imgfilename;
     
      if(!JFile::exists($original))
      {
        $original = $this->path_originals.$row->catdir.DS.'viewsize'.DS.$row->imgfilename;

        if(!JFile::exists($original))
        {
          $this->setError('Original-Image not found: '.$original);

          continue;
        }
      }

führt dazu, daß der pfad zu den bildern in den "viewsize" ordnern nicht korrekt aufgelöst wird:

auszug aus dem logfile:
Code:
2012-02-28T19:56:41+00:00 ERROR Error: Original-Image not found: /www/htdocs/v150676/cms/ice_media/****HIER FEHLT DER KATEGORIEPFAD****/viewsize/P2107517.jpg
2012-02-28T19:56:41+00:00 ERROR Error: Original-Image not found: /www/htdocs/v150676/cms/ice_media//viewsize/P2107518.jpg
2012-02-28T19:56:41+00:00 ERROR Error: Original-Image not found: /www/htdocs/v150676/cms/ice_media//viewsize/P2107524.jpg
2012-02-28T19:56:41+00:00 ERROR Error: Original-Image not found: /www/htdocs/v150676/cms/ice_media//viewsize/P2107525.jpg
2012-02-28T19:56:41+00:00 ERROR Error: Original-Image not found: /www/htdocs/v150676/cms/ice_media//viewsize/P2107527.jpg
2012-02-28T19:56:41+00:00 ERROR Error: Original-Image not found: /www/htdocs/v150676/cms/ice_media//viewsize/P2107529.jpg
2012-02-28T19:56:41+00:00 ERROR Error: Original-Image not found: /www/htdocs/v150676/cms/ice_media//viewsize/P2107534.jpg
2012-02-28T19:56:41+00:00 ERROR Error: Original-Image not found: /www/htdocs/v150676/cms/ice_media//viewsize/P2107535.jpg

kannst du mir auch dazu noch einen tip geben ?

danke im voraus!


Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: Chraneco am 29-02-2012 14:49:20
Hi,

wie du im Code siehst, wird bei der Erstellung beider Pfade auf '$row->catdir' zurückgegriffen. Hier kann das Problem also nicht liegen.

Entweder ist in der Datenbank bei der entsprechenden Kategorie kein Pfad hinterlegt oder das Bild ist keiner Kategorie zugeordnet.

Ein Blick in die Datenbank oder ein Export der Tabellen könnte Aufschluss darüber geben.

Gruß
Chraneco


Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: seminox am 01-03-2012 12:43:32
du hattest natürlich schon wieder recht. die datenbank war nicht ganz sauber aufbereitet.
alle andere hat jetzt funktioniert.

hinweise an alle die dieses skript verwenden sollen:

1. Die Site darf nicht PHP im CGI-mode ausführen
2. Alle Dateisystemrechte/Eigentumsrechte müssen stimmen
3. Es werden nur Originale und Viewsize Bilder migriert (Thumbnails werden neu erstellt)
4. Es werden nur Kategorien und Bilder migriert die für "Alle" oder "Registrierte" sichtbar sind.
5. Nach der Migration müssen den Kategorien (wenn gewünscht) erneut Kategoriebilder zugewiesen werden.
6. Sortierungen müssen neu eingerichtet werden
7. Unbedingt nach der Migration einen Blick in den Wartungsmanager werfen um evtl. Leichen zu entfernen

Ich bedanke mich jetzt erstmal für den absolut erstklassigen support den ich hier bekommen habe!

Ich geh jetzt mal ins Forum wo die Bugreports stehen ;-)) hab noch kleinere Probleme mit der Ansicht der Galerie.


Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: Chraneco am 01-03-2012 13:14:38
Hi,

Zitat von: seminox
du hattest natürlich schon wieder recht. die datenbank war nicht ganz sauber aufbereitet.

Ist das etwas, das jeder vor Verwendung des Scripts durchführen muss oder war dies nur in deinem speziellen Fall nötig?

Zitat von: seminox
4. Es werden nur Kategorien und Bilder migriert die für "Alle" oder "Registrierte" sichtbar sind

Gehe ich recht in der Annahme, dass Kategorien und Bilder, die einen anderen Accessl-Level haben als diese beide, dann automatisch für alle sichtbar sein werden?

Zitat von: seminox
5. Nach der Migration müssen den Kategorien (wenn gewünscht) erneut Kategoriebilder zugewiesen werden.
6. Sortierungen müssen neu eingerichtet werden

Diese beiden Punkte könnten eventuell noch durch Erweiterung des Migrationsskripts miterledigt werden. Dazu ist es nur nötig, dass für die Kategoriebilder und die Sortierung ein ähnliches Datenbankfeld vorhanden ist wie in der JoomGallery, die dann einfach wie die anderen Felder auf die passenden JoomGallery-Felder gemappt werden. 'catimg' und 'pos' könnten solche Kandidaten sein, kannst du das bestätigen?

Gruß
Chraneco


Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: seminox am 02-03-2012 22:49:35
Hi,

Zitat
Zitat von: seminox
du hattest natürlich schon wieder recht. die datenbank war nicht ganz sauber aufbereitet.

Ist das etwas, das jeder vor Verwendung des Scripts durchführen muss oder war dies nur in deinem speziellen Fall nötig?

Nein, das gilt wohl nur für mich, da ich früher mal mit Zoom Gallery angefangen habe und dann da schon durch diverse Versionen und später auf ICE-Gallery und da auch wieder 4 oder 5 Versionen immer wieder migriert habe.

Zitat
Zitat von: seminox
4. Es werden nur Kategorien und Bilder migriert die für "Alle" oder "Registrierte" sichtbar sind

Gehe ich recht in der Annahme, dass Kategorien und Bilder, die einen anderen Accessl-Level haben als diese beide, dann automatisch für alle sichtbar sein werden?

Richtig. Das könnte man aber zB. mit einer zusätzlichen Schleife so steuern, daß die Kategorien nur für "Special" sichtbar sind bzw. Published=0 gesetzt wird.

Zitat
Zitat von: seminox
5. Nach der Migration müssen den Kategorien (wenn gewünscht) erneut Kategoriebilder zugewiesen werden.
6. Sortierungen müssen neu eingerichtet werden

Diese beiden Punkte könnten eventuell noch durch Erweiterung des Migrationsskripts miterledigt werden. Dazu ist es nur nötig, dass für die Kategoriebilder und die Sortierung ein ähnliches Datenbankfeld vorhanden ist wie in der JoomGallery, die dann einfach wie die anderen Felder auf die passenden JoomGallery-Felder gemappt werden. 'catimg' und 'pos' könnten solche Kandidaten sein, kannst du das bestätigen?

Hmmmja. Es gibt in der Orginaltabelle folgende Schlüssel:
Code:
Spalte Typ Null Standard Kommentare
catid int(11) Nein
catname varchar(50) Ja 0
catdescr mediumtext Ja NULL
catdir varchar(50) Ja 0
catimg int(11) Ja NULL
catpassword varchar(100) Nein
catkeywords varchar(240) Nein
subcat_id int(11) Nein 0
pos int(11) Ja NULL
published tinyint(1) Nein 1
uid int(11) Nein 0
catmembers text Ja NULL
lockcnt int(11) Nein 0
flags int(11) Ja NULL
types int(11) Nein 0
date datetime Nein 0000-00-00 00:00:00
layout1 int(11) Nein 0
layout2 int(11) Nein 0
layout3 int(11) Nein 0
layout4 int(11) Nein 0
catlimit int(11) Nein 0
medialimit int(11) Nein 0
wmproperties int(11) Nein 0
wmimage int(11) Nein 0
metakey text Nein
metadescr text Nein
modified datetime Nein 0000-00-00 00:00:00
featured tinyint(1) Nein 0
alias varchar(128) Ja NULL

Hier könnte man das Feld "catimg" nehmen. Dieses beinhaltet die BildID des zu setzenden Thumbnails.
Die Sortierung ist indes in einer Kryptischen Reihenfolge gespeichert. (in den Spalten layout1, layout2, layout3). Damit werden wir wohl nichts anfangen können.

ich hänge mal meine Orginal ICE-Tabelle zum testen hier an.

Ausserdem wäre es noch schön wenn wir den Anmeldenamen auf Basis der Userid (Eigentümer des Albums) in die Joomgallery übernehmen können. Im Moment wird nur die UserID übernommen.

Viele Grüße

Marco



Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: Chraneco am 03-03-2012 14:09:38
Hi,

Zitat von: seminox
Das könnte man aber zB. mit einer zusätzlichen Schleife so steuern, daß die Kategorien nur für "Special" sichtbar sind bzw. Published=0 gesetzt wird.

Dazu sollte sogar eine einzelne weitere if-Abfrage ausreichen. Wie sehen die Strings in der IceGallery denn für die verschiedenen Level genau aus und wie sollen sie gemappt werden?

Zitat von: seminox
Hier könnte man das Feld "catimg" nehmen. Dieses beinhaltet die BildID des zu setzenden Thumbnails.

Ok, das sollte dann mit der Zeile '$cat->thumbnail = $cat->catimg;' erledigt werden können.

Zitat von: seminox
Die Sortierung ist indes in einer Kryptischen Reihenfolge gespeichert. (in den Spalten layout1, layout2, layout3). Damit werden wir wohl nichts anfangen können.

Ich habe mir den Code der IceGallery mal etwas angesehen. Mit den 'layout'-Spalten scheint wirklich nur eine Art Layout identifiziert zu werden. Bist du sicher, dass die Sortierung nicht in der Spalte 'pos' gespeichert ist?

Zitat von: seminox
Ausserdem wäre es noch schön wenn wir den Anmeldenamen auf Basis der Userid (Eigentümer des Albums) in die Joomgallery übernehmen können. Im Moment wird nur die UserID übernommen.

Wenn die Userid übernommen wird, sollte das eigentlich ausreichend sein, da die JoomGallery dann bei der Anzeige immer den passenden Benutzernamen heraussucht und ausgibt.

Gruß
Chraneco


Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: seminox am 04-03-2012 09:07:04
Hi,

Berechtigungsstruktur ICE:

Alben/Kategorien:

-1 = Eigentümer/Moderator
 1 = public
 2 = registered
 3 = special

Der erste Wert steht für die Usergruppe die dieses Album sehen darf
Der zweite Wert steht für die Usergruppe die dieses Album löschen darf
Der dritte Wert steht für die Usergruppe die ein Album in diesem Album erstellen darf
Die vierte Gruppe steht für die Usergruppe die Medien in dieses Album hochladen darf
Der letzte Wert steht für die Usergruppe die dieses Album öffnen darf

catmembers = 'sehen;löschen;Album erstellen;hochladen;öffnen'

catmembers = '1;-1;-1;-1;1' = public
catmembers = '2;-1;-1;-1;2' = registered
catmembers = '3;-1;-1;-1;3' = special

Die einzelnen Gruppen zwischen den Strichpunkten können auch durch Komma um einzelne User erweitert sein:

catmembers = '1;-1,62;-1,63,64,65;-1,24,27,62;1'

-> sehen = 1 = public
-> löschen = -1,62 = Eigentümer/Moderator + UserID 62
-> Album erstellen = -1,63,64,65 = Eigentümer/Moderator + UserID's 63,64,65
usw....

Bilder:

hier existieren folgende Rechte:

Medium auflisten
Medium entfernen
Medium ansehen

imgmembers = '1;-1;1'

-> Der erste Wert steht für Medium auflisten
-> Der zweite Wert steht für Medium entfernen
-> Der dritte Wert steht für Medium löschen

Die einzelnen Werte können auch wieder durch einzelne UserprofilID's erweitert sein.

Es gilt wieder:

-1 = Eigentümer/Moderator
 1 = public
 2 = registered
 3 = special


KategorieThumbnail:

$cat->thumbnail = $cat->catimg;

sollte damit erledigt sein, hab ich ins Skript aufgenommen. Wird gestestet sobald der Rest fertig ist ;-)

Sortierung:

Ja, bin mir sicher, das Feld 'pos' ist mal bei einer Migration entstanden und enthält immer den gleichen wert wie die 'catid'

Eigentümer

Zitat von: Chraneco
Wenn die Userid übernommen wird, sollte das eigentlich ausreichend sein, da die JoomGallery dann bei der Anzeige immer den passenden Benutzernamen heraussucht und ausgibt.

Hat sie bei mir nicht getan. Die Spalte 'owner' in den Kategorien ist bei mir komplett mit '0' befüllt.... Beim anlegen der Kategorien sollte hier ja dann ein:

$cat->owner = $cat->uid;

ausreichen.

In den einzelne Bildern wurde im Skript die UserID als "imgauthor" eingetragen. Sollte da nicht ein Name stehen? Und dafür lieber  folgendes gesetzt werden?:

$row->owner = $row->uid;

Bis bald ;-)



Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: Chraneco am 08-03-2012 18:55:37
Hi,

ok, ich werde versuchen, die letzten noch nötigen Anpassungen vorzunehmen. Dazu müsste aber vorher noch ein paar Punkte geklärt werden:

Zitat von: seminox
catmembers = '1;-1;-1;-1;1' = public
catmembers = '2;-1;-1;-1;2' = registered
catmembers = '3;-1;-1;-1;3' = special

Wenn ich es richtig verstanden habe, muss also immer nur der Wert vor dem ersten Strichpunkt betrachtet werden, um den Access-Level festzulegen, oder?
Gibt es außer 'public', 'registered' und 'special' noch weitere Access-Level in der IceGallery?

Zitat von: seminox
Medium auflisten
Medium entfernen
Medium ansehen

Was ist der Unterschied zwischen 'auflisten' und 'ansehen'?
Etwas weiter unten sagst du, dass der dritte Wert für 'löschen' und nicht für 'ansehen' steht.
Welcher Wert muss hier für den Access-Level berücksichtigt werden?

Zitat von: seminox
Hat sie bei mir nicht getan. Die Spalte 'owner' in den Kategorien ist bei mir komplett mit '0' befüllt.... Beim anlegen der Kategorien sollte hier ja dann ein:

$cat->owner = $cat->uid;

ausreichen.

Jep, das ist korrekt und genau das gleiche sollte so auch für die Bilder gemacht werden (also 'imgauthor' einfach leer lassen).

Gruß
Chraneco


Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: seminox am 15-03-2012 19:37:25
Hi,

sorry, war ein paar tage nicht im lande ;-))

ich zitier mich mal selber:
Für Alben gilt:
Zitat
Der erste Wert steht für die Usergruppe die dieses Album sehen darf
Der zweite Wert steht für die Usergruppe die dieses Album löschen darf
Der dritte Wert steht für die Usergruppe die ein Album in diesem Album erstellen darf
Die vierte Gruppe steht für die Usergruppe die Medien in dieses Album hochladen darf
Der letzte Wert steht für die Usergruppe die dieses Album öffnen darf

Für Bilder gilt:
Zitat
-> Der erste Wert steht für Medium auflisten
-> Der zweite Wert steht für Medium entfernen
-> Der dritte Wert steht für Medium löschen

Für die AccessLevel gilt:

entweder -1 oder 1 oder 2 oder 3 oder einer dieser werte gefolgt von der ID des userprofils das zustäzlich dieses Album sehen darf.

Der Unterschied zwischen ansehen und öffnen ist, daß bei ansehen das bild als thumbnail in der liste sichtbar wird, aber nicht in vollansicht geöffnet werden kann.


Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: Chraneco am 16-03-2012 11:05:28
Hi,

Zitat von: seminox
entweder -1 oder 1 oder 2 oder 3 oder einer dieser werte gefolgt von der ID des userprofils das zustäzlich dieses Album sehen darf.

Was bedeutet der Wert -1 für die Accesslevel?
Ich hätte angenommen das es irgendwie 'für alle' bedeutet, aber das wäre mit '1=Public' bereits abgedeckt.

Gruß
Chraneco


Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: seminox am 17-03-2012 07:40:02
hi,

nein, ich glaube das steht eher für "nicht definiert". Im Vorgänger der ICE Gallery (ZOOM Media Gallery) stand dort ein "999".

Ich nehme an, daß einfach niemand bestimmtes definiert ist der das darf. Folglich greifen dann die Rechte des Admins.

Gruß



Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: Chraneco am 17-03-2012 16:06:00
Hi,

ok, da es so etwas wie 'nicht definiert' bei den Access-Levels von Joomla! nicht gibt, ist es wohl das beste, diese Kategorien dann mit dem Standard-Access-Level zu versehen, da alles andere zu Inkonsistenzen führen würde.

Ich habe alles, war wir besprochen haben, im angehängten Migrationsskript mal geändert.

Außerdem ist mir bei meinen Tests aufgefallen, dass die Spalte 'pos' wohl doch für die Reihenfolge da ist, allerdings nur, wenn man bei den Einstellungen 'custom order' verwendet. Vielleicht ist das bei deinen vielen Migrationen auch irgendwie verloren gegangen. Ich habe das jetzt auf jeden Fall auch mal noch mit eingebaut, da es besser ist, als nichts für die Sortierung zu tun. Diejenigen, bei denen die Sortierung nach der Migration nicht stimmt (wie bei dir wahrscheinlich) müssen die Sortierung dann sowieso noch einmal von Hand vornehmen.

Gruß
Chraneco


Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: szenenight am 26-03-2013 12:04:46
Hallo und guten Morgen zusammen,
Mein Name ist Kai Schöning, ich betreibe ein Online Stadtmagazin mit einer sehr großen IceGallery Installation - die Entwicklung und der Support dort sind allerdings um Längen nicht so gut, wie ich es hier gesehen und gelesen habe. Schon mal vorweg ein Kompliment für die tolle Arbeit.

Ich bin grade auf dieses Thema gestoßen weil ich aktuell mit einem Kollegen zusammen unsere Webseite von Joomla 1.5 auf 2.5 heben möchte - in diesem Zusammenhang planen wir auch den Wechsel von Ice auf Joom. Wir haben das Script hier als Basis genommen und versucht die Bilder zu migrieren - kleine Hürde: Unsere Test&Migrationssite befindet sich in einem zweiten vhost (auf dem selben Server). Eine Verlinkung funktioniert nicht - wir haben dann probehalber 1-2 Gallerie Dateien von Hand von einem vhost auf den vhost der Test&Migrationsinstanz gezogen - dabei sind wir zumindest soweit gekommen, dass er in Joom die Kategorien (wenn auch nicht sortiert) und die Bildeinträge anlegt. Allerdings wirft das LOG nun

Code:
2013-03-26T00:23:14+00:00 ERROR Error: Could not create detail image /srv/www/vhosts/gebrauchtdvds.de/httpdocs/images/joomgallery/details/foto_archiv_10/party_foto_archiv_aus_dem_jahr_2005_751/09042005_fun_lifestylenight_265/tom3975_20130326_1908536658.jpg
2013-03-26T00:23:14+00:00 ERROR Error: Could not create thumbnail /srv/www/vhosts/gebrauchtdvds.de/httpdocs/images/joomgallery/thumbnails/foto_archiv_10/party_foto_archiv_aus_dem_jahr_2005_751/09042005_fun_lifestylenight_265/tom3975_20130326_1908536658.jpg

Bestimmt nur ein ganz blöder Fehler - aber wir kommen aktuell nicht dahinter... vielleicht hat jemand eine Idee?

Zum System:
Joomla 1.5.26
Icegallery 0.5 stable

Joomla! 2.5.9 Stable [ Ember ] 4-February-2013 14:00 GMT
JoomGallery 2.1.2



Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: Chraneco am 26-03-2013 18:47:30
Hi,

hänge mal bitte das gesamte Log an deinen nächsten Post an oder sende es mir per Mail.

Gruß
Chraneco


Titel: Re: Migrationsskripte selbst erstellen
Beitrag von: szenenight am 27-03-2013 00:42:12
Moin, ich hab das ganze heute noch mal auf einer frischen Installation durchgeführt - nun hat es geklappt, bis auf dass die Reihenfolge noch quasi genau umgedreht ist, das ist aber sicher ne Einstellung in der Joomgallery