Nie chcę instalować żadnej wtyczki społecznościowej, aby to zrobić.
Chcę udostępnić moim zarejestrowanym użytkownikom prosty formularz do przesłania obrazu, który pozwoli im przesłać i zmienić swoje zdjęcie profilowe w dowolnym momencie, a także chcę pobrać ten obraz przy użyciu dowolnego rodzaju zmiennych Joomla.
Mam na myśli, tak jak $user->username
zwraca nazwę zalogowanego użytkownika, powinna istnieć jakaś podobna zmienna (lub skrypt / kod), która wyświetli zdjęcie profilowe zalogowanego użytkownika?
Jakieś szanse?
źródło
Jedynym sposobem na osiągnięcie tego bez użycia rozszerzenia innej firmy byłoby napisanie własnej wtyczki lub rozpoczęcie edycji wtyczki profilu dostarczanej z Joomla. Edycja pliku podstawowego to po prostu obszar, w którym nie można go uruchomić, więc nawet nie zacznę od tego.
Zdecydowanie zalecamy użycie małej i prostej wtyczki innej firmy. Oto wtyczka, która robi to samo dla Joomla 3.4, Zdjęcie profilowe:
http://extensions.joomla.org/extensions/extension/clients-a-communities/user-management/profile-picture
Aby uzyskać dostęp do awatara i wyświetlić go, możesz użyć następującego kodu:
Sprawdź https://github.com/mosets/profilepicture dla pozostałych interfejsów API.
Mam nadzieję że to pomoże
źródło
if( $profilepicture->exists() )
, na stronie była wyświetlana ikona uszkodzonego obrazu, która próbowała pobrać obraz z tej ścieżki,http://localhost/mediaDSplg_user_profilepictureDSimagesDS200DS8a639a6998494f88b94826cfba68655179d010ee.jpg
podczas gdy rzeczywista ścieżka obrazuhttp://localhost/media/plg_user_profilepicture/images/200/8a639a6998494f88b94826cfba68655179d010ee.jpg
(ukośnik) / jest zastępowana przez DS w adresie URL ścieżka??if( $profilepicture->exists() )
Wcześniej korzystałem z wtyczki o nazwie Easy Profile . Oprócz obsługi awatarów, posiada kilka innych ulepszeń w stosunku do wbudowanego systemu profili użytkowników Joomla. Darmowa wersja jest nieco ograniczona, ale o ile pamiętam, nadal obsługuje awatary.
Jedną z funkcji, które uznałem za przydatną, była opcja ustawienia niestandardowego przekierowania dla pierwszego logowania po rejestracji, funkcja, której używaliśmy do wyświetlania reguł społeczności nowym użytkownikom.
Inne dostępne funkcje (zgodnie z listą JED ) obejmują:
źródło
Jakiś czas temu utworzyłem niestandardowy komponent profilu. Prawdopodobnie potrzebujesz tabeli bazy danych odwzorowującej identyfikator użytkownika na adres URL obrazu użytkownika, a następnie utwórz plik pomocnika, aby pobrać obraz tam, gdzie jest on potrzebny.
Myślę, że do przesłania obrazu użyłem menedżera obrazów Joomla ... więc możesz po prostu podać link, który otwiera menedżera, a może zmodyfikować ścieżkę do folderu zdjęć profilowych. Lub, jeśli (prawdopodobnie) nie chcesz, aby wyświetlały wszystkie dostępne obrazy (czyli od wszystkich użytkowników), możesz usunąć wszystkie pola z menedżera obrazów (tj. Instancji menedżera obrazów), usuwając odpowiednie elementy potomne z dokumentu kiedy jest załadowany, wystarczy pozostawić przycisk „Przeglądaj” i etykietę wskazującą nazwę i ścieżkę pliku, a następnie zapisz ścieżkę (URL) do powyższej tabeli.
W tym celu wykorzystałem AJAX - kliknięcie linku w celu przesłania / zmiany obrazu wywołuje funkcję javascript, przekazując identyfikator użytkownika. Funkcja javascript otwiera menedżera obrazów, pobiera nową ścieżkę i buduje żądanie AJAX przekazując identyfikator użytkownika i ścieżkę do tabeli do pliku php, który pyta / aktualizuje bazę danych. Voilà.
Czy tego potrzebujesz? Daj mi znać, jeśli brzmi to interesująco, chętnie udzielę więcej informacji. Chociaż prawdopodobnie nie jest to najlepsza praktyka.
Twoje zdrowie
źródło
Można to osiągnąć za pomocą niestandardowych pól teraz.
Moja poprzednia odpowiedź na wypadek, gdyby ktoś uznał to za przydatne. Powyższe jest prawdopodobnie bardziej odpowiednie, to tylko tutaj w celach informacyjnych.
Niestandardowe pola (powyżej odpowiedzi) byłyby dziś moim wyborem.
Istnieje wtyczka o nazwie Profil użytkownika. Wystarczy przejść do wtyczek i wyszukać. Ma wbudowanych kilka dodatkowych pól, ale nie obraz. Jeśli chcesz go ulepszyć, postępuj zgodnie z tą dokumentacją. Ostrzeżenie. Podejrzewam, że ta wtyczka zostanie usunięta, ponieważ Fields czyni ją mniej użyteczną.
https://docs.joomla.org/Creating_a_profile_plugin
Nie jest to zbyt trudne, prawdopodobnie wydaje się o wiele trudniejsze, dopóki nie wiesz, jak to zrobić. Gdybym miał to zrobić, z pewnością spojrzałbym na istniejący kod, a następnie sam próbuję go dostosować.
Oto lista wszystkich bieżących typów pól formularza: https://docs.joomla.org/Standard_form_field_types
Ale możesz szczególnie zajrzeć na https://docs.joomla.org/Media_form_field_type, który zapewni dostęp do modalu Media Manager.
źródło