[TYPO3-UG Freiburg] Domain-Model erweitern von tt_address 4.0 Beta

Mikel lists at con-version.com
Mon Nov 13 18:21:38 CET 2017


Mach das doch etwas generischer. Falls du mal noch weitere Felder brauchst.
In Elena’s Beispiel steht eigentlich alles drin.

Lege eine neue Extension an, z.B. tt_address_advanced.

Darin dann:

ext_tables.sql

#
# Table structure for table 'tt_address'
#
CREATE TABLE tt_address (
    additional_content text,
)

In Classes/Domain/Model/Address.php dann

<?php
namespace Conversion\TtAddressAdvanced\Domain\Model;

class Address extends \TYPO3\TtAddress\Domain\Model\Address {


   /**
    * @var string
    */
   protected $additionalContent;

   /**
    * Get title
    *
    * @return string
    */
   public function getAdditionalContent()
   {
      return $this->additionalContent;
   }

   /**
    * Set title
    *
    * @param string $additionalContent
    * @return void
    */
   public function setAdditionalContent($additionalContent)
   {
      $this->additionalContent = $additionalContent;
   }
}
Dann erweiterst Du das TCA vom original Address Datensatz:

Configuration/TCA/Overrides/tt_address.php

<?php
defined('TYPO3_MODE') or die();
$temporaryColumns = [
   'additional_content' => [
      'exclude' => true,
      'label' => 'Additional Content',
      'config' => [
         'type' => 'text',
         'cols' => 40,
         'rows' => 15,
         'eval' => 'trim',
      ],
      'defaultExtras' => 'richtext:rte_transform'
   ],
];
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns(
   'tt_address',
   $temporaryColumns
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
   'tt_address',
   'additional_content',
   '',
   'after:title'
);

Dann konfigurierst Du noch das Extbase-Mapping. Hierzu im TS-Setup:

config.tx_extbase {
   persistence {
      classes {
         Conversion\TtAddressAdvanced\Domain\Model\Address {
            mapping {
               tableName = tt_address
               recordType =
            }
         }
      }
   }
   objects {
      TYPO3\TtAddress\Domain\Model\Address.className = Conversion\TtAddressAdvanced\Domain\Model\Address
   }
}

Nun kannst Du im Template per address.additionalContent auf die Variable zugreifen.

Mikel



> Am 13.11.2017 um 15:20 schrieb Heiko Hänsge <mailinglisten at wild-wild-web.de>:
> 
> Hallo Mikel & Elena,
> 
> Danke für die Tipps. Den Artikel von Lukas Jakob hatte ich schon gefunden, aber ich fürchte, das übersteigt einfach meine Fähigkeiten der Ext.-Programmierung... :-/
> 
> Der derzeitige Stand - der wg. einer 'Kleinigkeit' noch nicht funktioniert - ist im Github zu finden:
> https://github.com/BastianBalthasarBux/tt_address/issues/7
> 
> Im TS-Setup hab ich allerdings noch nichts gemappt; keine Ahnung, wie das gehen soll.
> 
> Viele Grüße
> Heiko
> 
> Fon: +49 761 7048880
> 
> ANSCHRIFT:
> Heiko Hänsge
> Waldstr. 31
> 79194 Gundelfingen
> 
> 
> elena at kuprienko.de schrieb am 13.11.2017 um 13:19:
>> Hallo Heiko,
>> 
>> vielleicht hilft dir noch ein Beispiel aus der cart-Erweiterung: https://github.com/extcode/cart_extended_product
>> 
>> Das funktioniert immer ähnlich. Wenn du also schon eine Erweiterung hast, legt du eine php-Datei an z.B. Classes/Domain/Model/Address.php. In dieser Datei definierst du dein namespace, sowas wie Heiko\TtAddressExtendedField\Domain\Model (Heiko\TtAddressExtednedField dann entsprechend anpassen). Dann brauchst du noch die Klasse z.B. class Address extends TYPO3\TtAddress\Domain\Model und hier getter und setter wie im Beispiel eingeben - das siehst du ja dann in der tt_address-Erweiterung, wie das bei den anderen Feldern gemacht wird. Dann im TS-Setup die persistence mappen. Wenn du composer verwendest noch autoload psr-4 einfügen.
>> 
>> Viel Erfolg und Grüße,
>> Elena
>> 
>> Am 13.11.17 um 12:39 schrieb Mikel:
>>> Hallo Heiko,
>>> 
>>> schau Dir das mal an —> http://www.lukasjakob.com/extend-a-typo3-extbase-model-with-custom-field/ <http://www.lukasjakob.com/extend-a-typo3-extbase-model-with-custom-field/> 
>>> Vielleicht hilft Dir das weiter.
>>> 
>>> Mikel
>>> 
>>> 
>>>> Am 13.11.2017 um 12:20 schrieb Heiko Hänsge <mailinglisten at wild-wild-web.de>:
>>>> 
>>>> Hallo,
>>>> 
>>>> ich experimentiere gerade mit der seit einiger Zeit in den Startlöchern stehenden Version 4.0 der Extension tt_address':
>>>> 
>>>> https://github.com/BastianBalthasarBux/tt_address/
>>>> 
>>>> Endlich stehen Listen- und Detailansichten mit Fluid-Templates zur Verfügung,
>>>> eine Kartenansicht inkl. Geocoding ist in Vorbereitung.
>>>> 
>>>> Um ein tt_address-Feld, das über eine eigene Extensions hinzugefügt wurde, ausgeben zu können, muss das Domain-Model erweitert werden.
>>>> Das übersteigt allerdings meine Kenntnisse.
>>>> 
>>>> Kann da jemand - auch bezahlt - Hilfestellung leisten?
>>>> 
>>>> Viele Grüße
>>>> Heiko
>>>> 
>>>> Fon: +49 761 7048880
>>>> 
>>>> ANSCHRIFT:
>>>> Heiko Hänsge
>>>> Waldstr. 31
>>>> 79194 Gundelfingen
>>>> 
>>>> _______________________________________________
>>>> TYPO3-UG-Freiburg mailing list
>>>> TYPO3-UG-Freiburg at lists.typo3.org
>>>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-ug-freiburg
>>> _______________________________________________
>>> TYPO3-UG-Freiburg mailing list
>>> TYPO3-UG-Freiburg at lists.typo3.org
>>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-ug-freiburg
>> 
> 
> _______________________________________________
> TYPO3-UG-Freiburg mailing list
> TYPO3-UG-Freiburg at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-ug-freiburg



More information about the TYPO3-UG-Freiburg mailing list