我正在创建自己的模块,该模块将向特定地址发送电子邮件。
但我需要知道如何合并来自名为“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;
答案 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'设置上次上传的默认文件。希望这会有所帮助。