Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP]Include htmla do php, czyli pseudo system szablonu
Osth
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 29.12.2012

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


Tak jak w temacie.
Próbowałem pozbyć się htmla ze skryptów php, stąd próba wrzucenia całego htmla w jeden plik i podzielenie tego na kawałki. Problem polega na tym, że wyświetla się sam tekst, tak, jakby nie było żadnego formatowania. Może ktoś ma pomysł, dlaczego?


1.php - http://wklej.org/id/938051/

index.php - http://wklej.org/id/938050/


Użyłem wklej.org, ponieważ jest to moim zdaniej bardziej przejrzyste (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Michael2318
post
Post #2





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


Użyj jakiegoś prostego systemu szablonów bo w tym co zaprezentowałeś to nie dość, że się w końcu pogubisz to jeszcze 40% całego kodu to będą funkcję html'a, wyświetlające '</div>' (IMG:style_emoticons/default/closedeyes.gif)

Ja używam takiego systemu szablonów:

  1. class template
  2. {
  3. public $dir = "templates/default/"; // TUTAJ ŚCIEŻKA DO PLIKÓW TPL
  4. public $file;
  5. public $tags;
  6.  
  7. public function __construct($file, $tags = array())
  8. {
  9. $this->file = $file;
  10. foreach($tags as $tag => $tagvalue)
  11. {
  12. $this->tags["{".$tag."}"] = $tagvalue;
  13. }
  14. }
  15.  
  16. public function tag($tags, $value = NULL)
  17. {
  18. if(!isset($value))
  19. {
  20. foreach($tags as $tag => $tagvalue)
  21. {
  22. $this->tags["{".$tag."}"] = $tagvalue;
  23. }
  24. }
  25. else
  26. {
  27. $this->tags["{".$tag."}"] = $tagvalue;
  28. }
  29. }
  30.  
  31. public function display()
  32. {
  33. $tmp = file_get_contents($this->dir.$this->file);
  34. $tmp = str_replace(array_keys($this->tags), array_values($this->tags), $tmp);
  35. $tmp = preg_replace("#\(\.(.*?)\.\)#", "", $tmp);
  36. echo $tmp;
  37. }
  38. }


Żaden mercedes to nie jest, ale przynajmniej php masz w plikach php, a html w plikach .tpl.
Przykład wyświetlania:

  1. $szablon = new template("plik.tpl");
  2. $wynik = rand(1,150);
  3. $szablon->tag(array(
  4. 'WYNIK' => $wynik)
  5. );
  6. $szablon->display();


I plik.tpl:

  1. <div style="background-color: red; color: yellow; font-weight: bold; text-align: center;">Wylosowano liczbę: {WYNIK}</div>


Ten post edytował Michael2318 26.01.2013, 09:46:52
Go to the top of the page
+Quote Post
Osth
post
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 29.12.2012

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


Dzięki za odpowiedź (IMG:style_emoticons/default/wink.gif)

Nie da się zrobić tego jednak jakims innym sposobem? Po prostu klasy to jest dla mnie jeszcze czarna magia, a Twój skrypt wiele mi nie mówi (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
miras
post
Post #4





Grupa: Zarejestrowani
Postów: 1 004
Pomógł: 9
Dołączył: 18.01.2011
Skąd: Siedlce

Ostrzeżenie: (30%)
XX---


spróbuj może z systemem szablonów SMARTY, masa poradników w sieci, może będzie Ci łatwiej zrozumieć...
Go to the top of the page
+Quote Post
kristaps
post
Post #5





Grupa: Zarejestrowani
Postów: 279
Pomógł: 36
Dołączył: 1.03.2012

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


Cytat(Osth @ 26.01.2013, 11:27:23 ) *
Nie da się zrobić tego jednak jakims innym sposobem? Po prostu klasy to jest dla mnie jeszcze czarna magia, a Twój skrypt wiele mi nie mówi (IMG:style_emoticons/default/tongue.gif)


Jeszcze. Poświęć parę godzin, najwyżej pytaj. Twoja metoda serio jest fatalna.
Go to the top of the page
+Quote Post
Osth
post
Post #6





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 29.12.2012

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


Okej, dziękuję, poczytam o tym i postaram się coś na tym zbudować - zapewne znajdzie się znowu w tym dziale w prośbą o pomoc (IMG:style_emoticons/default/biggrin.gif)


A tak tylko z ciekawości, dlaczego ten kod powyżej nie działa? Tak, jakby nie interpretował tego htmla.
Go to the top of the page
+Quote Post
Michael2318
post
Post #7





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


Kod, który CI podałem jest prosty. Po drugie, w tym systemie nie masz nic do edycji (chyba, że ściężkę do plików .tpl) - kopiujesz, wklejasz np. do pliku template.class.php, zapisujesz, includujesz do każdego pliku twojego CMSa i wartości, które mają iść do plików tpl, dodajesz w ten sposób, który przedstawiłem CI powyżej.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 28.09.2025 - 09:49