/** * @retun IRISItem[] */ public function getRISItemsByDate() { /** @var IRISItem[] $items */ $items = []; foreach ($this->antraege as $ant) { $items[] = $ant; } foreach ($this->dokumente as $dok) { $items[] = $dok; } foreach ($this->ergebnisse as $erg) { $items[] = $erg; } usort($items, function ($it1, $it2) { /** @var IRISItem $it1 */ /** @var IRISItem $it2 */ $tim1 = RISTools::date_iso2timestamp($it1->getDate()); $tim2 = RISTools::date_iso2timestamp($it2->getDate()); if ($tim1 > $tim2) { return 1; } if ($tim1 < $tim2) { return -1; } return 0; }); return $items; }
/** * @param \Solarium\QueryType\Select\Result\Result $ergebnisse * @return array(); */ public static function ergebnisse2FeedData($ergebnisse) { $data = array(); $dokumente = $ergebnisse->getDocuments(); $highlighting = $ergebnisse->getHighlighting(); $purifier = new CHtmlPurifier(); $purifier->options = array('URI.AllowedSchemes' => array('http' => true, 'https' => true)); foreach ($dokumente as $dokument) { $model = Dokument::getDocumentBySolrId($dokument->id); $risitem = $model->getRISItem(); if (!$risitem) { continue; } $link = $risitem->getLink(); $highlightedDoc = $highlighting->getResult($dokument->id); $item = array("title" => $model->name . " (zu " . $risitem->getTypName() . " \"" . $risitem->getName() . "\"", "link" => $link, "content" => "", "dateCreated" => RISTools::date_iso2timestamp(str_replace("T", " ", str_replace("Z", "", $dokument->sort_datum))), "aenderung_guid" => $link); if ($highlightedDoc && count($highlightedDoc) > 0) { foreach ($highlightedDoc as $highlight) { $item["content"] .= $purifier->purify(implode(' (...) ', $highlight)) . '<br/>'; } } $data[] = $item; } return $data; }
if ($ts1 > $ts2) { return -1; } if ($ts1 < $ts2) { return 1; } return 0; }); ?> <h3>Protokolle & Tagesordnungen</h3> <br> <ul class="dokumentenliste_small"> <?php foreach ($dokumente as $dokument) { $name = str_replace(" (oeff)", "", $dokument->getName(true)); $name .= " zur Sitzung am " . date("d.m.Y", RISTools::date_iso2timestamp($dokument->termin->termin)); echo '<li>'; echo "<div class='metainformationen_antraege'>" . CHtml::encode($dokument->getDisplayDate()) . "</div>"; echo CHtml::link('<span class="glyphicon glyphicon-file"></span> ' . $name, $dokument->getLinkZumDokument()); echo '</li>'; } ?> </ul> <?php } ?> <br> <?php if (count($bvs) > 0) {
?> <a href="<?php echo CHtml::encode($verw->getLink()); ?> " class="overflow-fadeout-white"><?php echo CHtml::encode($title); ?> </a> <?php } ?> </h4> <?php $max_date = 0; foreach ($verw->dokumente as $dokument) { $dat = RISTools::date_iso2timestamp($dokument->getDate()); if ($dat > $max_date) { $max_date = $dat; } } ?> <p class="list-group-item-text"> <?php echo count($verw->dokumente) == 1 ? "1 Dokument" : count($verw->dokumente) . " Dokumente"; ?> </p> <div class="metainformationen_antraege"><?php $parteien = array(); foreach ($verw->antraegePersonen as $person) { $name = $person->person->name; $partei = $person->person->ratePartei($verw->gestellt_am);
/** * @return array */ public function getVEventParams() { $description = "Infoseite: " . SITE_BASE_URL . Yii::app()->createUrl("termine/anzeigen", ["termin_id" => $this->id]); foreach ($this->antraegeDokumente as $dok) { $description .= "\n" . $dok->getName() . ": " . $dok->getLink(); } $ende = date("Y-m-d H:i:s", RISTools::date_iso2timestamp($this->termin) + 3600); return ['SUMMARY' => $this->getName(true), 'DTSTART' => new \DateTime($this->termin, new DateTimeZone("Europe/Berlin")), 'DTEND' => new \DateTime($ende, new DateTimeZone("Europe/Berlin")), 'LOCATION' => $this->sitzungsort, 'DESCRIPTION' => $description]; }
/** * @param string $datum_max */ public function actionStartseite($datum_max = "") { $this->top_menu = "stadtrat"; $this->performLoginActions(); $this->load_leaflet_css = true; $this->load_leaflet_draw_css = true; if (preg_match("/^[0-9]{4}\\-[0-9]{2}\\-[0-9]{2}\$/siu", $datum_max)) { $ts = RISTools::date_iso2timestamp($datum_max); list($antraege, $antraege_stadtrat, $antraege_sonstige, $rus, $datum_von, $datum_bis) = $this->getStadtratsDokumenteByDate($ts); } else { list($antraege, $antraege_stadtrat, $antraege_sonstige, $rus, $datum_von, $datum_bis) = $this->getStadtratsDokumenteByDate(time()); } list($geodata, $geodata_overflow) = $this->antraege2geodata($antraege); $gestern = date("Y-m-d", RISTools::date_iso2timestamp($datum_von) - 1); $this->render('startseite', ["aeltere_url_ajax" => $this->createUrl("index/stadtratAntraegeAjaxDatum", ["datum_max" => $gestern]), "aeltere_url_std" => $this->createUrl("index/startseite", ["datum_max" => $gestern]) . "#stadtratsdokumente_holder", "neuere_url_ajax" => null, "neuere_url_std" => null, "antraege_sonstige" => $antraege_sonstige, "antraege_stadtrat" => $antraege_stadtrat, "geodata" => $geodata, "geodata_overflow" => $geodata_overflow, "datum" => $datum_von, "explizites_datum" => $datum_max != "", "statistiken" => RISMetadaten::getStats(), "rathausumschauen" => $rus]); }
/** * @param string $fallback * @return string */ public function getDisplayDate($fallback = "") { if ($fallback == "") { $fallback = "Vor 2008"; } $ts = RISTools::date_iso2timestamp($this->datum); if ($ts > DOCUMENT_DATE_ACCURATE_SINCE) { return date("d.m.Y", $ts); } $ts = RISTools::date_iso2timestamp($this->datum_dokument); if ($ts > DOCUMENT_DATE_UNKNOWN_BEFORE) { return date("d.m.Y", $ts); } return $fallback; }
/** * @param int $zeitspanne * @return array */ public function benachrichtigungsErgebnisse($zeitspanne) { $benachrichtigungen = $this->getBenachrichtigungen(); if ($zeitspanne > 0) { $neu_seit_ts = time() - $zeitspanne * 24 * 3600; $neu_seit = date("Y-m-d H:i:s", $neu_seit_ts); } else { $neu_seit = $this->datum_letzte_benachrichtigung; $neu_seit_ts = RISTools::date_iso2timestamp($neu_seit); } $ergebnisse = ["antraege" => [], "termine" => [], "vorgaenge" => []]; $sql = Yii::app()->db->createCommand(); $sql->select("id")->from("dokumente")->where("datum >= '" . addslashes($neu_seit) . "'"); $data = $sql->queryColumn(["id"]); if (count($data) > 0) { $document_ids = []; foreach ($data as $did) { $document_ids[] = "id:\"Document:{$did}\""; } foreach ($benachrichtigungen as $benachrichtigung) { $e = $this->queryBenachrichtigungen($document_ids, $benachrichtigung); foreach ($e as $f) { $d = explode(":", $f["id"]); $dokument_id = IntVal($d[1]); $dokument = Dokument::getCachedByID($dokument_id); if (!$dokument) { continue; } if ($dokument->antrag_id > 0) { if (!isset($ergebnisse["antraege"][$dokument->antrag_id])) { $ergebnisse["antraege"][$dokument->antrag_id] = ["antrag" => $dokument->antrag, "dokumente" => []]; } if (!isset($ergebnisse["antraege"][$dokument->antrag_id]["dokumente"][$dokument_id])) { $ergebnisse["antraege"][$dokument->antrag_id]["dokumente"][$dokument_id] = ["dokument" => Dokument::model()->findByPk($dokument_id), "queries" => []]; } $ergebnisse["antraege"][$dokument->antrag_id]["dokumente"][$dokument_id]["queries"][] = $benachrichtigung; } elseif ($dokument->termin_id > 0) { if (!isset($ergebnisse["termine"][$dokument->termin_id])) { $ergebnisse["termine"][$dokument->termin_id] = ["termin" => $dokument->termin, "dokumente" => []]; } if (!isset($ergebnisse["termine"][$dokument->termin_id]["dokumente"][$dokument_id])) { $ergebnisse["termine"][$dokument->termin_id]["dokumente"][$dokument_id] = ["dokument" => Dokument::model()->findByPk($dokument_id), "queries" => []]; } $ergebnisse["termine"][$dokument->termin_id]["dokumente"][$dokument_id]["queries"][] = $benachrichtigung; } } } } foreach ($this->abonnierte_vorgaenge as $vorgang) { foreach ($vorgang->antraege as $ant) { if (RISTools::date_iso2timestamp($ant->datum_letzte_aenderung) < $neu_seit_ts) { continue; } if (!isset($ergebnisse["vorgaenge"][$vorgang->id])) { $ergebnisse["vorgaenge"][$vorgang->id] = ["vorgang" => $vorgang->wichtigstesRisItem()->getName(true), "neues" => []]; } $ant->findeAenderungen(time()); $ergebnisse["vorgaenge"][$vorgang->id]["neues"][] = $ant; } foreach ($vorgang->dokumente as $dok) { if (RISTools::date_iso2timestamp($dok->datum) < $neu_seit_ts) { continue; } if (!isset($ergebnisse["vorgaenge"][$vorgang->id])) { $ergebnisse["vorgaenge"][$vorgang->id] = ["vorgang" => $vorgang->wichtigstesRisItem()->getName(true), "neues" => []]; } $ergebnisse["vorgaenge"][$vorgang->id]["neues"][] = $dok; } foreach ($vorgang->ergebnisse as $erg) { if (RISTools::date_iso2timestamp($erg->datum_letzte_aenderung) < $neu_seit_ts) { continue; } if (!isset($ergebnisse["vorgaenge"][$vorgang->id])) { $ergebnisse["vorgaenge"][$vorgang->id] = ["vorgang" => $vorgang->wichtigstesRisItem()->getName(true), "neues" => []]; } $ergebnisse["vorgaenge"][$vorgang->id]["neues"][] = $erg; } } return $ergebnisse; }
<tr id="wahlperiode"> <th>Wahlperiode:</th> <td><?php echo CHtml::encode($antrag->wahlperiode); ?> </td> </tr> <?php $docs = $antrag->dokumente; usort($docs, function ($dok1, $dok2) { /** * @var Dokument $dok1 * @var Dokument $dok2 */ $ts1 = RISTools::date_iso2timestamp($dok1->getDate()); $ts2 = RISTools::date_iso2timestamp($dok2->getDate()); if ($ts1 > $ts2) { return 1; } if ($ts1 < $ts2) { return -1; } return 0; }); zeile_anzeigen($docs, "Dokumente:", "dokumente", function ($dokument) { /** @var Dokument $dok */ echo CHtml::encode($dokument->getDisplayDate()) . ": " . CHtml::link($dokument->getName(false), $dokument->getLinkZumDokument()); ?> <a class="fontello-download antrag-herunterladen" href="<?php echo CHtml::encode('/dokumente/' . $dokument->id . '.pdf'); ?>
/** * @return int */ public function getDokumentenMaxTS() { $max_date = 0; foreach ($this->dokumente as $dokument) { $dat = RISTools::date_iso2timestamp($dokument->getDate()); if ($dat > $max_date) { $max_date = $dat; } } return $max_date; }
/** * @return array */ public function toFeedData() { $item = $this->getRISItem(); return ["title" => $item ? $item->getTypName() . ": " . $item->getName() : "?", "link" => $item ? $item->getLink() : "-", "content" => nl2br(CHtml::encode($this->aenderungen)), "dateCreated" => RISTools::date_iso2timestamp($this->datum), "aenderung_guid" => Yii::app()->createUrl("aenderung/anzeigen", ["id" => $this->id])]; }