Anmeldefenster öffnen

Hast du Vorschläge, was wir an Admidio noch verbessern könnten ? Hier kannst du uns deine Vorstellung an neuen Funktionen mitteilen.
Antworten
swid
Beiträge: 83
Registriert: 25. Mai 2015, 11:37

Anmeldefenster öffnen

Beitrag von swid »

Hallo zusammen,
ich möchte zusätzlich zum Anmeldeschluss einen Anmeldebeginn einbauen. Grund dafür ist, dass unsere User sich nach hochschalten eines Batches an Terminen für alle mal prophylaktisch anmelden - und sich dann nicht mehr abmelden, wenn sie nach 4 Monaten realisieren, dass es doch nicht geht. Das ist gerade bei TN-Beschränkung doof für die anderen, die sich dann nicht mehr anmelden können. Daher habe ich überlegt, mir in die Funktion

Code: Alles auswählen

deadlineExceeded()
etwas einzubauen, was vor dem Ablauf der Deadline folgendes tut:

Code: Alles auswählen

        if (Beginn des Termins mehr als 3 Monate von heute){Blockiere Anmeldung}
Oder mach ich da einen Überlegungsfehler? Kann mir jemand sagen, wie ich das elegant lösen? Habe einige Probleme mit dem Datum rechnen... Meine Idee funktioniert nicht...

Code: Alles auswählen

$this->getValue('dat_begin', $gSettingsManager->getString('system_date')) < DATE_NOW->add(new DateInterval('P3M')))
Danke und Gruss, swid
swid
Beiträge: 83
Registriert: 25. Mai 2015, 11:37

Re: Anmeldefenster öffnen

Beitrag von swid »

Ich habs nun vermutlich geschafft, ftr hier mein Code...

Code: Alles auswählen

	
	$date_activity = new DateTime($this->getValue('dat_begin','Y-m-d'));
	$month_delay = (new DateTime(DATE_NOW))->add(new DateInterval('P2M'));
	if($month_delay < $date_activity)
	{
		return true;
	}
Vielleicht ist ja mal jemand froh drum... Gruss swid
XimeX
Developer
Beiträge: 1148
Registriert: 12. Jul 2015, 13:21
Wohnort: Austria

Re: Anmeldefenster öffnen

Beitrag von XimeX »

Ich würde dir nur eine kleiner Verbesserung vorschlagen. Statt "new DateTime()" würde ich "\DateTime::createFromFormat('Y-m-d', $dateString)" verwenden
swid
Beiträge: 83
Registriert: 25. Mai 2015, 11:37

Re: Anmeldefenster öffnen

Beitrag von swid »

Ciao Ximex, merci für den Tip - verrätst du mir als Banause noch, was bei deinem Gegenvorschlag anders ist? :)
XimeX
Developer
Beiträge: 1148
Registriert: 12. Jul 2015, 13:21
Wohnort: Austria

Re: Anmeldefenster öffnen

Beitrag von XimeX »

mit "createFromFormat()" kann man auch noch gleich das Format übergeben. Sonst _könnte_ es bei _bestimmten_ fällen zu falschen werten kommen. Außerdem sollte er beim parsen schneller sein (minimal)
swid
Beiträge: 83
Registriert: 25. Mai 2015, 11:37

Re: Anmeldefenster öffnen

Beitrag von swid »

Hallo Ximex,
irgendwie hab ich das mit dem createFromFormat nicht ganz hingekriegt - was mach ich falsch?

Code: Alles auswählen

$calc_date =  \DateTime::createFromFormat('Y-m-d', $this->getValue('dat_deadline'));
Ausserdem hatte ich noch ein Problem, falls ein Termin eine Deadline hat, dann möchte man 2 monate vorher das Anmeldefenster öffnen, und nicht 2 Monate vor dem Termin...

Code: Alles auswählen

	if($this->getValue('dat_deadline') !== null)
        {	
		$calc_date = new DateTime($this->getValue('dat_deadline','Y-m-d'));
	}
	else
	{
		$calc_date = new DateTime($this->getValue('dat_begin','Y-m-d'));
	}
	$month_delay = (new DateTime(DATE_NOW))->add(new DateInterval('P2M'));
	if($month_delay < $calc_date)
	{
		return true;
	}
Gruss
Antworten