Ergebnis 1 bis 9 von 9

Thema: Core DCA erweitern

  1. #1
    Contao-Nutzer Avatar von ttcdummy
    Registriert seit
    02.03.2014.
    Beiträge
    213
    User beschenken
    Wunschliste

    Frage Core DCA erweitern

    Hallo Community,

    ich würde gerne ein Feld dem Core-Modul Nachrichten hinzufügen.

    Dazu habe ich mir das hier angeschaut: http://de.contaowiki.org/Vorhandene_Module_erweitern

    Generell funktioniert das Ersetzen und Erweitern von DCA-Feldern mit dem str_replace wie beschrieben auch. Hier mein Code der das DCA ersetzt und erweitert:
    PHP-Code:
    //Anzeige im Backend
    $GLOBALS['TL_DCA']['tl_news']['palettes']['default'] = str_replace('headline,','headline,NEUESFELD,'$GLOBALS['TL_DCA']['tl_news']['palettes']['default']);
    // DCA Felder
    $GLOBALS['TL_DCA']['tl_news']['fields']['NEUESFELD'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['NEUESFELD'],
        
    'exclude'                 => true,
        
    'inputType'               => 'fileTree'
        
    'eval'                    => array('multiple'=>true'fieldType'=>'checkbox''files'=>true'mandatory'=>false'isGallery'=>true),
        
    'sql'                     => "blob NULL"
    ); 
    Das Feld erscheint wie gewünscht direkt unter Headline aber auch unter Subheadline. Gut da soll es sowieso nicht hin.

    Ersetze ich nicht headline, sondern alias, erscheint es neben Alias:
    PHP-Code:
    //Anzeige im Backend
    $GLOBALS['TL_DCA']['tl_news']['palettes']['default'] = str_replace('alias,','alias,NEUESFELD,'$GLOBALS['TL_DCA']['tl_news']['palettes']['default']); 
    Gut soweit. Jetzt möchte ich das aber z. B. unter bzw. neben author haben:
    PHP-Code:
    //Anzeige im Backend
    $GLOBALS['TL_DCA']['tl_news']['palettes']['default'] = str_replace('author,','author,NEUESFELD,'$GLOBALS['TL_DCA']['tl_news']['palettes']['default']); 
    Das funktioniert nicht. Das Feld wird kurzer Hand nicht mehr ausgegeben und steht auch nicht im Quelltext der Seite.

    Ebenso wenig geht es bei Feldern wie z. B. 'floating' usw. ...

    Was mache ich falsch?

    Grüße

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

    Standard

    Author dürfte KEIN Komma haben sondern ein ;

    Daher funktioniert das Ersetzen nicht!
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  3. #3
    Contao-Nutzer Avatar von ttcdummy
    Registriert seit
    02.03.2014.
    Beiträge
    213
    User beschenken
    Wunschliste

    Staunendes Gesicht

    Zitat Zitat von the_scrat Beitrag anzeigen
    Author dürfte KEIN Komma haben sondern ein ;
    Ja das war es! Bäume und Wälder sag ich nur ... danke!

  4. #4
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.081
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Die Sache mit der subheadline ist auch klar ... Wenn du 'headline,' ersetzt, dann wird das natürlich in 'subheadline,' auch ersetzt. Da musst du nötigenfalls etwas mehr "Fleisch" aus dem Originalstring drumherum dazunehmen, damit es eindeutig ist. Der Originalstring findet sich in system/modules/news/dca/tl_news.php

  5. #5
    Contao-Nutzer Avatar von ttcdummy
    Registriert seit
    02.03.2014.
    Beiträge
    213
    User beschenken
    Wunschliste

    Standard

    Aber wenn jetzt im Contao-Core mal jemand auf die Idee kommt author durch z. B. publisher zu ersetzen hab ich Bingo. So gesehen nicht update-sicher ... gibt es einen eleganteren Weg?

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

    Standard

    Warum sollte das jemand machen?

    Die Chancen dafür stehen sehr gering, weil durch die Ersetzungen ja nur Felder erweitert und nicht komplett ersetzt werden, was überhaupt keinen sinn macht ;-)

    Von daher: Updatesicher!
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  7. #7
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Ort
    Magdeburg
    Beiträge
    2.020
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Die Kompatibilität würde schon dann gestört, wenn hinter Autor noch ein Feld kommt, durch eine extension oder im core und dann das Semikolon durch ein komma ersetzt würde.

    Eine komfortable Variante die Paletten zu bearbeiten ist http://de.contaowiki.org/MetaPalettes

    Gesendet vom Smartphone

  8. #8
    Contao-Nutzer
    Registriert seit
    29.09.2010.
    Ort
    Oberstdorf
    Beiträge
    78

    Standard tl_news mit Galerieauswahl erweitern

    Ich wollte auch gerade tl_news um ein Galerie-Feld erweitern. Funktioniert eigentlich alles so wie ich will.
    Allerdings wird bei der Ausgabe die UUID nicht korrekt ausgegeben. Dort scheint ein Problem mit dem
    Zeichensatz zu bestehen. Muss da irgend etwas besonderes beachtet werden?

    Zum Beispiel: 'b"»Íòàjô\x11çŸ'¿Sbñ”\x10"'

    Arbeite mit Contao 4.4.1
    Hab einen eigenes Modul erstellt mit folgender Definition in der DCA.

    Danke für einen Tip oder Hilfestellung.

    PHP-Code:
    <?php
    //Anzeige im Backend 
    $GLOBALS['TL_DCA']['tl_news']['palettes']['default'] = str_replace('},subheadline,teaser','},subheadline,teaser,galerie;'$GLOBALS['TL_DCA']['tl_news']['palettes']['default']); 
    // DCA Felder 
    $GLOBALS['TL_DCA']['tl_news']['fields']['galerie'] = array 

        
    'label'                   => array('Galerie'''),
        
    'exclude'                 => true
        
    'inputType'               => 'fileTree',  
        
    'eval'                    => array('multiple'=>true'fieldType'=>'checkbox''files'=>true'filesOnly'=>true'mandatory'=>false'extensions' => 'jpg,jpeg,png,gif,svg''isGallery'=>true), 
        
    'sql'                                   => "blob NULL"
    );

  9. #9
    Contao-Nutzer Avatar von alexgr
    Registriert seit
    01.10.2012.
    Beiträge
    69

    Standard

    Zitat Zitat von corbinian Beitrag anzeigen
    Funktioniert eigentlich alles so wie ich will.
    Allerdings wird bei der Ausgabe die UUID nicht korrekt ausgegeben. Dort scheint ein Problem mit dem
    Zeichensatz zu bestehen. Muss da irgend etwas besonderes beachtet werden?

    Zum Beispiel: 'b"»Íòàjô\x11çŸ'¿Sbñ”\x10"'
    Du bekommst die Binärdaten anstelle des lesbaren String-Formats. Das ist nicht direkt falsch, sieht aber komisch aus, wenn man es irgendwo ausgibt. Außerdem führt es zu Problemen in Kombination mit InsertTags, weil die Ausgabe auch "{" oder "}" enthalten könnte.

    Zwischen Binary und UUID vor und zurück kommst Du mit den entsprechenden Methoden in der StringUtil-Klasse:
    PHP-Code:
    \StringUtil::binToUuid($data
    und
    PHP-Code:
    \StringUtil::uuidToBin($uuid

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
  •