public function actionNeuAnlegen() { $this->layout = '//layouts/column2'; if (Yii::app()->user->isGuest) { $this->redirect($this->createUrl("infos/selbstEinsetzen")); } /** @var Person $user */ $user = Person::model()->findByAttributes(array("auth" => yii::app()->user->getId())); if (!$user->istWurzelwerklerIn()) { $this->redirect($this->createUrl("infos/selbstEinsetzen")); } $anlegenformmodel = new CInstanzAnlegenForm(); $error_str = ""; if (AntiXSS::isTokenSet("anlegen")) { $anlegenformmodel->setAttributes($_REQUEST["CInstanzAnlegenForm"]); $reihe = new Veranstaltungsreihe(); $reihe->subdomain = trim($anlegenformmodel->subdomain); $reihe->name = $reihe->name_kurz = $anlegenformmodel->name; $reihe->offiziell = false; $reihe->oeffentlich = true; $reihe->kontakt_intern = $anlegenformmodel->kontakt; $einstellungen = $reihe->getEinstellungen(); $einstellungen->bereit_zu_zahlen = $anlegenformmodel->zahlung; $reihe->setEinstellungen($einstellungen); $subdomain = Veranstaltungsreihe::model()->findByAttributes(array("subdomain" => $reihe->subdomain)); if ($subdomain) { $error_str .= "Es gibt leider bereits eine Reihe mit dieser Subdomain.<br>\n"; } elseif ($reihe->save()) { $veranstaltung = new Veranstaltung(); $veranstaltung->veranstaltungsreihe_id = $reihe->id; $veranstaltung->name = $veranstaltung->name_kurz = $anlegenformmodel->name; $veranstaltung->antragsschluss = $anlegenformmodel->antragsschluss; $veranstaltung->policy_kommentare = Veranstaltung::$POLICY_ALLE; $veranstaltung->policy_unterstuetzen = "Niemand"; $veranstaltung->typ = $anlegenformmodel->typ; $veranstaltung->url_verzeichnis = $anlegenformmodel->subdomain; $veranstaltung->admin_email = $anlegenformmodel->admin_email; $einstellungen = $veranstaltung->getEinstellungen(); $einstellungen->wartungs_modus_aktiv = !$anlegenformmodel->sofort_offen; if ($anlegenformmodel->typ == Veranstaltung::$TYP_PROGRAMM) { $einstellungen->zeilen_nummerierung_global = true; $einstellungen->ae_nummerierung_global = true; $einstellungen->freischaltung_antraege = false; $einstellungen->freischaltung_aenderungsantraege = false; $veranstaltung->policy_antraege = IPolicyAntraege::$POLICY_ADMINS; $veranstaltung->policy_aenderungsantraege = IPolicyAntraege::$POLICY_ALLE; } if ($anlegenformmodel->typ == Veranstaltung::$TYP_PARTEITAG) { $einstellungen->zeilen_nummerierung_global = false; $einstellungen->ae_nummerierung_global = false; $einstellungen->freischaltung_antraege = true; $einstellungen->freischaltung_aenderungsantraege = true; $veranstaltung->policy_antraege = IPolicyAntraege::$POLICY_ALLE; $veranstaltung->policy_aenderungsantraege = IPolicyAntraege::$POLICY_ALLE; } $veranstaltung->setEinstellungen($einstellungen); if ($veranstaltung->save()) { $reihe->aktuelle_veranstaltung_id = $veranstaltung->id; $reihe->save(); Yii::app()->db->createCommand()->insert("veranstaltungsreihen_admins", array("veranstaltungsreihe_id" => $reihe->id, "person_id" => $user->id)); $impressum = new Texte(); $impressum->edit_datum = new CDbExpression("NOW()"); $impressum->text_id = "impressum"; $impressum->veranstaltung_id = $veranstaltung->id; $impressum->text = nl2br(CHtml::encode($anlegenformmodel->kontakt)); $impressum->save(); $impressum = new Texte(); $impressum->edit_datum = new CDbExpression("NOW()"); $impressum->text_id = "wartungsmodus"; $impressum->veranstaltung_id = $veranstaltung->id; $impressum->text = "Diese Veranstaltung wurde vom Admin noch nicht freigeschaltet."; $impressum->save(); $login_id = $user->id; $login_code = AntiXSS::createToken($login_id); $reihen = Veranstaltungsreihe::getSidebarReihen(); $this->render('neu_angelegt', array("reihen" => $reihen, "reihe" => $reihe, "login_id" => $login_id, "login_code" => $login_code)); return; } else { foreach ($veranstaltung->errors as $err) { foreach ($err as $e) { $error_str .= $e . "<br>\n"; } } } } else { foreach ($reihe->errors as $err) { foreach ($err as $e) { $error_str .= $e . "<br>\n"; } } } } $reihen = Veranstaltungsreihe::getSidebarReihen(); $this->render('neu_anlegen', array("reihen" => $reihen, "anlegenformmodel" => $anlegenformmodel, "error_string" => $error_str)); }
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")))); }