/** * @param Solarium\QueryType\Update\Query\Query $update */ private function solrIndex_antrag_do($update) { if (!$this->antrag) { return; } $max_datum = ""; /** @var RISSolrDocument $doc */ $doc = $update->createDocument(); $doc->id = "Document:" . $this->id; $doc->text = RISSolrHelper::string_cleanup(RISTools::korrigiereTitelZeichen($this->antrag->betreff) . " " . $this->text_pdf); $doc->text_ocr = RISSolrHelper::string_cleanup($this->text_ocr_corrected); $doc->dokument_name = RISSolrHelper::string_cleanup($this->name); $doc->dokument_url = $this->url; $doc->antrag_nr = $this->antrag->antrags_nr; $doc->antrag_wahlperiode = $this->antrag->wahlperiode; $doc->antrag_typ = $this->antrag->typ; $doc->antrag_ba = $this->antrag->ba_nr; $doc->antrag_id = $this->antrag->id; $doc->antrag_betreff = RISSolrHelper::string_cleanup($this->antrag->betreff); $doc->referat_id = $this->antrag->referat_id; $antrag_erstellt = $aenderungs_datum = []; if (preg_match("/^[0-9]{4}\\-[0-9]{2}\\-[0-9]{2}\$/", $this->antrag->gestellt_am)) { $antrag_erstellt[] = RISSolrHelper::mysql2solrDate($this->antrag->gestellt_am . " 12:00:00"); $aenderungs_datum[] = RISSolrHelper::mysql2solrDate($this->antrag->gestellt_am . " 12:00:00"); $max_datum = $this->antrag->gestellt_am . " 12:00:00"; } $geo = []; $dokument_bas = []; $dokument_bas[] = $this->antrag->ba_nr > 0 ? $this->antrag->ba_nr : 0; foreach ($this->orte as $ort) { if ($ort->ort->to_hide == 0) { $geo[] = $ort->ort->lat . "," . $ort->ort->lon; if ($ort->ort->ba_nr > 0 && !in_array($ort->ort->ba_nr, $dokument_bas)) { $dokument_bas[] = $ort->ort->ba_nr; } } } $doc->geo = $geo; $doc->dokument_bas = $dokument_bas; /** @var array|RISAenderung[] $aenderungen */ $aenderungen = RISAenderung::model()->findAllByAttributes(["ris_id" => $this->antrag_id], ["order" => "datum DESC"]); foreach ($aenderungen as $o) { $aenderungs_datum[] = RISSolrHelper::mysql2solrDate($o->datum); $max_datum = $o->datum; } $doc->antrag_erstellt = $antrag_erstellt; $doc->aenderungs_datum = $aenderungs_datum; $doc->antrag_gestellt_von = RISSolrHelper::string_cleanup($this->antrag->gestellt_von . " " . $this->antrag->initiatorInnen); if ($max_datum != "") { $doc->sort_datum = RISSolrHelper::mysql2solrDate($max_datum); } $update->addDocuments([$doc]); }
public function actionFeed() { if (isset($_REQUEST["krit_typ"])) { $krits = RISSucheKrits::createFromUrl($_REQUEST); $titel = Yii::app()->params['projectTitle'] . ': ' . $krits->getTitle(); $solr = RISSolrHelper::getSolrClient("ris"); $select = $solr->createSelect(); $krits->addKritsToSolr($select); $select->setRows(100); $select->addSort('sort_datum', $select::SORT_DESC); /** @var Solarium\QueryType\Select\Query\Component\Highlighting\Highlighting $hl */ $hl = $select->getHighlighting(); $hl->setFields('text, text_ocr, antrag_betreff'); $hl->setSimplePrefix('<b>'); $hl->setSimplePostfix('</b>'); $ergebnisse = $solr->execute($select); $data = RISSolrHelper::ergebnisse2FeedData($ergebnisse); } else { $data = []; /** @var array|RISAenderung[] $aenderungen */ $aenderungen = RISAenderung::model()->findAll(["order" => "id DESC", "limit" => 100]); foreach ($aenderungen as $aenderung) { $data[] = $aenderung->toFeedData(); } $titel = Yii::app()->params['projectTitle'] . ' Änderungen'; } $this->render("feed", ["feed_title" => $titel, "feed_description" => $titel, "data" => $data]); }
/** * @param int $von_ts * @param int $bis_ts * @return RISAenderung[] */ public function findeAenderungen($von_ts, $bis_ts = 0) { /** @var RISAenderung[] $aenderungen */ $aenderungen = RISAenderung::model()->findAllByAttributes(["typ" => $this->typ, "ris_id" => $this->id]); foreach ($aenderungen as $ae) { // @TODO var_dump($ae->getAttributes()); } }