[ Index ]

PHP Cross Reference of Drupal 6 (gatewave)

title

Body

[close]

/sites/all/modules/filefield/views/ -> filefield.views_convert.inc (source)

   1  <?php
   2  // $Id: filefield.views_convert.inc,v 1.1 2009/07/03 22:14:14 quicksketch Exp $
   3  
   4  /**
   5   * @file
   6   * Field conversion for fields handled by this module.
   7   */
   8  
   9  /**
  10   * Implementation of hook_views_convert().
  11   */
  12  function filefield_views_convert($display, $type, &$view, $field, $id = NULL) {
  13    static $filefield_fields;
  14    static $filefield_filters;
  15    static $filefield_arguments;
  16    if (!isset($filefield_fields)) {
  17      $filefield_fields = $filefield_filters = $filefield_arguments = array();
  18      foreach (content_fields() as $content_field) {
  19        if ($content_field['module'] == 'filefield') {
  20          $result = module_invoke('filefield', 'field_settings', 'views data', $content_field);
  21          if (!empty($result)) {
  22            foreach ($result as $table => $fields) {
  23              unset($fields['table']);
  24              foreach ($fields as $filefield_field => $definition) {
  25                switch ($filefield_field) {
  26                  case $content_field['field_name'] .'_fid':
  27                    $filefield_fields[$filefield_field] = array(
  28                      'table' => $table,
  29                      'field' => $filefield_field,
  30                    );
  31                    $filefield_arguments['content: '. $content_field['field_name']] = &$filefield_fields[$filefield_field];
  32                    break;
  33                  case $content_field['field_name'] .'_list':
  34                    $filefield_filters[$content_field['field_name'] .'_fid_not null'] = array(
  35                      'table' => $table,
  36                      'field' => $filefield_field,
  37                    );
  38                    break;
  39                }
  40              }
  41            }
  42          }
  43        }
  44      }
  45    }
  46    switch ($type) {
  47      case 'field':
  48        if (isset($filefield_fields[$field['field']])) {
  49          $multiple = array();
  50          switch ($field['handler']) {
  51            case 'content_views_field_handler_ungroup':
  52              $view->set_item_option($display, 'field', $id, 'multiple', array('group' => FALSE));
  53              break;
  54            case 'content_views_field_handler_last':
  55              $multiple['multiple_reversed'] = TRUE;
  56            case 'content_views_field_handler_first':
  57              $multiple['multiple_number'] = 1;
  58              $view->set_item_option($display, 'field', $id, 'multiple', $multiple);
  59              break;
  60          }
  61          $view->set_item_option($display, 'field', $id, 'format', $field['options']);
  62        }
  63        break;
  64      case 'filter':
  65        if (isset($filefield_filters[$field['field']])) {
  66          $filter = $filefield_filters[$field['field']];
  67          $item = $view->get_item($display, 'filter', $id);
  68          $item['value'] = $field['value'];
  69          $item['table'] = $filter['table'];
  70          $item['field'] = $filter['field'];
  71          $view->set_item($display, 'filter', $id, $item);
  72        }
  73        break;
  74      case 'argument':
  75        if (isset($filefield_arguments[$field['type']])) {
  76          $argument = $filefield_arguments[$field['type']];
  77          $options = $field['argoptions'];
  78          $view->add_item($display, 'argument', $argument['table'], $argument['field'], $options, $field['id']);
  79        }
  80        break;
  81    }
  82  }


Generated: Thu Mar 24 11:18:33 2011 Cross-referenced by PHPXref 0.7