Добавить свою операция в Views Bulk Operation

МодульViews Bulk Operation является полезным в тех случаях, когда нужно выполнить конкретную операцию в течение более чем одной строки в представлении. В стандартном наборе присутствуют операции удаления, публикации, смену автора содержания, отправлять электронную почту и т.д. (См. изображение ниже). Бывают случаи, когда нужно произвести определенные операции с нодами, но в списке их нет. Все решается написанием небольшого модуля.

Создаем свой модуль

function vbo_change_price_action_info() {
    return array(
      'vbo_change_price_action' => array( 
        'type' => 'node', 
        'label' => t('Change price to 0.0000 in field [sell price]'), 
        'configurable' => FALSE,
        'pass rows' => TRUE, 
      ),
    );
  }
  
function vbo_change_price_action(&$node, $context = array()) { 
  $query = db_update('uc_products')
    ->fields(array('sell_price' => '0'))
    ->condition('nid',$node->nid)
    ->execute();
  }

vbo_change_price - имя модуля.

Функция данного модуля - массовое изменение цены в товарах Ubercart'а.

Комментарии

Аватар пользователя jack
что то не понял как же модуль работает, он что устанавливает 0 на выбранные продукты ?
Аватар пользователя admin_romcom
все верно. этот модуль был написан для того, чтоб убрать цену в товарах уберкарта через vbo.
Это только для примера как добавить свою операцию в vbo.
Сам по себе модуль ничего не делает. Он добавляет поле в Bulk Operations во views.

В принципе, можно вывести textfield с ценой для каждого или один textfield на все товары и поменять их пачкой.
Аватар пользователя Артем
Спасибо,автор)))

Добавить комментарий