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->username
der 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?
quelle
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:
Weitere Informationen zu den restlichen APIs finden Sie unter https://github.com/mosets/profilepicture .
Hoffe das hilft
quelle
if( $profilepicture->exists() )
, wurde auf der Seite ein fehlerhaftes Bildsymbol angezeigt, das versuchte, das Bild von diesem Pfad abzurufen,http://localhost/mediaDSplg_user_profilepictureDSimagesDS200DS8a639a6998494f88b94826cfba68655179d010ee.jpg
während der tatsächliche Bildpfadhttp://localhost/media/plg_user_profilepicture/images/200/8a639a6998494f88b94826cfba68655179d010ee.jpg
(der Schrägstrich) / in der URL von durch DS ersetzt wird der Weg??if( $profilepicture->exists() )
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:
quelle
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
quelle
Dies kann heutzutage mithilfe benutzerdefinierter Felder erreicht werden.
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.
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.
quelle