Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Include htmla do php
Forum PHP.pl > Forum > Przedszkole
Osth
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 wink.gif
Michael2318
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>' 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>
Osth
Dzięki za odpowiedź 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 tongue.gif
miras
spróbuj może z systemem szablonów SMARTY, masa poradników w sieci, może będzie Ci łatwiej zrozumieć...
kristaps
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 tongue.gif


Jeszcze. Poświęć parę godzin, najwyżej pytaj. Twoja metoda serio jest fatalna.
Osth
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 biggrin.gif


A tak tylko z ciekawości, dlaczego ten kod powyżej nie działa? Tak, jakby nie interpretował tego htmla.
Michael2318
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.