2010-06-09 34 views
3

这个drupal表单片段会给我一个textarea,用户可以将过滤器更改为完整的html/wysiwyg模式。Drupal filter_form表单输入

我的问题:我如何默认为完整的html模式?

function MY_MODULE_admin() { 
    $form = array(); 

$form['format'] = filter_form($form->format); 

    // MY_MODULE - ** Image 1 ** 
    $form['MY_MODULE_image_1'] = array(
    '#type' => 'textarea', 
    '#title' => t('Image 1'), 
    '#default_value' => variable_get('setup_image_1', 'image_1.jpg'), 
    '#description' => "Current value =" .variable_get('setup_image_1', 'image_1.jpg'), 
    '#required' => TRUE, 
); 

回答

0

那么有两种方法。

一,您可以在输入格式下将该角色的默认格式设置为完整HTML。二,你可以说$ form ['format'] ['#default_value'] = 2(我认为全HTML是2)。这将预先选择完整的HTML。

3

这个技巧。

$form = array(); 

$form['carousel_setup_image_1']['accepted_text_1'] = array(
    '#type' => 'textarea', 
    '#title' => t('Image 1 - Carousel '), 
    '#default_value' => variable_get('carousel_setup_image_1', 'carousel_image_1.jpg'), 
    '#description' => "Current value =" .variable_get('carousel_setup_image_1', 'carousel_image_1.jpg'), 
); 
    $form['carousel_setup_image_1']['format'] = filter_form(2, NULL, array('accepted_text_1_format'));  
0
however, I am not sure why $edit['carousel_setup_image_1']['accepted_text_1']) does not contain entered value. 

function carousel_setup_block($op = 'list', $delta = 0, $edit = array()) 
{ 
     switch($op) 
     { 

      // case save (save configuration values)  
      case 'save': 
      variable_set('carousel_setup_image_1',     
        $edit['carousel_setup_image_1']['accepted_text_1']); 
       break;   
     } 
    } 
0

为Drupal 7:处理的最佳方式(或杠杆)Drupal的文本过滤系统是使用不“textarea的”,但“TEXT_FORMAT”字段类型,这样,这会使带过滤器的textarea选择如下:

 $form['holycrap'] = array(
     '#type' => 'text_format', 
     '#format' => NULL, // <- Let Drupal handle the default, based upon user role 
     '#title' => t('The HTML for the Holy Crap block above the Main Menu.'), 
     '#default_value' => variable_get('caplogin_holycrap', _caplogin_holycrap_default_html()), 
    ); 
    return $form;