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!')); }
public static function count_uudet_viestit() { if (isset($_SESSION['karhuid'])) { $_SESSION['viesteja'] = Viesti::laske_uudet_viestit($_SESSION['karhuid']); } else { $_SESSION['viesteja'] = null; } }
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!')); } }
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'); } }
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!')); }