コード例 #1
0
ファイル: Kuvatestaus.php プロジェクト: jpkerkkanen/opinnot
 /**
  * Testaa uuden kuvan luomista ja tallentamista.
  */
 public function testaa_kuvan_luominen()
 {
     $this->lisaa_testikommentti("<h4>Testataan kuvan luominen</h4>", false);
     $id = Kuva::$MUUTTUJAA_EI_MAARITELTY;
     $kuva = new Kuva($id, $tietokantaolio, "kuvat");
     $kuva->set_vuosi(Kuvatestaus::$testivuosi);
     if ($kuva->get_vuosi() === Kuvatestaus::$testivuosi) {
         $this->lisaa_ilmoitus("Kuvaolio luotu ja vuodeksi asetettu luku " . Kuvatestaus::$testivuosi, Ilmoitus::$TYYPPI_ILMOITUS);
     }
     //================== Alkusiivous =======================================
     // Poistetaan mahdolliset aiempien testien roskat, joita on voinut
     // jäädä, jos testi on keskeytynyt:
     $lkm = $this->tietokantaolio->poista_kaikki_rivit($kuva->get_tk_taulunimi(), Kuva::$SARAKENIMI_VUOSI, Kuvatestaus::$testivuosi);
     $poistettujen_lkm = $lkm;
     if ($poistettujen_lkm > 0) {
         $this->lisaa_testikommentti($poistettujen_lkm . " vanhaa kuvaa poistettu", false);
     }
     //======================= Alkusiivous päättyi====================
 }
コード例 #2
0
 /**
  * Luo uuden kuvan annetuilla arvoilla, tallentaa sen tietokantaan ja
  * kuvatiedoston omaan kansioonsa
  * ja palauttaa tallennetun id:n tai arvon
  * Kuva::$MUUTTUJAA_EI_MAARITELTY, jos jokin menee vikaan.
  *
  * @param type $ylaluokka_id
  * @param type $nimi_latina
  * @return type 
  */
 public function luo_ja_tallenna_testikuva()
 {
     $tallennetun_id = Kuva::$MUUTTUJAA_EI_MAARITELTY;
     $id = Kuva::$MUUTTUJAA_EI_MAARITELTY;
     $lajiluokka = new Kuva($this->tietokantaolio, $id);
     $this->lisaa_testikommentti("Uusi tyhja lajiluokka luotu!", false);
     // Ei pitäisi olla tallennuskelpoinen:
     if ($lajiluokka->on_tallennuskelpoinen(true)) {
         $this->lisaa_virheilmoitus("Ei pitaisi olla tallennuskelpoinen!");
     } else {
         /*$this->lisaa_testikommentti("Muuttujia ei ole asetettu, joten".
           " saatiin aivan oikein seuraava palaute: ".
           $lajiluokka->tulosta_virheilmoitukset(),false);*/
     }
     /*$this->lisaa_testikommentti("Asetetaan lajiluokan ylaluokka_id,
       ja nimi_latina. Testataan
       uudelleen, onko nyt tallennuskelpoinen:",false);*/
     $lajiluokka->set_ylaluokka_id($ylaluokka_id);
     $lajiluokka->set_nimi_latina($nimi_latina);
     // Tässä vaiheessa ongelmaksi voi tulla myös se, että nimi_latina on
     // jo olemassa. Siitä annetaan erillinen ilmoitus.
     if ($lajiluokka->on_tallennuskelpoinen(true)) {
         $this->lisaa_testikommentti("Lajiluokka on tallennuskelpoinen", false);
         $onnistuminen = $lajiluokka->tallenna_uusi();
         if ($onnistuminen === Lajiluokka::$OPERAATIO_ONNISTUI) {
             $tallennetun_id = mysql_insert_id();
             $this->lisaa_testikommentti("Lajiluokan tallennus onnistui!", false);
         } else {
             $this->lisaa_testikommentti($onnistuminen . " Virhe tallennuksessa (luo_\n                    ja_tallenna_lajiluokka())!" . " Arvot: ylaluokka_id=" . $lajiluokka->get_ylaluokka_id() . ", nimi_latina=" . $lajiluokka->get_nimi_latina(), true);
         }
     } else {
         // Tämä ei aina ole vastoin toivomuksia!
         $this->lisaa_testikommentti($lajiluokka->tulosta_virheilmoitukset(), false);
     }
     return $tallennetun_id;
 }
コード例 #3
0
/**
 * Toteuttaa kuvan poistovahvistuksen näyttämisen. Mukaan haetaan ja näytetään
 * poistettava kuva.
 *
 * @param Parametrit $parametriolio
 * @return Palaute $palauteolio
 */
function toteuta_nayta_poistovahvistus($parametriolio)
{
    $id_kokon = $parametriolio->id_kokon;
    $id_teht = $parametriolio->id_teht;
    $kohde = $parametriolio->kohde_kuva;
    $kohde_id = $parametriolio->id_kohde_kuva;
    $kuva_id = $parametriolio->id_kuva;
    $tietokantaolio = $parametriolio->get_tietokantaolio();
    $html = "";
    /* Palautettava koodi */
    $palauteolio = new Palaute();
    $ilmoitus = "";
    /******************** Painikkeet *****************************/
    $peru_nappi = "";
    $poistovahvistus_nappi = "";
    /* Uuden kuvan lisäyspainike tehtävään*/
    $onsubmit_funktionimi = "nayta_kuvan_poistovahvistus";
    $onsubmit_parametrit = array($kohde, $kuva_id);
    /* Kuvan id*/
    /* Muotoillaan muuttujan name-arvo kohteen mukaan: */
    $id_name = "";
    if ($kohde == Kuvat::$kohde_kokonaisuus_tiivistelma || $kohde == Kuvat::$kohde_kokonaisuus_selitys) {
        $id_name = "id_kokon";
    } else {
        if ($kohde == Kuvat::$kohde_tehtava) {
            $id_name = "id_teht";
        } else {
            if ($kohde == Kuvat::$kohde_ratkaisu) {
                $id_name = "id_ratk";
            } else {
                $id_name = "id_tuntematon";
            }
        }
    }
    $form_maaritteet = array('method' => 'post', 'class' => 'rinnakkain', 'action' => "{$_SERVER['PHP_SELF']}?" . "&id_kuva=" . $kuva_id . "&id_kokon=" . $id_kokon . "&id_teht=" . $id_teht . "&" . $id_name . "=" . $kohde_id . "&kohde_kuva=" . $kohde);
    $input_maaritteet = array('name' => Toimintonimet::$kuvatoiminto, 'value' => Painikkeet::$PERU_POISTO_KUVA_VALUE);
    try {
        $peru_nappi = Html::luo_submit_painike_onsubmit_toiminnolla($onsubmit_funktionimi, $onsubmit_parametrit, $form_maaritteet, $input_maaritteet);
    } catch (Exception $poikkeus) {
        $ilmoitus = "Virhe poiston perumisnapin luomisessa: " . $poikkeus->getMessage();
    }
    /* Poiston vahvistusnappi menee melkein samoilla muuttujilla: */
    $input_maaritteet = array('name' => Toimintonimet::$kuvatoiminto, 'value' => Painikkeet::$POISTOVAHVISTUS_KUVA_VALUE);
    try {
        $poistovahvistus_nappi = Html::luo_submit_painike_onsubmit_toiminnolla($onsubmit_funktionimi, $onsubmit_parametrit, $form_maaritteet, $input_maaritteet);
    } catch (Exception $poikkeus) {
        $ilmoitus .= "Virhe poistonapin luomisessa: " . $poikkeus->getMessage();
    }
    /******************** Painikkeet *****************************/
    /* Haetaan poistettava kuva: */
    $taulunimi = "kuvat";
    $sarakenimi = "id";
    $hakuarvo = $kuva_id;
    $hakutulosolio = $tietokantaolio->hae_eka_osuma_oliona($taulunimi, $sarakenimi, $hakuarvo);
    if ($hakutulosolio == Tietokantaolio::$HAKU_PALAUTTI_TYHJAN) {
        $ilmoitus .= "<br/>" . Tekstit::$ilm_kuva_poisto_kuvaa_ei_loytynyt;
        $html .= Tekstit::$ilm_kuva_poisto_kuvaa_ei_loytynyt;
        $html .= "<br/>" . $peru_nappi;
    } else {
        $kuva = new Kuva($hakutulosolio, $tietokantaolio);
        $html .= "<h2>" . Tekstit::$ilm_kuva_poistovahvistus . "</h2>";
        $html .= $kuva->nayta_pelkka_kuva(Kuvat::$latauskansion_osoite);
        $html .= $poistovahvistus_nappi . $peru_nappi;
    }
    $palauteolio->set_sisalto($html);
    $palauteolio->set_ilmoitus($ilmoitus);
    return $palauteolio;
}
コード例 #4
0
 function hae_kuvat($kohde_kuva, $omaid, $tietokantaolio, $ei_painikkeita)
 {
     $kuva_html = "";
     $kohde = "";
     /* Haetaan kaikki kokonaisuuden kuvat. HUOM! Alla tähti sekoitti
      * kuvat-taulukon ja kuva_linkit-taulukon samannimisen id-kentän. Piti
      * luetella arvot erikseen.
      */
     if ($kohde_kuva == Kuvat::$kohde_kokonaisuus_tiivistelma) {
         $kohde = Kuvat::$kohde_kokonaisuus_tiivistelma;
     } else {
         if ($kohde_kuva == Kuvat::$kohde_kokonaisuus_selitys) {
             $kohde = Kuvat::$kohde_kokonaisuus_selitys;
         }
     }
     $hakulause = "SELECT kuvat.id,\n                            kuvat.henkilo_id,\n                            kuvat.kuvaotsikko,\n                            kuvat.kuvaselitys,\n                            kuvat.vuosi,\n                            kuvat.kk,\n                            kuvat.paiva,\n                            kuvat.src,\n                            kuvat.leveys,\n                            kuvat.korkeus,\n                            kuvat.tiedostokoko,\n                            kuvat.tiedostotunnus,\n                            kuvat.tiedostonimi,\n                            kuvat.tallennushetki_sek,\n                            kuvat.nayttokokoindeksi\n                    FROM kuvat\n                    JOIN kuva_linkit as kl\n                    ON kuvat.id = kl.kuva_id\n                    AND kl.kohde='" . $kohde . "'\n                    WHERE kl.kokon_id=" . $this->get_id();
     $kuvat = $tietokantaolio->tee_OMAhaku_oliotaulukkopalautteella($hakulause);
     if (!empty($kuvat)) {
         /* Kuva kerrallaan eteenpäin: */
         foreach ($kuvat as $tk_kuva) {
             $kuva = new Kuva($tk_kuva, $tietokantaolio);
             $id_teht = -1;
             /* Ei käyttöä täällä */
             if ($ei_painikkeita) {
                 $kuva_html .= $kuva->nayta_pelkka_kuva($this->kuvakansion_osoite);
             } else {
                 $kuva_html .= $kuva->nayta_kuva($omaid, $this->get_id(), $id_teht, $kohde, $this->get_id(), $this->kuvakansion_osoite);
             }
         }
     } else {
         // Kuvia ei löytynyt!
     }
     return $kuva_html;
 }
コード例 #5
0
ファイル: Kuva.php プロジェクト: jpkerkkanen/opinnot
 /**
  * Palauttaa pienemmän arvoista (kuvan maksimileveys, kuvan tod. lev.)
  */
 public static function laske_kuvan_maksimileveys($kokoindeksi, $lev)
 {
     return min(Kuva::hae_kuvan_leveys($kokoindeksi), $lev);
 }
コード例 #6
0
ファイル: Kuva.php プロジェクト: jpkerkkanen/kerkkaset
 /**
 * HUOM! Tallentaa pikkukuvat tietokantaan ja alkuperäisen eri kansioon!
 * Kuvan tiedot on tarkistettu ennen tänne tuloa,
 * joten niitä ei tarkemmin tarkisteta täällä.
 *
 * SQL:
 * create table kuvat
     (
  id                    mediumint auto_increment not null,
  henkilo_id            tinyint not null,
  kuvaotsikko           varchar(200),
  kuvaselitys           varchar(5000),
  vuosi                 smallint default 0,
  kk                    tinyint default 0,
  paiva                 tinyint default 0,
  src                   varchar(300),
  leveys                smallint not null,
  korkeus               smallint not null,
  tiedostokoko          int not null,
  tiedostotunnus        varchar(20) not null,
  tiedostonimi          varchar(100) not null,
  tallennusaika_sek     int default 0,
  minikuva1             longblob,
  minikuva2             longblob,
  primary key (id),
  index(henkilo_id),
  index(tallennusaika_sek),
  index(jarjestysluku)
     );
 *
 * Tallentaa kuvan ja palauttaa taulukon, jonka ensimmäinen alkio on
 * palautte tallennuksen onnistumisesta ('onnistui' tai virheilmoitus) ja toinen
 * tallennetun kuvan id:n, jotta uusi kuva osataan näyttää heti.
 *
 * @param Parametrit $parametriolio
 * @return Array Palautetaulukko
 */
 public static function tallenna_kuva($parametriolio)
 {
     $omaid = $parametriolio->omaid;
     $uuden_kuvan_id = -1;
     //$_FILES['ladattu_kuva']:
     $ladattu_kuva = $parametriolio->ladattu_kuva;
     $kuvaotsikko_kuva = $parametriolio->kuvaotsikko_kuva;
     $kuvaselitys_kuva = $parametriolio->kuvaselitys_kuva;
     $vuosi_kuva = $parametriolio->vuosi_kuva;
     $kk_kuva = $parametriolio->kk_kuva;
     $paiva_kuva = $parametriolio->paiva_kuva;
     $nakyvyys_kuva = $parametriolio->nakyvyys_kuva;
     $tietokantaolio = $parametriolio->tietokantaolio;
     if ($nakyvyys_kuva === Parametrit::$EI_MAARITELTY) {
         $nakyvyys_kuva = Nakyvyys_kuva::$JULKINEN;
     }
     $id_lj = -1;
     // bongausalbumeiden näyttöä varten tarvitaan tämä.
     // Antaa sen kansion suhteellisen tiedostopolun,
     // jonne ladattu tiedosto on tarkoitus siirtää pysyvää sijoitusta varten.
     $latauskansio = $parametriolio->get_kuvien_kansio_osoite();
     // Vastaava pikkukuville:
     $pikkukuvakansio = $parametriolio->get_pikkukuvien_kansio_osoite();
     $palautustaulukko = array();
     $palaute = "";
     $taulu = "kuvat";
     $sarakenimi_kuvataulukko = array('henkilo_id', 'kuvaotsikko', 'kuvaselitys', 'vuosi', 'kk', 'paiva', 'src', 'leveys', 'korkeus', 'tiedostokoko', 'tiedostotunnus', 'tiedostonimi', 'tallennusaika_sek', 'minikuva1', 'minikuva2', 'nakyvyys');
     if ($ladattu_kuva['tmp_name'] == "") {
         $palaute = "\$ladattu_kuva['tmp_name'] on tyhj&auml;!";
     } else {
         $kuvatietotaulukko = getImageSize($ladattu_kuva['tmp_name']);
         $leveys = $kuvatietotaulukko[0];
         $kork = $kuvatietotaulukko[1];
         // Tiedostotunnisteet:
         $tunniste = $kuvatietotaulukko[2];
         //gif = 1/jpg = 2/png = 3/...
         //$html_lev_ja_kork = $kuvatietotaulukko[3];  // "height='333' width='455'"
         $koko = $ladattu_kuva['size'];
         // Koko tavuina (ilm.)
         if (!(is_numeric($leveys) && is_numeric($kork) && is_numeric($tunniste))) {
             $palaute = "getImageSize(\$ladattu_kuva['tmp_name'])-\n                            palautearvotaulukossa lev, kork tai tunniste\n                            ep&auml;lukuja! (lev: " . $leveys . ", kork: " . $kork . "\n                            ja tunniste: " . $tunniste . ")";
             return $palaute;
         }
         /**********************************************************************/
         // Alla olevat liittyvät kuvan tallentamiseen tietokantaan tms:
         //$kuva = file_get_contents("vikakuva.img");
         /*$instr = fopen("vikakuva.img","rb");
           $kuva = addslashes(fread($instr,filesize("vikakuva.img")));*/
         // TÄMÄKIN TOIMII:
         /*$instr = fopen($ladattu_kuva['tmp_name'],"rb");
           $kuva = addslashes(fread($instr,filesize($ladattu_kuva['tmp_name'])));*/
         /***********************************************************************/
         // Kuvan nimeen lisätään tallennusaika sekunteina, jottei
         // duplikaatteja syntyisi. Samannimisiä kuvia voi kuitenkin tulla.
         // Kuvan tiedostonimeä ei muuteta.
         $tiedostonimi = time() . "_" . $ladattu_kuva['name'];
         $kohdeosoite = $latauskansio . "/" . $tiedostonimi;
         // Tiedostopolku minikuviin: eri kansio pikkukuville
         // ja lisätään nimeen miniloppu:
         $kohdeosoite_mini1 = $pikkukuvakansio . "/" . Kuva::$pikkukuva1_nimen_osa . $tiedostonimi;
         $kohdeosoite_mini2 = $pikkukuvakansio . "/" . Kuva::$pikkukuva2_nimen_osa . $tiedostonimi;
         $kohdeosoite_mini3 = $pikkukuvakansio . "/" . Kuva::$pikkukuva3_nimen_osa . $tiedostonimi;
         // IDEA: PIENENNÄ ENSIN 1600 -> 700 -> 400 -> 150 NIIN MENNEE
         // NOPSEMMIN. KUVALAATU SÄILYY IHAN OK!
         /******************************************************************/
         /******************************************************************/
         /* TÄSSÄ KUVAN KOKO TARKISTETAAN JA KUVA PIENENNETÄÄN, ETTEI
          * ÄLYTTÖMIÄ TULE. YLI 300 KT:N KUVAT PIENENNETÄÄN 1600 PIKSELIN
          * KOKOON, JOLLOIN MYÖS KUVAKOKO PIENENTYY. */
         if ($koko > Kuva::$KUVALATAUS_RAJAKOKO) {
             $max_mitta = Kuva::$KUVATALLENNUS_PIENENNOSMITTA;
             if (Kuva::muuta_kuvan_koko($ladattu_kuva['tmp_name'], $max_mitta, $kohdeosoite, 75)) {
                 // Haetaan pienennetyn kuvan uudet tiedot:
                 $kuvatietotaulukko = getImageSize($kohdeosoite);
                 $leveys = $kuvatietotaulukko[0];
                 $kork = $kuvatietotaulukko[1];
                 // Tiedostotunnisteet:
                 $tunniste = $kuvatietotaulukko[2];
                 //gif = 1/jpg = 2/png = 3/...
                 $koko = filesize($kohdeosoite);
                 //
             } else {
                 // Ellei onnistu, tallennetaan alkuperäinen:
                 $kuvatiedosto = $ladattu_kuva['tmp_name'];
                 move_uploaded_file($kuvatiedosto, $kohdeosoite);
             }
         } else {
             // Ellei pienennöstarvetta ole.
             $kuvatiedosto = $ladattu_kuva['tmp_name'];
             move_uploaded_file($kuvatiedosto, $kohdeosoite);
         }
         // Tehdään ensin 700 pikselin pienennös. Tätä ei tallenneta
         // tietokantaan, koska on suht iso kuitenkin.
         $max_mitta = Kuva::$TIETOKANTAKUVA_ISO2_MITTA;
         if (Kuva::muuta_kuvan_koko($kohdeosoite, $max_mitta, $kohdeosoite_mini3, 75)) {
             // Pienennetään sitten tätä kuvaa seuraavaan kokoluokkaan:
             $max_mitta = Kuva::$TIETOKANTAKUVA_ISO_MITTA;
             // Tänne kopioidaan pienennös, koska en keksinyt, miten muuten
             // kuvan saa tietokantaan:
             $kuvatiedosto = "../temp/muokkaus2.jpg";
             if (Kuva::muuta_kuvan_koko($kohdeosoite_mini3, $max_mitta, $kuvatiedosto, 75)) {
                 $minikuva2 = mysql_real_escape_string(file_get_contents($kuvatiedosto));
                 // Kopioidaan sama kuva myös kuvana tiedostoon, koskapa
                 // tietokannasta haku oli toivottoman hidasta!
                 copy($kuvatiedosto, $kohdeosoite_mini2);
                 // Pienennetään sitten tätä kuvaa seuraavaan kokoluokkaan:
                 $max_mitta = Kuva::$TIETOKANTAKUVA_PIENI_MITTA;
                 $kuvatiedosto = "../temp/muokkaus1.jpg";
                 // Tänne kopioidaan pienennös
                 // Luku tarkoittaa %:n laatua. Oletus on 75%.
                 if (Kuva::muuta_kuvan_koko($kohdeosoite_mini2, $max_mitta, $kuvatiedosto, 75)) {
                     $minikuva1 = mysql_real_escape_string(file_get_contents($kuvatiedosto));
                     // Kopioidaan sama kuva myös kuvana tiedostoon, koskapa
                     // tietokannasta haku oli toivottoman hidasta!
                     copy($kuvatiedosto, $kohdeosoite_mini1);
                 } else {
                     // Ellei minikuva1 onnistunut:
                     $minikuva1 = "";
                 }
             } else {
                 $minikuva2 = "";
             }
         } else {
             // Ellei minikuva3:kaan onnistunut:
             $minikuva1 = "";
             $minikuva2 = "";
         }
         $henkilo_id = $omaid;
         $tallennusaika_sek = time();
         $arvotaulukko = array($henkilo_id, $kuvaotsikko_kuva, $kuvaselitys_kuva, $vuosi_kuva, $kk_kuva, $paiva_kuva, $kohdeosoite, $leveys, $kork, $koko, $tunniste, $tiedostonimi, $tallennusaika_sek, $minikuva1, $minikuva2, $nakyvyys_kuva);
         // Palauttaa merkkijonon 'onnistui', jos tallennus onnistuu.
         $virheilmoitus = "Virhe kuvatietojen tallennuksessa (tallenna_kuva2)!";
         $onnistuikos = $tietokantaolio->tallenna_uusi_rivi($taulu, $sarakenimi_kuvataulukko, $arvotaulukko, $virheilmoitus);
         if ($onnistuikos == Tietokantaolio::$HAKU_ONNISTUI) {
             // Jos onnistui, lisätään linkki albumin ja kuvan välille.
             // Ainakin bongauksissa voidaan linkkejä tehdä monta kerralla.
             $uuden_kuvan_id = mysql_insert_id();
             $parametriolio->id_kuva = $uuden_kuvan_id;
             $onnistuiko_linkki = Kuva::tallenna_kuvalinkit($parametriolio);
             if ($onnistuiko_linkki === Kuva::$OPERAATIO_ONNISTUI) {
                 $palaute = 'onnistui';
             } else {
                 $palaute = 'Kuvan tallennus ok, mutta linkin tallennus ei
                     onnistunut!<br>' . $onnistuiko_linkki;
                 $uuden_kuvan_id = "";
                 // Uusi kuva ei kuitenkaan löydy.
             }
             // Aktiivisuusmerkintä:
             $viimeksi_aktiivi = time();
             $aktiivisuuslaji = Aktiivisuus::$KUVAN_LUOMINEN;
             paivita_aktiivisuus($omaid, $tietokantaolio, $viimeksi_aktiivi, $aktiivisuuslaji);
         } else {
             // Ellei kuvan tallennus onnistunut:
             $uuden_kuvan_id = "";
             $palaute = $onnistuikos;
         }
     }
     array_push($palautustaulukko, $palaute, $uuden_kuvan_id);
     return $palautustaulukko;
 }
コード例 #7
0
ファイル: Ratkaisu.php プロジェクト: jpkerkkanen/opinnot
 function hae_kuvat_koostenakymaan()
 {
     $kuva_html = "";
     // haetaan vain, jos tehtävän id määritelty:
     if ($this->getId() > -1) {
         /* Haetaan kaikki kokonaisuuden kuvat. */
         $hakulause = "SELECT kuvat.id,\n                                kuvat.henkilo_id,\n                                kuvat.kuvaotsikko,\n                                kuvat.kuvaselitys,\n                                kuvat.vuosi,\n                                kuvat.kk,\n                                kuvat.paiva,\n                                kuvat.src,\n                                kuvat.leveys,\n                                kuvat.korkeus,\n                                kuvat.tiedostokoko,\n                                kuvat.tiedostotunnus,\n                                kuvat.tiedostonimi,\n                                kuvat.tallennushetki_sek,\n                                kuvat.nayttokokoindeksi\n                        FROM kuvat\n                        JOIN ratkaisukuvalinkit rkl\n                        ON kuvat.id = rkl.kuva_id\n                        WHERE rkl.ratkaisu_id=" . $this->getId();
         $kuvat = $this->tietokantaolio->tee_OMAhaku_oliotaulukkopalautteella($hakulause);
         if (!empty($kuvat)) {
             /* Kuva kerrallaan eteenpäin: */
             foreach ($kuvat as $tk_kuva) {
                 $kuva = new Kuva($tk_kuva, $this->tietokantaolio);
                 $kuva_html .= $kuva->nayta_pelkka_kuva(Kuvat::$latauskansion_osoite);
             }
         } else {
             //$kuva_html = "Kuvia ei löytynyt!";
         }
     }
     return $kuva_html;
 }
コード例 #8
0
 /**
  * Palauttaa kuvalomakkeen, jossa on kuvan tiedot ja tiedot valituista
  * lajiluokista.
  * 
  * <p>Riippuvuuksia: </p>
  */
 public function luo_kuvalomake($valitut)
 {
     $ylaosa = Kuva::nayta_kuvalomake_ilman_formia($this->parametriolio);
     $alaosa = $this->luo_havaintotaulukko($valitut, true);
     $varoitus = Html::luo_div(Bongaustekstit::$ilm_havaintokuvan_lisaaminen_huomautus . ":", array(Maarite::classs(Bongausasetuksia::$havaintotauluotsikko_class)));
     $lomake = Html::luo_form($ylaosa . $varoitus . $alaosa, array(Maarite::align("left"), Maarite::method("post"), Maarite::id("kuvalomake"), Maarite::action("index.php?"), Maarite::enctype_multipart_form_data()));
     return $lomake;
 }
コード例 #9
0
/**
 * @param Parametrit $parametriolio
 * @return Palaute $palauteolio
 */
function toteuta_kuvan_tallennus($parametriolio)
{
    $uusi = true;
    $palauteolio = new Palaute();
    $palauteolio_apu = new Palaute();
    $parametriolio->set_uusi_kuva(true);
    if (!array_key_exists('ladattu_kuva', $_FILES)) {
        $ilmoitus_kuva = 'Ei latauksia havaittu!';
        if ($parametriolio->kokoelmanimi == Kuva::$KUVAT_BONGAUS) {
            $havaintokontrolli = new Havaintokontrolleri($parametriolio->tietokantaolio, $parametriolio);
            $palauteolio = $havaintokontrolli->toteuta_nayta_kuvalomake_havaintoihin();
        } else {
            $palauteolio = toteuta_nayta_kuvalomake($parametriolio);
        }
        $palauteolio->set_ilmoitus($ilmoitus_kuva);
    } else {
        $ladattu_kuva = $_FILES['ladattu_kuva'];
        // Ilmeisesti koko on valmiiksi tavuina (täsmää kuvan omin. kans):
        //$info = getImageSize($ladattu_kuva['tmp_name']);
        $ilmoitus = "Tiedoston nimi: " . $ladattu_kuva['name'] . " (" . round($ladattu_kuva['size'] / 1024) . " kt)" . "<br/> Tyyppi: " . $ladattu_kuva['type'];
        //"<br/> Tmp-nimi: ".$ladattu_kuva['tmp_name'].
        //"<br/> Virheviesti: ".$ladattu_kuva['error'].
        //"<br/> Kuvan tyyppi: ".$info[2];
        $palauteolio->set_ilmoitus($ilmoitus);
        $tarkistus = tarkista_kuvatiedot($ladattu_kuva, $parametriolio->kuvaotsikko_kuva, $parametriolio->kuvaselitys_kuva, $parametriolio->vuosi_kuva, $parametriolio->kk_kuva, $parametriolio->paiva_kuva, $uusi);
        // Jos korjaamista, näytetään lomake uudelleen:
        if ($tarkistus != 'tiedot_ok') {
            $parametriolio->ilmoitus_kuva = $tarkistus;
            if ($parametriolio->kokoelmanimi == Kuva::$KUVAT_BONGAUS) {
                $havaintokontrolli = new Havaintokontrolleri($parametriolio->tietokantaolio, $parametriolio);
                $palauteolio = $havaintokontrolli->toteuta_nayta_kuvalomake_havaintoihin();
            } else {
                $palauteolio = toteuta_nayta_kuvalomake($parametriolio);
            }
            $palauteolio->set_ilmoitus($tarkistus);
        } else {
            // Tarkistus meni läpi.
            $latauskansio = $parametriolio->get_kuvien_kansio_osoite();
            $pikkukuvakansio = $parametriolio->get_pikkukuvien_kansio_osoite();
            // Tallenna_kuva palauttaa taulukon, joka sisältää
            // palautteen ja tallennetun kuvan id:n, joka
            // voi olla tyhjä virheen sattuessa.
            $palaute = Kuva::tallenna_kuva($parametriolio);
            if ($palaute[0] == Tietokantaolio::$HAKU_ONNISTUI) {
                $ilmoitus = "Kuvan tallennus onnistui! <br/>" . $ilmoitus;
                $id_kuva = $palaute[1];
                $palauteolio->set_muokatun_id($id_kuva);
                if ($parametriolio->kokoelmanimi == Kuva::$KUVAT_ALBUMIT) {
                    /*$sisaltoteksti = nayta_albumi($omaid,$id_alb, $id_kuva,
                      $muokkaa_kuva,
                      $uusi_kuva,
                      $takaisin_albumilistaan_alb,
                      $ed_kuva_alb, $seur_kuva_alb,
                      $tauko_alb, $jatka_esitysta_alb,
                      $poista_kuva,$tietokantaolio,
                      $valtuudet);*/
                    // Uudempi ajaxin kera (joustava kuvakoko ikkunan mukaan)
                    $sisaltoteksti = "<script type='text/javascript'>" . "hae_kuva_ja_tiedot('" . $parametriolio->id_alb . "','" . $id_kuva . "','" . $parametriolio->kokoelmanimi . "')</script>";
                } else {
                    if ($parametriolio->kokoelmanimi == Kuva::$KUVAT_BONGAUS) {
                        // Asetetaan id_kuva uuden kuvan vastaavaksi:
                        $parametriolio->id_kuva = $id_kuva;
                        $palauteolio_apu = toteuta_bongaus_nayta_albumin_yksi_kuva($parametriolio);
                        $sisaltoteksti = $palauteolio_apu->get_sisalto();
                    } else {
                        $sisaltoteksti = "Virhe: tuntematon kokoelmanimi";
                    }
                }
                unset($_FILES['ladattu_kuva']);
                //Poistetaan entiset.
            } else {
                $ilmoitus = "Virhe kuvan tallennuksessa ({$palaute['0']})!\n                            Yrit&auml; uudestaan!";
                $parametriolio->ilmoitus_kuva = $ilmoitus;
                if ($parametriolio->kokoelmanimi == Kuva::$KUVAT_BONGAUS) {
                    $havaintokontrolli = new Havaintokontrolleri($parametriolio->tietokantaolio, $parametriolio);
                    $palauteolio_apu = $havaintokontrolli->toteuta_nayta_kuvalomake_havaintoihin();
                } else {
                    $palauteolio_apu = toteuta_nayta_kuvalomake($parametriolio);
                }
                $sisaltoteksti = $palauteolio_apu->get_sisalto();
            }
            $palauteolio->set_sisalto($sisaltoteksti);
            $palauteolio->set_ilmoitus($ilmoitus);
        }
    }
    return $palauteolio;
}