Ankündigung

Einklappen
Keine Ankündigung bisher.

Attribut mit Zufallstoken

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Tim
    antwortet
    empty musst du auf den Wert abfragen, nicht auf die DCA Konfiguration. Das sollte in einem load_callback des Feldes gehen, noch besser aber im onload_callback der Tabelle. Dort kommt spätestens nach dem 1. Speichern der vollständige Datensatz rein.

    Einen Kommentar schreiben:


  • eblick
    antwortet
    Gute Idee und erfolgreich umgesetzt.

    Mit Ausnahme dass
    $varValue = sha('token_'.$obj->id.'_'.time());

    $varValue = sha1('token_'.$obj->id.'_'.time());

    heißen sollte.


    -----

    Und damit das Feld im Anschluss auch nicht mehr veränderbar ist:

    Code:
    if(!empty($GLOBALS['TL_DCA']['tl_member']['fields']['myfield'])) {
    $GLOBALS['TL_DCA']['tl_member']['fields']['myfield']['eval']['disabled'] = true;
    }

    Edit:

    Das mit dem nicht mehr verändern klappt leider nur so halb ;-)
    Mit der if(!empty) Abfrage wird leider das Feld grundsätzlich gesperrt, auch wenn es noch leer ist.
    Zuletzt geändert von eblick; 03.09.2021, 16:06.

    Einen Kommentar schreiben:


  • Tim
    antwortet
    Zitat von EBL Beitrag anzeigen
    Danke für die Rückmeldung! Gibt es sonst keine Möglichkeit, zB über das Feldtemplate einen Wert automatisch zu setzen, solange noch keiner vorhanden ist?
    Es ist natürlich immer möglich das Feld von aussen via dcaconfig (oder Erweiterung) selbstständig zu manipulieren und dort z.B. via save_callback eine eigene Routine zu setzen. (das gilt für jedes Feld)

    Als Beispiel: dcaconfig.php

    cc_test gegen die eigene Tabelle ersetzen und myAlias gegen den Namen des Alias-Feldes. (die Methode geht quasi für jedes Textfeld (oder auch Einfach-Select. Alle Felder mit einem lesbaren, single-Wert in der DB)


    Code:
    $GLOBALS['TL_DCA']['cc_test']['fields']['myAlias']['save_callback'][] = array('myClass','myLoadCallback');
    
    if( !class_exists('myClass') )
    {
    class myClass
    {
    public function myLoadCallback($varValue, $objDC)
    {
    if( empty($varValue) )
    {
    
    // alias "myalias_ID-DES-DATENSATZES"
    $varValue = 'myalias_'.$objDC->id;
    
    // fuer eblick mit zufallszahl zwischen 0 und 100
    //$varValue = 'random_'.rand(0,100);
    
    // oder eine art token hash via sha -> der ist quasi immer unique, weil die ID unique ist. (Zeitstempel ist auch sehr save)
    // $varValue = sha('token_'.$obj->id.'_'.time()); // sha aus "token"+akt. ID + Zeitstempel beim Speichern)
    
    
    }
    return $varValue;
    }
    }
    }
    Zuletzt geändert von Tim; 03.09.2021, 12:04.

    Einen Kommentar schreiben:


  • EBL
    antwortet
    Danke für die Rückmeldung! Gibt es sonst keine Möglichkeit, zB über das Feldtemplate einen Wert automatisch zu setzen, solange noch keiner vorhanden ist?

    Einen Kommentar schreiben:


  • Tim
    antwortet
    Die Alias-Generierung in zu erweiternden Tabellen ist aus Sicherheitsgründen nicht möglich, damit keine Komplikationen zu Contao enstehen. Der Alias wird nur für Haupttabellen-Konfigurationen erlaubt.

    ps. Die tl_member braucht technisch gesehen kein Alias-Feld. Das Feld username oder email sind von Haus aus unique in der Tabelle.

    Einen Kommentar schreiben:


  • EBL
    antwortet
    Hallo,
    aktuell versuche ich das mit einer über cc angepassten Member Tabelle. Alias Feld angelegt, Quelle ausgewählt, Datenbank Update, Mitglied gespeichert.. das Alias Feld füllt sich allerdings nicht. Quellwert ist vorhanden. Ich sehe jetzt auch nicht wie bei anderen CC Konfigurationen die Option "Alias Feld auswählen". Hat jemand eine Idee woran das liegen könnte?

    Einen Kommentar schreiben:


  • Tim
    antwortet
    Zitat von eblick Beitrag anzeigen
    Gibt es eine Möglichkeit, ein Attribut in CC zu erstellen, das einen automatisch generierten Token generiert?
    Der z.B. beim ersten Anlegen des Datensatzes erzeugt wird und sich auch nicht weiter verändert?
    Mit Bordmitteln: Alias-Attribut

    Einen Kommentar schreiben:


  • eblick
    hat ein Thema erstellt Attribut mit Zufallstoken.

    Attribut mit Zufallstoken

    Gibt es eine Möglichkeit, ein Attribut in CC zu erstellen, das einen automatisch generierten Token generiert?
    Der z.B. beim ersten Anlegen des Datensatzes erzeugt wird und sich auch nicht weiter verändert?
Lädt...
X