Contao-Camp 2024
Ergebnis 1 bis 8 von 8

Thema: Nur bei eigen Content-Element beim Field Text mandory (eingabeflicht) entfernen.

  1. #1
    Contao-Nutzer
    Registriert seit
    29.11.2020.
    Beiträge
    20

    Standard Nur bei eigen Content-Element beim Field Text mandory (eingabeflicht) entfernen.

    Hallo, habe mir ein eigenes Content-Element geschrieben, welches tl_content benutzt.

    Die Palette hat wie folgt erstellt:

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_content']['palettes']['iqsh_fast_link'] = '
        {type_legend},type;
        {Beschreibung},text;
    '

    Jetzt würde ich gerne das der Benutzer nicht umbedingt Text eingeben muss. Wenn ich:

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_content']['fields']['text']['eval']['mandatory'] =false
    setze, änder ich das ja für alle Content-Elemente. Ich möchte das aber nur für mein Content-Element / Palette ändern.

    Gibt es da eine möglichkeit? (Ich will ja schließlich nicht eine extra Spalte in meine DCA einfügen)

    Ich würde auch gerne eine normale Texteingabe verwenden und nicht den Texteditor.

    Vielen Dank, Andreas

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

    Standard

    Ja, du könntest mit einem onload Callback das DCA je nach übergebenen Typ verändern.
    » sponsor me via GitHub or PayPal or Revolut

  3. #3
    Contao-Nutzer
    Registriert seit
    29.11.2020.
    Beiträge
    20

    Standard Schon wieder Spooky! Vielen Dank!

    Aber du hast das Beispiel nicht gerade extra für mich geschrieben!?

    1000x Dank, es ist immer schwer den Ansatz zu finden.

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

    Standard

    Zitat Zitat von Bergi Beitrag anzeigen
    Aber du hast das Beispiel nicht gerade extra für mich geschrieben!?
    Doch, hab ich
    » sponsor me via GitHub or PayPal or Revolut

  5. #5
    Contao-Nutzer
    Registriert seit
    10.09.2009.
    Beiträge
    59

    Standard

    Habe das Beispiel gerade einmal probiert, aber es funktioniert bei mir nicht. Es scheitert bei der Prüfung auf
    Code:
    $dc->activeRecord->type
    , der Wert ist hier immer
    Code:
    null
    ?

    Lasse ich die If-Abfrage weg, funktioniert es - dann natürlich für alle Felder des Typs. Eine Idee, was ich noch falsch mache?

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

    Standard

    Hm, ich werde das nochmal überprüfen.
    » sponsor me via GitHub or PayPal or Revolut

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

    Standard

    Ist nun behoben: https://docs.contao.org/dev/referenc...#config-onload

    Wenn du nicht den RequestStack benutzen willst bzw. musst kannst du auch einfach folgendes machen:

    PHP-Code:
    // src/EventListener/DataContainer/MakeTextNotMandatoryCallback.php
    namespace App\EventListener\DataContainer;

    use 
    Contao\ContentModel;
    use 
    Contao\CoreBundle\ServiceAnnotation\Callback;
    use 
    Contao\DataContainer;
    use 
    Contao\Input;

    /**
     * @Callback(table="tl_content", target="config.onload")
     */
    class MakeTextNotMandatoryCallback
    {
        public function 
    __invoke(DataContainer $dc null): void
        
    {
            if (!
    $dc->id || 'edit' !== Input::get('act')) {
                return;
            }

            
    $element ContentModel::findById($dc->id);

            if (
    null === $element || 'my_content_element' !== $element->type) {
                return;
            }

            
    $GLOBALS['TL_DCA']['tl_content']['fields']['text']['eval']['mandatory'] = false;
        }

    » sponsor me via GitHub or PayPal or Revolut

  8. #8
    Contao-Nutzer
    Registriert seit
    10.09.2009.
    Beiträge
    59

    Daumen hoch

    Vielen Dank, funktioniert nun perfekt.

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
  •