Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Oddzielenie PHP od HTML'a
Kuziu
post
Post #1





Grupa: Zarejestrowani
Postów: 743
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Toruń

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


Witam ...
Wkońcu doszedłem do wniosku, że trzeba oddzielać php od HTML ... do tego czasu zbytnio mi to nie przeszkadzało ... jakoś się łapałem w kodzie ... ale ostatnio do niego długo nie zagladałem a teraz zaszła taka potrzeba ... i troche czasu straciłem na wyszukanie odpowiednich rzeczy.

Do rzeczy ... czytałem o Smarty ... ale na to się nie zdecyduję ... wolę raczej własny szablonik.

Chodzi tylko o podział php i TPL ... i teraz pojawia się problem.

Jak oddzielacie ten kod ?

Tak zupełnie ? że w plikach TPL nie ma żadnej komendy php'a ?
Czy tylko ograniczacie go do minimum /??/

np. mamy formularz z Logowaniem User'a i jeśli chciałbym zrobić że po wpisaniu złego hasła napis "Hasło:" będzie w innym kolorze ... żeby było widac co się źle wpisało ... albo jak się zostawi puste pole Login .... to by było ono na czerwono ...

Musiałbym w takim wypadku do pliku TPL dodac warunek php ... lub pisac klika oddzielnych plików TPL dla każdego rodzaju błędu ( to oczywiście jest bez sensu ) ... więc zacząłem z dodawaniem warunków w plikach TPL ... ale przez to wcale kod nie stał się bardziej przejrzysty niż php-HTML a wręcz moge powiedzieć że stał się jeszcze bardzej zagmatwany ....

Jak sobie z tym radzicie ?

Ten post edytował Kuziu 4.11.2004, 13:37:14


--------------------
Słońce zachodzi ... kolejna noc nadchodzi ...
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


W Smaty'm robisz to tak:

w .php ustawiasz zmienna np
  1. <?php
  2.  
  3. $smarty->assign( 'error', 2 ); // niepoprawne dane
  4.  
  5. ?>


a w .tpl

Kod
{if $error eq 0 }
ok
{elseif $error eq 1 }
...
{elseif $error eq 2 }
Niepoprawne dane
...
<formularz logowania>
...
{/if}


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Kuziu
post
Post #3





Grupa: Zarejestrowani
Postów: 743
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Toruń

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


Cytat
Do rzeczy ... czytałem o Smarty ... ale na to się nie zdecyduję ... wolę raczej własny szablonik.


--------------------
Słońce zachodzi ... kolejna noc nadchodzi ...
Go to the top of the page
+Quote Post
bela
post
Post #4


Administrator PHPedia.pl


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

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


to napisz obsługe ifów


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





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 4.11.2004

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


klasa obsługująca wypełnienie szablonów
  1. <?php
  2.  
  3. class Szablon {
  4. public $katalog; /* folder z szablonami np. /szablony/ */
  5. function wyswietl($plik) {
  6. $szablon = $this;
  7. error_reporting(E_NOTICE);
  8. include($this->katalog.$plik);
  9. }
  10. }
  11. ?>


przykladowy szablon: (awides.tpl)
  1. <html>
  2. <title><? echo $szablon->title ?></title>
  3. </html>


wyświetlasz:
  1. <?php
  2.  
  3. $szablon = new Szablon;
  4. $szablon->katalog = '/szablony/';
  5. $szablon->title = 'awides :)';
  6. $szablon->wyswietl('awides.tpl');
  7. ?>


i to wszystko.

Ten post edytował awides 4.11.2004, 15:47:31


--------------------
redFox |||||||||| 30%
----------------------------------
Go to the top of the page
+Quote Post
Kuziu
post
Post #6





Grupa: Zarejestrowani
Postów: 743
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Toruń

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


aha i teraz dzięki temu moge np. zrobić tak.

  1. <?php
  2.  
  3. $szablon = new Szablon;
  4. $szablon->katalog = '/szablony/';
  5. if($awides='dzieki'){
  6. $szablon->title = 'awides :)';
  7. }else{
  8. $szablon->title = 'Kuziu :)';
  9. }
  10. $szablon->wyswietl('awides.tpl');
  11. ?>


i mam warunek w kodzie php a w TPL zawsze jedną i tą samą zmienną.

Jesli dobrze rozumuje to wielkie dzięki.


--------------------
Słońce zachodzi ... kolejna noc nadchodzi ...
Go to the top of the page
+Quote Post
awides
post
Post #7





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 4.11.2004

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


Możesz dodać konstruktor żeby jeszcze bardziej uprościć kod:
  1. <?php
  2.  
  3. class Szablon {
  4. public $katalog; /* folder z szablonami np. /szablony/ */
  5.  
  6. public function __construct() {
  7. $this->katalog = '/szablony/';
  8. }
  9.  
  10. function wyswietl($plik) {
  11. $szablon = $this;
  12. error_reporting(E_NOTICE);
  13. include($this->katalog.$plik);
  14. }
  15. }
  16. ?>


  1. <?php
  2. $szablon = new Szablon;
  3. /* $szablon->katalog = '/szablony/'; -> linijka mniej :) */
  4. $szablon->title = 'awides :)';
  5. $szablon->wyswietl('awides.tpl');
  6. ?>


Ten post edytował awides 4.11.2004, 19:46:31


--------------------
redFox |||||||||| 30%
----------------------------------
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: 19.08.2025 - 19:09