it-swarm.com.de

Verwaltete Datei: Wie kann #default_value richtig eingestellt werden?

$form['picture']['file'] = array(
  '#type' => 'managed_file',
  '#title' => t('picture'),
  '#description' => t('Allowed extensions: gif png jpg jpeg'),
  '#default_value' => (isset($foo->picture->fid) ? $foo->picture->fid : ''),
  '#upload_location' => variable_get('picture_upload_location'),
  '#upload_validators' => array(
    'file_validate_extensions' => array('gif png jpg jpeg'),
    // Pass the maximum file size in bytes
    'file_validate_size' => array(MAX_FILE_SIZE*1024*1024),
  ),
);

Ich habe das obige Code-Snippet von hier . Es ist sehr nützlich, aber es fällt mir schwer, #default_value.

Was ist $foo? Wo ist es eingestellt und wie kann ich es ändern? Werde ich das auf den anderen Seiten hochgeladene Bild verwenden (im selben Modul codiert)?.

7
Jayjay D. Luffy

Willkommen bei Drupal Answers. Sie müssen nur den fid-Integer-Wert an den Standardwert übergeben. Um besser zu verstehen, was fid ist, siehe unten stehende Beschreibung.

fid ist eine eindeutige Datei-ID, die in der Datenbank für jede hochgeladene Datei mit Drupal File System) gespeichert wird.

Wenn Sie also ein Standardbild festlegen möchten, sollte es über Drupal File System) hochgeladen werden. Idealerweise müssen Sie die FID der hochgeladenen Datei mit variable_set in einer Variablen speichern = im Submit-Handler und do variable_get im Standardwert, um fid zu setzen. Das war's !!

Hoffe es antwortet :-)

6
Anil Sagar

Der Benutzer kann die Eigenschaft $ _GET verwenden, wenn Sie die Datei erneut rendern, ohne eine Übermittlungsfunktion aufzurufen. Wenn die Datei nach der Sendefunktion aufgerufen wird, verwenden Sie $ form_state ['values'] ['file'].

 
 $ Form ['Datei'] = Array (
 '#Type' => 'verwaltete_Datei', 
 '#Upload_Location' => 'privat://',
 '#weight' => 5, 
 '#Upload_validators' => array (
 'File_validate_extensions' => array ('gif png jpg jpeg doc docx pdf xls xlsx rtf odt tiff '), 
), 
); 
 
 if (isset ($ _ GET [' file '])) {
 $ form ['file'] ['# default_value'] = $ _GET ['file']; 
} 
 
0
Kuriakose