/**
  * @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();
 }
示例#2
0
        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);