Я создаю сайт Drupal 7 (7.20) с типом контента «проект», который содержит несколько полей изображения (я не хочу использовать галереи).Drupal 7 delete multiple imagefields
Я хотел бы иметь возможность выполнять операцию массового удаления в этих полях со страницы редактирования узла. Из того, что я собрал, я должен переопределить theme_file_widget_multiple и вернуть таблицу вместо таблицы, а затем использовать кнопку плюс javascript для удаления изображений из базы данных.
Я пропустил что-то очевидное? Это похоже на много работы для чего-то такого тривиального.
EDIT:
Я имел некоторый прогресс с этим:
function mytheme_file_widget_multiple($variables) {
$element = $variables ['element'];
$headers = array();
$headers ['info'] = t ('');
$widgets = array();
foreach (element_children ($element) as $key) {
$widgets [] = &$element [$key];
}
usort ($widgets, '_field_sort_items_value_helper');
$rows [] = array();
$i = 0;
foreach ($widgets as $key => &$widget) {
// Save the uploading row for last.
if ($widget ['#file'] == FALSE) {
$widget ['#description'] = $element ['#file_upload_description'];
continue;
}
$operations_elements = array();
foreach (element_children ($widget) as $sub_key) {
if (isset ($widget [$sub_key] ['#type']) && $widget [$sub_key] ['#type'] == 'submit') {
$operations_elements [] = &$widget [$sub_key];
}
}
$information = drupal_render ($widget);
$rows [$i ++] ['info'] = $information;
}
$output = '';
$output = drupal_render_children ($element);
$form ['element'] = array (
'#type' => 'tableselect',
'#header' => $headers,
'#options' => $rows,
'#js_select' => TRUE,
'#empty' => t ('No data'),
'#attributes' => array());
$output .= empty ($rows) ? "" : drupal_render ($form);
return $output;
}
Это был включен в файл шаблона моей темы, однако в tableselect не флажков. Это сводит меня с ума .. Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно?