Exemple #1
0
            // Luodaan tarvittavat oliot:
            $kayttajakontrolleri = new Kayttajakontrolleri($tietokantaolio, $parametriolio);
            $kayttajanakymat = new kayttajanakymat();
            // Suodattimien näyttö, jossa samalla voi muokata myös:
            if ($parametriolio->kayttajatoiminto == Kayttajatekstit::$suodattimet_painike_nayta_suodatinlomake_value) {
                $palauteolio = $kayttajakontrolleri->toteuta_nayta_suodatinlomake();
            }
        } else {
            $sisaltoteksti = hae_viestit($teemat, $tietokantaolio, $omaid, $kuningas, $teema_id, $aikaraja, $parametriolio->vika_viesti_id, $parametriolio->kiinni_lkm);
            $ilmoitus = muotoile_uusien_yleisten_viestien_lkm($parametriolio->uusien_yl_lkm);
        }
    }
    // Haetaan vielä uusien kommenttien lukumäärät:
    $uuskomm_lkm_liikunta = Kontrolleri_pikakommentit::hae_uusien_pikakomm_lkm(Pikakommentti::$KOHDE_LIIKUNTASUORITUS, $omaid, $tietokantaolio);
    $uuskomm_lkm_kuvat = Kontrolleri_pikakommentit::hae_uusien_pikakomm_lkm(Pikakommentti::$KOHDE_KUVA_TAVIS, $omaid, $tietokantaolio);
    $uuskomm_lkm_bongaus = Kontrolleri_pikakommentit::hae_uusien_pikakomm_lkm(Pikakommentti::$KOHDE_BONGAUS, $omaid, $tietokantaolio);
    // Suljetaan yhteys tietokantaan:
    $tietokantaolio->sulje_tietokanta();
    if ($palauteolio->kaytossa()) {
        $ilmoitus = $palauteolio->get_ilmoitus();
        $sisaltoteksti = $palauteolio->get_sisalto();
    }
}
//end of outer else (end)
?>


<!DOCTYPE html>

<html>
<head>
/**
 * 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;
}
/**
 * Hakee tietokannasta liikkujien nimet ja palauttaa ne tekstin&auml;.
 * @param <type> $tietokantaolio olio, joka sis&auml;lt&auml;&auml; yhteystiedot tietokantaan.
 * @return <type> Palauttaa merkkijonon, jota muokattu html:
 */
function hae_liikkujat($tietokantaolio, $omaid)
{
    $hakulause = "SELECT id, etunimi, sukunimi\n                    FROM henkilot\n                    WHERE id != '{$omaid}'";
    $hakutulos = $tietokantaolio->tee_OMAhaku($hakulause);
    $nimet_taulukko_all = $tietokantaolio->hae_osumarivit_olioina($hakutulos);
    //============= SUODATUS ALKU ======================
    $nimet_taulukko = array();
    $suodattimet = Suodatin::hae_suodattimet($omaid, $tietokantaolio);
    foreach ($nimet_taulukko_all as $osuma) {
        $henkilo_id = $osuma->id;
        if (!Suodatin::henkilo_suodatetaan_kevyt($henkilo_id, $omaid, $suodattimet)) {
            array_push($nimet_taulukko, $osuma);
        }
    }
    //============= SUODATUS LOPPU =====================
    $nimet = '';
    //kirjoita_elementtiin("nimet","Eka liikkuja on ".$nimet_taulukko[0]->etunimi);
    foreach ($nimet_taulukko as $nyk_olio) {
        // Otetaan mukaan vain sellaiset henkilöt, joilla on suorituksia:
        $tulos = $tietokantaolio->hae_eka_osuma_oliona("suoritukset", "henkilo_id", $nyk_olio->id);
        if ($tulos != "tuntematon") {
            // Haetaan uusien pikakommenttien lkm:
            $uusien_pk_lkm = Kontrolleri_pikakommentit::hae_henkilon_uusien_suorituspikakomm_lkm($omaid, $tietokantaolio, $nyk_olio->id);
            // Siivotaan mahdollinen URL:n kautta kulkeva liikenne.
            $kayt_ind = rawurlencode($nyk_olio->id);
            $omaind = rawurlencode($omaid);
            $etu = rawurlencode($nyk_olio->etunimi);
            $suku = rawurlencode($nyk_olio->sukunimi);
            $kysely = "kayttajaid={$kayt_ind}&enimi={$etu}&snimi={$suku}&omaid={$omaind}";
            // Alla huomaa, ett&auml; kysely pit&auml;&auml; olla lainausmerkeiss&auml;! Muuten ei toimi.
            $mj = <<<HASSUTAPA
                    <a
                    onclick="toteutaAJAX('suoritus_kyselyt.php',
                    '{$kysely}',
                    'reagoi','post', 'text')">
                    {$nyk_olio->etunimi} {$nyk_olio->sukunimi} {$uusien_pk_lkm}
                    </a>
HASSUTAPA;
            $nimet .= $mj;
        }
    }
    return $nimet;
}
Exemple #4
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;
     }
 }
/**
 * 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;
}
 $nykyinen_pikakommentti = new Pikakommentti($tietokantaolio, $pikakommentin_id);
 // Sijoitetaan tiedot tarvittaessa:
 if ($kysymys == "tallenna_uusi_pikakommentti") {
     $nykyinen_pikakommentti->set_henkilo_id($omaid);
     $nykyinen_pikakommentti->set_kohde_id($kohde_id);
     $nykyinen_pikakommentti->set_kohde_tyyppi($kohde_tyyppi);
     $nykyinen_pikakommentti->set_kommentti($kommenttiteksti);
 } else {
     if ($kysymys == "tallenna_pikakommentin_muutos") {
         $nykyinen_pikakommentti->set_kohde_id($kohde_id);
         $nykyinen_pikakommentti->set_kohde_tyyppi($kohde_tyyppi);
         $nykyinen_pikakommentti->set_kommentti($kommenttiteksti);
     } else {
     }
 }
 $kontrolleri_pikakommentit = new Kontrolleri_pikakommentit($tietokantaolio, $parametriolio, $nykyinen_pikakommentti);
 /********************************************************************/
 // Tarkistetaan, ettei käyttäjää ole potkaistu tai itse kirjautunut ulos:
 // Tämä voisi olla aiemmin, mutta en halunnut rasittaa liian usein
 // tapahtuvaksi.
 if (!online($_SESSION['tiedot']->id, $tietokantaolio)) {
     $kansiotaso = 2;
     toteuta_passiivinen_ulos_toiminto($kansiotaso);
     echo Yleisarvoja::$istunto_vanhentunut;
     exit;
 }
 /******************************************************************/
 // Ikätarkistus:
 if (!on_alaikainen_tai_elakkeella($omaid, $tietokantaolio)) {
     $alaikainen = false;
 } else {