#forms #drupal #hook #default #alter
#формы #drupal #перехват #По умолчанию #изменить
Вопрос:
У меня есть форма D7 с загрузкой файла изображения. Я хотел бы предоставить внешний URL в качестве изображения по умолчанию, но я не уверен, как это сделать. Я пытался использовать hook_form_alter:
function myapp_form_object_node_form_alter(amp;$form, amp;$form_state, $form_id) {
$form['#node']->field_map_image['und'][0]['#default_value']['uri']="https://commons.wikimedia.org/wiki/File:Potsdamer_Platz,_Berlin,_151024,_ako.jpg";
}
но я ничего не получаю. Любые советы в правильном направлении были бы оценены! Спасибо!
Комментарии:
1. Вам действительно нужно загружать его снова и снова для каждой отправки новой формы без изображения, установленного пользователем? Почему бы вам просто не установить это поле необязательным и в коде, который отображает результаты формы, проверить, загружено оно или нет, и если оно не использует это изображение по умолчанию? Также, возможно, было бы неплохо скопировать файл изображения на ваш сервер и использовать его оттуда.
2. Нет, я не хочу, чтобы оно загружалось снова и снова. Каждый узел имеет значения по умолчанию, которые уже заполнены. Итак, сначала я хотел бы знать, как лучше всего назначить изображение этого узла по умолчанию. Затем я использую какую-нибудь функцию обрезки, чтобы обрезать его… Есть идеи? Правильно ли использовать hook_form_alter?
3. Тогда да, hook_form_alter() — правильный путь. И если вам не удастся установить значение по умолчанию для поля загрузки (не пробовал, не знаю, сработает ли это), вы можете использовать ту же функцию перехвата, чтобы добавить дополнительную функцию обработки отправки формы, которая может проверить, загружено ли изображение, и, если нет, установить значение по умолчанию.