Contao-Camp 2024
Ergebnis 1 bis 15 von 15

Thema: 4.9.x Mitglied Ablaufdatum heute +1,5 Jahre beim erstellen/kopieren

  1. #1
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard 4.9.x Mitglied Ablaufdatum heute +1,5 Jahre beim erstellen/kopieren

    Servus beisammen,

    wir haben bei einer Seite alle 2 Monate einen neuen Kursstart mit zirka 25 Personen. Bei jedem Account den Wert von Hand setzen ist sowohl aufwändig als auch fehleranfällig. Ich hätte gerne das bei diesen Accounts schon beim erstellen automatisch ein Wert bei "deaktivieren am" eingetragen wird. Und zwar heute + 500 Tage. Allerdings nur beim erstellen/kopieren und nicht später beim bearbeiten.

    Jemand ne Idee wo ich da ansetzen kann?

    VG
    Frank

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.901
    Partner-ID
    10107

  3. #3
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Danke. Aber als nicht Entwickler brauche ich da noch etwas mehr Starthilfe sorry

    In welchem Template mache ich sowas updatesicher? Wir haben in Config Files bereits einige Anpassungen beim Kopieren von Terminen. Aber wo und wie ich das für Mitglieder mache weiss ich leider nicht.

    Vermutlich contao/dca/tl_member.php ?
    Geändert von Kahmoon (10.07.2020 um 08:47 Uhr)

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.901
    Partner-ID
    10107

  5. #5
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    puhh...kompliziert :-(

    contao/dca/tl_member.php wäre aber schon mal die richtige Datei oder?


    Geändert von Kahmoon (10.07.2020 um 08:56 Uhr)

  6. #6
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.901
    Partner-ID
    10107

    Standard

    Hast du die Dokumentation gelesen?

  7. #7
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Hast du die Dokumentation gelesen?
    Kurz überflogen weil wenig verstanden

  8. #8
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Also irgendwie so


    Code:
    // contao/dca/tl_member.php
    $GLOBALS['TL_DCA']['tl_member'] = [
        'config' => 'oncreate',
        'list' => […],
        'fields' => […],
        'palettes' => […],
    ];

  9. #9
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.901
    Partner-ID
    10107

    Standard

    Nein, wie man DCA Callbacks registriert habe ich hier verlinkt. Da du Contao 4.9 verwendest, machst du das am besten über Annotations, weil du da nur die Callback Klasse anlegen musst und sonst nichts.

  10. #10
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Ja, das verstehe ich aber nicht. Hab ich noch nie gemacht/gesehen.

    Aber so wichtig ist der Request jetzt auch ned....

  11. #11
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.901
    Partner-ID
    10107

    Standard

    Naja, wenn du PHP programmieren willst, musst du auch PHP programmieren lernen.

  12. #12
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Wer hat gesagt das ich PHP programmieren will?!? Ich hatte auf eine Variable in einer Config Datei gehofft, die man mit date() + x setzen kann :-P

    Basics kann ich ja aber diese Doku sagt mir leider gar nichts....egal.

  13. #13
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.901
    Partner-ID
    10107

    Standard

    Zitat Zitat von Kahmoon Beitrag anzeigen
    Wer hat gesagt das ich PHP programmieren will?!?
    Deine Anforderung sagt das



    Zitat Zitat von Kahmoon Beitrag anzeigen
    Ich hatte auf eine Variable in einer Config Datei gehofft, die man mit date() + x setzen kann :-P
    Hmm, vielleicht geht es doch per DCA Anpassung. Im Prinzip willst du ja einfach nur den Default Wert von tl_member.stop setzen. Evt. so:
    PHP-Code:
    // contao/dca/tl_member.php
    $GLOBALS['TL_DCA']['tl_member']['fields']['stop']['eval']['doNotCopy'] = true;
    $GLOBALS['TL_DCA']['tl_member']['fields']['stop']['default'] = (string) (new \DateTime())->modify('+1.5 years')->getTimestamp(); 
    Kann aber nicht versprechen, dass das funktioniert (vor allem beim kopieren).



    Zitat Zitat von Kahmoon Beitrag anzeigen
    Basics kann ich ja aber diese Doku sagt mir leider gar nichts....egal.
    Was fehlt dir zB?

  14. #14
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Was fehlt dir zB?
    Ich verstehe nicht wie ich diese PHP Datei aufbauen soll und wie der Callback dort dann reingeschrieben werden muss. Ich müsste das mal in einem kompletten Beispiel sehen, dann kann ich mir das ableiten.


    Mit der Config Anpassung funzt es beim erstellen und kopieren. Aber es kommt ein komisches Datum raus "10.07.2025 10:08". Das wären +5 Jahre . Mit modify('+1 years') wird es nur ein Jahr. Das .5 mag er wohl ned.

  15. #15
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Wenn man es mit Tagen macht passt es.

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_member']['fields']['stop']['default'] = (string) (new \DateTime())->modify('+500 days')->getTimestamp(); 
    Perfekt so..danke

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •