Drupal 7使用自定义模块中媒体模块的媒体选择器

时间:2012-07-31 14:46:10

标签: drupal module drupal-7 media

我正在创建自己的模块,该模块将向特定地址发送电子邮件。

但我需要知道如何合并来自名为“media”的模块中的媒体选择器,以便用户可以使用与发送电子邮件相同的形式将文件上传到服务器。

此刻我的表单是在我的新模块的PHP中创建的。

$form['email'] = array(
'#type' => 'textfield',
'#title' => t('Your e-mail address'),
'#required' => TRUE,
);
$form['title'] = array(
'#type' => 'textfield',
'#title' => t('Title of bug'),
'#required' => TRUE,
);
 $form['message'] = array(
'#type' => 'textarea',
'#title' => t('Bug description'),
'#required' => TRUE,
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit'),
);
  return $form;

3 个答案:

答案 0 :(得分:2)

media.module定义名为media的Form API元素类型。所以你可以做以下的事情:

$form['file'] = array(
  '#type' => 'media',
  ...
);

请查看media_element_info()中的media.module以获取更多选项。

答案 1 :(得分:2)

您可以使用此代码。它甚至可以在一种形式的多个媒体元素上工作。

$form['image'] = array(
    '#type' => 'media',     
    '#tree' => TRUE,
    '#title' => t('Image'),
    '#description' => t('Image'),
    '#input' => TRUE,
    '#media_options' => array(
      'global' => array(
        'types' => array('image'), // Example: array('image', 'audio');
        'schemes' => array('http'), // Example: array('http', 'ftp', 'flickr');
      ),
    ),
    '#default_value' => array('fid' => ''), // Change to your default value
);

答案 2 :(得分:0)

如果您想设置整个媒体表单,可以使用

$form['pgh'] = array(
'#type' => 'media',
'#title' => t('Upload video'),
'#input' => TRUE,
'#media_options' => array(
  'global' => array(
    'types' => array('document'),
    'schemes' => array('http'),
  ),
),
'#description' => t('Pick a video file to upload.'),
'#attached' => array(),
'#extended' => TRUE,
// '#value' => array('fid' => 22),
);

最后一次'#value'设置上次上传的默认文件。希望这会有所帮助。