/** * @param float $lat * @param float $lng * @param float $radius * @param int $seite */ public function actionAntraegeAjaxGeo($lat, $lng, $radius, $seite = 0) { $krits = new RISSucheKrits(); $krits->addGeoKrit($lng, $lat, $radius); $solr = RISSolrHelper::getSolrClient("ris"); $select = $solr->createSelect(); $krits->addKritsToSolr($select); $select->setStart(30 * $seite); $select->setRows(30); $select->addSort('sort_datum', $select::SORT_DESC); $ergebnisse = $solr->select($select); /** @var Antrag[] $antraege */ $antraege = []; /** @var RISSolrDocument[] $solr_dokumente */ $solr_dokumente = $ergebnisse->getDocuments(); $dokument_ids = []; foreach ($solr_dokumente as $dokument) { $x = explode(":", $dokument->id); $dokument_ids[] = IntVal($x[1]); } foreach ($dokument_ids as $dok_id) { /** @var Dokument $ant */ $ant = Dokument::model()->with(["antrag" => [], "antrag.dokumente" => ["alias" => "dokumente_2", "condition" => "dokumente_2.id IN (" . implode(", ", $dokument_ids) . ")"]])->findByPk($dok_id); if ($ant && $ant->antrag) { $antraege[$ant->antrag_id] = $ant->antrag; } } $geodata = $this->getJSGeodata($krits, $ergebnisse); $naechster_ort = OrtGeo::findClosest($lng, $lat); ob_start(); $this->renderPartial('index_antraege_liste', ["aeltere_url_ajax" => $this->createUrl("index/antraegeAjaxGeo", ["lat" => $lat, "lng" => $lng, "radius" => $radius, "seite" => $seite + 1]), "aeltere_url_std" => $this->createUrl("index/antraegeStdGeo", ["lat" => $lat, "lng" => $lng, "radius" => $radius, "seite" => $seite + 1]), "neuere_url_ajax" => null, "neuere_url_std" => null, "antraege" => $antraege, "geo_lng" => $lng, "geo_lat" => $lat, "radius" => $radius, "naechster_ort" => $naechster_ort, "weiter_links_oben" => true, "zeige_jahr" => true]); Header("Content-Type: application/json; charset=UTF-8"); echo json_encode(["datum" => date("Y-m-d"), "html" => ob_get_clean(), "geodata" => $geodata, "krit_str" => $krits->getJson(), "naechster_ort" => $naechster_ort->ort]); Yii::app()->end(); }
echo "<li>"; echo "<a class='antrag-name' href='" . CHtml::encode($antrag->getLink()) . "'>" . $antrag->getName(true) . "</a>"; echo "<span class='list-js-datum'> (" . RISTools::datumstring($antrag->gestellt_am) . ")</span>"; echo "</li>\n"; } ?> </ul> </td> </tr> <?php } else { $suche = new RISSucheKrits(); $suche->addVolltextsucheKrit("\"" . $person->getName() . "\""); $solr = RISSolrHelper::getSolrClient("ris"); $select = $solr->createSelect(); $suche->addKritsToSolr($select); $select->setRows(50); $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>'); /** @var \Solarium\QueryType\Select\Result\Result $ergebnisse */ $ergebnisse = $solr->select($select); $dokumente = $ergebnisse->getDocuments(); if (count($dokumente) > 0) { echo '<tr><th>Namentlich erwähnt in:</th><td><ul>'; $highlighting = $ergebnisse->getHighlighting(); foreach ($dokumente as $dokument) { $dok = Dokument::getDocumentBySolrId($dokument->id, true);