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.108 Beiträge in 6.473 Themen- von 6.478 Mitglieder - Neuestes Mitglied: Frideborg

21-10-2019 14:21:46
JOOM::GALLERY::FORUMJoomGallery 2.x ACLMigrationMigrationsskripte selbst erstellen
Seiten: 1 [2] 3
Drucken
Autor Thema: Migrationsskripte selbst erstellen  (Gelesen 16942 mal)
0 Mitglieder und 1 Gast betrachten dieses Thema.
seminox
Newbie
*
Offline Offline

Beiträge: 18


« Antworten #15 am: 27-02-2012 13:11:02 »

hi,

danke für die schnelle hilfe sm_smilewinkgrin

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

Beiträge: 4.066



« Antworten #16 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 sm_smile ). 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
« Letzte Änderung: 27-02-2012 13:19:15 von Chraneco » Gespeichert

Der Sprecher
seminox
Newbie
*
Offline Offline

Beiträge: 18


« Antworten #17 am: 27-02-2012 13:39:07 »

schon wieder danke sm_smilewinkgrin

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 sm_wink

Gespeichert
seminox
Newbie
*
Offline Offline

Beiträge: 18


« Antworten #18 am: 27-02-2012 15:56:33 »

du darfst dir gratulieren. es hat alles funktioniert...... aaaaber sm_smilewinkgrin


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 ?

Gespeichert
Chraneco
Entwickler-Team
Hero Member
*****
Offline Offline

Beiträge: 4.066



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

Der Sprecher
seminox
Newbie
*
Offline Offline

Beiträge: 18


« Antworten #20 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ß.

Gespeichert
seminox
Newbie
*
Offline Offline

Beiträge: 18


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

Beiträge: 4.066



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

Der Sprecher
seminox
Newbie
*
Offline Offline

Beiträge: 18


« Antworten #23 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 sm_smilewinkgrin hab noch kleinere Probleme mit der Ansicht der Galerie.
« Letzte Änderung: 01-03-2012 12:48:58 von seminox » Gespeichert
Chraneco
Entwickler-Team
Hero Member
*****
Offline Offline

Beiträge: 4.066



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

Der Sprecher
seminox
Newbie
*
Offline Offline

Beiträge: 18


« Antworten #25 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

Gespeichert
Chraneco
Entwickler-Team
Hero Member
*****
Offline Offline

Beiträge: 4.066



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

Der Sprecher
seminox
Newbie
*
Offline Offline

Beiträge: 18


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

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 sm_wink

« Letzte Änderung: 04-03-2012 09:12:57 von seminox » Gespeichert
Chraneco
Entwickler-Team
Hero Member
*****
Offline Offline

Beiträge: 4.066



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

Der Sprecher
seminox
Newbie
*
Offline Offline

Beiträge: 18


« Antworten #29 am: 15-03-2012 19:37:25 »

Hi,

sorry, war ein paar tage nicht im lande sm_smilewinkgrin

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.
Gespeichert
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 3207 access attempts in the last 7 days.

mouth