Zdjęcia profilowe dla użytkowników Joomla?

9

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->usernamezwraca nazwę zalogowanego użytkownika, powinna istnieć jakaś podobna zmienna (lub skrypt / kod), która wyświetli zdjęcie profilowe zalogowanego użytkownika?
Jakieś szanse?

saibbyweb
źródło

Odpowiedzi:

10

Jest tak naprawdę całkiem nowa wtyczka, którą możesz chcieć zobaczyć o nazwie Joom Profile. Zamiast pełnego komponentu społecznościowego, jest on po prostu przeznaczony do rozszerzania profili użytkowników. Daje również elastyczność dodawania większej liczby pól i zastępowania danych wyjściowych. Tak naprawdę nie grałem zbyt wiele, ale słyszałem o tym dobre rzeczy.

Profil Joom

Brian Peat
źródło
Należy zauważyć, że jest to płatne pobieranie.
Mohd Abdul Mujib
extensions.joomla.org/extension/joom-profile może również działać
Eoin
8

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:

// 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();

Sprawdź https://github.com/mosets/profilepicture dla pozostałych interfejsów API.

Mam nadzieję że to pomoże

Lodder
źródło
Przy użyciu powyższego kodu nic nie jest wyświetlane na stronie. Kiedy usunąłem ten wiersz z powyższego kodu 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.jpgpodczas gdy rzeczywista ścieżka obrazu http://localhost/media/plg_user_profilepicture/images/200/8a639a6998494f88b94826cfba68655179d010ee.jpg (ukośnik) / jest zastępowana przez DS w adresie URL ścieżka??
saibbyweb
I jeszcze jedna rzecz, którą działa powyższy kod, jeśli zostanie umieszczony w artykule, ale tylko poprzez usunięcie tej liniiif( $profilepicture->exists() )
saibbyweb
@lodder nie byłoby lepiej zrobić z duplikowaniem jądra Joomla! Wtyczka profilu użytkownika i dodanie pola?
Eoin
@Eoin Może to być nawet możliwe w przypadku pól niestandardowych .... nie jestem pewien. Nigdy ich nie użyłem ani nie będę z nich korzystać. Ale tak, możesz zduplikować podstawową wtyczkę Profile i edytować ją, jeśli wolisz, jednak jeśli są jakieś aktualizacje lub poprawki błędów wprowadzone do oryginalnej wtyczki, prawdopodobnie nigdy się nie dowiesz, chyba że będziesz uważnie śledzić repo
Lodder
To prawda, ale możesz też zastąpić wtyczki. Nie testowałem tego, ale ten stackoverflow.com/questions/17372379/... wydaje się wskazywać, że ktoś miał pewne sukcesy z jw_sig. Wydaje mi się, że wszystko zależy od tego, czy możesz przesłonić XML w taki sam sposób, jak w przypadku elementów menu, ale nie zakładam.
Eoin
7

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ą:

  • Pola niestandardowe
  • Awatara
  • Lista użytkowników i wyszukiwanie
  • Podstawowe warunki z grupami użytkowników
  • Przeadresować
  • Most Jomsocial
  • Rejestracja i edycja kart profilu Widok
  • Styl nazwy
  • Rejestracja i edycja profilu Joomla
  • Wtyczka autora i treści
  • Joomla Native Multilanguage
  • Rodzaj logowania
  • Kontrola prywatności
  • Social Connect (tylko wersja Pro)
johanpw
źródło
1
Kolejny głos na Easy Profile, który niedawno odkryłem. To rozszerzenie znacznie przekracza moje oczekiwania i obecnie używam go do zbudowania prostego katalogu biznesowego członka. To zdecydowanie warte swojej ceny!
Neil Robertson,
Możesz także wypróbować extensions.joomla.org/extension/joom-profile
Eoin
3

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

łoś
źródło
Tak naprawdę nie musisz tego robić, jeśli używasz wbudowanej Joomla! wtyczka profilu. Relacja bazy danych zostanie już zbudowana przy użyciu XML. Tak naprawdę nie potrzebujesz pliku pomocnika, nie sądzę.
Eoin
3

Można to osiągnąć za pomocą niestandardowych pól teraz.

wprowadź opis zdjęcia tutaj

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ą.

Joomla!  Wtyczka profilu użytkownika

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.

Eoin
źródło