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

Hello world - własny hook


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

Rekomendowane odpowiedzi

Hej.

 

Aż się zdziwiłem że w sieci tak mało, a właściwie żadnego porządnego (nawet od IPS?!?!?!) guida nt hooków. Jedyne co mają, https://www.invisionpower.com/support/guides/_/advanced-and-developers/hooks/ jest outdated i mocno nieprzydatne. 

Starałem się samemu coś wymodzić, proste hello world, ale nie udało się. W związku z tym spytam tutaj :-)

 

Na początek, jak w ogóle dodać własnego hooka? :-) Jeżeli dobrze rozumiem to:

 

1. Tworzę plik "siema.php"

2. Wrzucam go do /hooks

3. Wchodzę do ACP -> dodaje nowego hooka i w ostatniej zkładce wklepuje:

  * File name in hooks directory: siema.php
  * This file's class name: hookCurrentUsers

  * File hook type: Action overloader

  * The class this file extends: public_forums_forums_boards

4. Zapisuje i tyle?

 

siema.php content:

<?php

class hookCurrentUsers extends public_forums_forums_boards
{
	public function doExecute( ipsRegistry $registry )
	{		
		parent::doExecute( $registry );
	}
	
	public function getActiveUserDetails()
	{
		$a = parent::getActiveUserDetails();

		$a['TOTAL'] = 666;

		return $a;
	}
}

W założeniu na głównej powinno się pojawiać zawsze, że jest 666 użytkowników online.

Problem oczywiście jest taki, że nie działa ;-)

 

> Gdzie może być błąd?

> Nie wiem czy muszę overloadować doExecute(). Zgapiłem to z innego hooka.

> Dlaczego nie mogę wyrzucić plików z hooka? Mogę tylko dodawać nowe ale dodanych nie moge usunac?! Musze usuwac calego hooka?!

> Czy podmieniając siema.php wynik powinien byc widoczny od razu? Czy cos sie cachuje?

 

Dzięki !

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Generalnie jest OK.

Spróbuj zdebugować i wpisać np. pod tym:

public function getActiveUserDetails()
{

Wpisać:

echo 1;

I sprawdzić czy się wyświetla 1 na stronie głównej.

  • 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

cześć DawPi.

 

Nie wyświetla się niestety. Można jakoś zobaczyć w logach czy siema.php faktycznie został załadowany? Znasz odpowiedź na któreś z czterech pytań na koniec mojego pierwszego postu?

 

Dzięki

 

EDIT: po dodaniu hooka raz jeszcze, działa. Widocznie coś z plikami namieszałem. Problem jest taki że nie mogę ich usunąć po dodaniu, musze calego hooka wgrac na nowo. To normalne?

Edytowane przez Morfi
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Ad 1 - właśnie to próbujemy ustalić.

Ad 2 - nie musisz. Ale jak to zwykle bywa - kwestia tego, co chcesz zrobić.

Ad 3 - jak to nie możesz? Możesz.

Ad 4 - nic się nie keszuje. O ile oczywiście nie masz włączonej takiej opcji na serwerze, a w to wątpię.

  • 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

  • Manager

Jak usunąć? Co Ty chcesz usuwać dokładnie? Masz przecież opcję usuwania pojedynczych plików z rozszerzenia - będąc na stronie z jego edycją (ostatnia zakładka).

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

1. No już działa :)

2. ok

3. no wlasnie nie! check this out: http://cap.ring0.cc/492fbcacc6a1e2157b5d945038d37c76.pngnawet onhover sie nic nie pojawia, tylko moge dodawac

4. ok

 

w kazdym razie problem lezal w tym ze stary hook targetowal zly plik (nie byl to siema.php tylko siema_a.php - moj blad). Dodajac drugi plik i wpisujac siema.php, obydwa *i tak* targetowaly siema_a.php z jakiegos powodu, stad moje pytanie o usuwaniu plikow. Pomoglo po prostu stworzenie nowego hooka. :)

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager
  • Rozwiązanie

Ah, nie włączyłeś trybu developerskiego. Wtedy się taka możliwość pojawia:

pre_1425113501__2015-02-28_09-55-34.png

  • 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

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