Tworzymy grę, część 4: Schemat strony

Mateusz Nowak
05.09.2015

IV - Schemat strony

Ostatnio podczas rozmowy na Gadu Gadu z jednym z użytkowników forum ViaWWW.pl dowiedziałem się, że każda "funkcja" gry (np. rejestracja, index, regulamin, zespół) stanowiła u niego osobny plik .html bądź .php. Poniżej postaram się przedstawić jak zapobiec takiej monotonnej pracy.

1. Podstawowy schemat
Załóżmy że nasza gra będzie 3 kolumnowa tzn. logo, poniżej 3 pionowe tabele. Jedna na menu, jedna na treść strony a jeszcze jedna na jakieś dodatkowe informacje zależne od nas. Kod tych tabel wyglądał by następująco:

 
<table align='center' width='80%'>
<tr><td colspan='3'>logo gry</td></tr>
<tr><td width='20%'>tabela 1</td><td width='60%'>tabela 2 (treść strony)</td><td width='20%'>tabela 3</td></tr> </table>

Oczywiście jest to przykładowa tabelka, żeby nie było, że tak to powinno wyglądać ;P

2. Dynamika skryptu
I teraz tak... jeśli chcielibyśmy dodać podstronę np. rejestrację do gry byśmy musieli tworzyć kolejny plik... Da się temu zapobiec.

PHP posiada bardzo przyjazną funkcję include, która dołącza do pliku wskazany inny plik. Funkcja ta wygląda następujaco:

include("$sciezka do pliku.rozszerzenie");
np. include("home.php");

Zakładamy, że chcemy by linki w naszej grze były przedstawiane w następujący sposób: http://www.nazwagry.pl/index2.php?action=newsy

Wartośc z wyrażenia ?action= (w przykładzie newsy), za pomocą funkcji include była by dołączana do pliku index2.php, czyli w powyższym przykładzie dołączony został by plik newsy.php.

3. Skrypt
By uzyskać jeden plik, do którego dołączane były by inne pliku wystarczy w miejsce tabela 2 (treść strony) wpisać następujący kod:

<?php
  $action_show = $_GET['action'];
  if($action_show != NULL &&   file_exists("$action_show.php")){
  include("$action_show.php");
  }
  else {
  include("home.php");
  }
?>

Jest to oczywiście najprostsza forma tego skryptu. Poniżej postaram się wytłumaczyć o co w nim chodzi.

$action_show = $_GET['action'];

- zapis ten pobiera zmienną ?action z adresu strony i zapisuje w zmiennej $action_show.

if($action_show != NULL && file_exists("$action_show.php")){

- sprawdza czy w adresie istnieje zapis ?action, czy nie jest on pusty oraz czy istnieje plik na serwerze o nazwie podanej w ?action i rozszerzeniu .php

include("$action_show.php"); 

- dołączanie pliku do strony

Jeśli natomiast skrypt się nie spełni (czyli nie będzie zapisku ?action lub plik nie będzie istniał) zostanie dołączony plik home.php.

Zgłoś swój pomysł na artykuł

Więcej w tym dziale Zobacz wszystkie