2012-07-31 48 views
2

我正在創建自己的模塊,該模塊會將電子郵件發送到特定地址。Drupal 7在自定義模塊中使用媒體模塊中的媒體選擇器

但我需要知道如何將模塊中的媒體選擇器合併到名爲'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; 

回答

2

media.module定義了稱爲media的Form API元素類型。所以,你可以這樣做以下:

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

media.modulemedia_element_info()看看進一步的選項。

+0

完美工作,感謝你 – Occidio 2012-08-01 07:58:50

+0

,如果我想用這個只對圖片做我該怎麼辦\ – Hitesh 2014-08-08 06:07:07

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」設置上傳上次的默認文件。希望這可以幫助。

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 
); 
+0

對於媒體2.X簡單說就是''#default_value => $ my_fid,',沒有數組了。 – leymannx 2015-11-26 11:14:58