Mens våre eminente dokumentører (Er det egentlig et ord? Om ikke burde det klart bli lagt til i ordlista) har laget skisser over systemet, har jeg startet med å designe websidens rammeverk, det vil si hvordan den ser ut på et globalt plan. For alle sider man klikker seg inn på skal rammeverket opprettet vises. Dette gjøres lett ved å integrere siden mot PHP, og jeg skal gi et par eksempler på det senere.
Ovenfor er hvordan den statiske utviklingsversjonen av siden ser ut. Fanene i menyen fungerer på hva jeg synes er en fantastisk enkel men kraftig måte å skapen en illusjon av at det faktisk er faner. Teorien er at vi har små blokkelementer av typen a (lenker om du vil) som har en gitt verdi med border: 1px #000000 solid; samt litt padding og bakgrunnsfarge som stil. Det kjøres en sjekk om den gitte siden er valgt, og om den er det setter den til en annen stil der bakgrunnsfargen til elementet blir satt til hvit (bakgrunnen på hoveddokumentet) og den nederste kanten er skjult. Da skaper man illusjonen av faner mens det egentlig ikke er det.
Selve sjekken ser slik ut: <a class="fane<?php if($_GET['s'] == 1) echo " fs";?>" href="?s=1">Side 1</a> og viser med oppfeita skrift hva som er PHP-skriptet. Dersom siden s er definert som siden som tilhører elementet, i dette tilfellet 1, så legger den til "fs" i stilen slik at stilen blir "fane fs". Dette betyr at den arver først alle attributene til fane og deretter alle attributene til fs. Dersom fs bryter mot fane er det fs som er sterkest og vinner.
Tilbake til integrering av siden. For å lett integrere siden kan man kjøre noe som dette i hovedområdet (der du vil ha innhold):
<?php
$s = $_GET['s'];
if(isset($s))
include "tekst/$s.php";
?>
Dette er en veldig lett, men også utrygg måte å ha dynamikk på. Hva skjer hvis brukeren oppgir index.php?s=../index ? Jo, da inkluderes index.php i eningen og skaper nettleserens død. Vi kan også gjøre dette med andre filer som funksjoner.php og liknende, og da blir det hele ganske utrygt. Løsningen er å være veldig strikt på hvilke sider du skal ha tillatelse til å røre gjennom dynamikken:
<?phpDette gjør at vi kan lett holde styr på hva som blir inkludert. For å gjøre det hele penere kan vi derivere det hele ut i en funksjon:
$s = $_GET['s'];
if($s == "nyheter" || $s == 1 || $s == 2 ||
$s == 3 || $s == "leep")
{
include "tekst/$s.php";
}
else
{
include "tekst/nyheter.php";
}
?>
<?php
function inkluder($s)
{
if($s == "nyheter" || $s == 1 || $s == 2 ||
$s == 3 || $s == "leep")
{
include "tekst/$s.php";
}
else
{
include "tekst/nyheter.php";
}
}
?>
I så fall kan vi bare kalle på dette fra hoveddokumentet:
<?phpDette var dagens rablerier fra Robert om den nåværende utviklingen og valg som er tatt hittil. Planer videre er å komme med forslag til layout på databasen, noe man forhåpentligvis vil være spesielt enige i etterhvert.
inkluder($_GET['s']);
?>
1 kommentar:
Jeg skummet gjennom det du hadde skrevet nå. Jeg synes det er fint du skriver om slike ting. Jeg har sansen for dine tekniske finesser. Fortsett slik!
Per
Legg inn en kommentar