Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: Hajautettu artikkelikanta

Sivun loppuun

lahtis [05.12.2004 19:21:41]

#

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>

tejeez [07.12.2004 15:03:48]

#

Yhdys sanat :-o

lahtis [08.12.2004 13:22:43]

#

siis missä? tässä tulee sokeaksi omalle koodille/tekstille.

tsuriga [09.12.2004 03:22:37]

#

Tuonne voisi tunkea dieHTML-funkkarin, joka lisäis automaagisesti tarvittavat lopetustagit.

makeuu [09.12.2004 07:27:28]

#

Onko esimerkkiä (en kylläkään olisi tätä käyttämässä kun on mysql mahdollisuudetkin) :)

TETRIS [09.12.2004 14:29:53]

#

Tuollahan se kommenteissa lukee : http://lahtis.homelinux.org/new_ysr/archive.php

lahtis [09.12.2004 15:48:57]

#

Olen tehnyt tämän siksi kun ei löytynyt vastaavaa scriptiä ja ála mysq:lia ei ole mbnetin palvelimella.

jrantala [09.12.2004 18:22:22]

#

EI kyllä ole kummoinenkaan...

SysRq868 [11.12.2004 10:05:51]

#

rantala on sitten hyvä ja tekee paremman... ;)

Ja tämähän on koodiVINKKI eikä valmis koodi.

Draiz [18.12.2004 22:49:25]

#

Esimerkin url ei toimi...

lahtis [19.12.2004 03:14:15]

#

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.

lahtis [19.04.2006 22:54:37]

#

hallinta sivut on tehty ja ne saa ylhäällä mainitusta osoitteesta. http://kotisivu.suomi.net/lahteenmaki/php.php


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta