Portal w pięć minut

Tworzenie pojedynczej strony WWW często zaczyna się od rozrysowania projektu na kartce. Po ustaleniu rozmieszczenia poszczególnych elementów i przygotowaniu ewentualnych grafik całość trzeba przełożyć na język HTML. Później musimy jeszcze to i owo “dopieścić”, a na końcu, gdy projekt jest już gotowy, możemy ożywić całość, zastępując statyczny kod HTML odpowiednimi skryptami. Taką pracę znacznie przyspieszymy, korzystając z różnego rodzaju kreatorów stron WWW.

Dużo trudniejsze jest sporządzenie całej sieciowej witryny. W tym przypadku projekt musi być bardzo dokładnie przemyślany, gdyż niektóre elementy – takie jak menu czy baner reklamowy – będą obecne na wszystkich podstronach serwisu i muszą się z nimi odpowiednio komponować. Stworzenie portalu internetowego wymaga zatem od jego twórcy nie tylko dobrej znajomości języków HTML i PHP, ale również zdolności plastycznych i sporego nakładu pracy. Dodatkowo nie obejdzie się bez znajomości problematyki funkcjonalności serwisów WWW. Pisaliśmy o tym w $(LC84440:CHIP-ie 2/2004)$.

Czy zatem konstruowania portalu internetowego nie uda się przyspieszyć i uczynić go dostępnym również dla mniej zaawansowanych osób? W tym przypadku nie ma mowy o użyciu jakiegoś kreatora. Możemy natomiast posłużyć się CMS-em, czyli systemem zarządzania treścią (Content Management System). CMS to w rzeczywistości zestaw skryptów, zawierający jeden lub więcej szablonów serwisu WWW, które modyfikujemy według określonych zasad. Wielką zaletą CMS-u jest to, że po jego zainstalowaniu pozostaje już tylko wypełnić treścią nasz portal.

W Internecie dostępnych jest wiele różnych CMS-ów (patrz: artykuł na

s. 110

). Możliwości niektórych są naprawdę imponujące: oferują na przykład logowanie wielu użytkowników, odczyt poczty przez stronę WWW, forum dyskusyjne itp. Niestety, taka mnogość funkcji oznacza zwykle, że przed wdrożeniem całego systemu czeka nas wertowanie obszernej instrukcji obsługi. Na dodatek wiele oferowanych opcji często okazuje się zbędne.

Zajmiemy się zatem opracowaniem własnego CMS-u, który na stronie umieści jedynie podstawowe elementy, ale za to nawet początkującym użytkownikom nie nastręczy problemów w obsłudze. Będziemy chcieli również mieć możliwość zmiany szaty graficznej całego portalu bez konieczności przerabiania plików z informacjami umieszczanymi w witrynie.

Taka elastyczność wcale nie musi oznaczać ograniczeń. Poszczególne strony serwisu będą mogły zawierać treść “statyczną” lub zaawansowane skrypty, pozwalające na korzystanie ze wszystkich dobrodziejstw oferowanych przez tandem PHP-MySQL.

Na początku był szablon

Tworzenie CMS-u zaczniemy od zaprojektowania szablonu strony. Będzie ona zawierała menu boczne oraz ramkę, w której znajdzie się “właściwa” treść. Menu zorganizujemy w postaci bloków złożonych z kilku podmenu. W HTML-u każdy taki blok będzie osobną tabelą:

<table width=”160″ border=”0″ cellspacing=”0″ cellpadding=”0″>
<tbody>
<tr><td class=”tytulMenu”><b>  Menu1</b></td>
</tr>
<tr>
<td class=”trescMenu”> <strong><big>· </big></strong> <a href=
“index.php”>podmenu1</a><br>
<strong><big>·</big></strong> <a href=”index.php”>podmenu2
</a><br>
<strong><big>·</big></strong> <a href=”index.php”>podmenu3
</a><br>
</td>
</tr>
</tbody>
</table>
<br>
<table width=”160″ border=”0″ cellspacing=”0″ cellpadding=”0″>
<tbody>
<tr>
<td class=”tytulMenu”><b>  Menu2</b></td>
</tr><tr>
<td class=”trescMenu”>
<strong><big>·</big></strong> <a href=”index.php”>podmenu1
</a><br>
<strong><big>·</big></strong> <a href=”index.php”>podmenu2
</a><br>
<strong><big>·</big></strong> <a href=”index.php”>podmenu3
</a><br>
<strong><big>·</big></strong> <a href=”index.php”>podmenu4
</a><br>
</td></tr>
</tbody></table>

Ramka, w której umieścimy treść strony, również będzie miała postać tabeli:

<table width=”100%” border=”0″ cellspacing=”0″ cellpadding=”10″>
<tbody>
<tr>
<td class=”ramka”>
<h3>Tytuł ramki</h3>
Zawartość ramki
</td>
</tr>
</tbody>
</table>

Rozmieszczenie menu oraz treści prezentowanej na stronie WWW określimy dzięki kolejnej tabeli zdefiniowanej w skrypcie.

Wybierz z menu

Pierwszy skrypt, który napiszemy, będzie zawierał klasę związaną z pojedynczym podmenu. W klasie umieścimy pola $nazwa i

$link

. Oprócz konstruktora zdefiniujemy tylko jedną metodę służącą do wyświetlenia zawartości:

class Podmenu {
var $nazwa, $link;
function Podmenu($nazwa, $link) {
$this->nazwa=$nazwa;
$this->link=$link;
}
function pokaz() {
echo ‘<strong><big>·</big> </strong> <a href=”‘.$this
->link.'”>’.$this->nazwa.’ </a><br >’;
}
}

Więcej:bezcatnews