Flatfile pohjainen artikkeli tietokanta. Hakee täsmäävät artikkelit eri tiedostosta ja tulostaa ne ruudulle.
Jokainen artikkeli sijaitsee omassa tiedostossaan. Kansiossa ./data/archive/ 1.db.php ja 2.db.php... Artikkeleita varten tehnyt menun, yhteen tiedostoon, jossa on artikkelin kuvaus ja id ysm. samalla rivillä kansiossa ./data/archive/artikkelit.db.php. Uusin artikkeli on aina ensimmäisenä.
id|kuvaus|yms. ------------------------ 3|artikkeli 3 |2004| 2|artikkeli 2 | 2001| 1|artikkeli 1|2000|
13.02.2005 Uusin versio saatavana osoitteesta http://kotisivu.suomi.net/lahteenmaki/projektit/welho/index.php.
19.04.2006 Hallinta sivut saatavana kyseiseen scriptiin. v1.0
13.05.2006 Paljon bugi korjauksia v1.4-130520060355
css
.artikkeli_box { border:1px solid #ccc; -moz-border-radius: .8em .8em .8em .8em; padding:10px; background: #ffffff; width:700px; margin-left: 0px; } .title /* textbox title */ { border:1px solid #ccc; padding:2px; background: #0052A2; -moz-opacity: 0.75; /* Asettaa siis transparencyn mozillalla (tarkemmin geckolla) */ font-family: 'Trebuchet MS', verdana, arial, helvetica, sans-serif; font-size:13px; color: #FFFFFF; } .artikkelitext { font-family: 'Trebuchet MS', georgia, verdana, arial, sans-serif; font-size: 11px; color: #000000; margin-left: 5px; } .artikkelitext img { border:15px solid #FFF; // vaikuttaa kuvan borderiin. }
archive.php
<div class="artikkeli_menu"> <?PHP // tarkistetaan löytyykö tarvittava hakemisto if(!is_readable("data/archive")){ die("Virhe !!!<br /> hakemistoa .data/archive ei löydy luettavaksi, tarkista chmod."); } //************************************************************ //* Hajautettu artikkeli tietokanta v.0.3 - lahtis[at]mbnet.fi //* http://koti.mbnet.fi/ysr/archive.php //* Listaa artikkelit tekstitiedostoista //************************************************************* // asetuksia //****************************** $datamenu = "artikkelit.db.php"; // artikkeleiden otsikot ja $id / tiedoston numero $database = "./data/archive"; // artikkeleiden sijainti ja hakemisto //****************************** // lasketaan otsikoiden/artikkeleiden todellinen määrä, tarvitaan väärien id tunnuksien tunnistamiseen. $file = file("$database/$datamenu"); $count = count($file); // vähennetään näkymätön tiedosto $count = $count-1; // tulostetaan artikkeleiden määrä sivulle. echo "<div class=\"title\">Julkaistuja artikkeleita yhteensä: $count kpl.</div>"; // Luetaan $datamenusta otsikot ja id/tiedosto tunniste // Uusin tiedosto sijaitsee kannassa aina ensimmäisenä. $file = file("$database/$datamenu"); $count = count($file); for($u=0; $u<$count; $u++) { $entry = explode("|", $file[$u]); $data = file("$database/$entry[0].db.php"); // tulostetaan artikkelit menuksi. Uusin ensimmäisenä. // tulostetaan artikkelin id, otsikko ja ja vuosi. echo "<a href=\"$PHP_SELF?id=$entry[0]\">$entry[1]</a> $entry[2] <br />"; } echo "<br/>"; ?> </div> <br /> <div class="artikkeli"> <?PHP $idt = (int) $_GET['id']; // haetaan arvot $_GET taulukon avulla, poistetaan turhat desimaalit (int). // hylkää id ($idt) tiedoista kaikki kirjaimet if($idt && !is_numeric($idt)) { die("VIRHE !!! Virheellinen ID tunniste.<br /><br /></div></body></html>"); } // hylkää tyhjän id:n ($idt) if($idt == "") { die("Ei valittua artikkelia, valitse näytettävä artikkeli.<br /><br /></div></body></html>"); } // näytetään artikkeli // verrataan on artikkelit.db.php saamaa tunnistetta $count // jos rivi täsmää niin annetaan jatkua if($count > $idt) { $config_use_1 = TRUE; } // lasketaan artikkeleiden ($count) määrä, jos ($id) id eivät täsmää niin tulostetaan virheilmoitus if($count < $idt) { $config_use_1 = FALSE; die("VIRHE !!! Virheellinen ID tunniste<br /><br /></div></body></html>"); } // ASETUKSIA $txtKansio = "./data/archive"; // teksti tietokannan kansion osoite $tpaate = ".db.php"; // tiedostopääte if ($config_use_1) { // Tulostetaan täsmäävä artikkeli $txtkansio="" . $txtKansio . "/" .$idt . "$tpaate"; $file = file("$txtkansio"); foreach ($file as $riveja) { // Silmukka, otetaan rivi muuttujasta $data muuttujaan $riveja. // Kieputetaan silmukkaa ympäri niin kauan, että viimeinenkin rivi on käsitelty. $tulosta = explode("|", $riveja); echo "$tulosta[0]"; } } // edellisen ja seuraavan artikkelin vaihto echo "<br/><br/>"; echo "<div class=\"title\">"; if ($idt < $count+1){ $pre = $idt-1; echo "<a href=\"$PHP_SELF?id=$pre\">edellinen artikkeli</a> | "; } // seuraavan artikkelin vaihto if ($idt < $count-1){ $next = $idt+1; echo "<a href=\"$PHP_SELF?id=$next\">seuraava artikkeli</a> "; } echo "</div>"; ?> </div></body></html>
Yhdys sanat :-o
siis missä? tässä tulee sokeaksi omalle koodille/tekstille.
Tuonne voisi tunkea dieHTML-funkkarin, joka lisäis automaagisesti tarvittavat lopetustagit.
Onko esimerkkiä (en kylläkään olisi tätä käyttämässä kun on mysql mahdollisuudetkin) :)
Tuollahan se kommenteissa lukee : http://lahtis.homelinux.org/new_ysr/archive.php
Olen tehnyt tämän siksi kun ei löytynyt vastaavaa scriptiä ja ála mysq:lia ei ole mbnetin palvelimella.
EI kyllä ole kummoinenkaan...
rantala on sitten hyvä ja tekee paremman... ;)
Ja tämähän on koodiVINKKI eikä valmis koodi.
Esimerkin url ei toimi...
joo servu ei ole aina päällä. Vastaavan toteutuksen voi käydä katsomassa osoitteessa http://koti.mbnet.fi/ysr/archive.php
jk. tekeillä on myös lisäys/muokkaus yms. osiot.
hallinta sivut on tehty ja ne saa ylhäällä mainitusta osoitteesta. http://kotisivu.suomi.net/lahteenmaki/php.php
Aihe on jo aika vanha, joten et voi enää vastata siihen.