2012-03-19 55 views
1

我在後臺一個TCA形式提出,究竟會因所選擇領域的「類型」的值更改:TYPO3的,TCA形式查看取決於所選擇的選項

該選擇字段包含基本選項:

  • RTE文本
  • 網址
  • 圖片

我可以使系統工作,所以,該當選擇「rte text」時,它會顯示「rte text」的指定字段,當選擇url時會顯示「url」的指定字段等。

在我的情況下,內容總是保存在數據庫的「內容「,所選類型保存在」類型「字段中。

我的問題是,我還沒有找到一種方法來改變「內容」窗體域/配置,具體取決於所選的類型。

例如,當我選擇「RTE文本」應該用於內容領域的這種配置的(富文本編輯器):

'content' => array (  
     'exclude' => 0,  
     'label' => 'Content',  
     'config' => array (
      'type' => 'text', 
      'cols' => '30', 
      'rows' => '5', 
      'wizards' => array(
       '_PADDING' => 2, 
       'RTE' => array(
        'notNewRecords' => 1, 
        'RTEonly'  => 1, 
        'type'   => 'script', 
        'title'   => 'Full screen Rich Text Editing|Formatteret redigering i hele vinduet', 
        'icon'   => 'wizard_rte2.gif', 
        'script'  => 'wizard_rte.php', 
       ), 
      ), 
     ) 
    ), 

,當我選擇「圖片報」就應該使用內容字段這種配置(文件上傳):

'content' => array (  
     'exclude' => 0,  
     'label' => 'Content',  
     'config' => array (
      'type' => 'group', 
      'internal_type' => 'file', 
      'allowed' => '',  
      'disallowed' => 'php,php3', 
      'max_size' => $GLOBALS['TYPO3_CONF_VARS']['BE']['maxFileSize'], 
      'uploadfolder' => 'uploads/tx_uploadshere', 
      'size' => 1,  
      'minitems' => 0, 
      'maxitems' => 1, 
     ) 
    ), 

有沒有辦法根據選擇框中的值更改該配置。我試圖把兩個內容放在一個數組中,但沒有按照這種方式工作。

+0

它是possi可以用額外的PHP實現你想要的,但我認爲在一個表字段中混合不同的內容是不正確的。我認爲@konsolenfreddy提出的方法會更好。 – tmt 2012-03-20 07:54:46

回答

3

不幸的是,您無法通過type更改單個字段的屬性。

但是,您可以影響正在顯示的內容。所以,你可以配置兩個獨立的領域和切換顯示:

ext_tables.php

$TCA['tx_yourextension_yourtable'] = array(
    'ctrl' => array(
     //... 
     'type'=>'type', 
     //... 
    ), 
); 

TCA.php

$TCA['tx_yourextension_yourtable'] = array(
    'ctrl' => $TCA['tx_yourextension_yourtable']['ctrl'], 
    'types' => array(
     0 => array('showitem' => 'content_rte'), 
     1 => array('showitem' => 'content_image'), 
    ), 
    'columns' => array(
     'content_rte' => array(
      'exclude' => 0, 
      'label' => 'Content', 
      'config' => array(
       'type' => 'text', 
       'cols' => '30', 
       'rows' => '5', 
       'wizards' => array(
        '_PADDING' => 2, 
        'RTE' => array(
         'notNewRecords' => 1, 
         'RTEonly' => 1, 
         'type' => 'script', 
         'title' => 'Full screen Rich Text Editing|Formatteret redigering i hele vinduet', 
         'icon' => 'wizard_rte2.gif', 
         'script' => 'wizard_rte.php', 
        ), 
       ), 
      ) 
     ), 
     'content_upload' => array(
      'exclude' => 0, 
      'label' => 'Content', 
      'config' => array(
       'type' => 'group', 
       'internal_type' => 'file', 
       'allowed' => '', 
       'disallowed' => 'php,php3', 
       'max_size' => $GLOBALS['TYPO3_CONF_VARS']['BE']['maxFileSize'], 
       'uploadfolder' => 'uploads/tx_uploadshere', 
       'size' => 1, 
       'minitems' => 0, 
       'maxitems' => 1, 
      ) 
     ), 
    ), 
    // ... 
); 

(注:我已經刪除系統如hidden,sys_language_uid等,爲了簡單起見)