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

Hook z buttonami w userInfoPane


Rekomendowane odpowiedzi

Na moim forum padła propozycja dodania buttonu z wysyłaniem PW w widoku tematu, żeby to jakoś wyglądało postanowiłem to wrzucić w userInfoPane. Aby skorzystać z okazji postanowiłem zamiast robić to w szablonie to w końcu stworzyć tego pierwszego hooka :D
 
 
Początek poszedł jako tako dobrze.
 
Po kilku próbach osiągnąłem efekt który chciałem czyli wszystko wyświetla się w userInfoPane (w zamiarach miałem PW i dodanie znajomego, ale to drugie mogę pominąć bo z tego co się orientuje to trochę roboty z js :) )
 
Wygląda to tak:
Qhsex.jpg
 
 
Ale jak to u mnie bywa mam kilka problemów :D
 
1. Mimo ustawień (Enable/Disable) hooka by był wyłączony to i tak się wyświetla.
 
2. Po kliknięciu w PW przenosi tak jak powinno do tworzenia nowej PW, ale nie pobiera usera do którego wysłac pw.
 
 
 
A teraz plik php:

<?php

class contactUserInfo
{
	protected $registry;
	
	public function __construct()
	{
		/* Make registry objects */
		$this->registry = ipsRegistry::instance();
	}
	
	public function getOutput()
	
	{
		return $this->registry->output->getTemplate('global')->contactUserinfo();
	}
	
}

 
 
I szablon (wyciąłem kod ze znajomymi bo raczej tego nie będzie :D )

<div class="row1">

<ul class='ipsList_inline' id='user_utility_links'>
						<if test="pmlink:|$member['member_id'] != $this->memberData['member_id']) AND $this->memberData['g_use_pm'] AND $this->memberData['members_disable_pm'] == 0 AND IPSLib::moduleIsEnabled( 'messaging', 'members' ) AND $member['members_disable_pm'] == 0">
							<li class='ipsButton_secondary' id='pm_xxx_{$member['member_id']}'><a href='{parse url="app=members&module=messaging&section=send&do=form&fromMemberID={$member['member_id']}" base="public"}' title='{$this->lang->words['pm_this_member']}'>{parse replacement="send_msg"}</a></li>
						</if>
						</li>
</ul>
  
</div>

 
 
W szablonie jedyna zmienna to $member
 
 
Dzięki za wszelką pomoc lub wyjaśnienia ;)

admin4YSh2.png


 

Odnośnik do komentarza
Udostępnij na innych stronach

Póki co udało mi się z ustawieniami (włączanie/wyłączanie)
 
Kod php:

<?php

class contactUserInfo
{
	protected $registry;
	
	public function __construct()
	{
		/* Make registry objects */
		$this->registry = ipsRegistry::instance();
		$this->settings     =& $this->registry->fetchSettings();
	}
	
	public function getOutput()
	{
		if( ! $this->settings['mdx34_contact_userinfo_enable'] )
		{
			return false;
		}
		
		return $this->registry->output->getTemplate('global')->contactUserinfo();
	}
}

Ale też jest jeszcze jeden problemik bo wywala błędy w headerze:

Warning: Missing argument 1 for skin_global_17::contactUserinfo(), called in /home/mdx91/domains/cs-demon.pl/public_html/ipb/hooks/contactUserInfo.php on line 21 and defined in /home/mdx91/domains/cs-demon.pl/public_html/ipb/cache/skin_cache/cacheid_17/skin_global.php on line 45

Warning: Cannot modify header information - headers already sent by (output started at /home/mdx91/domains/cs-demon.pl/public_html/ipb/cache/skin_cache/cacheid_17/skin_global.php:45) in /home/mdx91/domains/cs-demon.pl/public_html/ipb/mechu/sources/classes/output/formats/html/htmlOutput.php on line 114

Warning: Cannot modify header information - headers already sent by (output started at /home/mdx91/domains/cs-demon.pl/public_html/ipb/cache/skin_cache/cacheid_17/skin_global.php:45) in /home/mdx91/domains/cs-demon.pl/public_html/ipb/mechu/sources/classes/output/formats/html/htmlOutput.php on line 127

Warning: Cannot modify header information - headers already sent by (output started at /home/mdx91/domains/cs-demon.pl/public_html/ipb/cache/skin_cache/cacheid_17/skin_global.php:45) in /home/mdx91/domains/cs-demon.pl/public_html/ipb/mechu/sources/classes/output/formats/html/htmlOutput.php on line 136

Warning: Cannot modify header information - headers already sent by (output started at /home/mdx91/domains/cs-demon.pl/public_html/ipb/cache/skin_cache/cacheid_17/skin_global.php:45) in /home/mdx91/domains/cs-demon.pl/public_html/ipb/mechu/sources/classes/output/formats/html/htmlOutput.php on line 137

Warning: Cannot modify header information - headers already sent by (output started at /home/mdx91/domains/cs-demon.pl/public_html/ipb/cache/skin_cache/cacheid_17/skin_global.php:45) in /home/mdx91/domains/cs-demon.pl/public_html/ipb/mechu/sources/classes/output/formats/html/htmlOutput.php on line 141

:)

admin4YSh2.png


 

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Jak przekazujesz zmienną do tego szablonu? Nie przekazujesz, a w nim samym pewnie zdefiniowałeś jakąś zmienną ($member ?).

return $this->registry->output->getTemplate('global')->contactUserinfo();

Na:

return $this->registry->output->getTemplate('global')->contactUserinfo( $member );

Oczywiście coś do tej zmiennej $member musisz w kodzie przyporządkować. Ja wiem co, ale może Ty spróbujesz sam, jak się chcesz uczyć.

  • Lubię to 1

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Dzieki :) Blad zniknal.

Tak jak napisales chce sie uczyc i nie chce gotowca tylko mam jeszcze dwa pytania.

1. Czy z ta zmienna $member moge sie wzorowac na innych hookach ktore pobieraja ID usera czy w userInfoPane bedzie to wygladalo inaczej?

2. Czy mozna ta zmienna "pobrac" (nie wiem czy dobrze to nazwalem) z innego szablonu (przegladajac hooki i dokumentacje/tematy zauwazylem ze cos takiego byloby troche latwiejsze - nie wiem czy dobrze rozumuje pliki innych hookow i czy dobrze to wydedukowalem :) )

PS. Wiem ze do tworzenia hookow jest potrzebna znajomosc php ale w ciagu kilku dni jej nie zdobede (choc sie powoli ucze) i moje pytania moga byc dla was (programistow) glupie, ale kazda wskazowka jest dla mnie przydatna ;)

admin4YSh2.png


 

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Nie wiem o co tak naprawdę pytasz, albo inaczej - nie wiem jak to rozumiesz, więc podawaj przykłady kodu, bo ten jest uniwersalny i na pewno się wtedy zrozumiemy.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Co do drugiego pytania to już nie ważne. Szukając informacji wpadłem na temat gdy ktoś tworzył hook i tam coś podobnego się przewinęło (pobieranie zmiennej z innego szablonu czy jak to tam inaczej nazwać), niestety teraz zgubiłem ten temat i nawet nie moge go pokazać, więc z tym daje spokój ;)

 

 

Co do pierwszego pytania to próbuję podpatrzeć i coś rozumować w oparciu też o inne hooki i tak jeden z najbardziej "podobnych" hooków to Member ID on Profiles. Przeglądnąłem plik hooka który wyświetla ID w userinfopane, ale nie ma tam w ogóle zmiennej $member. Na forum IPS naprowadzili mnie na ten wpis: http://community.invisionpower.com/blog/3628/entry-6191-hook-creation-walkthrough/

tam też nigdzie nie było tej zmiennej i zaczyna mnie zastanawiać czy z tą zmienną $member dobrze zacząłem?

 

 

Chciałem podglądnąć zmienną w szablonie z hooka Adriano, ale hook Member ID on Profiles nie dodaje szablonów.

 

Więc odstawiłem całkiem ten hook i zająłem się wpisem na stronie IPS. Z tego linka co podałem pobrałem hooka, aby sprawdzić zmienną i wszystko sobie po kolei ułożyć i popatrzeć jak to działa.

Zmienna użyta w szablonie to:

$author=array()

I o ile dobrze się domyślam to ta zmienna pobiera ID autora danego posta i wyświetla w temacie czy jest online/offline. Więc ja chcąc pobrać id również mam użyć tej zmiennej w swoim szablonie?

 

 

Mam też drugie pytanie bo kod z wpisu jak i ten z hooka Adriano w funkcji(?)

public function getOutput()

jest tylko return, a dopiero potem jest funkcja(?)

	public function replaceOutput( $output, $key )

W której jest "zabawa" ze zmiennymi. I tu kolejne pytanie czy popełniłem błąd że próbuję wszystko robić w getOutput?

:)

admin4YSh2.png


 

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • 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ę.