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

Tworzenie metody i błąd przy jej wywołaniu.


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

Rekomendowane odpowiedzi

Dzień dobry

Chciałbym wrzucać troszeczkę swojego kodu php do tworzonych szat graficznych, ale wiadomo, że musimy tańczyć jak zagra nam IPS. Żeby utworzyć jakąkolwiek klasę/metodę, którą będziemy mogli później użyć bezpośrednio w skinie, podążamy za tym poradnikiem.

 

Sposób na proste wyświetlenie "Hello world".
W folderze /cache/skin_cache/cacheid_1 (dla domyślnej szaty graficznej) tworzymy plik skin_helloworld.php

 

Plik wypełniamy następującą treścią:

<?php

class skin_helloworld extends output {

//===========================================================================
// <ips:template:desc::trigger:>
//===========================================================================
function helloWorld() {

$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<EOF
<div class='ipsBox'>
    <div class='ipsBox_container ipsPad'>
        Hello, World!
    </div>
</div>
EOF;

//--endhtml--//
return $IPBHTML;
}

}

Następnie np. w globalTemplate (bezpośrednio w szacie graficznej) robię coś takiego:
<php>
$html = ipsRegistry::getClass('output')->getTemplate('helloworld')->helloWorld();
</php>

{parse expression="$html"}

Efekt:
Fatal error: Call to a member function helloWorld() on a non-object in /opt/lampp/htdocs/ipb/cache/skin_cache/cacheid_1/skin_global.php on line 99

Po przebudowaniu cache skina, plik skin_helloworld.php jest automatycznie usuwany. Dzieje się to nawet po zwykłym kliknięciu buttona "Zapisz" przy edytowaniu szaty graficznej. Dlaczego plik cache skina wciąż wraca do swojej pierwotnej postaci? Jak żyć?

IPBFangorn.net - szaty graficzne IP.Board. Ostatni projekt - Esmona. Zaglądaj do nas również na profilu Facebook IPBFangorn.net.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Rozwiązanie

Najprostsza z możliwych opcji:

Wstawić do skina:

{parse include="nazwa_pliku.php"}

 

Wypełnić plik czym się da, wrzucić go do katalogu, jaki sobie tam ustawimy i wszystko ładnie działa, ładnie parsuje. Problem rozwiązany, temat można zamknąć.

IPBFangorn.net - szaty graficzne IP.Board. Ostatni projekt - Esmona. Zaglądaj do nas również na profilu Facebook IPBFangorn.net.

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