Изменение Node средствами PHP

Тема в разделе "Drupal", создана пользователем kozax89, 8 фев 2011.

Информация :
Прежде чем создать новую тему внимательно ознакомьтесь с правилами раздела
Модераторы: DMS
  1. kozax89

    kozax89 Постоялец

    Регистр.:
    12 июл 2009
    Сообщения:
    135
    Симпатии:
    4
    создал операцию для View Bulk Operations

    PHP:

    function views_bulk_operations_delete_news_action_info() {
      return array(
        
    'views_bulk_operations_delete_news_action' => array(
          
    'type' => 'node',
          
    'label' => t('Delete news option from nodes'),
          
    'configurable' => FALSE,
          
    'behavior' => array('deletes_node_property'),
        ),
      );
    }

    function 
    views_bulk_operations_delete_news_action($node) {
        
    $nid $node->nid;
        
    db_query"UPDATE field_data_field_new_book SET field_new_book_value='0' WHERE entity_id='$nid'");
    db_query"UPDATE field_revision_field_new_book SET field_new_book_value='0' WHERE entity_id='$nid'"); 
    }
    У выбраных товаров обнуляются поля указывающие что это новинка, но в админке в разделе "Содержимое" возле товаров дальше отображается слово "новинка"... Как я понимаю я пропустил обнуление еще какой-то ячейки в базе данных.

    Можете написать из каких таблиц Drupal берет данные для отображения нод? Или может есть другой способ обнулить поле у ноды? Что нибудь типа
    PHP:
    update_node(node->nid,field_new_book,0)
    ??
     
  2. kozax89

    kozax89 Постоялец

    Регистр.:
    12 июл 2009
    Сообщения:
    135
    Симпатии:
    4
    и опять сам нашел решение, также его сюда кину, может кому пригодится.

    в колбэке нашего кастомного экшона view_bulk_operations
    PHP:
    $node->field[ru][0][value] = '1';
    node_save($node);