Ejemplo n.º 1
0
 public function actionReiheVeranstaltungen($veranstaltungsreihe_id = "")
 {
     $this->loadVeranstaltung($veranstaltungsreihe_id);
     if (!$this->veranstaltung->isAdminCurUser()) {
         $this->redirect($this->createUrl("/veranstaltung/login", array("back" => yii::app()->getRequest()->requestUri)));
     }
     $user = Yii::app()->user;
     $ich = Person::model()->findByAttributes(array("auth" => $user->id));
     if (AntiXSS::isTokenSet("add")) {
         $referenz = null;
         $url_vorhanden = false;
         foreach ($this->veranstaltungsreihe->veranstaltungen as $veranstaltung) {
             if ($veranstaltung->id == $_REQUEST["vorlage"]) {
                 $referenz = $veranstaltung;
             }
             if ($veranstaltung->url_verzeichnis == $_REQUEST["url"]) {
                 $url_vorhanden = true;
             }
         }
         if (!$referenz) {
             Yii::app()->user->setFlash("error", "Vorlage nicht gefunden");
         } elseif ($url_vorhanden) {
             Yii::app()->user->setFlash("error", "Es existiert schon eine Veranstaltung mit dieser Adresse / diesem Verzeichnis");
         } elseif (preg_match("/[^a-z0-9_-]/siu", $_REQUEST["url"])) {
             Yii::app()->user->setFlash("error", "Die Adresse / das Verzeichnis darf nur aus Buchstaben ohne Umlauten, Zahlen und den Zeichen _ und - bestehen.");
         } else {
             $veranstaltung = new Veranstaltung();
             $veranstaltung->veranstaltungsreihe_id = $this->veranstaltungsreihe->id;
             $veranstaltung->name = $veranstaltung->name_kurz = $_REQUEST["name"];
             $veranstaltung->policy_kommentare = $referenz->policy_kommentare;
             $veranstaltung->policy_aenderungsantraege = $referenz->policy_aenderungsantraege;
             $veranstaltung->policy_antraege = $referenz->policy_antraege;
             $veranstaltung->policy_unterstuetzen = $referenz->policy_unterstuetzen;
             $veranstaltung->typ = $referenz->typ;
             $veranstaltung->url_verzeichnis = $_REQUEST["url"];
             $veranstaltung->admin_email = $referenz->admin_email;
             $veranstaltung->setEinstellungen($referenz->getEinstellungen());
             if ($veranstaltung->save()) {
                 Yii::app()->user->setFlash("success", "Die neue Veranstaltung wurde angelegt");
             } else {
                 Yii::app()->user->setFlash("error", "Ein Fehler ist aufgetreten: " . print_r($veranstaltung->getErrors(), true));
             }
         }
         $this->veranstaltungsreihe->refresh();
     }
     if (AntiXSS::isTokenSet("set_std")) {
         $got_id = AntiXSS::getTokenVal("set_std");
         $neuer_standard = $this->veranstaltungsreihe->id;
         foreach ($this->veranstaltungsreihe->veranstaltungen as $veranstaltung) {
             if ($veranstaltung->id == $got_id) {
                 $neuer_standard = $got_id;
             }
         }
         $this->veranstaltungsreihe->aktuelle_veranstaltung_id = $neuer_standard;
         $this->veranstaltungsreihe->save(false);
         $this->veranstaltungsreihe->refresh();
         Yii::app()->user->setFlash("success", "Der neue Standard wurde gesetzt.");
     }
     if (AntiXSS::isTokenSet("remove")) {
     }
     $this->render('reihe_veranstaltungen', array("sprache" => $this->veranstaltung->getSprache(), "ich" => $ich, "del_url" => $this->createUrl("/admin/index/reiheVeranstaltungen", array(AntiXSS::createToken("remove") => "REMOVEID")), "add_url" => $this->createUrl("/admin/index/reiheVeranstaltungen"), "set_std_url" => $this->createUrl("/admin/index/reiheVeranstaltungen", array(AntiXSS::createToken("set_std") => "STDID"))));
 }