Ankündigung
Einklappen
Keine Ankündigung bisher.
Attribut mit Zufallstoken
Einklappen
X
-
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.
-
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.
- 1 Likes
Einen Kommentar schreiben:
-
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)Zitat von EBL Beitrag anzeigenDanke 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?
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.
- 1 Likes
Einen Kommentar schreiben:
-
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:
-
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.
- 1 Likes
Einen Kommentar schreiben:
-
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:
-
Mit Bordmitteln: Alias-AttributZitat von eblick Beitrag anzeigenGibt 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?
Einen Kommentar schreiben:
-
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?Stichworte: -

Einen Kommentar schreiben: