[Rozwiązane] CMavatar kopia obrazka w inne miejsce
Wyniki 1 do 3 z 3

Temat: CMavatar kopia obrazka w inne miejsce

  1. #1
    Debiutant
    Dołączył
    09-04-2020
    Wpisy
    10
    Punkty
    2

    Domyślny CMavatar kopia obrazka w inne miejsce

    Hej. Mam zainstalowany dodatek CMAVATAR.
    Chciałabym skopiować 'odnośnik' do wgranego juz obrazka i przenieść go w diva aside, który się pojawia gdy user jest już zalogowany i pisze w nim "witaj, user. wyloguj".
    Niestety, kod jest bardzo pomieszany, wiele plików jest ze sobą powiązanych i wyszukiwanie i kopiowanie kluczowych fragmentów nic nie daje.
    Czy ktoś to przerabiał i wie dokładnie co skopiować i gdzie wkleić, żeby obrazek oprócz na stronie profilu wyświetlał się też w tym module z powitaniem?

  2. Pani Reklamowa
    Pani Reklamowa jest aktywna
    Avatar Panny Google

    Dołączył
    19-08-2010
    Skąd
    Internet
    Postów
    milion
    Pochwał
    setki
  3. #2
    Wiarus siristru awatar
    Dołączył
    28-05-2009
    Skąd
    Szczecin
    Wpisy
    2 293
    Punkty
    240

    Domyślny

    Z tego co widzę informacje o avatarze zapisywane są w tabeli #__user_profiles

    Kod PHP:
    $query->update($db->qn('#__user_profiles'))
    ->
    set($db->qn('profile_value') . ' = ' $db->q($avatarFileName))
    ->
    where($db->qn('user_id') . ' = ' $db->q($userId))
    ->
    where($db->qn('profile_key') . ' = ' $db->quote($this->profileKey)); 
    Zatem by w rodzimym module logowania Joomla pojawił się awatar należy go wywołać wprost z bazy. Musimy pozyskać ID aktualnie zalogowanego użytkownika:

    Kod PHP:
    $user Factory::getUser();
    $user->id 
    Mając ID możemy zapytać bazę danych o obrazek:

    https://docs.joomla.org/Selecting_data_using_JDatabase

    Kod PHP:
    $db JFactory::getDbo();
    $query $db->getQuery(true)
      ->
    select($db->quoteName('profile_value'))
      ->
    from($db->quoteName('#__user_profiles'))
      ->
    where($db->quoteName('user_id') . ' = ' $db->quote((int) $user->id));
    $db->setQuery($query);
    $currentAvatar $db->loadResult(); 
    Potem wywołać plik:
    Kod PHP:
    echo $currentAvatar
    Może być, że to sama nazwa pliku z rozszerzeniam wiec tzreba ją wywołać tak:

    Kod PHP:
    <img src="<?php echo JPATH_ROOT '/<ścieżka-do-katalogu-gdzie-masz-awatary>/' $currentAvatar?>" />
    Oczywiście robimy to wszystko w pliku modułu korzystając z nadpisywania szablonem: http://wiki.joomla.pl/Nadpisywanie_szablonem

    Nie testowałem tego i piszę tylko na podstawie tego co zaobserwowałem w plikach rozszerzenia. Kod może nie działać od razu i wymagać drobnych poprawek. generalnie ma prezentować jedno z możliwych rozwiązań. Nie jestem pewien czy funkcja rozszerzenia getAvatar może zostać wywołana w kodzie modułu bo tego nigdy nie próbowałem.
    Na Forum pomagam bezpłatnie ad maiorem Joomla gloriam
    Mimo pomocy na forum nie dajesz rady? Potrzebujesz by ekspert "zrobił to" za Ciebie?
    Napisz do mnie na PW. Argentum et Aurum nie zawsze jest konieczne ;)

  4. #3
    Debiutant
    Dołączył
    09-04-2020
    Wpisy
    10
    Punkty
    2

    Domyślny

    Dziękuję! Jezuniu, przed snem próbowałam własnie od strony bazy się za to wziąć, ale się teraz okazuje, że brałam złą tabelę i tak czy siak mieszałam w tym 'query' z gotowcem z mysqli. Powinieneś pelerynę nosić
    U mnie zadziałało to:

    Kod HTML:
    <div class ="avatar-side">                                <?php                 $user = JFactory::getUser();                $user->id;                                         $db = JFactory::getDbo();                $query = $db->getQuery(true)                    ->select($db->quoteName('profile_value'))                    ->from($db->quoteName('#__user_profiles'))                    ->where($db->quoteName('user_id') . ' = ' . $db->quote((int) $user->id));                $db->setQuery($query);                $currentAvatar = $db->loadResult();                                 echo '<img src="/images/avatars/' . $currentAvatar . '.jpg">' ;                                ?>            </div>
    Wkleiłam diva pod

    <?php echo JText::_('MOD_LOGIN_PROFILE'); ?></a>

    w modules/mod_login/tmp/default_logout.php - gdyby to kogoś kiedyś zainteresowało.

    Nie wiem czemu, ale JPATH_ROOT w moim echo nie dawał wyniku, a o dziwo bez niego działa. Może zależy od podstrony, jeśli na którejś nie będzie działał, to będę o tym pamiętać.

    Dziękuję bardzo <3


    Aj, źle wstawiam kod
    https://pastebin.com/n0DJNS5J

Podobne tematy

  1. Phoca joomfish. W phoce inne parametry w polskiej wersji a inne w tłumaczeniach.
    przez anja10 na forum Rozszerzenia - problemy z obsługą, zarządzaniem
    Odpowiedzi: 23
    Ostatni post/autor: 10-07-2014, 18:12
  2. Przeniesienie menu w inne miejsce szablonu
    przez wertjacek na forum Szablony, wygląd, formatowanie
    Odpowiedzi: 4
    Ostatni post/autor: 03-06-2011, 13:55
  3. Sectiontableentry - inne tło dla wierszy parzystych a inne dla nieparzystych.
    przez Vanitas na forum Szablony, wygląd, formatowanie
    Odpowiedzi: 5
    Ostatni post/autor: 07-06-2010, 17:51
  4. Problem. Prawe menu "schodzi" w inne miejsce
    przez ostry62 na forum Administracja Joomla!
    Odpowiedzi: 0
    Ostatni post/autor: 16-01-2009, 17:58
  5. forum by przemo w miejsce newsow
    przez djdandi na forum Joomla Power Edition
    Odpowiedzi: 11
    Ostatni post/autor: 24-01-2007, 14:12

Reguły pisania

  • Nie możesz zakładać nowych tematów
  • Nie możesz dodawać wypowiedzi
  • Nie możesz dodawać załączników
  • Nie możesz poprawiać swoich postów
  •