Esempio n. 1
0
 /**
  * @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 &amp; 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);
Esempio n. 5
0
 /**
  * @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]);
 }
Esempio n. 7
0
 /**
  * @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;
 }
Esempio n. 8
0
 /**
  * @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;
 }
Esempio n. 9
0
                <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');
    ?>
Esempio n. 10
0
 /**
  * @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;
 }
Esempio n. 11
0
 /**
  * @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])];
 }