我正在使用Drupal 7作为表单。在表单中,我有一个managed_file字段。当我将主题属性添加到managed_file字段时,删除按钮会在删除图像时重新加载页面。上传工作正常。 在添加主题属性之前,删除按钮也正常工作。 这是我的managed_file字段。
$form['profile_image'] = array(
'#title' => t('Profile Image'),
'#type' => 'managed_file',
'#default_value' => profile_image['user']->field_profile_image['und']['0']['fid'],
'#upload_location' => 'public://',
'#theme' => 'module_upload_thumb_style',
);
这是我用来设置上传图片样式的主题功能,而不是只显示图片的名称。
function theme_module_upload_thumb_style($variables) {
$element = $variables['element'];
if (isset($element['#file']->uri)) {
$output = '<div id="edit-logo-ajax-wrapper"><div class="form-item form-type-managed-file form-item-logo"><span class="file">';
$output .= '<img height="50px" src="' . image_style_url('thumbnail', $element['#file']->uri) . '" />';
$output .= '</span><input style="margin-left:20px;" type="submit" id="edit-' . $element['#name'] . '-remove-button" name="' . $element['#name'] . '_remove_button" value="Remove" class="btn btn-primary ajax-processed">';
$output .= '<input type="hidden" name="' . $element['#name'] . '[fid]" value="' . $element['#file']->fid . '"></div></div>';
return $output;
}
}
当在表单字段中注释主题属性时,删除按钮会删除图像而不刷新页面。但是在添加主题属性上, 功能保持不变,但页面重新加载
答案 0 :(得分:0)
在深入研究问题之后,我找到了解决问题的相关解决方案。 将主题功能更新为如下所示后,删除按钮就像魅力一样。 这是更新的功能:
function theme_module_upload_thumb_style($variables) {
$element = $variables['element'];
$attributes = array();
if (isset($element['#id'])) {
$attributes['id'] = $element['#id'];
}
if (!empty($element['#attributes']['class'])) {
$attributes['class'] = (array) $element['#attributes']['class'];
}
$attributes['class'][] = 'form-managed-file';
$output = '';
$output .= '<div' . drupal_attributes($attributes) . '>';
if (isset($element['#file']->uri)) {
$output .= '<img src="' . image_style_url('thumbnail', $element['#file']->uri) . '" />';
}
$output .= drupal_render_children($element);
$output .= '</div>';
return $output;
}