0

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

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

我想从视图模块中读取文件的内容并将数组发送到选定的图形类型:例如,用户选择一个文件然后是饼图,如何将文件(数组)的内容发送到库饼图的?从视图模块可以吗?为了将文件的内容发送到选定的库,必须向视图插件添加什么功能?

4

1 回答 1

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;
}
于 2013-10-01T10:11:42.253 回答