Управляемый файл: Каков правильный способ установки #default_value?

$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),
  ),
);

У меня есть приведенный выше фрагмент кода из . Это очень полезно, однако мне сложно установить #default_value.

Что такое $foo? Где он установлен и как его изменить? Использую ли я изображение, загруженное на другие страницы (закодированное в том же модуле).

7 голосов | спросил Jayjay D. Luffy 19 +04002012-10-19T08:59:08+04:00312012bEurope/MoscowFri, 19 Oct 2012 08:59:08 +0400 2012, 08:59:08

2 ответа


6

Добро пожаловать в Drupal Answers. Вам просто нужно передать целочисленное значение fid в значение по умолчанию. Чтобы лучше понять, что такое fid, см. Описание ниже.

  

fid - уникальный идентификатор файла, который хранится в базе данных для каждого и   каждый загруженный файл с использованием Drupal File System.

Итак, если вы хотите установить изображение по умолчанию, оно должно быть загружено через Drupal File System. В идеале вам нужно сохранить fid загруженного файла в переменной, используя variable_set в обработчике отправки и переменная_get в значение по умолчанию для установки fid , Вот и все!

Надеюсь, что он ответит: -)

ответил Anil Sagar 19 +04002012-10-19T09:09:05+04:00312012bEurope/MoscowFri, 19 Oct 2012 09:09:05 +0400 2012, 09:09:05
0

Пользователь может использовать свойство $ _GET, если вы снова просматриваете файл без вызова функции отправки. Если файл вызывает функцию отправки, используйте $ form_state ['values'] ['file']

$ form ['file'] = массив (
    '#type' => 'Managed_file',
    '#upload_location' => 'частный://',
    '#weight' => 5,
    '#upload_validators' => массив (
      'file_validate_extensions' => массив ('gif png jpg jpeg doc docx pdf xls xlsx rtf odt tiff'),
    ),
  );

  if (isset ($ _ GET ['file'])) {
      $ form ['file'] ['# default_value'] = $ _GET ['file'];
  }

ответил Kuriakose 29 Mayam15 2015, 06:21:46

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132