FCE ohne TemplaVoila

33,694 views

Published on

Wie macht man FCEs ohne TemplaVoila - sondern mit extbase/fluid.

Published in: Technology, Business
5 Comments
18 Likes
Statistics
Notes
  • Ich hatte vor einer Weile mal eine Beispiel-Erweiterung erstellt die 6.x kompatibel ist: https://github.com/tliegl/contentelements
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Danke für das Tutorial, sieht im Backend alles gut aus. Allerdings kriege ich im Frontend eine Fehlermeldung:

    Call to undefined method TYPO3\CMS\Extbase\Mvc\Web\Request::getContentObjectData()

    Hier (http://wiki.typo3.org/Extbase_HowTos) ist die Rede von deprecated (TYPO3 6.2.3) - ich kriege es mit der Alternative aber nicht zum laufen...
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Look at Mask:
    http://www.startnext.de/mask
    http://www.typo3experten.com/programmierung/mask.html (only german)
    Please support us and share our links!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Always getting the following error:
    ERROR: Content Element type 'contentelements_contactbox' has no rendering definition!
    what's wrong?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Great!
    But how can I adapt the TypoScript for e.g. the Image ?
    tt_content.contentelements_contactbox.image.... ??
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
33,694
On SlideShare
0
From Embeds
0
Number of Embeds
556
Actions
Shares
0
Downloads
0
Comments
5
Likes
18
Embeds 0
No embeds

No notes for slide

FCE ohne TemplaVoila

  1. 1. FCE OHNE TEMPLAVOILATOBIAS LIEGL – TYPO3CAMP MÜNCHEN 2011
  2. 2. 02FCE OHNE TEMPLAVOILAINHALT• Was ist TemplaVoila?• Was sind FCEs?• FCE mit extbase/fluid• multicolumn• fedext
  3. 3. 03FCE OHNE TEMPLAVOILAWER BIN ICH?• Tobias Liegl• JANDA+ROSCHER aus Regensburg• www.janda-roscher.de• schreibt auf typo3blogger.de
  4. 4. 04FCE OHNE TEMPLAVOILA – TEMPLAVOILA?TEMPLAVOILA?• Alternativer Template-Mechanismus• Templates können in der Regel ohne Anpassung integriert werden
  5. 5. 05FCE OHNE TEMPLAVOILA – TEMPLAVOILA?
  6. 6. 06FCE OHNE TEMPLAVOILA – TEMPLAVOILA?
  7. 7. 07FCE OHNE TEMPLAVOILA – FCE?FCE?• Flexible Content Element• Wird in der Regel verwendet für • besondere Inhaltselemente • mehrspaltige Container
  8. 8. 08FCE OHNE TEMPLAVOILA – FCE?
  9. 9. 09FCE OHNE TEMPLAVOILA – FCE?
  10. 10. INHALTSELEMENTE„ADVANCED“
  11. 11. 11FCE OHNE TEMPLAVOILA – INHALTSELEMENTE „ADVANCED“MÖGLICHKEITEN MIT STANDARD-ELEMENTEN• Einrückung und Rahmen • über TS konfigurierbar • z. B. zus. DIV um bestehenden HTML-Code
  12. 12. 12FCE OHNE TEMPLAVOILA – INHALTSELEMENTE „ADVANCED“EINRÜCKUNG UND RAHMEN # Im PageTS TCEFORM.tt_content.section_frame { addItems.2 = Produkt-Element (Bilder mit Rahmen) addItems.3 = Teaser-Box gelb (Startseite) addItems.10 = Teaser-Box blau (Startseite) # remove additional options removeItems = 1, 4, 5, 6 , 11, 12, 20, 21 }
  13. 13. 13FCE OHNE TEMPLAVOILA – INHALTSELEMENTE „ADVANCED“EINRÜCKUNG UND RAHMEN # Im TS-Setup tt_content.stdWrap.innerWrap.cObject.2 = TEXT tt_content.stdWrap.innerWrap.cObject.2.value = <div class="productBox">|</div> tt_content.stdWrap.innerWrap.cObject.3 = TEXT tt_content.stdWrap.innerWrap.cObject.3.value = <div class="teaserBox">|</div> tt_content.stdWrap.innerWrap.cObject.10 = TEXT tt_content.stdWrap.innerWrap.cObject.10.value = <div class="teaserBoxAlt">|</div>
  14. 14. 14FCE OHNE TEMPLAVOILA – INHALTSELEMENTE „ADVANCED“MÖGLICHKEITEN MIT STANDARD-ELEMENTEN• Layout • über TS unterscheidbar und Output entsprechend steuerbar
  15. 15. 15FCE OHNE TEMPLAVOILA – INHALTSELEMENTE „ADVANCED“LAYOUT
  16. 16. FCE MIT EXTBASE/FLUID
  17. 17. 17FCE OHNE TEMPLAVOILA – FCE MIT EXTBASE/FLUID
  18. 18. 18FCE OHNE TEMPLAVOILA – FCE MIT EXTBASE/FLUID• EXT:extension_builder installieren
  19. 19. 19FCE OHNE TEMPLAVOILA – FCE MIT EXTBASE/FLUID• Domain Modelling wählen• Extension-Infos angeben• Personen-Daten angeben• Speichern
  20. 20. 20FCE OHNE TEMPLAVOILA – FCE MIT EXTBASE/FLUID/ext_tables.php// Fügt Element im Backend hinzu// Titel, tt_content Eintrag, Content Type (kein Plugin)t3lib_extMgm::addPlugin(array(Ansprechpartner,contentelements_contactbox), CType);// Felder konfigurieren$TCA[tt_content][types][contentelements_contactbox][showitem] =CType;;4;button;1-1-1, header, bodytext;;9;richtext:rte_transform[flag=rte_enabled|mode=ts_css];, image, --div--;LLL:EXT:cms/locallang_tca.xml:pages.tabs.access,starttime, endtime, fe_group;Dokumentation:http://typo3.org/documentation/document-library/core-documentation/doc_core_api/4.1.0/view/4/2/#id4255417
  21. 21. 21FCE OHNE TEMPLAVOILA – FCE MIT EXTBASE/FLUID
  22. 22. 22FCE OHNE TEMPLAVOILA – FCE MIT EXTBASE/FLUID
  23. 23. 23FCE OHNE TEMPLAVOILA – FCE MIT EXTBASE/FLUID/ext_localconf.php <?php if (!defined (TYPO3_MODE)) { die (Access denied.); } Tx_Extbase_Utility_Extension::configurePlugin( // unique plugin name $_EXTKEY, ContentRenderer, // accessible controller-action-combinations array ( Elements => contactbox ), // non-cachable controller-action-combinations (they must already be enabled) array ( Elements => ) ); t3lib_extMgm::addTypoScript($_EXTKEY,setup, [GLOBAL] tt_content.contentelements_contactbox < tt_content.list.20.contentelements_contentrenderer tt_content.contentelements_contactbox.switchableControllerActions.Elements.1 = contactbox, true ); ?>
  24. 24. 24FCE OHNE TEMPLAVOILA – FCE MIT EXTBASE/FLUID/Classes/Controller/ElementsController.php <?php /** * Elements Controller */ class Tx_Contentelements_Controller_ElementsController extends Tx_Extbase_MVC_Controller_ActionController { /** * Displays the element * * @return string The rendered view */ public function contactboxAction() { // get data of the content object $data = $this->request->getContentObjectData(); // assign the data to the fluid template $this->view->assign(data, $data); } } ?>
  25. 25. 25FCE OHNE TEMPLAVOILA – FCE MIT EXTBASE/FLUID/Resources/Private/Templates/Elements/Contactbox.html <div class="contactbox"> <h4>{data.header}</h4> <f:if condition="{data.image}"> <f:image src="uploads/pics/{data.image}" alt="" width="76" /> </f:if> <f:format.html>{data.bodytext}</f:format.html> </div>
  26. 26. 26FCE OHNE TEMPLAVOILA – FCE MIT EXTBASE/FLUIDPage TS # render content element selection in tabs mod.wizards.newContentElement.renderMode = tabs mod.wizards.newContentElement.wizardItems.common { elements.contentelements_contactbox { icon = gfx/c_wiz/user_defined.gif title = Ansprechpartner description = Ansprechpartner mit Bild tt_content_defValues { CType = contentelements_contactbox } } show := addToList(contentelements_contactbox) }
  27. 27. 27FCE OHNE TEMPLAVOILA – FCE MIT EXTBASE/FLUID
  28. 28. 28FCE OHNE TEMPLAVOILA – FCE MIT EXTBASE/FLUID• Neues Element hinzufügen • ext_tables.php anpassen • Methode im Controller duplizieren • Template anlegen • ext_localconf.php anpassen • PageTS anpassen
  29. 29. 29FCE OHNE TEMPLAVOILA – FCE MIT EXTBASE/FLUID• Vorteile • geht relativ schnell • Kontrolle über HTML-Code • Templates mit Fluid • Inhaltselement einfach auswählbar • Typ des Inhaltselements einfach zu wechseln
  30. 30. 30FCE OHNE TEMPLAVOILA – FCE MIT EXTBASE/FLUID/ext_tables.php um FlexForm erweitern$TCA[tt_content][columns][pi_flexform][config][ds][,contentelements_contactbox] = FILE:EXT:.$_EXTKEY./Configuration/FlexForms/flexform_contactbox.xml;
  31. 31. 31FCE OHNE TEMPLAVOILA – FCE MIT EXTBASE/FLUID/Configuration/FlexForms/flexform_contactbox.xmlVariablen im Flexform mit „settings.“ bezeichnenwg. einfacher Verwendung in Fluid Templates <settings.products type="array">Template anpassenVariablen im Flexform mit „settings.“ können in Fluid Templatesdirekt wieder mit „settings.“ abgegriffen werden <f:for each="{settings.products}" as="productContainer">
  32. 32. ALTERNATIVE FÜRMEHRSPALTIGE CONTAINER
  33. 33. 33FCE OHNE TEMPLAVOILA – EXT:MULTICOLUMN
  34. 34. 34FCE OHNE TEMPLAVOILA – EXT:MULTICOLUMN
  35. 35. 35FCE OHNE TEMPLAVOILA – EXT:MULTICOLUMN
  36. 36. 36FCE OHNE TEMPLAVOILA – EXT:MULTICOLUMN• Auswahl der Mehrspalter in einem Element• Konfiguration über TypoScript• HTML-Output frei konfigurierbar
  37. 37. EXT:FEDEXT
  38. 38. 38FCE OHNE TEMPLAVOILA – EXT:FEDEXT• Baut auf extbase/fluid auf• Möglichkeit zur Erstellung von FCEs• „Content Columns“ für mehrspaltige Elemente• Dokumentation unter: http://fedext.net
  39. 39. HAT´S GESCHMECKT?MEHR KREATIVE IDEEN AUCH ZUM MITNEHMEN. JANDA + ROSCHER GmbH & Co. KG Roritzerstraße 10 b 93047 Regensburg Fon +49.941.595600 Fax +49.941.5956010 info@janda-roscher.de www.janda-roscher.de

×