Profilbilder für Joomla-Benutzer?

9

Ich möchte dafür kein Community-Plugin installieren.
Ich möchte meinen registrierten Benutzern ein einfaches Upload-Bildformular zur Verfügung stellen, mit dem sie ihr Profilbild jederzeit hochladen und ändern können, und ich möchte dieses Bild auch mit Joomla-Variablen abrufen.
Ich meine, genau wie $user->usernameder Name des angemeldeten Benutzers zurückgegeben wird, sollte es eine ähnliche Variable (oder ein Skript / Code) geben, die das Profilbild des angemeldeten Benutzers anzeigt.
Irgendwelche Chancen?

saibbyweb
quelle

Antworten:

10

Es gibt tatsächlich ein ziemlich neues Plugin namens Joom Profile, das Sie sich ansehen möchten. Anstelle einer vollständigen Community-Komponente dient sie nur zum Erweitern von Benutzerprofilen. Sie haben außerdem die Flexibilität, weitere Felder hinzuzufügen und die Ausgabe zu überschreiben. Ich habe nicht wirklich viel damit gespielt, aber ich habe gute Dinge darüber gehört.

Joom-Profil

Brian Peat
quelle
Es muss angemerkt werden, es ist ein kostenpflichtiger Download.
Mohd Abdul Mujib
extensions.joomla.org/extension/joom-profile könnte auch funktionieren
Eoin
8

Die einzige Möglichkeit, dies ohne Verwendung einer Drittanbieter-Erweiterung zu erreichen, besteht darin, entweder ein eigenes Plugin zu schreiben oder das mit Joomla gelieferte Profil-Plugin zu bearbeiten. Das Bearbeiten der Kerndatei ist einfach ein No-Go- Bereich, daher werde ich damit nicht einmal beginnen.

Ich würde Ihnen dringend empfehlen, ein kleines und einfaches Plugin von Drittanbietern zu verwenden. Hier ist ein Plugin, das genau das für Joomla 3.4, Profilbild, tut:

http://extensions.joomla.org/extensions/extension/clients-a-communities/user-management/profile-picture

Um auf den Avatar zuzugreifen und ihn anzuzeigen, können Sie den folgenden Code verwenden:

// Import the Profile Picture library
jimport('profilepicture.profilepicture');

// Get the current user object
$user = JFactory::getUser();

// Instantiate the ProfilePicture class with User ID
$profilepicture = new ProfilePicture($user->get('id'));

// Output the picture
echo $profilepicture->toHTML();

Weitere Informationen zu den restlichen APIs finden Sie unter https://github.com/mosets/profilepicture .

Hoffe das hilft

Lodder
quelle
Mit dem obigen Code wird nichts auf der Seite angezeigt. Als ich diese Zeile aus dem obigen Code entfernte if( $profilepicture->exists() ), wurde auf der Seite ein fehlerhaftes Bildsymbol angezeigt, das versuchte, das Bild von diesem Pfad abzurufen, http://localhost/mediaDSplg_user_profilepictureDSimagesDS200DS8a639a6998494f88b94826cfba68655179d010ee.jpgwährend der tatsächliche Bildpfad http://localhost/media/plg_user_profilepicture/images/200/8a639a6998494f88b94826cfba68655179d010ee.jpg (der Schrägstrich) / in der URL von durch DS ersetzt wird der Weg??
Saibbyweb
Und noch etwas, der obige Code funktioniert, wenn er in einen Artikel if( $profilepicture->exists() )
eingefügt wird,
@lodder wäre das nicht besser mit dem Duplizieren des Kerns Joomla! Benutzerprofil-Plugin und Hinzufügen eines Feldes?
Eoin
@Eoin Dies kann sogar mit benutzerdefinierten Feldern möglich sein .... nicht sicher. Nie benutzt oder wird sie benutzen. Aber ja, Sie können das Kernprofil-Plugin duplizieren und bearbeiten, wenn Sie es vorziehen. Wenn jedoch Aktualisierungen oder Fehlerbehebungen am Original-Plugin vorgenommen wurden, werden Sie es wahrscheinlich nie erfahren, es sei denn, Sie folgen dem Repo eifrig
Lodder
Richtig, aber Sie können auch Plugins überschreiben. Ich habe es nicht getestet, aber dieser stackoverflow.com/questions/17372379/… scheint darauf hinzudeuten, dass jemand mit jw_sig Erfolg hatte. Ich denke, es hängt alles davon ab, ob Sie das XML auf die gleiche Weise wie mit Menüelementen überschreiben können, aber ich würde nicht annehmen.
Eoin
7

Ich habe zuvor ein Plugin namens Easy Profile verwendet . Zusätzlich zur Unterstützung von Avatars bietet es einige weitere Verbesserungen gegenüber dem integrierten Joomla-Benutzerprofilsystem. Die kostenlose Version ist etwas eingeschränkt, aber soweit ich mich erinnere, unterstützt sie immer noch Avatare.

Eine der Funktionen, die ich als nützlich empfand, war die Option, eine benutzerdefinierte Umleitung für die erste Anmeldung nach der Registrierung festzulegen. Diese Funktion wurde verwendet, um die Community-Regeln neuen Benutzern anzuzeigen.

Weitere verfügbare Funktionen (gemäß JED- Liste) sind:

  • Benutzerdefinierte Felder
  • Benutzerbild
  • Benutzerliste & Suche
  • Grundbedingungen mit Benutzergruppen
  • Umleiten
  • Jomsoziale Brücke
  • Ansicht "Registerkarten registrieren und bearbeiten"
  • Namensstil
  • Joomla Registrierung & Profil bearbeiten
  • Autoren- und Inhalts-Plugin
  • Joomla Native Multilanguage
  • Anmeldetyp
  • Datenschutzkontrolle
  • Social Connect (nur Pro-Version)
johanpw
quelle
1
Eine weitere Abstimmung für Easy Profile, die ich erst kürzlich entdeckt habe. Diese Erweiterung übertrifft meine Erwartungen massiv und ich verwende sie derzeit, um ein einfaches Unternehmensverzeichnis für Mitglieder zu erstellen. Das ist definitiv das Geld wert!
Neil Robertson
3

Ich habe vor einiger Zeit eine benutzerdefinierte Profilkomponente erstellt. Was Sie wahrscheinlich benötigen, ist eine Datenbanktabelle, die eine Benutzer-ID einer Benutzerbild-URL zuordnet. Erstellen Sie dann eine Hilfsdatei, um das Bild überall dort abzurufen, wo Sie es benötigen.

Um das Bild hochzuladen, habe ich, glaube ich, den Joomla-Bildmanager verwendet. Sie können also einfach einen Link bereitstellen, der den Manager öffnet, und ihm möglicherweise einen geänderten Pfad zuweisen, der zu einem Profilbildordner führt. Wenn Sie (wahrscheinlich) nicht möchten, dass alle verfügbaren Bilder (dh von allen Benutzern) angezeigt werden, können Sie alle Felder aus dem Bildmanager (dh Ihrer Bildmanagerinstanz) entfernen, indem Sie die entsprechenden untergeordneten Elemente aus dem Dokument entfernen Wenn es geladen ist, lassen Sie einfach die Schaltfläche "Durchsuchen" und die Beschriftung, die den Namen und den Pfad der Datei angibt, und speichern Sie den Pfad (URL) in der oben genannten Tabelle.

Ich habe AJAX verwendet, um dies zu erreichen. Wenn Sie auf den Link klicken, um das Bild hochzuladen / zu ändern, wird eine Javascript-Funktion aufgerufen, die die Benutzer-ID übergibt. Die Javascript-Funktion öffnet den Bildmanager, ruft den neuen Pfad ab und erstellt eine AJAX-Anforderung, die die Benutzer-ID und den Pfad zur Tabelle an eine PHP-Datei übergibt, die die Datenbank abfragt / aktualisiert. Voilà.

Hast du das gebraucht? Lassen Sie mich wissen, wenn dies für Sie interessant klingt. Gerne stelle ich Ihnen weitere Informationen zur Verfügung. Obwohl dies wahrscheinlich NICHT die beste Vorgehensweise ist.

Prost

Elch
quelle
Sie müssen dies nicht wirklich tun, wenn Sie das eingebaute Joomla! Profil-Plugin. Die Datenbankbeziehung wird bereits mit XML erstellt. Sie brauchen auch keine Hilfsdatei, glaube ich nicht.
Eoin
3

Dies kann heutzutage mithilfe benutzerdefinierter Felder erreicht werden.

Geben Sie hier die Bildbeschreibung ein

Meine vorherige Antwort für den Fall, dass jemand das nützlich findet. Das Obige ist wahrscheinlich relevanter, dies ist nur hier als Referenz.

Benutzerdefinierte Felder (obige Antwort) wären heute meine Präferenz.

Es gibt ein Plugin namens Benutzerprofil. Gehen Sie einfach zu Plugins und suchen Sie danach. Es sind einige zusätzliche Felder eingebaut, obwohl kein Bild. Wenn Sie es verbessern möchten, können Sie dieser Dokumentation folgen. Warnung. Ich vermute, dass dieses Plugin entfernt wird, da Fields es weniger nützlich macht.

Joomla!  Benutzerprofil-Plugin

https://docs.joomla.org/Creating_a_profile_plugin

Es ist nicht zu schwierig, es scheint wahrscheinlich viel schwieriger als es ist, bis Sie wissen, wie es geht. Wenn ich es tun würde, würde ich mir mit Sicherheit den vorhandenen Code ansehen und dann versuchen, ihn selbst anzupassen.

Hier ist eine Liste aller aktuellen Formularfeldtypen: https://docs.joomla.org/Standard_form_field_types

Möglicherweise möchten Sie jedoch speziell auf https://docs.joomla.org/Media_form_field_type zugreifen, um Zugriff auf den modalen Medienmanager zu erhalten.

Eoin
quelle