[Frage] Extension schreiben welche News um Felder erweitert TYPO3-Version: 6.1.7

  • martinibianco007 martinibi...
    Sternenflotten-Admiral
    0 x
    213 Beiträge
    0 Hilfreiche Beiträge
    11. 03. 2014, 10:09

    Hallo,
    laut Dokumentation der Extension News ist es relativ einfach weitere Felder bei den Nachrichten hinzuzufügen.
    Ich finde für Unerfahrene fehlen viele wesentliche Schritte.

    http://docs.typo3.org/typo3cms/extensions/news/Main/Tutorial/ExtendingNews/Index.html

    [b]Schritt 1: Datenbanktabelle erweitern[/b]
    Hier tauchen bei mir schon die ersten Fragen auf.
    Sobald ich im Extension Builder map to existing table den Tabellennamen angebe tx_news_domain_model_news, kommt laut Datenbank zwar eine Spalte dazu, ich kann im
    Backend allerdings keine Nachrichten mehr anlegen.

    [b]Stimmt die restliche Konfiguration laut Screenshot?[/b]

    [b]2. Create the Model[/b]
    Die php Datei wird vom Extension-Builder generiert: ind tx_workshop/Classes/Model/Workshop.php

    1. class Workshop extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity {
    2. /**
    3. * title
    4. *
    5. * @var \string
    6. */
    7. protected $title;
    8.  
    9. /**
    10. * Returns the title
    11. *
    12. * @return \string $title
    13. */
    14. public function getTitle() {
    15. return $this->title;
    16. }
    17.  
    18. /**
    19. * Sets the title
    20. *
    21. * @param \string $title
    22. * @return void
    23. */
    24. public function setTitle($title) {
    25. $this->title = $title;
    26. }
    27. }

    [b]Muss man hier handisch die erste zeile ändern in:[/b]
    class Tx_Workshop_Domain_Model_News extends Tx_News_Domain_Model_News

    3. Verknüpfung mit den News
    Muss di angelegte Extension in den Ordner News verschoben werden?
    oder reicht es wenn ich in EXT:tx_workshop/Resources/Private/extend-news.txt
    anlege?
    Was genau muss in dieser Datei drinnen stehen?
    Domain/Model/News kann ja nicht stimmen oder?

    vielen Dank im Voraus

    Anhänge (1)
    news.png image/png 0,00 B 274 heruntergeladen

  • 1
  • Schweriner Schwerine...
    Jedi-Ratsmitglied
    0 x
    554 Beiträge
    60 Hilfreiche Beiträge
    11. 03. 2014, 11:04

    1.) Das liegt an dem Kram, den der Extension Builder in die ext_tables.php schreibt. Für ein Feld Ort (bei mir) reicht folgender Inhalt in der Datei:

    1. <?php
    2. if (!defined('TYPO3_MODE')) {
    3. die ('Access denied.');
    4. }
    5.  
    6. \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile($_EXTKEY, 'Configuration/TypoScript', 'Extended News');
    7.  
    8. $tmp_extended_news_columns = array(
    9.  
    10. 'ort' => array(
    11. 'exclude' => 0,
    12. 'label' => 'LLL:EXT:extended_news/Resources/Private/Language/locallang_db.xlf:tx_extendednews_domain_model_news.ort',
    13. 'config' => array(
    14. 'type' => 'input',
    15. 'size' => 30,
    16. 'eval' => 'trim'
    17. ),
    18. ),
    19. );
    20.  
    21. t3lib_div::loadTCA('tx_news_domain_model_news');
    22. t3lib_extMgm::addTCAcolumns('tx_news_domain_model_news',$tmp_extended_news_columns,1);
    23. t3lib_extMgm::addToAllTCAtypes('tx_news_domain_model_news','ort');
    24.  
    25. ?>

    2.) Wenn Du mit Namespaces arbeitest, lass in der Datei oben den Namespace stehen, aber Du musst deine Klasse folgendermaßen erben lassen (man beachte den Strich vor der Elternklasse). Ob die neue Klasse auch News heißen muss, weiß ich gerade nicht ganz genau~

    class News extends \Tx_News_Domain_Model_News {

    3.) Doch genau das reicht, der Name oder der Namespace-Pfad zu deiner Klasse.

  • martinibianco007 martinibi...
    Sternenflotten-Admiral
    0 x
    213 Beiträge
    0 Hilfreiche Beiträge
    11. 03. 2014, 11:57

    danke, das werde ich dann mal versuchen.

    heißt das den extension builder nimmst du nur dazu her dass er dir die tables anlegt
    und den rest machst du dann alles händisch?

    den punkt 3 raffe ich noch überhaupt nicht
    muss meine php datei mit der classe Workshop extends \Tx_News_Domain_Model_News {...
    dann news heißen und in der txt datei EXT:tx_workshop/Resources/Private/extend-news.txt
    reicht dann
    Domain/Model/News

    thx

  • Schweriner Schwerine...
    Jedi-Ratsmitglied
    0 x
    554 Beiträge
    60 Hilfreiche Beiträge
    11. 03. 2014, 19:10

    In der PHP Datei müssen natürlich deine Funktionen stehen und ja sonst genau so. Ich weiß nicht ob die Klasse News heißen muss, aber bei Dir wäre es ja theoretisch sonst das hier in der Textdatei:

    Domain/Model/Workshop

  • 1