Piszę bardzo łatwy system szablonów, taki najprostszy. Ogólnie koncepcja jego działania polegała by na:
- sprawdzenie wybranego języka (w wersji uproszczonej na potrzeby pewnego projektu wczytywany będzie za pomocą include polski język)
- wczytywanie configa, etc.
- jeśli $_GET['strona'] != null includuje stronę o nazwie $_GET['strona'].php
- jeśli $_GET['strona'] == null pobiera treść "powitania" na stronie i includuje plik news.php i przypisuje wszystko do tablicy $tresc np. $tresc['powitanie'] (tu zaczną się schody, opiszę to dalej)
- jeśli $raporter != null usuwa poprzednie wartości tablicy $tresc i nadpisuje ją treścią raportera (raporter - system wyświetlania wiadomości - np. "Pomyślnie dodałem newsa do bazy danych" albo "Błąd podczas łączenia się z bazą danych".)
W taki mniej więcej sposób działał będzie system php, który będzie umieszczony w pliku index.php
Poniżej znajduje się funkcja, która pobierze odpowiedni szablon z folderu tpl.
Mój problem polega na tym, że wiem jak wyświetlać zwykłą treść, np powitanie będzie miało postac $tresc['powitanie'] i tyle, ale jak wyświetlić cały system newsów? newsy w pliku news.php odczytywane są za pomocą pętli, więc nie bardzo wiem jak przyporządkować je do jednej zmiennej. Poza tym w starym systemie strony w pliku news.php są divy pomagające wyświetlić w ładny sposób newsy. To zadziała gdy szablon strony się nie zmieni. A co jeśli styl narzucony przez news.php nie będzie pasował do całego tpl? Poza tym news.php będzie zawierał w sobie stronicowanie.
Może wydawać się to trochę skomplikowane dlatego wrzucę kod
<?php $zapytanie = 'SELECT * FROM newsy ORDER BY id DESC'; if ($rekord['autor'] != 'Konto usunięte'){ }else{ } } }else{ } ?>
Jak widać w linijce np. 8 został użyty div "news_tytul".
Resumując - jak umieszczać system newsów za pomocą zmiennej $tresc['...']? To samo pytanie można by zadać jeśli chodzi o logowanie includowane z pliku logowanie.php (ale tu już łatwiej - jeśli nie zalogowany $tresc['logowanie'] to formularz, a jeśli zalogowany to np. Witaj $_SESSION['nick'])
Jeśli macie jakieś rady, ciekawe "sztuczki" odnośnie systemu szablonów to poradźcie mi
