[Frage] simple Änderungen von $TCA nur über Extension realisierbar in TYPO3 7.4/7.5? TYPO3-Version: -

  • frankbi frankbi
    Padawan
    0 x
    57 Beiträge
    0 Hilfreiche Beiträge
    07. 10. 2015, 14:26

    Ist es richtig, dass ich für einfache Änderung des TCA, hier bei tx_news, extra eine Extension schreiben muss?

    Ich möchte das required für das Datum-Feld im News-Eintrag entfernen (dann wird immer automatisch das jetzige Datum und die jetzige Uhrzeit per default in einen neuen News-Eintrag eingefüllt, ohne dass der Nutzer das Feld bedienen muss):
    statt

    1. $GLOBALS['TCA']['tx_news_domain_model_news']['columns']['datetime']['config']['eval'] = 'date,required';

    nun
    1. $GLOBALS['TCA']['tx_news_domain_model_news']['columns']['datetime']['config']['eval'] = 'date';

    Über typo3conf/extTables.php geht es offenbar nicht mehr ([url]https://forum.typo3.org/index.php/t/211277/[/url]).

    Ich dachte, ich könnte in der TCA Reference 7 Hilfe finden:
    [url]https://docs.typo3.org/typo3cms/TCAReference/ExtendingTca/StoringChanges/Index.html[/url]
    Dort steht "There are two main ways to store your changes to the TCA: inside an extension or straight in the typo3conf folder. Both are described below in more details." Die zweite Überschrift am Ende der Seite sagt aber nur:
    "Changing the TCA on the fly
    It is also possible to perform some special manipulations on $GLOBALS['TCA'] right before it is stored into cache, thanks to the tcaIsBeingBuilt signal. This signal was introduced in TYPO3 CMS 6.2.1."

    Damit kann ich nichts anfangen, auch nicht nach weiterer Suche. Fehlen hier einfach "more details"?

    Aktuell verwende ich TYPO3 7.5 (muss aber evtl. auf 7.4 zurück). Weitere Suchen haben nichts ergeben. In der Dokumentation von tx_news habe ich keine entsprechende Konfiguration gefunden.

    Alternativ könnte man es über TypoScript im PageTS versuchen. Ansatz:

    1. TCAdefaults.tx_news_domain_model_news.datetime = 1435155180 # = 16:13 24-06-2015

    Ich habe aber keine Ahnung wie ich die kryptischen Ziffern dynamisch als "jetzige Zeit" definiere (stumpf in LibreOffice Calc eingesetzt und eigenes Datumsformat wie oben angewendet ergibt "00:00 02-06--939" ).


  • 1
  • frankbi frankbi
    Padawan
    0 x
    57 Beiträge
    0 Hilfreiche Beiträge
    12. 10. 2015, 13:21

    Wie es scheint, soll man es wirklich über eine Extension lösen. Schade.

    Ich verstehe, dass hier "best/good practice" ansgestrebt sind, aber so ein großer Aufwand (aus meiner Perspektive zumindest) für eine Änderungen im Array - nichts anderes macht ja TypoScript auch oft nur mit einer Zeile. Ich sehe da gerade keinen großen Gewinn, das rauszuwerfen (Performance?). *mecker* :)

    Aber vielleicht eine Gelegenheit meine Templates usw. in eine Ext. auszulagern. - Macht das jemand von Euch und findet es sinnvoll?

    Hier nochmal zum Nachlesen, seit 7.3 deprecated:
    [url]https://wiki.typo3.org/TYPO3.CMS/Releases/7.3/Deprecation#Deprecation:_.2365344_-_typo3conf.2FextTables.php_deprecated[/url]

    It is good practice to have a project / site specific extension that contains templates, TypoScript and other stuff. Create one or more dedicated extensions and use TCA overrides to apply the desired modifications. Something like $GLOBALS['TCA']['pages']['ctrl']['hideAtCopy'] = FALSE; should be moved from typo3conf/extTables.php to typo3conf/ext/<your_extension>/Configuration/TCA/Overrides/pages.php.

    Zur Ergänzung in Bezug auf tx_news:
    Das "required" von datetime wird hier in Zeile 247 definiert:
    typo3conf\ext\news\Configuration\TCA\tx_news_domain_model_news.php.
    Ich verwende aktuell tx_news 3.2.2 (für TYPO3 7).

  • 1