/** * @return Veranstaltungsreihe[] */ public static function getSidebarReihen() { /** @var Veranstaltungsreihe[] $reihen */ $reihen = Veranstaltungsreihe::model()->findAllByAttributes(array("oeffentlich" => 1), array("order" => "id DESC")); $reihen2 = array(); foreach ($reihen as $reihe) { if ($reihe->aktuelle_veranstaltung && !$reihe->aktuelle_veranstaltung->getEinstellungen()->wartungs_modus_aktiv) { $reihen2[] = $reihe; } } return $reihen2; }
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)); }
/** * @param string $veranstaltungsreihe_id * @param string $veranstaltung_id * @param null|Antrag $check_antrag * @param null|Aenderungsantrag $check_aenderungsantrag * @return null|Veranstaltung */ public function loadVeranstaltung($veranstaltungsreihe_id, $veranstaltung_id = "", $check_antrag = null, $check_aenderungsantrag = null) { if ($veranstaltungsreihe_id == "") { $veranstaltungsreihe_id = Yii::app()->params['standardVeranstaltungsreihe']; } if ($veranstaltung_id == "") { /** @var Veranstaltungsreihe $reihe */ $reihe = Veranstaltungsreihe::model()->findByAttributes(array("subdomain" => $veranstaltungsreihe_id)); if ($reihe) { $veranstaltung_id = $reihe->aktuelle_veranstaltung->url_verzeichnis; } else { $this->robots_noindex = true; $this->render('error', array("code" => 404, "html" => true, "message" => "Die angegebene Veranstaltung wurde nicht gefunden. Höchstwahrscheinlich liegt da an einem Tippfehler in der Adresse im Browser.<br>\n\t\t\t\t\t<br>\n\t\t\t\t\tAuf der <a href='http://www.antragsgruen.de/'>Antragsgrün-Startseite</a> siehst du rechts eine Liste der aktiven Veranstaltungen.")); Yii::app()->end(); } } if (is_null($this->veranstaltungsreihe)) { if (is_numeric($veranstaltungsreihe_id)) { $this->veranstaltungsreihe = Veranstaltungsreihe::model()->findByPk($veranstaltungsreihe_id); } else { $this->veranstaltungsreihe = Veranstaltungsreihe::model()->findByAttributes(array("subdomain" => $veranstaltungsreihe_id)); } } if (is_null($this->veranstaltung) && $this->veranstaltungsreihe) { $this->veranstaltung = Veranstaltung::model()->findByAttributes(array("url_verzeichnis" => $veranstaltung_id, "veranstaltungsreihe_id" => $this->veranstaltungsreihe->id)); } if (is_null($this->veranstaltung)) { $this->robots_noindex = true; $this->render("../veranstaltung/error", array("code" => 500, "message" => "Leider existiert die aufgerufene Seite nicht. Falls du der Meinung bist, dass das ein Fehler ist, melde dich bitte per E-Mail (info@antragsgruen.de) bei uns.")); Yii::app()->end(500); } if (strtolower($this->veranstaltung->veranstaltungsreihe->subdomain) != strtolower($veranstaltungsreihe_id)) { Yii::app()->user->setFlash("error", "Fehlerhafte Parameter - die Veranstaltung gehört nicht zur Veranstaltungsreihe."); $this->redirect($this->createUrl("veranstaltung/index", array("veranstaltung_id" => $veranstaltung_id))); return null; } if (is_object($check_antrag) && strtolower($check_antrag->veranstaltung->url_verzeichnis) != strtolower($veranstaltung_id)) { Yii::app()->user->setFlash("error", "Fehlerhafte Parameter - der Antrag gehört nicht zur Veranstaltung."); $this->redirect($this->createUrl("veranstaltung/index", array("veranstaltung_id" => $veranstaltung_id))); return null; } if ($check_aenderungsantrag != null && ($check_antrag == null || $check_aenderungsantrag->antrag_id != $check_antrag->id)) { Yii::app()->user->setFlash("error", "Fehlerhafte Parameter - der Änderungsantrag gehört nicht zum Antrag."); $this->redirect($this->createUrl("veranstaltung/index", array("veranstaltung_id" => $veranstaltung_id))); return null; } if (!is_a($this->veranstaltung, "Veranstaltung") || $this->veranstaltung->policy_kommentare == Veranstaltung::$POLICY_NIEMAND) { $this->text_comments = false; } return $this->veranstaltung; }