Skocz do zawartości
  • 0
Warmix

Działanie buttonów

Pytanie

Na jakiej zasadzie działają przyciski w widoku tematu, typu: "Odpowiedz"? Chciałbym dodać obok swój link, ale nie dane z tego linka są przekazywane? W jakim plik deklaruje się działanie tego, co przekaże nam ten linki, który będzie tam wyświetlony? Dodam, że dodaję wszystko poprzez przeciążenie skina oraz nadpisuję funkcję topic przekazując ją bitowi topic_1, gdzie wszystko edytuję :P Oczywiście chciałbym, jak najmniej mieszać w plikach standardowych, dlatego też, czy da się zrobić tak, żeby działanie obsługiwał plik hooka?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

21 odpowiedzi na to pytanie

Polecane posty

  • 0

Nie rozumiem Cię :) W szablonie masz umieszczony kod przycisku. Jest to zwykłe <a href.... z parametrami

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

No ok, ale gdzie przekazywane są zmienne GET? I czy da się zrobić tak, żeby były przekazywane do pliku hooka i tam będzie można na nich operować? (chodzi o jak najmniejsze ingerowanie w główne pliki)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

jak zrobisz hook nadpisujący akcję to możesz wszystko robić z parametrami GET/POST

  • Like 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

ehh... jaki link powinien być zawarty, aby wykonywało się to, co dam w pliku php, a potem wracało do tego samego tematu? Ciągle coś próbuję i za każdym razem: "Ups! Coś poszło nie tak!".

 

2. Jak pobrać do pliku hooka id obecnie zalogowanego użytkownika? $_SESSION['member_id'] nie działa ;/

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

Ad 2.

$this->memberData[ 'member_id' ]

Taki link, żebyś mógł zweryfikować, że ma robić Twoje. np. w linku powinno być &params=moj i wtedy sobie w kodzie robisz:

if( isset( $this->request[ 'params' ] ) && $this->request[ 'params' ] == 'moj' )
{
//Rób coś tam
}
  • Like 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

Ale w hraf mam podać odnośnik do plika hooka? (/hook/hook.php?) Czy może tak jak w innych buttonach index.php?app=forums&module=post...?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

jak robisz hook nadpisujący akcję to dajesz normalnie index.php?app=forums.... a w pliku swojego hooka w doExecute() sobie obrabiasz

  • Like 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

Mógłbyś wyjaśnić o co chodzi z tym doExecute()? Rozumiem, że musi to pewnie dotyczyć tego: index.php?app=forums&module=post&section=post&do=edit_post... biorąc jako przykład, bo jeśli nie dodam tego parametru 'do', to wywala: "Ups! Coś jest nie tak!", ale znów jak to dodam, to wywala mi, że "Nie możemy zweryfikować jaką akcję chcesz wykonać."... ;/

Edytowano przez Warmix

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

Robisz hook, który nadpisuje akcje np. public_forums_post_post i ona musi zawierać metodę doExecute lub inną, której działanie chcesz nadpisać.

  • Like 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

aha, czyli tam w hooku dodać kolejny plik i zdeklarować tam nowy pilik, jego klasę, a jako typ rozszerzenia wybrać akcję przeładowania? Jako klasę rozszerzenia wpisać 'public_forums_post_post'? I rozumiem, że w tym pliku hooka muszę całą funkcję doExecute dodać do pliku hooka i tam wprawdzić zmiany, czy wystarczy, że wprowadzę do niej swoje zmiany i zadziałają pozostałe?

 

PS. Próbowałem znaleźć to doExecute i coś tam znajduje, ale nie jestem pewien, czy to na pewno to. W jakim pliku będzie to dobre?

Edytowano przez Warmix

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

tzn nie musisz doExecute, nadpisać możesz dowolną metodę w tej klasie, która jest zadeklarowana jako public lub protected. Zasada jest taka sama jak w skinach, czyli możesz dać swój kod jako warunek np.

if( isset( $this->request[ 'params' ] ) && $this->request[ 'params' ] == 'moj' )
{
    //Rób coś tam
}
else
{
parent::doExecute( $registry );
}
  • Like 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

Mam taki problem. Gdy zrobię przeciążenie skina skin_topic, a dodam też inny plik jako przeładowanie akcji i tam tam: public_forums_post_post dezaktywują mi się oba pliki i nic nie zostaje nadpisane... co może być przyczyną?

 

2. Jeśli zrobię w pliku coś takiego, jak ty dałeś, to link musi wyglądać tak??:

index.php?app=forums&module=post&section=post&params=moj ?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

Ad 1. dezaktywuje bo może coś źle dałeś? Czy przeciążenie akcji ma normalnie

<?php ....

?

Ad 2. Tak, musi to być standardowy link z dodaniem na końcu/początku params=moj

  • Like 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

No właśnie ma normalne <?php Odinstalowałem hooka, dodałem wszystko jeszcze raz i nie działa... Przeciążenie skin_forum działa, skin_topic nie no i przeładowanie akcji też nie działa ;/

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

no to skin_topic czy przeciążenie akcji? bo piszesz teraz o kilku różnych rzeczach

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

Gdy włączę przeciążenie akcji, to wyłącza mi się przeciążenie skin_topic... I przeciążenie akcji też nie działa

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

Wyeksportuj hook i podeślij na PW to zerknę, bo wg. mnie coś przekombinowałeś dlatego nie działa

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

No ja się nie dziwie... podstawy kolego podstawy :)

<?php
class temat_dodaj extends (~extends~)
{
    if( isset( $this->request[ 'params' ] ) && $this->request[ 'params' ] == 'moj' )
    {

    }
    else
    {
		parent::doExecute( $registry );
    }
}

?>

jak już to nie tak, tylko:

<?php
class temat_dodaj extends (~extends~)
{
    public function doExecute( ipsRegistry $registry ) 
    {
        if( isset( $this->request[ 'params' ] ) && $this->request[ 'params' ] == 'moj' )
        {

        }
        else
        {
            parent::doExecute( $registry );
        }
    }
}

?>
  • Like 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

Ok :D

 

Na początku musiałem dać class temat_dodaj extends public_forums_post_post, bo jak dodałem to (~extends~) to wywalało błąd: Parse error: syntax error, unexpected '(', expecting '{'  Mam nadzieję, że to w niczym nie przeszkadza, zważywszy, że teraz już wszystko działa :D

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

nie w niczym nie przeszkadza. Jakby coś było źle to miałbyś właśnie jakiś błąd, albo by nic nie działało :)

  • Like 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

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


  • Kto przegląda   0 użytkowników

    Brak zalogowanych użytkowników przeglądających tę stronę.

×

Ważne informacje

Kontynuując przeglądanie strony, wyrażasz zgodę na używanie przez nas plików cookies.