Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zarządzanie treścią HTML przy użyciu PHP
Forum PHP.pl > Forum > PHP
gargamel
Jeśli temat był poruszany, to nie krzyczcie bo nawet nie bardzo wiem pod jakim hasłem szukać blink.gif

Niech każda strona serwisu będzie oparta na szablonie:

  1. layoutTop();
  2.  
  3. //Tutaj CSS i JS
  4.  
  5. layoutMid($pageTitle);
  6.  
  7. //Tutaj treść stronki
  8.  
  9. layoutBot();

layoutTop(), layoutMid() oraz layoutBot() to zdefiniowane w innym pliku funkcje wyświetlające HTMLa
Wszystko byłoby proste gdyby ten wyświetlany HTML był niezmienny.
On jednak zależy od tego jakie argumenty w ową funkcję wstawimy.
Np funkcja layoutMid($pageTitle) wygląda następująco:
  1. function layoutMid($pageTitle){
  2. echo "<title>".$pageTitle."</title>\n";
  3. echo "</head>\n";
  4. echo "<body>\n";
  5. }

Do tej pory te przykładowe 3 funkcje były zdefiniowane w pliku .php. Zaistniała jednak konieczność dodania możliwości modyfikacji ich z poziomu strony.
I tak jak wcześniej mówiłem gdyby nie to że w dużej mierze wyświetlany HTML jest uzależniony od przekazanych argumentów (w rzeczywistości jest ich dużo więcej, a funkcje zawierają instrukcje warunkowe itp...) to wrzuciło by się do bazy odpowiedni tekst i po sprawie. Tu jednak jak wiadomo samo to nie wystarczy.

Myślałem o rozwiązaniu tego na zasadzie preg_replace.
Do bazy zapisywało by się np:
  1. <title>[:::TITLE:::]</title>
  2. </head>

a funkcja layoutMid przez preg_replace zamieniałaby [:::TITLE:::] na to co otrzymałaby w $pageTitle.
Rozwiązanie to jednak wydaje mi się raz że dość toporne, 2 że w funkcjach są też instrukcje warunkowe i samo preg_replace już by nie wystarczyło.

Nie chce też od nowa koła wynajdywać, tylko zmodyfikować co mi do modyfikacji było dane najmniejszym nakładem pracy.
Wdzięczny będę więc za wszelakie hasła pod którymi rozwiązania problemu mam szukać, bądź naprowadzenie na jakąś technologię która mi w tym pomoże.
r4xz
http://www.phpro.org/tutorials/Model-View-...roller-MVC.html ?

  1. <?php
  2.  
  3. class indexController extends baseController {
  4.  
  5. public function index() {
  6. /*** set a template variable ***/
  7. $this->registry->template->welcome = 'Welcome to PHPRO MVC';
  8.  
  9. /*** load the index template ***/
  10. $this->registry->template->show('index');
  11. }
  12.  
  13. }
  14.  
  15. ?>


a potem w pliku masz np.

  1. <title><?php echo $welcome; ?></title>


i jak zrobić to umiejętnie to nawet ta drobna mieszanka php + html razem wygląda przejrzyście
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.