2013-08-09 4 views
0

Я создаю сайт 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 не флажков. Это сводит меня с ума .. Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно?

ответ

0

Из того, что я собрал, я должен создать модуль, который подменяет функции FIELDSET Preprocess ..

Вот ссылки:

1) https://drupal.org/node/1905244

Эта статья кажется чтобы попытаться сделать то, что вы хотите.

2) Также проверьте https://drupal.org/project/views_bulk_operations это может быть полезно.

3) если нет, то вам нужно будет сделать свой собственный виджет:

https://api.drupal.org/api/drupal/modules%21field%21field.module/group/field/7

https://drupal.org/project/examples (есть все примеры, нужно будет)

все самое лучшее.