Ergebnis 1 bis 4 von 4

Thema: C3 Default Wert von dem Feld Type in der Tabelle tl_content ändern

  1. #1
    Contao-Fan Avatar von Zero
    Registriert seit
    25.05.2010.
    Ort
    Korntal
    Beiträge
    520
    User beschenken
    Wunschliste

    Standard C3 Default Wert von dem Feld Type in der Tabelle tl_content ändern

    Habe ein kleines Problem...

    Ich hänge mich in den onload_callback von der tl_content Container. Dort versuche ich den Default wert des "type" Feldes zu ändern.
    Dazu überschreibe ich folgenden wert:
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_content']['fields']['type']['default'] = 'meinwert'
    Ursprünglich steht da "text" drin. Ich kann machen was ich will. Es wird immer das "text" Element geladen. Wieso?
    Habe heute schon 2 Stunden lang den Code von Contao durch forscht und sämtliche Eckpunkte abgeklappert. (Netbeans ist cool ).
    Ich kann die Stelle nicht lokalisieren, an welcher meine Einstellung nicht genommen wird.
    Der onload_callback wird definitiv vor Erstellung des Feldes aufgerufen.

    Hat jemand eine Idee? Bin ich an der Falschen Stelle unterwegs?
    Geändert von Zero (15.06.2013 um 10:56 Uhr)
    Mein Blog -> brothers-project.de

  2. #2
    Contao-Fan Avatar von Zero
    Registriert seit
    25.05.2010.
    Ort
    Korntal
    Beiträge
    520
    User beschenken
    Wunschliste

    Standard

    Habe es hinbekommen. Wie oben beschrieben.
    Heute nochmal getestet und es ging. Ich bin verwirrt
    Mein Blog -> brothers-project.de

  3. #3
    Contao-Fan Avatar von Zero
    Registriert seit
    25.05.2010.
    Ort
    Korntal
    Beiträge
    520
    User beschenken
    Wunschliste

    Standard

    Ich bin wirklich verwirrt!
    Es ging und jetzt nicht mehr.
    Kann es sein, dass da irgendetwas in der Session gespeichert wird? Als ich heute weitergearbeitet habe, ging es am Anfang und jetzt nicht mehr.
    Hier mein Code:
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_content']['config']['onload_callback'][] = array('tl_content_ce_section''loadCallback');

    /**
     * Class tl_content_ce_section
     *
     * @package   ce_section
     * @author    Andreas Nölke
     * @copyright Andreas Nölke 2013
     */
    class tl_content_ce_section extends tl_content
    {

        function 
    loadCallback($objTable)
        {
            
    $objCte $this->Database->prepare("SELECT pid FROM tl_content WHERE id=?")
                                     ->
    limit(1)
                                     ->
    executeUncached($objTable->id);
            
    $objArticle $this->Database->prepare("SELECT inColumn FROM tl_article WHERE id=?")
                                         ->
    limit(1)
                                         ->
    executeUncached($objCte->pid);
            
    $objSection $this->Database->prepare("SELECT * FROM tl_ce_section WHERE section=?")
                                         ->
    limit(1)
                                         ->
    executeUncached($objArticle->inColumn);
            
    $cte unserialize($objSection->contentElement);
            if (
    is_array($cte) && count($cte)>0)
            {
                foreach (
    $GLOBALS['TL_CTE'] as $k => $v)
                {
                    foreach (
    $v as $kk => $vv)
                    {
                        if (!
    in_array($kk$cte))
                        {
                            unset(
    $GLOBALS['TL_CTE'][$k][$kk]);
                            unset(
    $GLOBALS['TL_DCA']['tl_content']['palettes'][$kk]);
                        }
                        if (
    count($GLOBALS['TL_CTE'][$k])<1)
                        {
                            unset(
    $GLOBALS['TL_CTE'][$k]);
                        }
                    }
                }
                
    $arrFirstElement reset($GLOBALS['TL_CTE']);
                
    $arrFlip array_flip($arrFirstElement);
                
    $GLOBALS['TL_DCA']['tl_content']['fields']['type']['default'] = reset($arrFlip);
            }
        }

    Ich ändere das Inhaltselement Array. Das wird auch erkannt. Es werden dann die entsprechenden Einträge in der Selectbox angezeigt. Auch mein Default Wert wird richtig gesetzt.
    Jetzt wird immer die "default" Palette geladen.
    Jemand eine Idee?
    Mein Blog -> brothers-project.de

  4. #4
    Contao-Fan Avatar von Zero
    Registriert seit
    25.05.2010.
    Ort
    Korntal
    Beiträge
    520
    User beschenken
    Wunschliste

    Standard

    Ich glaube ich habe den Grund, aber noch keine Lösung...
    Es hat was mit der Art und weise zu tun wie Contao Cached, bzw. die Lade Reihenfolge.
    Das heißt der Default Wert wird bereits vor dem Callback welchen ich verwende, gesetzt und ich kann den Wert so nicht beeinflussen.

    Weiß jemand wie ich den Default Wert Nachträglich beeinflussen kann?
    Mein Blog -> brothers-project.de

Aktive Benutzer

Aktive Benutzer

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

Lesezeichen

Lesezeichen

Berechtigungen

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