Example #1
0
 /**
  * @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;
 }
Example #2
0
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&shy;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