Oppdatering
March 7, 2008
Nå er det en lengre periode siden jeg har oppdatert her, og på grunn av sykdom så kunne jeg ikke stille på skolen i dag. Men jeg kan jo bruke tiden i senga på noe fornuftig, så jeg kommer til å skrive litt om de to klassene jeg har laget som er en del av problemstillinga mi i denne oppgaven.
Den siste tiden har det vært lite fremdrift på dette prosjektet på grunn av en annen weboppgave som vi har hatt på skolen. Men dette prosjektet har også inneholdt store deler utvikling innen JavaScript, så har på en noe usynlig måte også jobbet med dette prosjektet.
Den første klassen
Tar først for meg den største klassen. Denne klassen er kalt tsk_template og brukes som en template engine. Det vil si, den har kontrollen over designet, og henter formatering fra andre, mindre filer. Klassen inneholder 9 variabler (Variabler er deler av “programmet” som inneholder data/informasjon). 6 av disse er offentlige, mens de resterende 3 er private. De offentlige variablene kan brukes av det scriptet som bruker klassen, mens de private kan kun brukes av klassen selv. Disse variablene ser du på linje 3 til 12.
Variabler
| 3. | public $folder = ‘templates/’; | hvilken mappe filene* ligger i | |
| 4. | public $ending = ‘.tpl.htm’; | filendelsen filene er i | |
| 5. | public $loggedIn = false; | om brukeren er logget inn (True/false) | |
| 6. | public $top = ”; | initialiserer variablen til toppen av siden | |
| 7. | public $btm = ”; | initialiserer variablen til bunnen av siden | |
| 8. | public $main = ”; | initialiserer variablen til selve siden | |
| 9. | |||
| 10. | private $data = array(); | holder all informasjon som skal legges til | |
| 11. | private $sdata = array(); | samme som linjen over | |
| 12. | private $templates = array(); | holder navn til andre templatefiler |
* når jeg snakker om filene så mener jeg de små filene som inneholder kun deler av designet.
Dette var en oversikt og kort kommentar til variablene som klassen er satt sammen av. Jeg kommer ikke til å ta funksjonene på lik måte.
Funksjonene
| top($var) | Laster inn templatefilen som er angitt i $var til variablen $top som forklart over. |
| btm($var) | Samme som over, men til variablen $btm. |
| setDefault() | Kjører de to funksjonene over med valgte standardnavn for top() og btm() |
| main($var) | Samme som top() og btm(), men laster filen til variablen $main |
| loginout() | Fjerner alt som ikke skal vises om du er logget inn og motsatt. Det som skal vises når bestemmes ved hjelp av en HTML kommentar i templatefilen. |
| OnlyLogout($red)* | Hvis denne funksjonen kjøres så vil man bli vidresendt til den valgte siden om man ikke er logget inn. |
| OnlyLogin($red)* | Gjør det samme som funksjonen over, men om man kun kan være logget inn. |
| output() | Skriver ut hele siden. |
| format() | Formaterer $top, $main og $btm. Vanskelig forklare i korte trekk hva den gjør. Men forklarer under fremdriftspresentasjonen. |
| loop($a, $n, $c)* | Repeterer de delene av template-filene som er valgt ved hjelp av en HTML kommentar. |
| setData($array) | Går gjennom $array og setter det til $data som er skrevet om i delen om Variabler. |
| setSData($array) | Samme som funksjonen over, men skriver til $sdata istedetfor $data. |
| replace($a, $v) * | Blir kjørt fra funksjonen format(). Denne kjører andre funksjoner som oppdaterer innholdet. |
| loadTPL($n, $f)* | Laster inn template-filer til variablen $templates. |
| createLeftBar($t)* | Brukes kun i et annet prosjekt som bruker samme template-klasse som dette prosjektet. |
| createFormElement()* | Lager HTML form elementer. |
| debug() | Brukes til debugging under utvikling av nettsiden, skriver ut noen nødvendige variabler osv. |
| eregs($e, $s, $m, $m)* | en liten forenkling for å kjøre PHP funksjonen ereg() |
| checkHack($v, $a)* | Ser om det er et forsøk på hacking. Ikke 100% sikker, men kan hjelpe mot enkel hacking. |
| hackAttempth() | Denne funksjonen lagrer IP osv hvis funksjonen over finner ut at det er et hacke-forsøk. |
| * | Disse funksjonene har blitt litt forkortet, se kildekoden for lengre navn. |
Jeg kommer til å vise mer om hvordan klassene fungerer under fremdriftspresentasjonen.
Den andre klassen
Kommer senere.
Bra Thomas! Fint att du beskriver vad du jobbar med för tillfället. Du får gärna ge några kommentarer kring vad du upplever som svårt med jobbet och vad du lär dig. Även hur du ser att dina klasser ska användas.
/Mattias