Ejemplo n.º 1
0
/**
 * Toteuttaa poiston ja palauttaa taulukon, jossa ilmoitus ja havaintojen haku.
 * @param Parametrit $parametriolio
 * @return Palaute $palauteolio
 */
function toteuta_poisto_hav($parametriolio)
{
    $omaid = $parametriolio->omaid;
    $id_hav = $parametriolio->id_hav;
    $ylaluokka_id = $parametriolio->ylaluokka_id_lj;
    $tietokantaolio = $parametriolio->tietokantaolio;
    $palauteolio = new Palaute();
    $taulu = "bhavainnot";
    $taulun_sarake = "id";
    $hakuarvo = $id_hav;
    $poistopalaute = $tietokantaolio->poista_rivi($taulu, $taulun_sarake, $hakuarvo);
    if ($poistopalaute == Bongausasetuksia::$tietokantahaku_onnistui) {
        $ilmoitus = Bongaustekstit::$ilm_havainnon_poisto_ok;
        //=============== PIkakommenttien poisto =======================
        // Luodaan Kontrolleri_pikakommentit-olio, joka huolehtii
        // orpojen pikakommenttien poistosta
        $kontrolleri = new Kontrolleri_pikakommentit($tietokantaolio, $parametriolio, "");
        $kohde_tyyppi = Pikakommentti::$KOHDE_BONGAUS;
        $kohde_id = $id_hav;
        $poistettu_lkm = $kontrolleri->poista_pikakommentit($tietokantaolio, $kohde_tyyppi, $kohde_id);
        $ilmoitus .= Pikakommenttitekstit::ilmoitus_pikakommentit_poistettu($poistettu_lkm);
        //==============================================================
    } else {
        $ilmoitus = Bongaustekstit::$ilm_havainnon_poisto_eiok;
    }
    $sis = hae_havainnot($parametriolio);
    $palauteolio->set_sisalto($sis);
    $palauteolio->set_ilmoitus($ilmoitus);
    $palauteolio->set_oikean_palkin_naytto(true);
    return $palauteolio;
}
Ejemplo n.º 2
0
 /**
  * Poistaa poistettuun havaintoon osoittavat pikakommentit ja asettaa
  * havaintoon osoittavien bkuvalinkkien havainto_id:n arvoksi -1. Vie 
  * muuttujiin tiedot tehdyistä operaatioista.
  */
 public function siivoa_tietokanta_poiston_jalkeen()
 {
     $this->poistetut_pikakommentit_lkm = Kontrolleri_pikakommentit::poista_pikakommentit($this->tietokantaolio, Pikakommentti::$KOHDE_BONGAUS, $this->get_id());
     // Muutetaan kuvalinkkien havainto_id niin, ettei osoita olemattomaan:
     $palaute = $this->tietokantaolio->tee_UPDATEhaku(Tietokannan_taulunimet::$bkuvalinkit, array("havainto_id"), array(-1), "havainto_id", $this->get_id(), 1000000);
     if ($palaute != Tietokantaolio::$HAKUVIRHE) {
         $this->muutetut_bkuvalinkit_lkm = $palaute;
     }
 }
Ejemplo n.º 3
0
/**
 *
 * @param <type> $valinnat
 * @param Tietokantaolio $tietokantaolio
 * @param int $omaid
 * @return <string> Palauttaa viestin suorituksen onnistumisesta, joka
 * n&auml;ytet&auml;&auml;n k&auml;ytt&auml;j&auml;lle.
 */
function poista_suoritukset(&$valinnat, $tietokantaolio, $omaid)
{
    $vastaus = '';
    $lkm = 0;
    if (!isset($valinnat)) {
        $vastaus = "Poisto ep&auml;onnistui!\n                    Valintataulukko on m&auml;&auml;rittelem&auml;t&ouml;n";
    } else {
        if ($valinnat == "" || sizeof($valinnat) == 0) {
            $vastaus = "Poisto ep&auml;onnistui!\n                    Yht&auml;&auml;n valittua rivi&auml; ei l&ouml;ytynyt!";
        } else {
            $ilmoitus = "";
            $poistettu_lkm = 0;
            // PIkakommentitt!
            foreach ($valinnat as $id) {
                $poisto = $tietokantaolio->poista_rivi("suoritukset", "id", $id);
                if ($poisto == "onnistui") {
                    $lkm++;
                    //=============== PIkakommenttien poisto =======================
                    // Luodaan Kontrolleri_pikakommentit-olio, joka huolehtii
                    //orpojen pikakommenttien poistosta (parametriolio tarvitaan siihen):
                    $kokoelmanimi = "";
                    //Ei tarvetta
                    $paraolio = new Parametrit($kokoelmanimi, $omaid, $tietokantaolio);
                    $kontrolleri = new Kontrolleri_pikakommentit($tietokantaolio, $paraolio, "");
                    $kohde_tyyppi = Pikakommentti::$KOHDE_LIIKUNTASUORITUS;
                    $kohde_id = $id;
                    $poistettu_lkm += $kontrolleri->poista_pikakommentit($tietokantaolio, $kohde_tyyppi, $kohde_id);
                    //==============================================================
                }
            }
            if ($poistettu_lkm == 0) {
                $ilmoitus = "<br /> Poistettavia pikakommentteja ei l&ouml;ytynyt.";
            } else {
                $ilmoitus .= "<br /> Pikakommentit (yht. " . $poistettu_lkm . " kpl) poistettu.";
            }
            $vastaus = "Suorituksia poistettiin onnistuneesti " . $lkm . " kpl. " . $ilmoitus;
        }
    }
    return $vastaus;
}
Ejemplo n.º 4
0
/**
 * Poistaa yhden kuvan, sen pikkukuvat ja siihen liittyvät kuva_albumi_linkit
 * tai bkuvalinkit.
 *
 * Lisäys 15.1.2012: Poistaa myös kuvaan liittyvät pikakommentit!
 *
 * Palauttaa viestin onnistumisesta.
 *
 * @param <type> $oma_id
 * @param <type> $id_kuva
 * @param Tietokantaolio $tietokantaolio
 * @param <type> $kokoelmanimi
 * @return string Palauteviesti
 */
function poista_kuva($oma_id, $id_kuva, $tietokantaolio, $kokoelmanimi)
{
    // Haetaan kuvan src poistoa varten:
    $hakulause = "SELECT src, tiedostonimi, henkilo_id\n                FROM kuvat\n                WHERE id = {$id_kuva}";
    $hakutulos = $tietokantaolio->tee_OMAhaku($hakulause);
    $osumataulukko = $tietokantaolio->hae_osumarivit_olioina($hakutulos);
    if (sizeof($osumataulukko) == 0) {
        $src = "";
        $tiedostonimi = "";
        $henkilo_id = "";
    } else {
        $src = $osumataulukko[0]->src;
        $tiedostonimi = $osumataulukko[0]->tiedostonimi;
        $henkilo_id = $osumataulukko[0]->henkilo_id;
    }
    // Varmistus: kuvan poistoon pitää olla kuvan tallentaja tai hallitsija-
    //valtuudet:
    $taulunimi = "henkilot";
    $sarakenimi = "id";
    $hakuarvo = $oma_id;
    $henkilo_olio = $tietokantaolio->hae_eka_osuma_oliona($taulunimi, $sarakenimi, $hakuarvo);
    if ($henkilo_olio != Tietokantaolio::$HAKU_PALAUTTI_TYHJAN) {
        $valtuus = $henkilo_olio->valtuudet;
    } else {
        $valtuus = Valtuudet::$RAJOITETTU;
    }
    if ($oma_id == $henkilo_id || $valtuus == Valtuudet::$HALLINTA) {
        // POistetaan kuvatiedot tietokannasta:
        $taulu = "kuvat";
        $taulun_sarake = "id";
        $hakuarvo = $id_kuva;
        $ilmoitus = $tietokantaolio->poista_rivi($taulu, $taulun_sarake, $hakuarvo);
        // Määritellään pikkukuvien kansio-osoite:
        $pikkukuvien_kansio = Kuva::$kansion_os_kuvat_pikkukuvat;
        if ($kokoelmanimi == Kuva::$KUVAT_BONGAUS) {
            $pikkukuvien_kansio = Kuva::$kansion_os_bongauskuvat_pikkukuvat;
        }
        // Jos kuvan poisto onnistui, poistetaan myös orvoiksi jääneet linkit:
        if ($ilmoitus == "onnistui") {
            $osoite_minikuva1 = $pikkukuvien_kansio . "/" . Kuva::$pikkukuva1_nimen_osa . $tiedostonimi;
            $osoite_minikuva2 = $pikkukuvien_kansio . "/" . Kuva::$pikkukuva2_nimen_osa . $tiedostonimi;
            $osoite_minikuva3 = $pikkukuvien_kansio . "/" . Kuva::$pikkukuva3_nimen_osa . $tiedostonimi;
            // Tämä tuhoaa tiedoston lopullisesti:
            $todellinen_poisto = unlink($src);
            $todellinen_poistomini1 = unlink($osoite_minikuva1);
            $todellinen_poistomini2 = unlink($osoite_minikuva2);
            $todellinen_poistomini3 = unlink($osoite_minikuva3);
            // Aktiivisuusmerkintä:
            $viimeksi_aktiivi = time();
            $aktiivisuuslaji = Aktiivisuus::$KUVAN_POISTO;
            paivita_aktiivisuus($oma_id, $tietokantaolio, $viimeksi_aktiivi, $aktiivisuuslaji);
            // Varmistetaan poistot:
            if ($todellinen_poisto) {
                $ilmoitus = "Kuvan poisto ok!";
            } else {
                $ilmoitus = "Virhe kuvan poistossa! Kuvan tiedot poistettu\n                    tietokannasta, mutta kuvatiedoston poisto ei onnistunut. ";
            }
            if ($todellinen_poistomini1) {
                $ilmoitus .= " Poistettu: minikuva1";
            } else {
                $ilmoitus .= " Virhe: minikuvan1 poisto ep&auml;onnistui!";
            }
            if ($todellinen_poistomini2) {
                $ilmoitus .= " minikuva2";
            } else {
                $ilmoitus .= " Virhe: minikuvan2 poisto ep&auml;onnistui!";
            }
            if ($todellinen_poistomini3) {
                $ilmoitus .= " ja minikuva3 JESS!";
            } else {
                $ilmoitus .= " Virhe: minikuvan3 poisto ep&auml;onnistui!";
            }
            //=============== PIkakommenttien poisto ===========================
            // Luodaan Kontrolleri_pikakommentit-olio, joka huolehtii
            //orpojen pikakommenttien poistosta (parametriolio tarvitaan siihen):
            $paraolio = new Parametrit($kokoelmanimi, $oma_id, $tietokantaolio);
            $kontrolleri = new Kontrolleri_pikakommentit($tietokantaolio, $paraolio, "");
            if ($kokoelmanimi == Kuva::$KUVAT_ALBUMIT) {
                $kohde_tyyppi = Pikakommentti::$KOHDE_KUVA_TAVIS;
                $kohde_id = $id_kuva;
            } else {
                if ($kokoelmanimi == Kuva::$KUVAT_BONGAUS) {
                    $kohde_tyyppi = Pikakommentti::$KOHDE_KUVA_BONGAUS;
                    $kohde_id = $id_kuva;
                }
            }
            $poistettu_lkm = $kontrolleri->poista_pikakommentit($tietokantaolio, $kohde_tyyppi, $kohde_id);
            if ($poistettu_lkm == 0) {
                $ilmoitus .= "<br /> Poistettavia pikakommentteja ei l&ouml;ytynyt.";
            } else {
                $ilmoitus .= "<br /> Pikakommentit (" . $poistettu_lkm . " kpl) poistettu.";
            }
            //==================================================================
            // Haetaan ja poistetaan linkit. Kerrallakin voisi poistaa delete-
            // lauseella, mutta se tuntuu vähän uskaliaalta. Näin ainakin poisto
            // pysyy hanskassa, eikä nopeudella lie tässä niin väliä.
            if ($kokoelmanimi == Kuva::$KUVAT_ALBUMIT) {
                $taulunimi = "kuva_albumi_linkit";
            } else {
                if ($kokoelmanimi == Kuva::$KUVAT_BONGAUS) {
                    $taulunimi = "bkuvalinkit";
                } else {
                    $taulunimi = "tuntematon";
                    $ilmoitus .= " VIRHE linkkien poistossa! Kokoelmanimi '" . $kokoelmanimi . "' tuntematon!";
                }
            }
            if ($taulunimi != "tuntematon") {
                $hakulause = "SELECT id\n                    FROM {$taulunimi}\n                    WHERE kuva_id = {$id_kuva}";
                $hakutulos = $tietokantaolio->tee_OMAhaku($hakulause);
                $linkit = $tietokantaolio->hae_osumarivit_olioina($hakutulos);
                $poistetut_linkit_lkm = 0;
                foreach ($linkit as $linkki) {
                    $taulu = $taulunimi;
                    $taulun_sarake = "id";
                    $hakuarvo = $linkki->id;
                    $ilm = $tietokantaolio->poista_rivi($taulu, $taulun_sarake, $hakuarvo);
                    if ($ilm == "onnistui") {
                        $poistetut_linkit_lkm++;
                    }
                }
                $ilmoitus .= "<br /> Linkit (" . $poistetut_linkit_lkm . " kpl) poistettu.";
            }
        } else {
            $ilmoitus = " Virhe kuvan poistossa! Yrit&auml; uudelleen!";
        }
    } else {
        $ilmoitus = "Ei valtuuksia kuvan poistoon!";
    }
    return $ilmoitus;
}