/** * @return array|array[] */ public function antraegeSortiert() { $antraege = $this->antraege; $antraege_sorted = array(); $unsichtbar = $this->getAntragUnsichtbarStati(); $unsichtbar[] = IAntrag::$STATUS_MODIFIZIERT; foreach ($antraege as $ant) { if (!in_array($ant->status, $unsichtbar)) { if (!isset($antraege_sorted[$ant->typ])) { $antraege_sorted[$ant->typ] = array(); } $key = $ant->revision_name; if (!$this->getEinstellungen()->zeilen_nummerierung_global) { if ($this->getEinstellungen()->ae_nummerierung_nach_zeile || veranstaltungsspezifisch_ae_sortierung_zeilennummer($this)) { $ant->aenderungsantraege = Aenderungsantrag::sortiereSichtbareNachZeilennummer($ant->aenderungsantraege); } } $antraege_sorted[$ant->typ][$key] = $ant; } } if (veranstaltungsspezifisch_hat_tags_startseite($this) && isset($_REQUEST["test"])) { $tags = array(); foreach ($antraege as $antrag) { if (count($antrag->tags) == 0) { if (!isset($tags[0])) { $tags[0] = array("name" => "Keines", "antraege" => array()); } $tags[0]["antraege"][] = $antrag; } else { foreach ($antrag->tags as $tag) { if (!isset($tags[$tag->id])) { $tags[$tag->id] = array("name" => $tag->name, "antraege" => array()); } $tags[$tag->id]["antraege"][] = $antrag; } } } $sortedTags = $this->getSortedTags(); $out = array(); foreach ($sortedTags as $tag) { if (isset($tags[$tag->id])) { foreach ($tags[$tag->id]["antraege"] as $antrag) { $out[] = $antrag; } } } if (isset($tags[0])) { foreach ($tags[0]["antraege"] as $antrag) { $out[] = $antrag; } } return array("Tag" => $out); } $cmp = veranstaltungsspezifisch_antrag_sort($this); if (!is_callable($cmp)) { $cmp = function ($str1, $str2, $num1, $num2) { if ($str1 == $str2) { if ($num1 < $num2) { return -1; } if ($num1 > $num2) { return 1; } return 0; } else { if ($str1 < $str2) { return -1; } if ($str1 > $str2) { return 1; } return 0; } }; } foreach ($antraege_sorted as $key => $val) { uksort($antraege_sorted[$key], function ($k1, $k2) use($cmp) { if ($k1 == "" && $k2 == "") { return 0; } if ($k1 == "") { return -1; } if ($k2 == "") { return 1; } $k1 = preg_replace("/neu\$/siu", "neu1", $k1); $k2 = preg_replace("/neu\$/siu", "neu1", $k2); $pat1 = "/^(?<str1>[^0-9]*)(?<num1>[0-9]*)/siu"; $pat2 = "/^(?<str1>[^0-9]*)(?<num1>[0-9]+)(?<str2>[^0-9]+)(?<num2>[0-9]+)\$/siu"; if (preg_match($pat2, $k1, $matches1) && preg_match($pat2, $k2, $matches2)) { if ($matches1["str1"] == $matches2["str1"] && $matches1["num1"] == $matches2["num1"]) { return $cmp($matches1["str2"], $matches2["str2"], $matches1["num2"], $matches2["num2"]); } else { return $cmp($matches1["str1"], $matches2["str1"], $matches1["num1"], $matches2["num1"]); } } elseif (preg_match($pat2, $k1, $matches1) && preg_match($pat1, $k2, $matches2)) { if ($matches1["str1"] == $matches2["str1"] && $matches1["num1"] == $matches2["num1"]) { return 1; } else { return $cmp($matches1["str1"], $matches2["str1"], $matches1["num1"], $matches2["num1"]); } } elseif (preg_match($pat1, $k1, $matches1) && preg_match($pat2, $k2, $matches2)) { if ($matches1["str1"] == $matches2["str1"] && $matches1["num1"] == $matches2["num1"]) { return -1; } else { return $cmp($matches1["str1"], $matches2["str1"], $matches1["num1"], $matches2["num1"]); } } else { preg_match($pat1, $k1, $matches1); preg_match($pat1, $k2, $matches2); $str1 = isset($matches1["str1"]) ? $matches1["str1"] : ""; $str2 = isset($matches2["str1"]) ? $matches2["str1"] : ""; $num1 = isset($matches1["num1"]) ? $matches1["num1"] : ""; $num2 = isset($matches2["num1"]) ? $matches2["num1"] : ""; return $cmp($str1, $str2, $num1, $num2); } }); } $antraege_sorted_by_name = array(); foreach (Antrag::$TYPEN_SORTED as $typ_id) { if (isset($antraege_sorted[$typ_id])) { $antraege_sorted_by_name[Antrag::$TYPEN[$typ_id]] = $antraege_sorted[$typ_id]; } } return $antraege_sorted_by_name; }
if ($editlink !== null) { echo "<a style='font-size: 10px;' href='" . CHtml::encode($this->createUrl($editlink[0], $editlink[1])) . "'>Bearbeiten</a>"; } ?> </h1> <div class='content' style='overflow: auto;'> <?php if ($veranstaltung->antragsschluss != "") { echo '<p class="antragsschluss_kreis">Antrags­schluss: ' . HtmlBBcodeUtils::formatMysqlDateTime($veranstaltung->antragsschluss) . "</p>\n"; } echo $einleitungstext->getHTMLText(); ?> </div> <?php if (veranstaltungsspezifisch_hat_tags_startseite($this->veranstaltung)) { require_once __DIR__ . "/index_layout_tags.php"; } elseif ($this->veranstaltung->getEinstellungen()->bdk_startseiten_layout) { require_once __DIR__ . "/index_layout_bdk.php"; } else { require_once __DIR__ . "/index_layout_std.php"; } ?> <?php if ($ich) { ?> <?php if (count($meine_antraege) > 0) { ?> <h3><?php