Tworzę kolejną wersję systemu wortalowego. Aktualnie większość modułów jest dołączana przez szablon w <body>, nie ma więc dostępu do <head>, a więc możliwości zmiany <title>. Wyjątek stanowią wybrane, w tym moduły treści (pliki, arty, wolne strony...), dla których wczytuję przed znacznikiem <html> plik content.php (pobiera z bazy dane o elemencie oraz jego kategorii, ustawia <title>...).

Może nie jest to istotne dla wszystkich modułów (np. edycja konta użytkownika, sonda, użytkownicy, profil użytkownika, centrum zarządzania treścią + podstrony edycji elementów, archiwum), lecz pozwoliłoby np. dołączyć dodatkowy plik CSS. Dostosowany <title> to także ułatwienie dla wyszukiwarek i osób, które otwierają dużo kart w przeglądarce. smile.gif

Pomyślałem, że przed <html> kontroler wczyta logikę, a w <body> szablon główny dołączy szablon modułu (co już jest bardziej zgodne z zasadami MVC).
  1. <?php define('MOD', $catst.'szablon_modulu.php'); ?>

A jeżeli chcemy tylko wyświetlić informację? Zdefiniowana w głównym pliku skórki (global.php) funkcja Info($tekst) od razu wyświetla $tekst opakowany w <table> (w przyszłości może <div> lub <section>). Zresztą może lepiej przeznaczyć kolejny plik w skórce dla informacji, w szczególności że czasem w komunikatach pojawia się zbiór linków?

Inne rozwiązania:
  • output_buffering - testy w ab.exe wykazały, że buforowanie pod obciążeniem powoduje nieznaczny spadek ilości składanych stron na sekundę, a klient może czekać trochę dłużej na cokolwiek w przypadku dużego obciążenia
  • moduł = obiekt - rozwiązanie nie byłoby złe - ale w systemie napisanym w pełni obiektowo. Inaczej trzeba deklarować wiele zmiennych globalnych (najpopularniejsze: $cfg, $lang, $db (obiekt), $user, a może potem obiekt $tpl lub $style, jak zastosuję system szablonów).
Co możecie doradzić? Priorytetem i podstawowym celem dla tego systemu wortalowego jest szybkość i wydajność (zastosowania: głównie darmowe i wolniejsze serwery). smile.gif