mouth
Willkommen Gast.
Um die volle Funktionalität des Forums nutzen zu können,
müssen Sie sich einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?

 
Erweiterte Suche

31.109 Beiträge in 6.474 Themen- von 6.477 Mitglieder - Neuestes Mitglied: Frideborg

15-11-2019 22:33:16
JOOM::GALLERY::FORUMJoomGallery 2.x ACLMigrationMigrationsskripte selbst erstellen
Seiten: [1] 2 3
Drucken
Autor Thema: Migrationsskripte selbst erstellen  (Gelesen 17199 mal)
0 Mitglieder und 1 Gast betrachten dieses Thema.
seminox
Newbie
*
Offline Offline

Beiträge: 18


« 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 sm_smilewinkgrin
- 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
Gespeichert
Chraneco
Entwickler-Team
Hero Member
*****
Offline Offline

Beiträge: 4.066



« Antworten #1 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 zusammen mit der entsprechenden Dokumentation 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
« Letzte Änderung: 16-02-2012 09:13:29 von Chraneco » Gespeichert

Der Sprecher
seminox
Newbie
*
Offline Offline

Beiträge: 18


« Antworten #2 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 sm_smilewinkgrin

viele grüße
Gespeichert
seminox
Newbie
*
Offline Offline

Beiträge: 18


« Antworten #3 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 sm_smilewinkgrin

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.....
Gespeichert
Chraneco
Entwickler-Team
Hero Member
*****
Offline Offline

Beiträge: 4.066



« Antworten #4 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
Gespeichert

Der Sprecher
seminox
Newbie
*
Offline Offline

Beiträge: 18


« Antworten #5 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 sm_wink

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.
Gespeichert
Chraneco
Entwickler-Team
Hero Member
*****
Offline Offline

Beiträge: 4.066



« Antworten #6 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
Gespeichert

Der Sprecher
seminox
Newbie
*
Offline Offline

Beiträge: 18


« Antworten #7 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 ?
« Letzte Änderung: 19-02-2012 11:21:19 von seminox » Gespeichert
Chraneco
Entwickler-Team
Hero Member
*****
Offline Offline

Beiträge: 4.066



« Antworten #8 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
Gespeichert

Der Sprecher
seminox
Newbie
*
Offline Offline

Beiträge: 18


« Antworten #9 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
Gespeichert
Chraneco
Entwickler-Team
Hero Member
*****
Offline Offline

Beiträge: 4.066



« Antworten #10 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
Gespeichert

Der Sprecher
seminox
Newbie
*
Offline Offline

Beiträge: 18


« Antworten #11 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!
Gespeichert
Chraneco
Entwickler-Team
Hero Member
*****
Offline Offline

Beiträge: 4.066



« Antworten #12 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
Gespeichert

Der Sprecher
seminox
Newbie
*
Offline Offline

Beiträge: 18


« Antworten #13 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.
Gespeichert
Chraneco
Entwickler-Team
Hero Member
*****
Offline Offline

Beiträge: 4.066



« Antworten #14 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
Gespeichert

Der Sprecher
Seiten: [1] 2 3
Drucken
Gehe zu:  

HOSTED BY SCHWARZKÜNSTLER ®

PROTECTED BY  ZB BLOCK  AND Project Honey Pot
Theme orange-lt created by panic

Bad Behavior has blocked 4490 access attempts in the last 7 days.

mouth