Ergebnis 1 bis 31 von 31

Thema: [GELÖST] DCA Feld nur in ausgewählten Nachrichten Archiven anzeigen

  1. #1
    Contao-Nutzer Avatar von rory_ch
    Registriert seit
    11.05.2016.
    Ort
    Schweiz
    Beiträge
    119

    Standard [GELÖST] DCA Feld nur in ausgewählten Nachrichten Archiven anzeigen

    Hallo zusammen

    Ich habe 3 Nachrichten Archive, nennen wir Sie "News", "Tipps" und "Stellen".

    Nun habe ich ein DCA Feld "Stellenart" in der tl_news erstellt.
    Leider finde ich aber keinen Weg das neue Feld nur im Archiv "Stellen" hinzuzufügen.

    Ist es an sich möglich? Wenn ja, wie?

    Danke viel mal im Voraus
    Geändert von rory_ch (27.06.2016 um 12:45 Uhr)

  2. #2
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Naja, woher soll das DCA denn wissen, dass du dieses Feld nur in einem bestimmten Bereich haben möchtest?

    Aber selbstverständlich ist dein Wunsch umsetzbar. Über einen onload_callback kannst du die Palette "beim Aufruf" noch modifzieren. Hier kannst du das Feld dann der Palette hinzufügen.
    Bei den nicht gewünschten news archiven wird dieses Feld dann eben nicht hinzugefügt.
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  3. #3
    Contao-Nutzer Avatar von rory_ch
    Registriert seit
    11.05.2016.
    Ort
    Schweiz
    Beiträge
    119

    Daumen hoch

    Danke für die Info.
    Werde mich da mal einlesen.

    Mein Problem ist, ich weiss oft nicht was Contao alles kann, daher weiss ich auch nicht unter welchem Begriff etc. zu suchen ...

    Aber dank dem Forum finde ich immer mehr Funktionen die ganz nützlich sind

    Danke und schönes Wochenende

  4. #4
    Contao-Nutzer Avatar von rory_ch
    Registriert seit
    11.05.2016.
    Ort
    Schweiz
    Beiträge
    119

    Standard Nachfrage

    Hallo nochmals

    Entschuldigt meine Unwissenheit, ich finde aber leider dazu keine laufenden Beispiele die ich analysieren und nachstellen kann.
    Als Ausgangslage habe ich folgenden Post nun gefunden mit Hilfe des onload_callbacks: https://community.contao.org/de/show...n-ptable-field

    Was ich nun gerne umsetzen würde ist:
    Nur im Newsarchiv mit der ID 1 (tl_news.pid == 1) sollte das Feld arbeitsstellen (inkl. eigene Legende) sichtbar sein.
    Nun habe ich folgendes erarbeitet, funktioniert jedoch leider nicht:
    /system/contao/dcaconfig.php:
    PHP-Code:
    # Nur In bestimmten Archiven das Arbeitstellen-Select-Menu anzeigen
    $GLOBALS['TL_DCA']['tl_news'] = array  
    (  
        
    // Config  
        
    'config' => array  
        (  
            
    'onload_callback' => array('meineclass''loadBackend'
        )
    ); 
    /system/modules/meinmodulname/dca/tl_news.php:
    PHP-Code:
    <?php 

    $GLOBALS
    ['TL_DCA']['tl_news']['palettes']['default'] = str_replace
    (
        
    'teaser;',
        
    'teaser;{arbeitsstelllen_legend},arbeitsstellen;',
        
    $GLOBALS['TL_DCA']['tl_news']['palettes']['default']
    );

    /*************** Arbeitsstellen ****************/
    /*Auswahlfeld hinzufügen => Arbeitsstellen */
    $GLOBALS['TL_DCA']['tl_news']['fields']['arbeitsstellen'] = array
    (
        ...
    );

    /* Klasse für die News */
    class meineclass extends Backend
    {
        public function 
    loadBackend(DataContainer $dc)
        {
            
    // Prüfen ob pid (ID des Archivs) nicht gleich 1
            
    if ($dc->pid !== 1) { 
                
    //Werte schreiben
                
    $GLOBALS['TL_DCA']['tl_news']['palettes']['default'] = str_replace
                
    (
                    
    'teaser;{arbeitsstelllen_legend},arbeitsstellen;',
                    
    'teaser;',
                    
    $GLOBALS['TL_DCA']['tl_news']['palettes']['default']
                );
            }
        }
    }
    Das generiert zurzeit folgende Meldung:
    Bildschirmfoto 2016-06-27 um 09.44.38.png

    Kann es sein, dass $dc->pid nicht funktioniert.
    Wie kann ich sonst nur diesem News_Archiv dieses Feld hinzufügen?

    Danke nochmals im Voraus
    Geändert von rory_ch (27.06.2016 um 09:11 Uhr)

  5. #5
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von adrzu Beitrag anzeigen
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_news'] = array  
    (  
        
    // Config  
        
    'config' => array  
        (  
            
    'onload_callback' => array('meineclass''loadBackend'
        )
    ); 
    Das ist ja auch falsch so.....

    Probiers mal lieber damit:

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_news'] = array  
    (  
        
    // Config  
        
    'config' => array  
        (  

            
    'onload_callback' => array
            (
            array(
    'meineclass''loadBackend')
            );
        )
    ); 
    Und Beispiele dafür gibts im System einige, einfach nach "onload_callback" suchen, dann siehst du, dass das 2 Arrays sind
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  6. #6
    Contao-Nutzer Avatar von rory_ch
    Registriert seit
    11.05.2016.
    Ort
    Schweiz
    Beiträge
    119

    Standard

    Danke für den Tipp.
    Leider erscheint aber noch die gleiche Meldung.

    Kann man beim Erstellen des DCAs im /system/modules/meinmodul/dca/tl_news.php nicht bereits eine if Abfrage machen, ob die pid = 1 ist?

    Oder habe ich noch Fehler innerhalb der Methode?

  7. #7
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Na das solltest du prüfen. Teste einfach mit var_dump($dc->pid);die(); ob und welcher Wert du beim onload_callback dort hast. Also ein bisschen Testen und rumprobieren musst du schon selbst.
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  8. #8
    Contao-Nutzer Avatar von rory_ch
    Registriert seit
    11.05.2016.
    Ort
    Schweiz
    Beiträge
    119

    Standard

    Habe ich auch schon versucht, solange jedoch die Fehlermeldung erscheint erhalte ich auch kein echo zu sehen.
    Und wenn ich die Anpassung im dcaconfig anpasse wird die methode ja nicht mehr ausgeführt...

  9. #9
    Contao-Nutzer Avatar von rory_ch
    Registriert seit
    11.05.2016.
    Ort
    Schweiz
    Beiträge
    119

    Standard

    Dafür wäre doch FirePHP geeignet oder?
    Dann richte ich mir das zuerst ein und check den wert von pid

  10. #10
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Finde heraus wo der Fehler entsteht. Du brauchst jedenfalls nichts in der dcaconfig ändern oder eintragen. In der Datei, in der du dich befindest bist du richtig.
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  11. #11
    Contao-Nutzer Avatar von rory_ch
    Registriert seit
    11.05.2016.
    Ort
    Schweiz
    Beiträge
    119

    Standard

    Der onload_callback ist aber am richtigen Ort wenn ich das im dcaconfig habe?
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_news'] = array  
    (  
        
    // Config  
        
    'config' => array  
        (  

            
    'onload_callback' => array
            (
            array(
    'meineclass''loadBackend')
            )
        )
    ); 

  12. #12
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Nein, schreib das in deinem Modul in die tl_news.php. Und nutz am besten ein array_insert dafür, da du sonst die originale tl_news überschreibst.
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  13. #13
    Contao-Nutzer Avatar von rory_ch
    Registriert seit
    11.05.2016.
    Ort
    Schweiz
    Beiträge
    119

    Standard

    Super, also jetzt habe ich das onload_callback im tl_news und im array_insert und es läuft nun ohne Fehlermeldung durch.
    Und mit FirePHP sehe ich dass die Variable pid leider null zurückgibt.
    Ich gehe mal dem vardump von $dc nach, hättet ihr allenfalls noch eine andere Idee wie ich das Archiv ansprechen könnte?

  14. #14
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Probiers mit $dc->activeRecord->pid

    Alternativ kannst du auch einfach die aktuelle id abfragen und den Eintrag über das Model laden.
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  15. #15
    Contao-Nutzer Avatar von rory_ch
    Registriert seit
    11.05.2016.
    Ort
    Schweiz
    Beiträge
    119

    Standard

    Geht leider auch nicht, im Thread de ich gelesen habe, meinte jemand, es gibt im onload_callback keinen activeRecord...
    Ich suche mal den dump durch nach etwas brauchbarem

    Und DANKE nochmals für die super schnelle und verständnisvolle Hilfe

  16. #16
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Na dann mach es über das Model:

    PHP-Code:
    $objNews = \NewsModel::findById(\Input::get('id'));
    var_dump($objNews->pid);die(); 
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  17. #17
    Contao-Nutzer Avatar von rory_ch
    Registriert seit
    11.05.2016.
    Ort
    Schweiz
    Beiträge
    119

    Standard

    Super!
    Nun erhalte ich nur beim News_archiv 1 den String '1' zurück.
    Bei den anderen erhalte ich "null" Wieso ist das so?
    An sich könnte ich damit leben weil ich nur die 1 brauche aber falls ich mal beim 2-3 da Feld einsetzen will, wie ginge das?

    EDIT: wenn ich in die einzelnen News-Beiträge gehe, sehe ich die einzelnen IDs.
    Werde mir das nun genauer anschauen, weshalb mein Feld doch nicht erscheint
    Geändert von rory_ch (27.06.2016 um 09:59 Uhr)

  18. #18
    Contao-Nutzer Avatar von rory_ch
    Registriert seit
    11.05.2016.
    Ort
    Schweiz
    Beiträge
    119

    Daumen hoch

    Hatte noch einen Operatorenfehler im if().
    Es wurde ja ein string zurückgegeben und ich habe mit if($objNews->pid !== 1) auch auf den gleichen Typ geprüft.

    mit folgendem Code kann man das Feld nun in bestimmten News_Archiven anzeigen und den anderen nicht.
    /system/modules/eigenesmodul/dca/tl_news.php:
    PHP-Code:
    array_insert($GLOBALS['TL_DCA']['tl_news'], 1, array  
    (  
        
    // Config  
        
    'config' => array  
        (  
            
    'onload_callback' => array(
            array(
    'eigeneclass''eigenemethode')
            )
        )
    )); 

    class 
    eigeneclass extends Backend
    {
        public function 
    eigenemethode(Datacontainer $dc)
        {
            
    // Prüfen ob pid (ID des Archivs) gleich 1 (Archiv "Aktulles" hat die ID 1) 
            
    $objNews = \NewsModel::findById(\Input::get(id));
            
            if (
    $objNews->pid != '1') { 
                
                
    $GLOBALS['TL_DCA']['tl_news']['palettes']['default'] = str_replace
                
    (
                    
    'teaser;{eigenesfeld_legend},eigenesfeld;',
                    
    'teaser;',
                    
    $GLOBALS['TL_DCA']['tl_news']['palettes']['default']
                );
            }
        }

    DANKE nochmals für eure Hilfe

  19. #19
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Na dann passt ja nun alles, oder?
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  20. #20
    Contao-Nutzer Avatar von rory_ch
    Registriert seit
    11.05.2016.
    Ort
    Schweiz
    Beiträge
    119

    Standard

    Bin noch neu bei Contao, kann man Threads als "Gelöst" markieren?

    Thanks

  21. #21
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Editier einfach deinen ersten Beitrag und schreib in den Betreff [gelöst] vor den Satzanfang
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  22. #22
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Mir ist aufgefallen, dass du
    /system/modules/meinmodulname
    und
    /system/modules/eigenesmodul
    benutzt. Achte darauf, dass dieses Modul alphabetisch nach /system/modules/news kommt, sonst könnte das Probleme geben. Am besten
    /system/modules/z_news_extended oder so nennen.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  23. #23
    Contao-Fan Avatar von jenda
    Registriert seit
    20.06.2009.
    Ort
    Berlin
    Beiträge
    494

    Standard

    Hallo,

    leider schaffe ich es nicht, das umzusetzen. Sicherlich liegt es an einem kleinen Fehler. Das Newsarchiv hat eine ID 5. Dabei kommt bei PHP 7.2 auch eine Fehlermeldung.

    HTML-Code:
    Warning: Use of undefined constant id - assumed 'id' (this will throw an Error in a future version of PHP) in /www/htdocs/w017f1cd/changing-cities.org/var/cache/prod/contao/dca/tl_news.php on line 1294
    Meine tl_news.php im Ordner dca sieht so aus. Könnte mir bitte jemand helfen, den Fehler zu finden? Danke.

    PHP-Code:
    <?php 
    //Anzeige im Backend
    $GLOBALS['TL_DCA']['tl_news']['palettes']['default'] = str_replace("alias,author","alias,newsSecondAuthor,author;{newsLinks_legend:hide},newsFacebook,newsTwitter,newsDonation;{newsContact_legend:hide},newsMail,newsPhone,newsContactPerson,"$GLOBALS['TL_DCA']['tl_news']['palettes']['default']);

    array_insert($GLOBALS['TL_DCA']['tl_news'], 1, array   
    (   
        
    // Config   
        
    'config' => array   
        (   
            
    'onload_callback' => array( 
            array(
    'pressClass''pressemethode'
            ) 
        ) 
    ));  

    class 
    pressClass extends Backend 

        public function 
    pressemethode(Datacontainer $dc
        { 
            
    // Prüfen ob pid (ID des Archivs) gleich 1 (Archiv "Aktulles" hat die ID 1)  
            
    $objNews = \NewsModel::findById(\Input::get(id)); 
             
            if (
    $objNews->pid != '5') {  
                 
                
    $GLOBALS['TL_DCA']['tl_news']['palettes']['default'] = str_replace 
                

                    
    "author"
                    
    "author;{newsMedium_legend:hide},newsMedium,newsLanguage,newsPlace;"
                    
    $GLOBALS['TL_DCA']['tl_news']['palettes']['default'
                ); 
            } 
        } 
    }  



    //Beschreibung des Feldes
    $GLOBALS['TL_DCA']['tl_news']['fields']['newsSecondAuthor'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['newsSecondAuthor'],
        
    'inputType'               => 'text',
        
    'eval'                    => array('maxlength'=>255'tl_class'=>'clr w50'),
        
    'sql'                     => "varchar(255) NOT NULL default ''"
    );
    $GLOBALS['TL_DCA']['tl_news']['fields']['newsMedium'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['newsMedium'],
        
    'inputType'               => 'text',
        
    'eval'                    => array('maxlength'=>255'tl_class'=>'w50'),
        
    'sql'                     => "varchar(255) NOT NULL default ''"
    );
    $GLOBALS['TL_DCA']['tl_news']['fields']['newsLanguage'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['newsLanguage'],
        
    'inputType'               => 'text',
        
    'eval'                    => array('maxlength'=>255'tl_class'=>'w50'),
        
    'sql'                     => "varchar(255) NOT NULL default ''"
    );
    $GLOBALS['TL_DCA']['tl_news']['fields']['newsPlace'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['newsPlace'],
        
    'inputType'               => 'text',
        
    'eval'                    => array('maxlength'=>255'tl_class'=>'w50'),
        
    'sql'                     => "varchar(255) NOT NULL default ''"
    );
    $GLOBALS['TL_DCA']['tl_news']['fields']['newsFacebook'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['newsFacebook'],
        
    'exclude'                 => true,
        
    'search'                  => true,
        
    'inputType'               => 'text',
        
    'eval'                    => array('rgxp'=>'url''decodeEntities'=>true'maxlength'=>255'tl_class'=>'w50'),
        
    'sql'                     => "varchar(255) NOT NULL default ''"
    );
    $GLOBALS['TL_DCA']['tl_news']['fields']['newsTwitter'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['newsTwitter'],
        
    'exclude'                 => true,
        
    'search'                  => true,
        
    'inputType'               => 'text',
        
    'eval'                    => array('rgxp'=>'url''decodeEntities'=>true'maxlength'=>255'tl_class'=>'w50'),
        
    'sql'                     => "varchar(255) NOT NULL default ''"
    );
    $GLOBALS['TL_DCA']['tl_news']['fields']['newsDonation'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['newsDonation'],
        
    'exclude'                 => true,
        
    'search'                  => true,
        
    'inputType'               => 'text',
        
    'eval'                    => array('rgxp'=>'url''decodeEntities'=>true'maxlength'=>255'tl_class'=>'w50'),
        
    'sql'                     => "varchar(255) NOT NULL default ''"
    );
    $GLOBALS['TL_DCA']['tl_news']['fields']['newsMail'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['newsMail'],
        
    'exclude'                 => true,
        
    'search'                  => true,
        
    'inputType'               => 'text',
        
    'eval'                    => array('maxlength'=>255'tl_class'=>'w50'),
        
    'sql'                     => "varchar(255) NOT NULL default ''"
    );
    $GLOBALS['TL_DCA']['tl_news']['fields']['newsPhone'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['newsPhone'],
        
    'exclude'                 => true,
        
    'search'                  => true,
        
    'inputType'               => 'text',
        
    'eval'                    => array('maxlength'=>255'tl_class'=>'w50'),
        
    'sql'                     => "varchar(255) NOT NULL default ''"
    );
    $GLOBALS['TL_DCA']['tl_news']['fields']['newsContactPerson'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['newsContactPerson'],
        
    'exclude'                 => true,
        
    'search'                  => true,
        
    'inputType'               => 'text',
        
    'eval'                    => array('maxlength'=>255'tl_class'=>'w50'),
        
    'sql'                     => "varchar(255) NOT NULL default ''"
    );

  24. #24
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.943

    Standard

    PHP-Code:
    \Input::get(id
    muss

    PHP-Code:
    \Input::get('id'
    sein (in Anfürhrungszeichen).
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  25. #25
    Contao-Fan Avatar von jenda
    Registriert seit
    20.06.2009.
    Ort
    Berlin
    Beiträge
    494

    Standard

    Zitat Zitat von fiedsch Beitrag anzeigen
    PHP-Code:
    \Input::get(id
    muss

    PHP-Code:
    \Input::get('id'
    sein (in Anfürhrungszeichen).
    Danke. Dieser Fehler ist damit behoben. Leider werden die Felder im entsprechenden Newsarchiv immer noch nicht gezeigt. Habe ich die Rheinfolge im Code richtig eingehalten?

    Hier noch einmal der ganze Code

    PHP-Code:
    <?php 
    //Anzeige im Backend
    $GLOBALS['TL_DCA']['tl_news']['palettes']['default'] = str_replace("alias,author","alias,newsSecondAuthor,author;{newsLinks_legend:hide},newsFacebook,newsTwitter,newsDonation;{newsContact_legend:hide},newsMail,newsPhone,newsContactPerson,"$GLOBALS['TL_DCA']['tl_news']['palettes']['default']);

    array_insert($GLOBALS['TL_DCA']['tl_news'], 1, array   
    (   
        
    // Config   
        
    'config' => array   
        (   
            
    'onload_callback' => array( 
            array(
    'pressClass''pressemethode'
            ) 
        ) 
    ));  

    class 
    pressClass extends Backend 

        public function 
    pressemethode(Datacontainer $dc
        { 
            
    // Prüfen ob pid (ID des Archivs) gleich 1 (Archiv "Aktulles" hat die ID 1)  
            
    $objNews = \NewsModel::findById(\Input::get('id')); 
             
            if (
    $objNews->pid != '5') {  
                 
                
    $GLOBALS['TL_DCA']['tl_news']['palettes']['default'] = str_replace 
                

                    
    "author"
                    
    "author;{newsMedium_legend:hide},newsMedium,newsLanguage,newsPlace;"
                    
    $GLOBALS['TL_DCA']['tl_news']['palettes']['default'
                ); 
            } 
        } 
    }  



    //Beschreibung des Feldes
    $GLOBALS['TL_DCA']['tl_news']['fields']['newsSecondAuthor'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['newsSecondAuthor'],
        
    'inputType'               => 'text',
        
    'eval'                    => array('maxlength'=>255'tl_class'=>'clr w50'),
        
    'sql'                     => "varchar(255) NOT NULL default ''"
    );
    $GLOBALS['TL_DCA']['tl_news']['fields']['newsMedium'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['newsMedium'],
        
    'inputType'               => 'text',
        
    'eval'                    => array('maxlength'=>255'tl_class'=>'w50'),
        
    'sql'                     => "varchar(255) NOT NULL default ''"
    );
    $GLOBALS['TL_DCA']['tl_news']['fields']['newsLanguage'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['newsLanguage'],
        
    'inputType'               => 'text',
        
    'eval'                    => array('maxlength'=>255'tl_class'=>'w50'),
        
    'sql'                     => "varchar(255) NOT NULL default ''"
    );
    $GLOBALS['TL_DCA']['tl_news']['fields']['newsPlace'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['newsPlace'],
        
    'inputType'               => 'text',
        
    'eval'                    => array('maxlength'=>255'tl_class'=>'w50'),
        
    'sql'                     => "varchar(255) NOT NULL default ''"
    );
    $GLOBALS['TL_DCA']['tl_news']['fields']['newsFacebook'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['newsFacebook'],
        
    'exclude'                 => true,
        
    'search'                  => true,
        
    'inputType'               => 'text',
        
    'eval'                    => array('rgxp'=>'url''decodeEntities'=>true'maxlength'=>255'tl_class'=>'w50'),
        
    'sql'                     => "varchar(255) NOT NULL default ''"
    );
    $GLOBALS['TL_DCA']['tl_news']['fields']['newsTwitter'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['newsTwitter'],
        
    'exclude'                 => true,
        
    'search'                  => true,
        
    'inputType'               => 'text',
        
    'eval'                    => array('rgxp'=>'url''decodeEntities'=>true'maxlength'=>255'tl_class'=>'w50'),
        
    'sql'                     => "varchar(255) NOT NULL default ''"
    );
    $GLOBALS['TL_DCA']['tl_news']['fields']['newsDonation'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['newsDonation'],
        
    'exclude'                 => true,
        
    'search'                  => true,
        
    'inputType'               => 'text',
        
    'eval'                    => array('rgxp'=>'url''decodeEntities'=>true'maxlength'=>255'tl_class'=>'w50'),
        
    'sql'                     => "varchar(255) NOT NULL default ''"
    );
    $GLOBALS['TL_DCA']['tl_news']['fields']['newsMail'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['newsMail'],
        
    'exclude'                 => true,
        
    'search'                  => true,
        
    'inputType'               => 'text',
        
    'eval'                    => array('maxlength'=>255'tl_class'=>'w50'),
        
    'sql'                     => "varchar(255) NOT NULL default ''"
    );
    $GLOBALS['TL_DCA']['tl_news']['fields']['newsPhone'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['newsPhone'],
        
    'exclude'                 => true,
        
    'search'                  => true,
        
    'inputType'               => 'text',
        
    'eval'                    => array('maxlength'=>255'tl_class'=>'w50'),
        
    'sql'                     => "varchar(255) NOT NULL default ''"
    );
    $GLOBALS['TL_DCA']['tl_news']['fields']['newsContactPerson'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['newsContactPerson'],
        
    'exclude'                 => true,
        
    'search'                  => true,
        
    'inputType'               => 'text',
        
    'eval'                    => array('maxlength'=>255'tl_class'=>'w50'),
        
    'sql'                     => "varchar(255) NOT NULL default ''"
    );

  26. #26
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.943

    Standard

    Zitat Zitat von jenda Beitrag anzeigen
    Danke. Dieser Fehler ist damit behoben. Leider werden die Felder im entsprechenden Newsarchiv immer noch nicht gezeigt. Habe ich die Rheinfolge im Code richtig eingehalten?
    Der Code schaut OK aus. Evtl. passt Deine Logik bzgl. der IDs noch nicht. Wass passiert denn, wenn Du die Prüfung vorübergehend deaktivierst? Dann sollte das Feld ja immer hinzugefüht werden.




    PHP-Code:
    <?php 

    // ...

            // Prüfen ob pid (ID des Archivs) gleich 1 (Archiv "Aktulles" hat die ID 1)  
            
    $objNews = \NewsModel::findById(\Input::get('id')); 
             
    //       if ($objNews->pid != '5') {  
                
    $GLOBALS['TL_DCA']['tl_news']['palettes']['default'] = str_replace 
                

                    
    "author"
                    
    "author;{newsMedium_legend:hide},newsMedium,newsLanguage,newsPlace;"
                    
    $GLOBALS['TL_DCA']['tl_news']['palettes']['default'
                ); 
    //       }

    // ...
    Ich würde das Problem schrittweise angehen um zu sehen, wo es hakt:

    1. Feld definieren und hinzufügen. Wenn das geht ist der Felddefinition OK und Du kannst einen Haken dahinter machen.
    2. Nur hinzufügen wenn ... einbauen. Wenn es nicht funktioniert, muss der Fehler eigentlich an der Logik und nicht an der Felddefinition liegen


    Edit: fix Typo
    Geändert von fiedsch (06.03.2018 um 15:59 Uhr)
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  27. #27
    Contao-Fan Avatar von jenda
    Registriert seit
    20.06.2009.
    Ort
    Berlin
    Beiträge
    494

    Standard

    Danke. Ich habe es ohne die Bedingung probiert und es geht. Das heißt, dass die Bedingung falsch ist. Das Newsarchiv hat die ID 5.

  28. #28
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Du möchtest bei allen PIDs außer 5 (!= 5) diese Felder hinzufügen?
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  29. #29
    Contao-Fan Avatar von jenda
    Registriert seit
    20.06.2009.
    Ort
    Berlin
    Beiträge
    494

    Standard

    Ich möchte alle Felder bei allen Newsarchiven, die zuerst hinzugefügt werden und bei dem 5. Archiv andere zusätzlich

  30. #30
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Nun ja, dann müsstest du auch etwas machen, wenn die PID gleich 5 ist, oder sehe ich das falsch?
    PHP-Code:
    if ($objNews->pid == '5'
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  31. #31
    Contao-Fan Avatar von jenda
    Registriert seit
    20.06.2009.
    Ort
    Berlin
    Beiträge
    494

    Standard

    Zitat Zitat von Andreas Beitrag anzeigen
    Nun ja, dann müsstest du auch etwas machen, wenn die PID gleich 5 ist, oder sehe ich das falsch?
    PHP-Code:
    if ($objNews->pid == '5'
    Danke für den Hinweis und deine Hilfe. :-)

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
  •