Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Niedziałający system szablonów, Prosty aż do bólu
Fipaj
post
Post #1





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 19.01.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Zrobiłem sobie system szablonów, prosty aż do bólu winksmiley.jpg, żeby go potem można rozwijać, udoskonalać itp.

Oto klasa:

  1. <?php
  2. /*
  3. szablon.klasa.php
  4. autor: fipaj
  5. wersja: 1.0
  6. */
  7. class szablon {
  8.     var $lokalizacja;
  9.  
  10.     function zaladuj_szablon () {
  11.         $szablon = file_get_contents ($this->lokalizacja, 'r');
  12.     }
  13.  
  14.     function dodaj_tag ($tag, $zamiennik) {
  15.         $szablon = str_replace ('{' . $tag . '}', $zamiennik, $szablon);
  16.     }
  17.  
  18.     function wyswietl_szablon () {
  19.         print ($szablon);
  20.         fclose ($szablon);
  21.     }
  22. }
  23. ?>


A oto jak ją wykorzystałem:

  1. <?php
  2. include ('szablon.klasa.php');
  3. $strona = new szablon ();
  4. $strona->lokalizacja_szablonu = &#092;"index.php\";
  5. $strona->zaladuj_szablon ();
  6. $strona->dodaj_tag ('tytul', 'To jest tytul!');
  7. $strona->wyswietl_szablon ();
  8. ?>


No i tak ją sobie przetestowałem na Lycosie. I oczywiście nie działa - wyświetla pustą stronę. Same reklamy sad.gif

Czy wina leży po stronie Lycosa czy po stronie skryptu??

Ten post edytował Fipaj 16.03.2005, 11:55:50


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Aż za prosta. A gdzie zmienna $szablon w klasie? he? powinna być zadeklarowana:
  1. <?php
  2.  
  3. class ...
  4. {
  5. var $szablon;
  6.  
  7. ?>

Odwoluj się do niej poprzez $this->szablon


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Fipaj
post
Post #3





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 19.01.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Ups... Jasne, masz rację. Ale ze mnie ... winksmiley.jpg

Ale nadal nie działa

Ten post edytował Fipaj 16.03.2005, 11:56:56


--------------------
Go to the top of the page
+Quote Post
Nievinny
post
Post #4





Grupa: Zarejestrowani
Postów: 134
Pomógł: 0
Dołączył: 27.01.2005
Skąd: Białystok

Ostrzeżenie: (0%)
-----


A gdzie deklaracja zmiennej szablon, powinno być tak:
  1. <?php
  2.  
  3. class szablon {
  4. var $lokalizacja_szablonu;
  5. var $szablon;
  6.  
  7. function zaladuj_szablon () {
  8. $this->szablon = file_get_contents ($this->lokalizacja, 'r');
  9. }
  10.  
  11. function dodaj_tag ($tag, $zamiennik) {
  12. $this->szablon = str_replace ('{' . $tag . '}', $zamiennik, $this->szablon);
  13. }
  14.  
  15. function wyswietl_szablon () {
  16. return ($this->szablon);
  17. }
  18. }
  19.  
  20. ?>

Użycie:
  1. <?php
  2. include_once('szablon.klasa.php');
  3. $strona = new szablon ();
  4. $strona->lokalizacja_szablonu = &#092;"index.php\";
  5. $strona->zaladuj_szablon ();
  6. $strona->dodaj_tag ('tytul', 'To jest tytul!');
  7. print $strona->wyswietl_szablon ();
  8. ?>


@nospor - ech, sekundy...

Ten post edytował Nievinny 16.03.2005, 11:53:46


--------------------
Go to the top of the page
+Quote Post
Fipaj
post
Post #5





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 19.01.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Czekajcie, bo tam jest w tym kodzie jeszcze jeden błąd. Oto najnowszy kod:

  1. <?php
  2. /*
  3. szablony.klasa.php
  4. autor: fipaj
  5. wersja: 1.0
  6. */
  7. class szablon {
  8.     var $lokalizacja;
  9.     var $szablon;
  10.  
  11.     function zaladuj_szablon () {
  12.         $this->szablon = file_get_contents ($this->lokalizacja);
  13.     }
  14.  
  15.     function dodaj_tag ($tag, $zamiennik) {
  16.         $this->szablon = str_replace ('{' . $tag . '}', $zamiennik, $this->szablon);
  17.     }
  18.  
  19.     function wyswietl_szablon () {
  20.         return $this->szablon;
  21.     }
  22. }
  23. ?>


  1. <?php
  2. include ('szablon.klasa.php');
  3. $strona = new szablon ();
  4. $strona->lokalizacja = &#092;"index.php\";
  5. $strona->zaladuj_szablon ();
  6. $strona->dodaj_tag ('tytul', 'To jest tytul!');
  7. print $strona->wyswietl_szablon ();
  8. ?>


Skrypt oczywiście nadal nie działa...

Ten post edytował Fipaj 17.03.2005, 08:34:50


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Może pliku ci nie zaczytal. Sprawdz funkcją file_exist czy on ten plik wogole widzi


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Fipaj
post
Post #7





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 19.01.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Zaczytał... sad.gif

Plik cały czas nie działa, powinien jakiś błąd wyskoczyć, parse error czy coś, a tu nic sad.gif


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




po print daj echo "ckolwiek" i zobacz czy się to wyswietli. Jak tak to napewno nie ma bledu skladniowego jakiegos, jak nie, znaczy ze jednak jest blad

edit: metoda file_get_contents nie ma takiego drugiego argumentu 'r'. poczytaj se o niej

Ten post edytował nospor 16.03.2005, 15:34:40


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
bela
post
Post #9


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

Ostrzeżenie: (0%)
-----


daj error_reporting(E_ALL);


--------------------
Go to the top of the page
+Quote Post
Fipaj
post
Post #10





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 19.01.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Co do tego "drugiego" atrybutu file_get_contents to oczywiście pomyłka, ale wynikająca nie z niewiedzy, lecz roztrzepania: początkowo było tam fopen(), ale zmieniłem...

Kiedy dałem error_reporting i jeszcze napisałem na końcu print 'cokolwiek' efekty widzicie na tej stronie:

http://www.members.lycos.co.uk/fipaj/scrip...zablon.test.php


--------------------
Go to the top of the page
+Quote Post
angel2953
post
Post #11





Grupa: Zarejestrowani
Postów: 199
Pomógł: 5
Dołączył: 8.07.2004
Skąd: gdynia

Ostrzeżenie: (0%)
-----


a CHMOD'y sprawdziłeś... Mi to wygląda jakby skrypt nie miał dostępu do tego pliku...


--------------------
Sygnaturkę ukradli
Go to the top of the page
+Quote Post
Fipaj
post
Post #12





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 19.01.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


CHMODY na pewno są OK. Jestem już prawie pewny, że wina leży po stronie Lycosa, ale na tym systemie będzie bazować cała moja strona i zanim kupię serwer z prawdziwego zdarzenia muszę mieć działający system szablonów. Błędne koło...


--------------------
Go to the top of the page
+Quote Post
angel2953
post
Post #13





Grupa: Zarejestrowani
Postów: 199
Pomógł: 5
Dołączył: 8.07.2004
Skąd: gdynia

Ostrzeżenie: (0%)
-----


@Fipaj: a nie możesz sobie postawić serwerka na localhoście?? Tam się najlepiej testuje :] Pod Windows'a polecam XAMPP...


--------------------
Sygnaturkę ukradli
Go to the top of the page
+Quote Post
Fipaj
post
Post #14





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 19.01.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Noszę się z postawieniem Locala od dawna... MySQL już zainstalowałem, ale php i Apache... ehhhh

Tymczasem musi mi ten skrypcik zadziałać :grrr:


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 10:27