2012-03-19 4 views
1

선택한 옵션에 따라 : 옵션TYPO3, TCA 양식보기 "유형"선택 필드의 값의 따라 변경됩니다 내가이 TCA 양식 백엔드에서 만든

이 선택 필드가 기본적으로 포함되어

  • RTE 텍스트
  • URL
  • 내가 그렇게 작업 시스템을 만들 수 있습니다

사진, 그 "rte 텍스트"를 선택하면 "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

가능성이 있습니다 PHP의 추가 비트를 사용하여 원하는 것을 얻을 수 있지만 하나의 테이블 필드에 다른 내용을 혼합하는 것이 옳지 않다고 생각합니다. @konsolenfreddy가 제안한 접근 방식이 더 좋을 것이라고 생각합니다. – tmt

답변

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 등)