[ Index ]

PHP Cross Reference of Drupal 6 (yi-drupal)

title

Body

[close]

/sites/all/modules/data/data_node/views/ -> data_node.views.inc (source)

   1  <?php
   2  /**
   3   * @file
   4   * Views hooks.
   5   */
   6  
   7  /**
   8   * Implementation of hook_views_data().
   9   */
  10  function data_node_views_data() {
  11    $data = array();
  12  
  13    $data['data_table_node']['table']['group']  = t('Data node');
  14    $data['data_table_node']['table']['title']  = t('Node');
  15    $data['data_table_node']['table']['join'] = array(
  16      'node' => array(
  17        // Describe how data_table_node joins to node table.
  18        'left_field' => 'nid',
  19        'field' => 'nid',
  20      ),
  21    );
  22    // Add an explicit relationship to the node table.
  23    $data['data_table_node']['nid']['relationship'] = array(
  24      'help' => t('Relate data_table_node to node table.'),
  25      'label' => t('Relate data_table_node to node table'),
  26      'base' => 'node',
  27      'base field' => 'nid',
  28    );
  29    $data['data_table_node']['item_count'] = array(
  30      'title' => t('Item count'),
  31      'help' => t('A count of the number of data items related to this node.'),
  32      'field' => array(
  33        'handler' => 'data_node_views_handler_field_item_count',
  34      ),
  35    );
  36  
  37    // Add an add/remove handler for each data table that supports adding/removing.
  38    $tables = data_get_all_tables();
  39    foreach ($tables as $table) {
  40      $meta = $table->get('meta');
  41  
  42      if (!empty($meta['data_node']['content_type'])) {
  43  
  44        // Add an explicit relationship to data_table_node.
  45        $data[$table->get('name')]['data_table_node_rel'] = array(
  46          'group' => t('Data node'),
  47          'title' => "Data table",
  48          'relationship' => array(
  49            'help' => t('Relate this data table to data_table_node.'),
  50            'label' => t('Relate this data table to data_table_node'),
  51            'base' => 'data_table_node',
  52            'base field' => 'id',
  53            'relationship field' => $meta['data_node']['id'],
  54          ),
  55        );
  56        $data[$table->get('name')]['data_node_add_remove'] = array(
  57          'field' => array(
  58            'title' => t('Add to/remove from node link'),
  59            'help' => t('Provide a link to add or remove a data item to a node.'),
  60            'handler' => 'data_node_views_handler_field_add_remove',
  61          ),
  62        );
  63        $data[$table->get('name')]['data_node_list'] = array(
  64          'field' => array(
  65            'title' => t('List of nodes'),
  66            'help' => t('Provide a list of nodes this item is related to.'),
  67            'handler' => 'data_node_views_handler_field_node_list',
  68          ),
  69        );
  70      }
  71    }
  72  
  73    return $data;
  74  }
  75  
  76  /**
  77   * Implementation of hook_views_handlers().
  78   */
  79  function data_node_views_handlers() {
  80    return array(
  81      'info' => array(
  82        'path' => drupal_get_path('module', 'data_node') .'/views',
  83      ),
  84      'handlers' => array(
  85        // field handlers
  86        'data_node_views_handler_field_item_count' => array(
  87          'parent' => 'views_handler_field',
  88        ),
  89        'data_node_views_handler_field_add_remove' => array(
  90          'parent' => 'views_handler_field',
  91        ),
  92        'data_node_views_handler_field_node_list' => array(
  93          'parent' => 'views_handler_field',
  94        ),
  95      ),
  96    );
  97  }


Generated: Mon Jul 9 18:01:44 2012 Cross-referenced by PHPXref 0.7