Re: [TYPO3-german] tt_content per FlexForm erweitern möglich?

2011-10-20 Diskussionsfäden Bernd Wilke
On Mon, 17 Oct 2011 16:08:16 +0200, Julian Pleger wrote:

> Hey Bernd,
> 
> danke für deine Antwort!
> Wie ich eine Flexform anlege weiß ich. Ich habe dafür auch eine
> Extension erstellt (per Extension Builder [Extbase]). Aber ich möchte
> nicht meine eigene Extension um eine Flexform erweitern, sondern
> tt_content. Das ich das Flexform aber über meine Extension registrieren
> muss weiß ich wohl.
> 
> Wie gesagt: das Problem ist, dass ich über meine Extension "MyExt" die
> "tt_content"-Extension erweitern möchte. Derzeit mache ich es wie folgt:
> 
> // additional TCA-data
> $tempColumns = Array (
>   'tx_myext_question' => Array (
>   'exclude' => 0,
>   'label'   =>
>   'LLL:EXT:myext/Resources/Private/Language/
locallang_db.xml:tx_myext_domain_model_question',
>   'config'  => array(
>   'type' => 'inline',
>   'foreign_table' => $foreign_table,
>   'foreign_field' => 'foreignid',
>   'foreign_label' => 'question',
>   'foreign_table_field' => 'tablename', 'minitems' 
=> 0,
>   'maxitems' => 10
>   )
>   ),
> );
> 
> t3lib_div::loadTCA('tt_content');
> t3lib_extMgm::addTCAcolumns('tt_content',$tempColumns,1);
> 
> // Hier kann auch der Name des Tabs angegeben werden
> t3lib_extMgm::addToAllTCAtypes('tt_content','--div--;LLL:EXT:myext/
Resources/Private/Language/
locallang_db.xml:tx_myext_domain_model_question,tx_myext_question');
> 
hier mal ein paar snippets aus der tca.php, die ich in einer extension 
gefunden habe, die dynamische datensätze benutzt:

zum einen der schalter:

$TCA['tx_xdata_products'] = array (
:
'columns' => array (

'producttype' => array (
'exclude' => 0, 
'label' => 'LLL:EXT:x_data/
locallang_db.xml:tx_xdata_products.producttype',
'onchange' => 'reload', 
'config' => array (
'type' => 'select', 
'items' => array (
array('',0),
),
'foreign_table' => 
'tx_xdata_producttypes',
'foreign_table_where' => 'AND 
tx_xdata_producttypes.pid=###CURRENT_PID### ORDER BY 
tx_xdata_producttypes.uid', 
'size' => 1,
'minitems' => 0,
'maxitems' => 1,
)
),

:
:

'productattributes' => array (  
'exclude' => 0, 
'label' => 'LLL:EXT:x_data/
locallang_db.xml:tx_xdata_products.productattributes',  
'config' => array (
'type' => 'flex',
//'ds' => array (
//  'default' => 'FILE:EXT:x_data/
flexform_tx_xdata_products_productattributes.xml',
//),
'ds_pointerField' => 'producttype',
'ds_tableField' => 
'tx_xdata_producttypes:datastructure',
)
),
:
)
);

ich schätze mal dass du das in ähnlicher Form in tt_content einbauen und 
dann das rendering anpassen musst.
vielleicht hilft dir das in die richtige Richtung. Es wäre schön wenn du 
eine Lösung hier postest, damit es andere in Zukunft finden können.

bernd
-- 
http://www.pi-phi.de/t3v4/cheatsheet.html
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] tt_content per FlexForm erweitern möglich?

2011-10-17 Diskussionsfäden Julian Pleger
Ich habe es nun so probiert:

t3lib_div::loadTCA('tt_content');
$pluginSignatureCe1 = 'text';
t3lib_extMgm::addPiFlexFormValue('', 'FILE:EXT:' . $_EXTKEY . '/flexform.xml', 
$pluginSignatureCe1);

Das Feld "pi_flexform" ist in der tt_content-Tabelle ebenfalls vorhanden.
Allerdings erhalte ich keinen neuen Reiter, wenn ich ein Content Element vom 
Typ "text" bearbeite :-(

Grüße

 Original-Nachricht 
> Datum: Tue, 18 Oct 2011 08:26:39 +0200
> Von: Peter Niederlag 
> An: typo3-german@lists.typo3.org
> Betreff: [TYPO3-german]  Re:  tt_content per FlexForm erweitern möglich?

> Hallo,
> 
> Am 17.10.2011 14:13, schrieb Julian Pleger:
> > Ich würde gerne tt_content um ein Flexform erweitern. Ich bin jedoch
> garnicht so sicher, ob das überhaupt geht. So wie ich die Flexforms
> verstanden habe, kann ich diese nur für eine selbstgeschriebene Extension von 
> mir
> registrieren.
> > 
> > Ich erweitere derzeit das TCA von tt_content per PHP-Funktionen. Das
> setzt jedoch voraus, dass ich auch die DB-Tabelle um Spalten erweitern muss.
> > Ich dachte mir daher, dass Flexforms eine gute alternative wären, da
> die Daten auch gespeichert werden, OHNE dafür pro Eintrag eine eigene DB
> Spalte brauchen.
> > 
> > Leider finde ich auch keine Beispiele, wie man z.b. tt_content und/oder
> sogar pages erweitern per Flexform erweitern kann :-(
> 
> Man kann das vorhandene Feld 'pi_flexform' auch für andere
> Inhaltselemente als Plugins nutzen:
> 
> # DEIN_CTYPE,FLEXFILE entsprechend anpassen
> t3lib_div::loadTCA('tt_content');
> $pluginSignatureCe1 = 'DEIN_CTYPE';
> t3lib_extMgm::addPiFlexFormValue('', 'FILE:EXT:' . $_EXTKEY .
> '/Configuration/FlexForms/FLEXFILE.xml', $pluginSignatureCe1);
> 
> # You still need to add the field 'pi_flexform' to the corresponding
> # types entry in $TCA
> # This heavily depends on wether you create your own custom CE
> # or want to modify an existing one
> 
> Hilfreich sind gute Kenntnisse von $TCA und die API von
> t3lib_extMgm::addPiFlexFormValue().
> 
> Beachte dass man per TypoScript nicht ohne weiteres an die Werte aus
> solchen Flexforms herankommt, da diese in einer XML-Struktur gespeichert
> sind.
> 
> Gruß und hth,
> Peter
> -- 
> Peter Niederlag
> http://www.niekom.de * TYPO3 & EDV Dienstleistungen *
> ___
> TYPO3-german mailing list
> TYPO3-german@lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

-- 
Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir
belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] tt_content per FlexForm erweitern möglich?

2011-10-17 Diskussionsfäden Julian Pleger
Hey Bernd,

danke für deine Antwort!
Wie ich eine Flexform anlege weiß ich. Ich habe dafür auch eine Extension 
erstellt (per Extension Builder [Extbase]).
Aber ich möchte nicht meine eigene Extension um eine Flexform erweitern, 
sondern tt_content.
Das ich das Flexform aber über meine Extension registrieren muss weiß ich wohl.

Wie gesagt: das Problem ist, dass ich über meine Extension "MyExt" die 
"tt_content"-Extension erweitern möchte. Derzeit mache ich es wie folgt:

// additional TCA-data
$tempColumns = Array (
'tx_myext_question' => Array (
'exclude' => 0,
'label'   => 
'LLL:EXT:myext/Resources/Private/Language/locallang_db.xml:tx_myext_domain_model_question',
'config'  => array(
'type' => 'inline',
'foreign_table' => $foreign_table,
'foreign_field' => 'foreignid',
'foreign_label' => 'question',
'foreign_table_field' => 'tablename',
'minitems' => 0,
'maxitems' => 10
)
),
);

t3lib_div::loadTCA('tt_content');
t3lib_extMgm::addTCAcolumns('tt_content',$tempColumns,1);

// Hier kann auch der Name des Tabs angegeben werden
t3lib_extMgm::addToAllTCAtypes('tt_content','--div--;LLL:EXT:myext/Resources/Private/Language/locallang_db.xml:tx_myext_domain_model_question,tx_myext_question');


Gruß
Julian

 Original-Nachricht 
> Datum: Mon, 17 Oct 2011 13:21:54 + (UTC)
> Von: Bernd Wilke 
> An: typo3-german@lists.typo3.org
> Betreff: Re: [TYPO3-german] tt_content per FlexForm erweitern möglich?

> On Mon, 17 Oct 2011 14:13:15 +0200, Julian Pleger wrote:
> 
> > Ich würde gerne tt_content um ein Flexform erweitern. Ich bin jedoch
> > garnicht so sicher, ob das überhaupt geht. So wie ich die Flexforms
> > verstanden habe, kann ich diese nur für eine selbstgeschriebene
> > Extension von mir registrieren.
> 
> das empfiehlt sich um sauber über die TYPO3-API zu arbeiten. ansonsten 
> könnte nach einem Update alles durcheinander sein
>  
> > Ich erweitere derzeit das TCA von tt_content per PHP-Funktionen. Das
> > setzt jedoch voraus, dass ich auch die DB-Tabelle um Spalten erweitern
> > muss. Ich dachte mir daher, dass Flexforms eine gute alternative wären,
> > da die Daten auch gespeichert werden, OHNE dafür pro Eintrag eine
> eigene
> > DB Spalte brauchen.
> 
> wie bindest du diese PHP-Funktionen ein?
> Die sauberste Variante wäre: eine Extension.
> in dieser Extension muss ja nicht viel drin sein. 
> ext_tables.php/ext_tables.sql/ext_localconf.php könnten ja schon reichen.
> Allerdings muss dann auch klar sein was mit den Daten passiert. das 
> könnte mit TypoScript oder PHP geschehen. und auch das wäre in einer 
> Extension gut aufgehoben.
> Damit ein komplettes paket, dass dann auch gut portierbar wäre.
>  
> > Leider finde ich auch keine Beispiele, wie man z.b. tt_content und/oder
> > sogar pages erweitern per Flexform erweitern kann :-(
> 
> zur Flexform Konfiguration und Nutzung (aus einem FE-Plugin heraus): [¹]
> 
> Zum Erweitern einer Tabelle um eigene Felder kannst du ja mal den 
> Kickstarter anschmeissen und dir die dabei generierten Dateien ansehen.
> evtl. auch in der extbase-variante mit dem 'extension builder'
>   
> > Würd mich freuen wenn jemand ein paar Denkanstöße in den Raum wirft
> ;)
> 
> [¹] http://pi-phi.de/171.html
> 
> bernd
> -- 
> http://www.pi-phi.de/t3v4/cheatsheet.html
> ___
> TYPO3-german mailing list
> TYPO3-german@lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

-- 
NEU: FreePhone - 0ct/min Handyspartarif mit Geld-zurück-Garantie!   
Jetzt informieren: http://www.gmx.net/de/go/freephone
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] tt_content per FlexForm erweitern möglich?

2011-10-17 Diskussionsfäden Bernd Wilke
On Mon, 17 Oct 2011 14:13:15 +0200, Julian Pleger wrote:

> Ich würde gerne tt_content um ein Flexform erweitern. Ich bin jedoch
> garnicht so sicher, ob das überhaupt geht. So wie ich die Flexforms
> verstanden habe, kann ich diese nur für eine selbstgeschriebene
> Extension von mir registrieren.

das empfiehlt sich um sauber über die TYPO3-API zu arbeiten. ansonsten 
könnte nach einem Update alles durcheinander sein
 
> Ich erweitere derzeit das TCA von tt_content per PHP-Funktionen. Das
> setzt jedoch voraus, dass ich auch die DB-Tabelle um Spalten erweitern
> muss. Ich dachte mir daher, dass Flexforms eine gute alternative wären,
> da die Daten auch gespeichert werden, OHNE dafür pro Eintrag eine eigene
> DB Spalte brauchen.

wie bindest du diese PHP-Funktionen ein?
Die sauberste Variante wäre: eine Extension.
in dieser Extension muss ja nicht viel drin sein. 
ext_tables.php/ext_tables.sql/ext_localconf.php könnten ja schon reichen.
Allerdings muss dann auch klar sein was mit den Daten passiert. das 
könnte mit TypoScript oder PHP geschehen. und auch das wäre in einer 
Extension gut aufgehoben.
Damit ein komplettes paket, dass dann auch gut portierbar wäre.
 
> Leider finde ich auch keine Beispiele, wie man z.b. tt_content und/oder
> sogar pages erweitern per Flexform erweitern kann :-(

zur Flexform Konfiguration und Nutzung (aus einem FE-Plugin heraus): [¹]

Zum Erweitern einer Tabelle um eigene Felder kannst du ja mal den 
Kickstarter anschmeissen und dir die dabei generierten Dateien ansehen.
evtl. auch in der extbase-variante mit dem 'extension builder'
  
> Würd mich freuen wenn jemand ein paar Denkanstöße in den Raum wirft ;)

[¹] http://pi-phi.de/171.html

bernd
-- 
http://www.pi-phi.de/t3v4/cheatsheet.html
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german