Autor Subiect: Adaugarea unui nou tip de tt_content  (Citit de 866 ori)

lacisoft

  • Administrator
  • Novice
  • *****
  • Mesaje postate: 74
    • lacisoft.com/blog
Adaugarea unui nou tip de tt_content
« : Decembrie 08, 2009, 05:53:19 pm »
In unele cazuri este necesar sa cream un nou tip de tt_content pe langa cele deja existente precum Text, Text w/ Image, Image si asa mai departe.

Pentru acest lucru este necesar sa extindem tabela tt_content cu numarul de campuri pe care dorim sa le introducem suplimentar si sa le definim in TCA. Acest lucru se face relativ usor adaugand in ext_tables.php al extensiei noastre codul:

//definim campul
$tempColumns = array (
    'tx_mdcontent_crosslink' => array (       
        'exclude' => 0,       
        'label' => 'LLL:EXT:md_content/locallang_db.xml:pages.tx_mdcontent_crosslink',       
        'config' => array (
            'type' => 'check',
            'default' => 1,
        )
    ),
);

//adaugam in tt_content
t3lib_div::loadTCA('tt_content');
t3lib_extMgm::addTCAcolumns('tt_content',$tempColumns,1);
t3lib_extMgm::addToAllTCAtypes('tt_content','tx_mdcontent_crosslink');


//Dupa acest pas este necesar sa adaugam tipul de continut nou, folosind si unele campuri deja existente in tt_content (header, bodytext)

$TCA['tt_content']['types'][$_EXTKEY.'_pi2']['showitem']='CType;;4;button;1-1-1, header;;3;;2-2-2,bodytext;;9;richtext:rte_transform[flag=rte_enabled|mode=ts_css];3-3-3,tx_mdcontent_crosslink';

//adaugam pluginul

t3lib_extMgm::addPlugin(array('LLL:EXT:md_content/locallang_db.xml:tt_content.CType_pi1', $_EXTKEY.'_pi2'),'CType');


Pasul final este definirea fisierului care face afisarea pentru acest tip de continut. Pentru acest lucru se va adauga in ext_localconf.php al extensiei respective codul:

t3lib_extMgm::addPItoST43($_EXTKEY, 'pi2/class.tx_mdcontent_pi2.php', '_pi2', 'CType', 1);

Acest fisier se va ocupa de afisare in cazul tipului nostru de continut.

Atata tot si veti avea un nou tip de continut care poate fi ales atunci cand adaugati content pe pagina.

In cazul meu se numeste Crosslink si este afisat din tx_mdcontent_pi2.php care este o extensie obisnuita de TYPO3.
« Ultima Modificare: Decembrie 08, 2009, 05:59:16 pm de lacisoft »
Bodor László
------------
Certified TYPO3 Integrator
Arxia Group
Cluj Napoca