Drupal 7:从视图模块中读取文件的内容

时间:2013-09-28 23:30:06

标签: file view drupal-7

我在Drupal 7中添加了一个内容类型,这个内容类型只包含一个文件字段:每个文件都必须包含这样的数组:

'rows' => array(
array(0,0), //(x,y) values
array(90,90),
array(59,70),
array(65,77),
array(85,66),
)

我想从视图模块中读取文件的内容并将数组发送到所选的图形类型:例如用户选择一个文件然后是一个pieChart图,如何发送文件(数组)的内容去图库的pieChart?这可能来自视图模块吗?必须将哪些函数添加到视图插件才能将文件内容发送到选定的库?

1 个答案:

答案 0 :(得分:0)

要解决您的问题,您可以实现2个钩子:

  • hook_field_formatter_info()
  • hook_field_formatter_view()

通过这种方式,您可以在视图字段设置中看到格式化程序。只需选择“文件获取内容”格式化程序即可完成。

@see => http://i.stack.imgur.com/D2aNJ.png

在自定义模块中输入以下代码:

function mymodule_field_formatter_info() {
    return array(
        'file_get_contents_formatter' => array(//Machine name of the formatter
            'label' => t('File get content'),
            'field types' => array('file'), //This will only be available to file fields
        ),
    );
}

function mymodule_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
    $element = array(); // Initialize the var
    switch ($display['type']) {
        case 'file_get_contents_formatter':
            foreach ($items as $delta => $item) {
                $element[$delta] = array('#markup' => empty($item['uri']) ? '' : file_get_contents(file_create_url($item['uri'])));
            }
            break;
    }
    return $element;
}