Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Status użytkownika na głównej


Przejdź do rozwiązania Rozwiązane przez Macsch15,

Rekomendowane odpowiedzi

Opublikowano

Czy istnieje zmienna, lub inny szybki sposób na wyświetlenie statusu danego użytkownika na stronie głównej?

Bez pisania hooka itp. ?

ipbaddons.com

  • 4 tygodnie później...
Opublikowano

Otwieram na prośbę.

Nasz kolega już siedział za piracką wersję IPB, Ty też możesz
† Będziemy bronić SB po kres naszych sił †
Nie ma bolca na izolca!!!
Tłumaczes Power

Opublikowano

Ładuję:

        if ( ! $this->registry->isClassLoaded( 'memberStatus' ) ) // Load status class
        {
            $classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/member/status.php', 'memberStatus' );
            $this->registry->setClass( 'memberStatus', new $classToLoad( ipsRegistry::instance() ) );
        }

Wyświetlam:

        $fetchstatus = $this->registry->getClass('memberStatus')->fetchMemberLatest( $memberId ); // Fetch

Problem:

Pokazuje tylko : Array

 

 

ipbaddons.com

Opublikowano (edytowane)

 $fetchstatus do bitu szablonu.

 $this->registry->getClass( 'output' )->getTemplate( 'custom_templates' )->customBlock( $fetchstatus ); 

  
 

Edytowane przez Adam22

ipbaddons.com

Opublikowano (edytowane)

No to chyba mamy błąd. Bo $memberId w hooku ma tylko to:

        $status = $this->registry->getClass( 'memberStatus' )->fetchMemberLatest( $memberId ); // Fetch

Tak to wygląda ze strony memberstatus

 /**
     * Fetch the member's latest status update
     *
     * @param	int		Member ID
     */
    public function fetchMemberLatest( $memberId )
    {
    	$status = array();
    	$member = array();
    	
    	$this->DB->build( array( 'select'   => 's.*',
							     'from'	    => array( 'member_status_updates' => 's' ),
							     'where'    => 's.status_member_id=' . intval( $memberId ) . ' AND s.status_author_id=' . intval( $memberId ),
							     'order'    => 's.status_date DESC',
							     'limit'    => array( 0, 1 ),
							     'add_join' => array(array(  'select'	=> 'm.*',
															 'from'	    => array( 'members' => 'm' ),
															 'where'    => 'm.member_id=s.status_member_id',
															 'type'	    => 'left' ),
													 array(  'select'   => 'pp.*',
															 'from'	    => array( 'profile_portal' => 'pp' ),
															 'where'    => 'pp.pp_member_id=m.member_id',
															 'type'	    => 'left' ) ) ) );
															 
		$this->DB->execute();
		
		$row = $this->DB->fetch();
		
		if ( is_array( $row ) AND count( $row ) )
		{
			foreach( $row as $k => $v )
			{
				if ( substr( $k, 0, 7 ) != 'status_' )
				{
					$member[ $k ] = $v;
				}
				
				$status[ $k ] = $v;
			}
		}
		
		$this->_internalData['StatusData']  = $status;
		$this->_internalData['StatusOwner'] = $member;
		
		return is_array( $status ) ? $status : array();
    }
Edytowane przez Adam22

ipbaddons.com

Opublikowano

Zamiast fetchMemberLatest( $memberId ) musisz wypełnić argument identyfikatorem użytkownika od którego ma pobierać ten status, czyli np.

fetchMemberLatest( 1 )

1 jako identyfikatora głównego administratora.

 

To są podstawy podstaw.

  • Lubię to 1
Opublikowano (edytowane)

Ah, ja myślałem że automatycznie pobierze status zalogowanego użytkownika. (Bo właśnie czegoś takiego potrzebuję) Teraz rozumiem i działa, thx ;]

Edytowane przez Adam22

ipbaddons.com

  • Rozwiązanie
Opublikowano

Jeżeli chcesz aby pobierało ID aktualnie zalogowanego użytkownika, możesz zrobić tak:

fetchMemberLatest( $this->memberData['member_id'] )

Gdzie oczywiście obiekt memberData musi być wcześniej zdefiniowany.

(Registry instance...)member()->fetchMemberData()
  • Lubię to 1
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.