Seite 1 von 2

Gruppen AVATAR nachträglich einpflegen/aktuaklisieren

Verfasst: 19.10.2013 10:43
von fontane
Hallo,

im ACP "Gruppen verwalten" kann man das AVATAR für die Gruppe einstellen.
(Dies wurde von meinem Vorgänger versäumt. Das nachstehend aufgeführte Problem ergibt sich jedoch auch wenn man mal das Gruppenvatar wechseln will - auch Grafiken ändern sich nunmal mit der Zeit :roll: )

Problem:
Gibt man nun für die Gruppe ein Avatar ein, werden die bereits von den Mitgliedern selbst eingestellten Avatare überschrieben.

Frage:
kann man mit z.B. einem SQL-Befehl Mitgliedern einer Gruppe welche noch kein eigenes Avatar haben ein Avatar (das Gruppenavatar) zuweisen wobei die von den Mitgliedern bestehenden Avatare erhalten bleiben? Wenn ja, wie lautet der SQL-Befehl?

Vielen Dank für eine Hilfestellung

Re: Gruppen AVATAR nachträglich einpflegen/aktuaklisieren

Verfasst: 19.10.2013 13:27
von Miriam
Diesen Code in Deiner DB ausführen:
  • Code: Alles auswählen

    UPDATE phpbb_users SET user_avatar = ( SELECT group_avatar
    FROM phpbb_groups
    WHERE group_id =5 )
    WHERE user_avatar = ''
    AND group_id =5
Lies auch:
  • KB:phpmyadmin,
  • KB:pma_faq,
  • KB:mysqlbackup.
Mache VORHER ein Backup Deiner DB!

Voraussetzungen:
  • Deine MySQL Version ist mindestens 4.1
  • Dein Tabellenpräfix ist phpbb_.
  • Deine Gruppen ID ist 5

Re: Gruppen AVATAR nachträglich einpflegen/aktuaklisieren

Verfasst: 19.10.2013 14:24
von fontane
Miriam hat geschrieben:Diesen Code in Deiner DB ausführen:
Zunächst mal besten Dank für Deine Hilfe(n)

Der Laie fragt:
a) ich interpretiere Deine SQL-Vorgabe so, dass nach Ausführung des SQL-Befehles die Datenbank so strukturiert ist, dass wenn das Gruppenavatar via dem ACP geändert wird, die Mitglieder welche bereits ein Avatar haben, dieses erhalten bleibt. ?!?

b) alle Mitglieder haben nach Ausführung des SQL-Befehles entweder ein eigenes Avatar oder das vorgegebene Gruppenavatar. Wenn man das Gruppenavatar später mal ändern möchte, muss somit nur die Grafik (*.png / *.JPG / *.gif) ausgetauscht werden? ?!? Wenn ja, Wo ist dieses Gruppenavatar abgespeichert?

Danke vorab für die ergänzende Hilfestellung

Re: Gruppen AVATAR nachträglich einpflegen/aktuaklisieren

Verfasst: 19.10.2013 14:58
von Miriam
Die Vorgaben waren meiner Meinung nach unmißverständlich:
Frage:
kann man mit z.B. einem SQL-Befehl Mitgliedern einer Gruppe welche noch kein eigenes Avatar haben ein Avatar (das Gruppenavatar) zuweisen wobei die von den Mitgliedern bestehenden Avatare erhalten bleiben? Wenn ja, wie lautet der SQL-Befehl?
Deine jetzige Vorgabe:
Der Laie fragt:
a) ich interpretiere Deine SQL-Vorgabe so, dass nach Ausführung des SQL-Befehles die Datenbank so strukturiert ist, dass wenn das Gruppenavatar via dem ACP geändert wird, die Mitglieder welche bereits ein Avatar haben, dieses erhalten bleibt. ?!?
hat mit der ursprünglichen nur bedingt zu tun.
Also: Nein, das User-Avatar wird bei Änderung im ACP auch geändert.

Von daher trifft
b) alle Mitglieder haben nach Ausführung des SQL-Befehles entweder ein eigenes Avatar oder das vorgegebene Gruppenavatar. Wenn man das Gruppenavatar später mal ändern möchte, muss somit nur die Grafik (*.png / *.JPG / *.gif) ausgetauscht werden? ?!?
zu.

Zu Deiner weiteren Frage:
Wenn ja, Wo ist dieses Gruppenavatar abgespeichert?
Wenn Du am Code nichts geändert hast, wird das Avatar im Verzeichnis /images/avatars/upload/gespeichert.
Ein Avatar der Gruppe 5 könnte so heißen: c5b49b5998a5074ad1a6d1fd00793c65_g5.jpg
Du erkennst sicherlich, wieso es das Gruppenavatar der Gruppe 5 ist und woran Du es erkennen kannst.

Re: Gruppen AVATAR nachträglich einpflegen/aktuaklisieren

Verfasst: 19.10.2013 15:16
von fontane
Miriam hat geschrieben:Die Vorgaben waren meiner Meinung nach unmißverständlich:
Sorry das ich es nicht verstehe, vermutlich weil IT-Programmierung nun mal nicht mein Fachgebiet ist!

Ich erkenne auf meine Eingangsfrage mit Deiner Ausführung leider keine Funktionsweise wie den Gruppenmitgliedern OHNE Avatar ein Avatar zugewiesen wird ohne bereits bestehende Avatar der Gruppe zu überschrieben. Es muss ja irgendwo der Datenbank auch gesagt werden, welches Avatar (Grafik) für die Mitglieder ohne Avatar verwendet werden soll.

OK, ich gebs (besser) auf, jedoch vielen Dank für den Zeitaufwand Deiner Bemühungen mir zu helfen.

Re: Gruppen AVATAR nachträglich einpflegen/aktuaklisieren

Verfasst: 19.10.2013 15:39
von Miriam
Wenn Du die SQL Query verstehen möchtest:

Code: Alles auswählen

    UPDATE phpbb_users SET user_avatar = ( SELECT group_avatar
    FROM phpbb_groups
    WHERE group_id =5 )
    WHERE user_avatar = ''
    AND group_id =5
heißt auf "menschlich"
Ändere die Tabelle phpbb_users und setze die Spalte user_avatar auf den Wert, der in der Tabelle phpbb_groups in der Spalte group_avatar hinterlegt ist.
Und zwar auf den Wert, bei dem der Eintrag in der Tabelle phpbb_groups für die Spalte group_id gleich 5* ist.
Das aber nur an den Stellen der Tabelle phpbb_users, bei denen der Eintrag in der Spalte user_avatar leer ist und die Spalte group_id gleich 5* ist.


* muß von Dir noch nach Deinen Vorgaben angepaßt werden.

Re: Gruppen AVATAR nachträglich einpflegen/aktuaklisieren

Verfasst: 19.10.2013 16:34
von fontane
Miriam hat geschrieben:heißt auf "menschlich"
das habe ich jetzt verstanden Danke:

Habe es mit einer Testgruppe (20) und zwei Testusern (einer mit ohne und einer mit eigenem Avatar) getestet

1. ich gebe via MySQLDumper in der Spalte "group_avatar" die Grafikadresse (c5ccfc0f147a95157cf2ae01f2f7068b_g20.png) manuell ein.
1.1. ich führe den SQL-Befehl aus (Gruppe-ID ist selbstverständlich auf 20 angepasst)
Ergebnis:
* User ohne Avatar bleibt ohne Avatar
* User mit Avatar behält sein Avatar
Hinweis: nach jedem Arbeitsschritt habe ich vorsichtshalber mal den Cache gelehrt

2. wenn ich das Avatar über das ACP mit Bild hinzufügen eingebe, wird das mitgliedereingene Avatare sofort überschrieben.
2.1 Da bringt der SQL-Befehl ja nichts mehr.

Was tun?

Re: Gruppen AVATAR nachträglich einpflegen/aktuaklisieren

Verfasst: 19.10.2013 17:44
von Miriam
fontane hat geschrieben: 1. ich gebe via MySQLDumper in der Spalte "group_avatar" die Grafikadresse (c5ccfc0f147a95157cf2ae01f2f7068b_g20.png) manuell ein.
Darf ich mal die von Dir neu erstellte SQL Query sehen?

Der Name des Bildes im Verzeichnis ist nicht gleich dem Namen des Bildes in der DB.

Re: Gruppen AVATAR nachträglich einpflegen/aktuaklisieren

Verfasst: 19.10.2013 19:38
von fontane
Miriam hat geschrieben:Der Name des Bildes im Verzeichnis ist nicht gleich dem Namen des Bildes in der DB.
Der SQL-Befehl von Dir funktioniert! :grin:

Das Problem liegt/lag wahrlich am/beim Bild.

Klicke ich im ACP auf das Avatar des Benutzer, wird mir ein kleines Rechteck angezeigt. Rechtsklick auf das Rechteck und "Bild in neuem TAB öffnen" ergab die URL = ../adm/images/avatars/gallery/gt_avatar.png. Ich habe das Bild gt_avatar.png nun dorthin kopiert und schon funktioniert es wie gewünscht.

In der Spalte "group_avatar" steht c5ccfc0f147a95157cf2ae01f2f7068b_g20.png
(Dateiname aus dem Verzeichnis "../images/avatars/upload/")

Wenn es Deiner Meinung nach so ok ist, und ich nichts mehr ändern muss, hat dann doch alles geklappt, :)

Re: Gruppen AVATAR nachträglich einpflegen/aktuaklisieren

Verfasst: 19.10.2013 20:56
von Miriam
Na bitte.
Schön, das es jetzt paßt.