Beispiel #1
0
 public static function poista($viestiid)
 {
     $viesti = new Viesti(array('viestiid' => $viestiid));
     if ($viesti->poista($_SESSION['karhuid'])) {
         Redirect::to('/viestit', array('viesti' => 'Viesti poistettu!'));
     } else {
         Redirect::to('/viestit', array('virhe' => 'Viestiä ei voi poistaa!'));
     }
 }
 public function luoMuokattuViesti($id)
 {
     $params = $_POST;
     $viesti = Viesti::getRow($id);
     $attributes = array('id' => $id, 'content' => $params['viesti'], 'thread' => $viesti['thread']);
     $message = new Viesti($attributes);
     $errors = $message->errors();
     if (count($errors) == 0) {
         $message->update();
     } else {
         Redirect::to('/viesti/edit/' . $id, array('errors' => $errors, 'params' => $params));
     }
     Redirect::to('/langat/' . $viesti['thread'], array('message' => 'Viesti muokattu onnistuneesti!'));
 }
Beispiel #3
0
 public static function count_uudet_viestit()
 {
     if (isset($_SESSION['karhuid'])) {
         $_SESSION['viesteja'] = Viesti::laske_uudet_viestit($_SESSION['karhuid']);
     } else {
         $_SESSION['viesteja'] = null;
     }
 }
Beispiel #4
0
 public function poista($karhuid)
 {
     $poistettava = Viesti::etsi($this->viestiid);
     if ($poistettava->saajaid == $karhuid) {
         $kysely = DB::connection()->prepare('DELETE FROM Viesti WHERE viestiid = :viestiid');
         $kysely->execute(array('viestiid' => $this->viestiid));
         return TRUE;
     }
     return FALSE;
 }
 public static function updateMessage()
 {
     $params = $_POST;
     if ($params['action'] == 'destroy') {
         $viesti = Viesti::findByID($params['viestiid']);
         $viesti->destroy();
         Redirect::to('/messages', array('message' => 'Viesti poistettu!'));
     }
     if ($params['action'] == 'update') {
         $attributes = array('viestiid' => intval($params['viestiid']), 'lahettavaid' => $_SESSION['asiakasid'], 'vastaanottavaid' => intval($params['vastaanottavaid']), 'sisalto' => $params['sisalto']);
         $viesti = new Viesti($attributes);
         $errors = $viesti->errors();
         if (count($errors) == 0) {
             $viesti->update();
             Redirect::to('/messages', array('message' => 'Muutokset tallennettu viestiin'));
         } else {
             Redirect::to('/messages', array('errors' => $errors, 'attributes' => $attributes));
         }
     }
 }
 public function luoSivu()
 {
     if (self::get_user_logged_in()) {
         $tili = self::get_user_logged_in();
         $nimi = $tili->name;
         $viestit = Viesti::haeTekijalla($tili->id);
         View::make('tili/tili.html', array('viestit' => $viestit, 'nimi' => $nimi));
     } else {
         Redirect::to('/login/', array('message' => 'Kirjaudu sisään nähdäksesi profiilisi!'));
     }
 }
Beispiel #7
0
 public static function index()
 {
     $keikat = array();
     self::count_uudet_viestit();
     if (isset($_SESSION['karhuid'])) {
         $keikat = Karhu::karhun_keikat($_SESSION['karhuid']);
         $uudetviestit = Viesti::uudetviestit($_SESSION['karhuid']);
         $johdettavat_keikat = Karhu::karhun_johdettavat_keikat($_SESSION['karhuid']);
         View::make('etusivu.html', array('keikat' => $keikat, 'uudetviestit' => $uudetviestit, 'lkm' => count($uudetviestit), 'johdettavat_keikat' => $johdettavat_keikat));
     } else {
         View::make('etusivu.html');
     }
 }
Beispiel #8
0
 public static function tuoreimmat()
 {
     $query = DB::connection()->prepare('SELECT * FROM message order by time desc LIMIT 35');
     $query->execute();
     $rows = $query->fetchAll();
     $viestit = array();
     $kaytetyt = array();
     foreach ($rows as $row) {
         if (Viesti::onkoKaytetty($row, $kaytetyt) && sizeof($kaytetyt) < 20) {
             array_push($kaytetyt, $row['thread']);
             $viestit[] = new Viesti(array('id' => $row['thread'], 'content' => $row['content'], 'time' => $row['time'], 'author' => Tili::getKayttajaIDlla($row['author']), 'thread' => Keskustelu::getTopic($row['thread'])));
         }
     }
     return $viestit;
 }
 public static function sandbox()
 {
     // Testaa koodiasi täällä
     $asiakas = Asiakas::findByID(1);
     $asiakkaat = Asiakas::all();
     $viesti = Viesti::findByID(1);
     $viestit = Viesti::all();
     Kint::dump($asiakkaat);
     Kint::dump($asiakas);
     Kint::dump($viestit);
     Kint::dump($viesti);
     $asiakas2 = new Asiakas(array('nimimerkki' => 'as', 'salasana' => '1234', 'email' => '*****@*****.**', 'syntymapaiva' => '1992-01-01', 'sukupuoli' => true, 'paikkakunta' => 'Bönde', 'yllapitaja' => false, 'paritele' => false));
     $errors = $asiakas2->errors();
     Kint::dump($errors);
 }
 public static function sandbox()
 {
     // Testaa koodiasi täällä
     $keskustelu = Keskustelu::getTopic(80);
     Kint::dump($keskustelu);
     $keskustelu = Keskustelu::keskusteluIdAvulla(78);
     Kint::dump($keskustelu);
     $keskustelualue = Keskustelualue::all();
     Kint::dump($keskustelualue);
     $keskustelu = Keskustelu::keskusteluAlifooruminAvulla(2);
     Kint::dump($keskustelu);
     $tili = Tili::all();
     Kint::dump($tili);
     $tili = Tili::getKayttajaIDlla(2);
     Kint::dump($tili);
     $viesti = Viesti::haeTekijalla(2);
     Kint::dump($viesti);
     $viesti = Viesti::tuoreimmat();
     Kint::dump($viesti);
     $viesti = Viesti::haeIDlla(211);
     Kint::dump($viesti);
     Kint::dump($viesti[0]->id);
     // Kint-luokan dump-metodi tulostaa muuttujan arvon
     //        Kint::dump($tili);
     //        $pekka = new tili(array(
     //            'name' => '..q',
     //            'password' => ' ..'
     //        ));
     //        $errors = $pekka->errors();
     //        Kint::dump($errors);
     //        $pekka = new viesti(array(
     //            'content' => '.q',
     //            'thread' => ''
     //        ));
     //        $errors = $pekka->errors();
     //
     //        Kint::dump($errors);
     $keskustelu = new Keskustelu(array('topic' => '12'));
     $errors = $keskustelu->errors();
     Kint::dump($errors);
     $suosikki = Suosikki::getSuosikitID(1);
     Kint::dump($suosikki);
 }
 public static function index()
 {
     $viestit = Viesti::tuoreimmat();
     View::make('home.html', array('viestit' => $viestit));
 }
/**
 * Palauttaa yhden keskustelun html-koodin halutulla tavalla, eli joko
 * näytetään kaikki kommentit tai vain osa ($kiinni = true).
 *
 * <p>Muutos 27.4.2013: suodatus lisätty, eli jos keskustelun aloittaja-
 * henkilö on suodatettu, ei keskustelua palauteta ollenkaan (tätä on
 * mahdollista hienosäätää tarvittaessa). Muista keskusteluista
 * suodatettujen henkilöiden viestit jätetään yksittäin pois.</p>
 * 
 * @param int $kesk_id Keskustelun id eli aloitusviestin id = kommenttien
 * emo_id.
 * @param bool $auki totuusarvo true, jos kaikki kommentit näytetään, false -
 * vain osa ($kiinni_lkm kappaletta vanhoja + uudet).
 * @param int $kiinni_lkm näin monta viestiä näytetään korkeintaan,
 * kun keskustelu on "kiinni"-tilassa (MUUTTUNUT).
 * @param int $aikaraja uusien viestien alkuaika sekunteina. Tätä vanhempia
 * ei näytetä ollenkaan (riittää toki, että yksi viesti keskustelussa on
 * aikarajaa uudempi).
 * @param Tietokantaolio $tietokantaolio
 * @param bool $kuningas
 * @param int $oma_id Käyttäjän om id.
 * @return string Palauttaa keskustelun html:n ilman alku- ja päätedivtageja
 * (helpottaa näyttötyylin muuttamista ajaxin avulla).
 */
function hae_keskustelu($kesk_id, $auki, $kiinni_lkm, $aikaraja, $tietokantaolio, $kuningas, $oma_id)
{
    // Haetaan ensin kaikki suodattimet, joissa käyttäjä itse toinen osapuoli:
    $suodattimet = Suodatin::hae_suodattimet($oma_id, $tietokantaolio);
    $omaid = $oma_id;
    // Ei mee sekaisin, molempia voi käyttää.
    $palaute = "ei_onnistunut";
    $mj = "";
    // html-koodi
    $on_piilotettavia = false;
    // Näytetäänkö kaikki kommentit?
    $kommenttien_lkm = 0;
    // keskustelun kommenttien lkm.
    // Haetaan ensin keskustelun aloitusviesti:
    $aloitusviesti = $tietokantaolio->hae_eka_osuma_oliona("viestit", "id", $kesk_id);
    // Ellei tämä onnistunut, ei tehdä mitään. Muuten jatketaan.
    if ($aloitusviesti != "tuntematon") {
        //======================== SUODATUS ALOITUSVIESTI ======================
        // Suodatus liittyen aloitusviestiin:
        $aloitushenkilon_id = $aloitusviesti->henkilo_id;
        // Jos aloittaja suodatetaan, palautetaan tyhjä merkkijono.
        if (Suodatin::henkilo_suodatetaan_kevyt($aloitushenkilon_id, $omaid, $suodattimet)) {
            return $palaute;
        }
        //======================================================================
        // Haetaan kaikki kommentit (joista vain osa näytetään, mutta
        // on hyvä tietää kommenttien kokonaislkm):
        $hakulause1 = "SELECT viestit.*\n                    FROM viestit\n                    WHERE emo_id = '" . $kesk_id . "'\n                    ORDER by tallennushetki_sek ASC";
        $viestihaku1 = $tietokantaolio->tee_OMAhaku($hakulause1);
        $viestitaulu1_kaikki = $tietokantaolio->hae_osumarivit_olioina($viestihaku1);
        //======================== SUODATUS KOMMENTIT ==========================
        $viestitaulu1 = array();
        // Tähän kerätään suodatetut.
        foreach ($viestitaulu1_kaikki as $viesti_tk) {
            $kirjoittaja_id = $viesti_tk->henkilo_id;
            if (!Suodatin::henkilo_suodatetaan_kevyt($kirjoittaja_id, $omaid, $suodattimet)) {
                array_push($viestitaulu1, $viesti_tk);
            }
        }
        //======================== SUODATUS ====================================
        $kommenttien_lkm = sizeof($viestitaulu1);
        // Jos vanhoja enemmän kuin näytetään, on piilotettavia:
        if ($kommenttien_lkm > $kiinni_lkm) {
            $on_piilotettavia = true;
        }
        // Muodostetaan uusi taulukko, johon kopioidaan aloitusviesti ja
        // sopiva määrä kommentteja oikeassa järjestyksessä:
        $kesk_viestit = array();
        array_push($kesk_viestit, $aloitusviesti);
        // Jos näytetään kaikki, kopsataan kaikki. Muuten vain sopiva osa.
        if ($auki) {
            foreach ($viestitaulu1 as $v) {
                array_push($kesk_viestit, $v);
            }
        } else {
            // Ei näytetä kaikkia:
            $alkuindeksi = 0;
            // Jos vanhoja enemmän kuin näytetään:
            if ($kommenttien_lkm > $kiinni_lkm) {
                $alkuindeksi = $kommenttien_lkm - $kiinni_lkm;
            }
            for ($i = $alkuindeksi; $i < sizeof($viestitaulu1); $i++) {
                $v2 = $viestitaulu1[$i];
                array_push($kesk_viestit, $v2);
            }
        }
        // Nyt meillä on aloitusviesti ja kommentit samassa taulukossa
        // oikeassa järjestyksessä ja päästään muotoilemaan viestien html:ää.
        for ($i = 0; $i < sizeof($kesk_viestit); $i++) {
            $nyk_olio = $kesk_viestit[$i];
            // Haetaan lähettäjän tiedot:
            $lahettaja = $tietokantaolio->hae_eka_osuma_oliona("henkilot", "id", $nyk_olio->henkilo_id);
            $on_valintaruutu = false;
            $saa_muokata = false;
            // Poiston salliminen. Kuninkaalla kaikki valta.
            if ($lahettaja !== "tuntematon" && $lahettaja->id === $oma_id && $nyk_olio->kommenttien_lkm < '1' || $kuningas) {
                // Valintaruutu sisältää vastaavan
                // tietokantarivin id:n, jotta se valittu rivi löydetään.
                $on_valintaruutu = true;
            }
            // Muokkauksen salliminen. Kuninkaalla kaikki valta.
            if ($lahettaja !== "tuntematon" && $lahettaja->id === $oma_id || $kuningas) {
                $saa_muokata = true;
            }
            // Muotoillaan lähettäjä mahdollistaen sen, että sitä ei löytynyt.
            if ($lahettaja !== "tuntematon") {
                $lahettaja = $lahettaja->etunimi;
            }
            // Luodaan uusi viestiolio (=taulukon eka viesti)):
            if ($i == 0) {
                $viesti = new Viesti($nyk_olio, false, false);
            } else {
                if ($i < sizeof($kesk_viestit) - 1) {
                    $viesti = new Viesti($nyk_olio, true, false);
                } else {
                    // Viimeinen viesti (uusin)
                    $viesti = new Viesti($nyk_olio, true, true);
                }
            }
            $mj .= $viesti->palauta_html($on_valintaruutu, $lahettaja, $kommenttien_lkm, $on_piilotettavia, $auki, $saa_muokata);
        }
        $palaute = $mj;
    }
    return $palaute;
}
 public function luoKetju($id)
 {
     $params = $_POST;
     $tili = self::get_user_logged_in();
     $attributes = array('topic' => $_POST['otsikko'], 'starter' => $tili->id, 'time' => date('d M Y H:i:s'), 'subforum' => $id);
     $ketju = new Keskustelu($attributes);
     $errors = $ketju->errors();
     if (count($errors) == 0) {
         $ketju->save();
     } else {
         Redirect::to('/uusi/ketju/' . $id, array('errors' => $errors, 'params' => $params));
     }
     $attributes = array('content' => $_POST['viesti'], 'author' => $tili->id, 'time' => date('d M Y H:i:s'), 'thread' => $ketju->id);
     $viesti = new Viesti($attributes);
     $errors = $viesti->errors();
     if (count($errors) == 0) {
         $viesti->save();
     } else {
         $ketju->delete();
         Redirect::to('/uusi/ketju/' . $id, array('errors' => $errors, 'params' => $params));
     }
     Redirect::to('/langat/' . $ketju->id, array('message' => 'Lanka luotu onnistuneesti!'));
 }