Web-palvelinohjelmointi : Harjoitukset 4 (24p)

Sukunimi-Etunimi:LabraUID:IDM14S1
Teht:Pist:Max
h04t01:X:6
h04t02:X:6
h04t03:X:6
h04t04:X:8
h04t05:X:4

Tehtävä 1 [6p]



Luo omaan tiedostoon Websivu.class.php luokka Websivu, jolla on vain ao. luokan sisältä ja sen aliluokissa käytettävissä olevat ominaisuudet (attribuutit)
Luokassa Websivu tulee olla vähintään seuraavat julkiset metodit Luokassa Websivu tulee olla lisäksi seuraavat private metodit:
Luo erillinen tiedosto h4t1-nayta-websivu.php, jossa luot uuden munkotisivu-olion Websivu-luokasta. Aseta sivullesi sopivat otsikko, avainsanat ja sisältö ja tulosta munkotisivu näkyviin selaimeen. Käytä luokan sisällyttämiseen __autoload-funktiota.
 

Tehtävä 2 [6p]



Olkoon olemassa  "vieraskirja-sovellus" vieraskirja.php:

<?php
require_once 'Vieraskirja.class.php';
echo '<h1>Vieraskirja</h1>' . "\n";
$viesti1 = new Viesti('Otsikko 1','Ekaa viestiä pukkaa, pukkaa', 'Ari Rantala', '31.1.2008');
$viesti2 = new Viesti('Otsikko 2','Tokaa viestiä pukkaa, pukkaa', 'Ari Juhani Rantala', '31.1.2008');
 $viesti3 = new Viesti('Otsikko 3','Kokaa viestiä pukkaa, pukkaa', 'Yuri Ahani Rantala', '1.2.2008');

$vieraskirja = new Vieraskírja();

$vieraskirja->lisaa($viesti1);
$vieraskirja->lisaa($viesti2);
$vieraskirja->lisaa($viesti3);


$vieraskirja->tulosta(); // Tulostaa kaikki lisätyt viestit
 echo '<p>Viestejä yhteensä '. $vieraskirja->viestilukumaara() . ' kappaletta</p>' . "\n";

 $viesti4 = new Viesti('Otsikko 4','Nekaa viestiä pukkaa, pukkaa', 'Arska Rantala', '1.2.2008');
 $vieraskirja->lisaa($viesti4);

 $vieraskirja->poista($viesti2);

$vieraskirja->tulosta();
 echo '<p>Viestejä yhteensä '. $vieraskirja->viestilukumaara() . ' kappaletta</p>' . "\n";

?>
joka ainostaan pystyy tulostamaan vieraskirjan (koodiin kirjoitetun) sisällön viestien lukumäärineen.

Kirjoita ohjelman tarvitsema luokka Vieraskirja.class.php, jonka toivottua runkoa näkyy seuraavassa:
class Vieraskirja {
private $viestit = array(); // Lisätyt viestit tallennetaan tähän taulukkoon

function __construct() {
}
function __destruct() {
$this->viestit = NULL;
}

public function lisaa($viesti) {
...
array_push($this->viestit,$viesti);
...
}

public function poista($viesti) {
...
}

public function tulosta() {
...
}

public function laskeViestilukumaara() {

}


Kirjoita lisäksi ohjelman tarvitsema luokka Viesti.class.php, jossa tulee olla ainakin tarvittavat ominaisuudet (attribuutit) viestin tietojen tallentamiseen. Viesti-luokan tulee sisältää tarvittavan konstruktorin ja destruktorin. Lisäksi tulee kirjoittaa ainakin tarvittava metodi yksittäisen viestin tietojen tulostamiseen.


Tehtävä 3 [6p]



Tätä tehtävää EI tehdä!

Kurssilla on aiemmin käsitelty nk. autolaskuri-sovellusta (autolaskuri.php), jossa autojen lukumäärät on välitetty sekä lomakkeen piilokentissä että hyperlinkkien mukana. Esim.
Volkswagenit ... : 3 kpl.
Opelit ......... : 5 kpl.
Toyotat ........ : 8 kpl.
Toteuta nähdyn käyttöliittymän mukainen autolaskuri-sovellus nyt täysin oliopohjaisesti luomasi Autolaskuri-luokan (Autolaskuri.class.php) avulla. Lisäksi tarvitaan luokkaa käyttävä sovellus h4t3-autolaskuri-oop.php


Tehtävä 4 [8p]



Kehitä tunnilla esitettyä blogi-ohjelmaa seuraavasti:



-
-
-
-
-


Tehtävä 5 [4p]


Lisää tunnilla esitettyyn tai edellä kehittämääsi blogi-ohjelmaan ominaisuus, jonka avulla blogimerkinnän yhteyteen voi liittää myös yhden kuvan. Ainoastaan .jpg- ja .png-kuvat tulee hyväksyä ladattavaksi ja näytettäväksi merkintöjen yhteyteen. Blogimerkinnän poiston yhteydessä myös siihen liitetty kuva tulee poistaa.




Huomaa: Jos et pääse paikalle palautuspäivänä, voit palauttaa harjoitukset viimeistään harjoituksia edeltävänä päivänä meilitse Ari.Rantala (at) jamk.fi kertomalla URLin, josta toimivat ratkaisut voi testata ja lähdekoodit nähdä pelkästään Web-selaimen avulla Ei ohjelmia liitetiedostoina!