echo $kuvahtml;
 } else {
     if ($kysymys == "hae_kuva_ja_tiedot") {
         $pikkukuvakansio_osoite = Kuva::$kansion_os_kuvat_pikkukuvat;
         $kuvahtml = nayta_albumin_yksi_kuva($omaid, $id_alb, $id_kuva, $muokkaa_kuva, $uusi_kuva, $poista_kuva, $takaisin_albumilistaan_alb, $ed_kuva_alb, $seur_kuva_alb, $tauko_alb, $jatka_esitysta_alb, $tietokantaolio, $omat_valtuudet, $ikkunan_leveys, $ikkunan_korkeus, $pikkukuvakansio_osoite);
         echo $kuvahtml;
     } else {
         if ($kysymys == "hae_bongauskuva_ja_tiedot") {
             $pikkukuvakansio_osoite = Kuva::$kansion_os_bongauskuvat_pikkukuvat;
             $kuvahtml = bongaus_nayta_albumin_yksi_kuva($omaid, $id_lj, $id_kuva, $tietokantaolio, $omat_valtuudet, $ikkunan_leveys, $pikkukuvakansio_osoite);
             echo $kuvahtml;
         } else {
             if ($kysymys == "hae_diaesityskuva_albumeista") {
                 $kuvahtml = "Virhe (ajax_kyselyt_kuvat.php)";
                 if ($kokoelmanimi == Kuva::$KUVAT_ALBUMIT) {
                     $albumin_kuva_idt = hae_albumin_kuvien_idt($id_alb, $tietokantaolio, $omaid);
                 } else {
                     if ($kokoelmanimi == Kuva::$KUVAT_BONGAUS) {
                         $albumin_kuva_idt = bongaus_hae_kuvien_idt($id_lj, $tietokantaolio, $omaid);
                     } else {
                         $albumin_kuva_idt = array();
                         // Tyhjä taulukko.
                     }
                 }
                 if (!empty($albumin_kuva_idt) && sizeof($albumin_kuva_idt) >= $kuvan_nro) {
                     $naytettavan_kuvan_id = $albumin_kuva_idt[$kuvan_nro - 1];
                     /* Haetaan id:hen liittyvä kuva (1 kpl) */
                     $hakulause = "SELECT kuvat.id AS id,\n                                    kuvat.henkilo_id AS henkilo_id,\n                                    kuvat.kuvaotsikko AS kuvaotsikko,\n                                    kuvat.kuvaselitys AS kuvaselitys,\n                                    kuvat.vuosi AS vuosi,\n                                    kuvat.kk AS kk,\n                                    kuvat.paiva AS paiva,\n                                    kuvat.src AS src,\n                                    kuvat.leveys AS leveys,\n                                    kuvat.korkeus AS korkeus,\n                                    kuvat.tiedostokoko AS tiedostokoko,\n                                    kuvat.tiedostotunnus AS tiedostotunnus,\n                                    kuvat.tiedostonimi AS tiedostonimi,\n                                    kuvat.tallennusaika_sek AS tallennusaika_sek\n                            FROM kuvat\n                            WHERE kuvat.id = {$naytettavan_kuvan_id}\n                            LIMIT 1";
                     $osumataulukko = $tietokantaolio->tee_OMAhaku_oliotaulukkopalautteella($hakulause);
                     // Luodaan kuvaolio:
                     if (!empty($osumataulukko)) {
示例#2
0
/**
 * Palauttaa html:n albumin katselua varten, jossa näkyy yksi kuva kerrallaan.
 * Kuvia voi selata painikkeilla. Ikkunan leveys ja korkeus haetaan ajaxin avulla niin,
 * että kuva sopii ikkunaan.
 *
 * Painike, josta palataan takaisin albumilistaan.
 * Painike, josta päästään muokkaamaan kuvatietoja.
 *
 * @param <type> $omaid
 * @param <type> $id_alb
 * @param <type> $id_alb
 * @param <type> $id_kuva
 * @param <type> $takaisin_albumilistaan_alb
 * @param <type> $ed_kuva_alb
 * @param <type> $seur_kuva_alb
 * @param <type> $tauko_alb
 * @param <type> $jatka_esitysta_alb
 * ...jne...
 */
function nayta_albumin_yksi_kuva($omaid, $id_alb, $id_kuva, $muokkaa_kuva, $uusi_kuva, $poista_kuva, $takaisin_albumilistaan_alb, $ed_kuva_alb, $seur_kuva_alb, $tauko_alb, $jatka_esitysta_alb, $tietokantaolio, $valtuudet, $ikkunan_leveys, $ikkunan_kork, $pikkukuvakansio_osoite)
{
    // Nro 1 viittaa siihen, että rivillä on vain yksi kuva.
    $kuvateksti = true;
    // Pohjan leveys on rajoitettu, mikä pitää ottaa huomioon:
    if ($ikkunan_leveys > Kuvat::$POHJA_LEVEA_MAXLEV) {
        $ikkunan_leveys = Kuvat::$POHJA_LEVEA_MAXLEV;
    }
    $on_kaksipalsta = true;
    $max_lev_kuva = laske_kuvan_maksimileveys(1, $ikkunan_leveys, $kuvateksti, $on_kaksipalsta);
    // Laskee teoreettisen leveyden, mutta ei ota huomioon ikkunan korkeutta.
    $max_kork_kuva = laske_kuvan_maksimikorkeus($max_lev_kuva);
    // Otetaan mukaan ikkunan korkeus. Tämä ei ole kovin täsmällistä, koska
    // tässä sovelluksessa kuvan päällä olevan tekstialueen korkeus vaihtelee.
    $max_kork_kuva = min(array($max_kork_kuva, $ikkunan_kork - 185));
    // Tätä tarvitaan, jotta koon muutos ikkunan kokoa muutettaessa löytää
    // oikean albumin.
    $piilo_id = "<span id ='piilo_id'>" . $id_alb . "</span>";
    // Haetaan kaikki kuvat:
    $kuva_idt = hae_albumin_kuvien_idt($id_alb, $tietokantaolio, $omaid);
    $mj = "";
    //Metodin palauttama merkkijono.
    $lkm = sizeof($kuva_idt);
    $kuvan_jarjluku = 1;
    // Jos id_kuva on tyhjä, asetetaan se osoittamaan
    // ensimmäiseen kuvaan
    if (sizeof($kuva_idt) > 0 && (!isset($id_kuva) || $id_kuva == "")) {
        $id_kuva = $kuva_idt[0];
        $kuvan_jarjluku = 1;
    } else {
        // Muuten etsitään kuvan järjestysluku:
        for ($i = 0; $i < $lkm; $i++) {
            if ($kuva_idt[$i] == $id_kuva) {
                $kuvan_jarjluku = 1 + $i;
            }
        }
    }
    // Jos albumissa on korkeintaan yksi kuva, ei selauspainikkeita näytetä:
    if ($lkm < 2) {
        $ed_nappi = "";
        $seur_nappi = "";
    } else {
        // Kun on vähintään kaksi kuvaa:
        $seur_id = 0;
        $ed_id = 0;
        // Haetaan seuraavan ja edellisen kuvan id:
        for ($i = 0; $i < $lkm; $i++) {
            if ($id_kuva == $kuva_idt[$i]) {
                // kuva_idt-taulukon viimeisen alkion indeksi:
                $vika_indeksi = $lkm - 1;
                // Jos ollaan ekassa kuvassa, siirrytään (<) viimeiseen:
                if ($i == 0) {
                    $seur_id = $kuva_idt[1];
                    $ed_id = $kuva_idt[$vika_indeksi];
                } else {
                    if ($i == $vika_indeksi) {
                        $seur_id = $kuva_idt[0];
                        $ed_id = $kuva_idt[$i - 1];
                    } else {
                        $seur_id = $kuva_idt[$i + 1];
                        $ed_id = $kuva_idt[$i - 1];
                    }
                }
            }
        }
        /*$ed_nappi = "<form method='post'id='ed_kuva' ".
          "action='../kuvatoiminnot/kuvat.php".
          "?id_alb=$id_alb".
          "&id_kuva=$ed_id#nappirivi'>".
          "<input type='submit' name='toiminta'
          value='$ed_kuva_alb'
          title='Edellinen kuva'/>".
          "</form>";*/
        /*$seur_nappi = "<form method='post'id='seur_kuva' ".
          "action='../kuvatoiminnot/kuvat.php".
          "?id_alb=$id_alb".
          "&id_kuva=$seur_id#nappirivi'>".
          "<input type='submit' name='toiminta'
          value='$seur_kuva_alb'
          title='Seuraava kuva'/>".
          "</form>";*/
        $ed_nappi = "<input type='button' class='button_alas'" . "onclick=\"hae_kuva_ja_tiedot('" . $id_alb . "','{$ed_id}','" . Kuva::$KUVAT_ALBUMIT . "')\"" . "value='{$ed_kuva_alb}''/>";
        $seur_nappi = "<input type='button' class='button_alas'" . "onclick=\"hae_kuva_ja_tiedot('" . $id_alb . "','{$seur_id}','" . Kuva::$KUVAT_ALBUMIT . "')\"" . "value='{$seur_kuva_alb}''/>";
    }
    // Kuvan muokkausnappi tehdään myöhemmin, jos kuva löytyy.
    $kuvan_muokkausnappi = "";
    $kuvan_poistonappi = "";
    $kuvan_lisaysnappi = "";
    $kommentointinappi = "";
    $kuvamj = "";
    // Nämä painikkeet tulevat aina näkyviin:
    $takaisin_nappi = "<form method='post' id='takaisin_nappi' " . "action='../kuvatoiminnot/kuvat.php'>" . "<input type='submit' name='toiminta'\n                    value='{$takaisin_albumilistaan_alb}'/>" . "</form>";
    $katso_alb = Painikkeet::$KATSO_ESIKATSELU_ALB_VALUE;
    $albumin_esikatselunappi = "<input type='button' class='button_alas'" . "onclick=\"hae_esikatselukuvat('" . $id_alb . "','" . Kuva::$ESIKATSELUKUVIA_RIVILLA_LKM_OLETUS . "','" . Kuva::$KUVAT_ALBUMIT . "')\"" . "value='{$katso_alb}''/>";
    // Haetaan ja kirjoitetaan ensin albumin tiedot.
    if (isset($id_alb) && $id_alb != "") {
        $taulunimi = "albumit";
        $sarakenimi = "id";
        $hakuarvo = $id_alb;
        $albumi = $tietokantaolio->hae_eka_osuma_oliona($taulunimi, $sarakenimi, $hakuarvo);
        // Jos haku ei onnistu, jätetään homma siihen ja palautetaan virheilm.
        if ($albumi == "tuntematon") {
            return 'Albumia ei l&ouml;ytynyt!';
        } else {
            // Lisäyspainike luodaan, jos on riittävät oikeudet:
            if ($valtuudet < Valtuudet::$RAJOITETTU && ($albumi->henkilo_id == $omaid || $albumi->suojaus == Albumisuojaus::$YHTEINEN || $albumi->suojaus == Albumisuojaus::$SUURI_YLEISO)) {
                /*$kuvan_lisaysnappi ="<form method='post' id='lisaa_kuvia_alb' ".
                  "action='../kuvatoiminnot/kuvat.php".
                  "?id_alb=$id_alb'>".
                  "<input type='submit' name='toiminta'
                  value='$uusi_kuva'/>".
                  "</form>";*/
                /* Tämän tarkoitus on avata suoraan kuvan valinta ilman
                 * turhaa kuvalomakkeen näyttämistä: */
                $kuvan_lisaysnappi = "<form align='left' method='post' id='kuvanlisays_pika'\n                        action='../kuvatoiminnot/kuvat.php" . "?id_alb={$id_alb}'" . "enctype='multipart/form-data'/>" . "Uusi kuva albumiin: " . "<input type='hidden' name='MAX_FILE_SIZE' " . "value='" . Kuva::$MAX_FILE_SIZE . "' />" . "<input type='file' name='ladattu_kuva' size='40'/>" . "<input type='submit' name='toiminta'" . "value='" . Painikkeet::$TALLENNA_UUSI_KUVA_VALUE . "'/>" . "</form>";
            }
        }
    } else {
        return 'Albumia ei m&auml;&auml;ritelty!';
    }
    // Haetaan albumin luojan nimi:
    $taulunimi = "henkilot";
    $sarakenimi = "id";
    $hakuarvo = $albumi->henkilo_id;
    $tekija = $tietokantaolio->hae_eka_osuma_oliona($taulunimi, $sarakenimi, $hakuarvo);
    // Jos haku ei onnistu, jätetään homma siihen ja palautetaan virheilm.
    if ($tekija != "tuntematon") {
        $tekija = $tekija->etunimi;
    }
    // Kuvan tietojen haku. Jos id-taulukko on tyhjä, ei kuvia ole, jolloin
    // kuvaa ei kannata edes yrittää hakea:
    if ($lkm == 0 || sizeof($kuva_idt) == 0) {
        $kuvamj = "<h3>Albumissa ei ole kuvia!</h3>";
        $kuvan_jarjluku = 0;
    } else {
        $kuvatiedot = "";
        $kuvatietomj = "";
        // Kuvan tiedot html:n avulla.
        $kuva_alt = "";
        // Html-img-elementin alt-määritteen arvo.
        $aika = "";
        // Kuvan ottoaika
        if ($id_kuva > -1 && $lkm > 0) {
            $hakulause = "SELECT *\n                            FROM kuvat\n                            WHERE kuvat.id = {$id_kuva}";
            $hakutulos = $tietokantaolio->tee_OMAhaku($hakulause);
            $osumat = $tietokantaolio->hae_osumarivit_olioina($hakutulos);
            if (sizeof($osumat) == 1) {
                $kuvatiedot = $osumat[0];
                // Muotoillaan aika:
                if ($kuvatiedot->vuosi == -1) {
                    $aika = "";
                } else {
                    if ($kuvatiedot->kk == -1) {
                        $aika = $kuvatiedot->vuosi;
                    } else {
                        if ($kuvatiedot->paiva == -1) {
                            $aika = $kuvatiedot->kk . "/" . $kuvatiedot->vuosi;
                        } else {
                            $aika = $kuvatiedot->paiva . "." . $kuvatiedot->kk . "." . $kuvatiedot->vuosi;
                        }
                    }
                }
                // Haetaan kuvan lähettäjän nimi:
                $taulunimi = "henkilot";
                $sarakenimi = "id";
                $hakuarvo = $kuvatiedot->henkilo_id;
                $lahettaja = $tietokantaolio->hae_eka_osuma_oliona($taulunimi, $sarakenimi, $hakuarvo);
                if ($lahettaja != "tuntematon") {
                    $lahettaja = $lahettaja->etunimi;
                }
                $kuvatietomj = "<div class='korostus'>" . stripslashes($kuvatiedot->kuvaotsikko) . "</div>";
                $kuvatietomj .= "<p>" . $aika . "</p>";
                $kuvatietomj .= "<p>" . stripslashes($kuvatiedot->kuvaselitys) . "</p>";
                $kuvatietomj .= "<p>L&auml;hett&auml;j&auml;: " . $lahettaja . "</p>";
                $kuva_alt = $kuvatiedot->tiedostonimi . " (" . round($kuvatiedot->tiedostokoko / 1000) . " kt)";
                // Muokataan kuvan koko sopivaksi eli pienennetään, jos leveys on yli
                // $max_lev_kuv tai korkeus yli $max_kork_kuv.
                //  Leveyden ja korkeuden suhde säilytetään.
                $lev = $kuvatiedot->leveys;
                $kork = $kuvatiedot->korkeus;
                $nayttolev = $kuvatiedot->leveys;
                $nayttokork = $kuvatiedot->korkeus;
                $src = $kuvatiedot->src;
                if ($kork != 0 && $lev != 0) {
                    $suhde = $kork / $lev;
                    // Vaakasuora kuva:
                    if ($suhde < 1 && $lev > $max_lev_kuva) {
                        $nayttolev = $max_lev_kuva;
                        $nayttokork = round($max_lev_kuva * $suhde);
                        // Kuva voi olla kuitenkin liian korkea. Tarkistetaan
                        // ja pienennetään tarvittaessa:
                        if ($nayttokork > $max_kork_kuva) {
                            $nayttokork = $max_kork_kuva;
                            $nayttolev = round($max_kork_kuva / $suhde);
                        }
                    }
                    // Pystysuora kuva:
                    if ($suhde >= 1 && $kork > $max_kork_kuva) {
                        $nayttokork = $max_kork_kuva;
                        $nayttolev = round($max_kork_kuva / $suhde);
                        // Kuva voi olla kuitenkin (ei yleensä) liian leveä.
                        // Tarkistetaan ja pienennetään tarvittaessa:
                        if ($nayttolev > $max_lev_kuva) {
                            $nayttolev = $max_lev_kuva;
                            $nayttokork = round($max_lev_kuva * $suhde);
                        }
                    }
                }
                $maxmitta = max(array($nayttokork, $nayttolev));
                // Haku:
                if ($maxmitta <= Kuva::$TIETOKANTAKUVA_PIENI_MITTA) {
                    $osoite_mini1 = $pikkukuvakansio_osoite . "/" . Kuva::$pikkukuva1_nimen_osa . $kuvatiedot->tiedostonimi;
                    $src = "'" . $osoite_mini1 . "'";
                } else {
                    if ($maxmitta <= Kuva::$TIETOKANTAKUVA_ISO_MITTA) {
                        $osoite_mini2 = $pikkukuvakansio_osoite . "/" . Kuva::$pikkukuva2_nimen_osa . $kuvatiedot->tiedostonimi;
                        $src = "'" . $osoite_mini2 . "'";
                    } else {
                        if ($maxmitta <= Kuva::$TIETOKANTAKUVA_ISO2_MITTA) {
                            $osoite_mini3 = $pikkukuvakansio_osoite . "/" . Kuva::$pikkukuva3_nimen_osa . $kuvatiedot->tiedostonimi;
                            $src = "'" . $osoite_mini3 . "'";
                        } else {
                            $src = "'" . $kuvatiedot->src . "'";
                        }
                    }
                }
                // kuvan koonti:
                $kuvamj = "<div class='kuvatiedot'>" . $kuvatietomj . "</div>";
                $kuvamj .= "<div class='kuva'>";
                $kuvamj .= "<img src=" . $src . " ";
                $kuvamj .= "width='" . $nayttolev . "' height='" . $nayttokork . "' ";
                $kuvamj .= "alt='" . $kuva_alt . "'/>";
                $kuvamj .= "</div>";
                // Muokata ja poistaa saa vain omia kuvia!
                if ($kuvatiedot->henkilo_id == $omaid) {
                    // Pitää muokkausta varten lähettää muokattavat tiedot
                    // urlin kautta.
                    $url_safe_otsikko = rawurlencode($kuvatiedot->kuvaotsikko);
                    $url_safe_selitys = rawurlencode($kuvatiedot->kuvaselitys);
                    $url_safe_vuosi = rawurlencode($kuvatiedot->vuosi);
                    $url_safe_kk = rawurlencode($kuvatiedot->kk);
                    $url_safe_paiva = rawurlencode($kuvatiedot->paiva);
                    $kuvan_muokkausnappi = "<form method='post'id='muokkaa_alb' " . "action='../kuvatoiminnot/kuvat.php" . "?id_alb={$id_alb}" . "&id_kuva={$id_kuva}" . "&kuvaotsikko_kuva={$url_safe_otsikko}" . "&kuvaselitys_kuva={$url_safe_selitys}" . "&vuosi_kuva={$url_safe_vuosi}" . "&kk_kuva={$url_safe_kk}" . "&paiva_kuva={$url_safe_paiva}'>" . "<input type='submit' name='toiminta'\n                                    value='{$muokkaa_kuva}'/>" . "</form>";
                    $kuvan_poistonappi = "<form method='post'id='seur_kuva' " . "action='../kuvatoiminnot/kuvat.php" . "?id_alb={$id_alb}" . "&id_kuva={$id_kuva}'>" . "<input type='submit' name='toiminta'\n                                        value='{$poista_kuva}'\n                                        title='Poistaa kuvan lopullisesti'/>" . "</form>";
                }
                $kommentointinappi = "<input type='button' class='button_alas'" . "onclick=\"hae_pikakommentit('" . Pikakommentti::$KOHDE_KUVA_TAVIS . "','" . $id_kuva . "')\"" . "value='" . Pikakommenttitekstit::$pikakommentit_nayta_value . "'" . "title='" . Pikakommenttitekstit::$pikakommentit_nayta_title . "'/>";
            } else {
                $kuvamj = "<h3/>Kuvaa ei l&ouml;ytynyt!\n                            (id_kuva = " . $id_kuva . ", id_alb = " . $id_alb . ")</h3>";
            }
        }
    }
    // Aikamääreen muotoilu:
    $aika = $albumi->vuosi_eka;
    if ($aika == -1) {
        $aika = "";
    } else {
        if ($albumi->vuosi_vika != -1) {
            $aika = "(" . $aika . "-" . $albumi->vuosi_vika . ")";
        } else {
            $aika = "(" . $aika . ")";
        }
    }
    $mj = "<div id='albumi'><h2>" . $albumi->nimi . " " . $aika . " " . $lkm . " kuvaa</h2>";
    $mj .= "<div>" . $piilo_id . $albumi->kuvaus . " -" . $tekija . "</div>";
    $mj .= "<div id='nappirivi'>" . $ed_nappi . " (kuva nro " . $kuvan_jarjluku . "/" . $lkm . ") " . $seur_nappi . " " . $kommentointinappi . $albumin_esikatselunappi . $takaisin_nappi . $kuvan_muokkausnappi . $kuvan_poistonappi . "</div>";
    $mj .= "<div id='kuvaruutu'>" . $kuvamj . "</div>";
    $mj .= $kuvan_lisaysnappi;
    $mj .= "</div>";
    //Albumin loppu.
    return $mj;
}