Programowanie
Szablon
Podstawowy kod szablonu | Podstawowy kod szablonu |
|
|
Projektowanie rozpoczniemy od stworzenia prostego podstawowego kodu szablonu. Kod umieszczany jest w skrypcie index.php. Szablon nazwiemy 00_podstawa, a więc dokładnie tak samo, jak założony wcześniej katalog.
Pseudokod - struktura skryptu index.phpPlik Rola PHP w skrypcie szablonuInstrukcje PHP mogą posłużyć nam do:
W pierwszym przypadku posługujemy się funkcjami Joomla! i Mambo przeznaczonymi do wykorzystania w szablonach. W drugim przypadku korzystamy z instrukcji PHP odczytujących potrzebne dane, W trzecim przypadku korzystamy z funkcji W przypadku czwartym korzystamy z funkcji W ostatnim korzystamy ze sposobów oznaczania komentarzy w skryptach PHP. Struktura dokumentu HTMLDokument HTML musi zawierać:
Skrypt <php // kod PHP przygotowujący utworzenie dokumentu HTML ?> <!DOCTYPE ....... /> <!-- :: deklaracja typu dokumentu --> <html> <!-- :: rozpoczęcie dokumentu HTML --> <head> <!-- :: rozpoczęcie nagłówka dokumentu HTML --> </head> <!-- :: zakończenie nagłówka dokumentu HTML --> <body> <!-- :: rozpoczęcie treści strony WWW --> </body> <!-- :: zakończenie treści strony WWW --> </html> <!-- :: zakończenie dokumentu HTML --> Polecenia HTML można wpisywać w skryptach PHP bezpośrednio. Nie trzeba ich wprowadzać instrukcjami PHP. Tworzenie skryptu możemy więc rozpocząć od wypisania znaczników HTML budujących prosty poprawny dokument HTML: <!DOCTYPE ....... /> <html> <head> </head> <body> </body> </html> Zawartość pliku index.php dla szablonu PodstawaOtwórz w swoim edytorze zapisany wcześniej w katalogu <?php /* 00_podstawa.php. Szkielet pliku index.php */ defined( '_VALID_MOS' ) or die( 'Zasób zastrzeżony' ); /* konieczne, wyodrębnia kod ISO ze stałej _ISO z pliku etykiet i komunikatów językowych */ $iso = explode( '=', _ISO ); /* xml prolog - skomentowany, aby wymusić tryb zgodności */ // echo '<?xml version="1.0" encoding="'. $iso[1] .'"?' .'>'; ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo _LANGUAGE; ?>" lang="<?php echo _LANGUAGE; ?>"> <head> <meta http-equiv="Content-Type" content="text/html; <?php echo _ISO; ?> " /> <?php mosShowHead(); if ($my->id) {initEditor(); } ?> <script type="text/javascript"></script> <link rel="stylesheet" type="text/css" title="Standardowy" href="<?php echo $GLOBALS['mosConfig_live_site']; ?>/templates/<?php echo $mainframe->getTemplate(); ?>/css/template_css.css" media="screen" /> <link rel="shortcut icon" href="<?php echo $mosConfig_live_site;?>/images/favicon.ico" /> </head> <body> <div id="header"> <!-- nagłówek --> <h1><?php echo $GLOBALS['mosConfig_sitename']; ?></h1> </div> <div id="content_main"> <!-- treść główna --> <?php mosMainBody(); ?> </div> <div id="nav_bar"> <!-- pasek nawigacyjny --> <?php mosLoadModules( 'left' ); ?> </div> <div id="misc_bar"> <!-- różne inne treści --> <?php mosLoadModules( 'right' ); ?> </div> <div id="footer"> <?php include_once( $GLOBALS['mosConfig_absolute_path'] . '/includes/footer.php' ); ?> <div> </body> ObjaśnieniaGłównym zadaniem pliku Nagłówek pliku PHP i prolog XMLSkrypt rozpoczyna się od nagłówka. 001 <?php 002 /* 00_podstawa.php. Szkielet pliku index.php */ 003 defined( '_VALID_MOS' ) or die( 'Zasób zastrzeżony' ); 004 /* konieczne, wyodrębnia kod ISO ze stałej _ISO z pliku etykiet i komunikatów językowych */ 005 $iso = explode( '=', _ISO ); 006 /* prolog XML - skomentowany, aby wymusić tryb zgodności */ 007 // echo '<?xml version="1.0" encoding="'. $iso[1] .'"?' .'>'; 008 ?>
Deklaracja typu dokumentu i sekcja HEAD dokumentu HTMLTuż za nagłówkiem i prologiem XML umieszczona została wymagana w dokumentach HTML deklaracja rodzaju dokumentu, a następnie znacznik <?php mosShowHead(); if ($my->id) {initEditor(); } ?> Mamy tutaj dwa polecenia. Polecenie Instrukcja warunkowa: Struktura treści - kod elementu <body>
Każdy element objęliśmy znacznkiem
Polskie czy angielskie nazwy?To wprawdzie drobna kwestia, właściwie bez znaczenia, ale rozstrzygnijmy ją na początku. Będziemy tut posługiwać się nazwami z angielskim źródłosłowiem. Taka konwencja nazw nada projektom waloru uniwersalności. Jeśli zechcemy nasz projekt upublicznić, skorzystają na tym użytkownicy z innych nacji. Ale jako się rzekło - po polsku czy angielsku - nie ma znaczenia. Ważniejsze, czy czy nazwy nazywają treści, funkcje, jakie spełnia obiekt, czy też służą oznakowaniu wyglądu - położenia, kształtu, rozmiaru, koloru… Znakowanie semantyczneDobrą praktyką jest znakowanie semantyczne. Nazwa powinna wskazywać, co to jest, a nie jakie jest, czy gdzie zostało umieszczone. Nazwiesz pasek nawigacyjny #lewy, a potem uznasz, że chcesz nawigację umieścić po prawej stronie. Oczywiście, wystarczy zmienić nazwę… Na pewno? A powiązania? Znakowanie semantyczne to także wykorzystanie elementów HTML w ich właściwej roli: Jeśli element jest tytułem, stosuj Pierwszy test
Nasz szablon zawiera już niezbędne skrypty: konfiguracyjny, Wywołaj swoją witrynę testową w dowolnej przeglądarce. Jeśli uruchomiłeś sewer na lokalnym komputerze, wystarczy w pasku adresu wpisać np.: Skorzystaj z modułu Zmień szatę. Wybierz z listy rozwijanej szablon 00_podstawa, a następnie kliknij przycisk Ustaw. Hokus, pokus… Szablon działa! Pierwszy sukces. Jak widzisz, naprawdę nic trudnego! Oczywiście. Efekt jest na razie ubogi. Opublikowane materiały sformatowane zostały zgodnie z regułami arkusza stylów przeglądarki. Opublikowane zostały jeden pod drugim - podział treści głównej na kolumny to efekt działąnia kodu formatującego ten element zawartości, a nie szablonu. Szablon spełnił tylko jedną ze swych funkcji: umożliwił wygenerowanie na serwerze dokumentu źródłowego strony i przesłanie go do przeglądarki. Ale to oznacza, że strona zostanie pokazana także w innych urządzeniach odczytujących. Uwagi, źródłaJeżeli masz sugestie odnośnie treści lub chcesz zgłosić poprawki do tego rozdziału, skomentuj go albo umieść wiadomość na forum: Dokumentacja - Propozycje, zmiany, poprawki Dziękujemy! Stefan Wajda, Zespół Dokumentacji PCJ |
| « poprzedni artykuł | następny artykuł » |
|---|






W elemencie 
