You are here

function views_gantt_plugin_style_gantt::views_gantt_get_node_field_value in Views Gantt 7

Same name and namespace in other branches
  1. 7.2 views_gantt_plugin_style_gantt.inc \views_gantt_plugin_style_gantt::views_gantt_get_node_field_value()

Returns value of specific field from node.

Parameters

object $node: Node object received via node_load()

string $field_options_name: Option key from views_gantt_plugin_style_gantt::option_definition()

Return value

string Field value from node object

File

./views_gantt_plugin_style_gantt.inc, line 435
Contains the list style plugin.

Class

views_gantt_plugin_style_gantt
Style plugin to render Gantt charts.

Code

function views_gantt_get_node_field_value($node, $field_options_name) {
  $field_name = $this->options_node[$field_options_name];
  $field_value = '';
  $lang = LANGUAGE_NONE;
  if (isset($node->{$field_name}) && !empty($node->{$field_name})) {
    $field_value = $node->{$field_name};
    if (is_array($field_value)) {

      // Get field info.
      $field_info = field_info_field($field_name);

      // If field is translatable, we check if
      // it has an index equals to node language.
      $is_translatable = field_is_translatable('node', $field_info);
      if ($is_translatable && isset($node->{$field_name}[$node->language])) {
        $lang = $node->language;
      }
      $value_keys = array_keys($field_info['columns']);
      $field_value = $node->{$field_name}[$lang][0][$value_keys[0]];
      if ($field_options_name == 'end_date_field' && isset($value_keys[1])) {
        $field_value = $node->{$field_name}[$lang][0][$value_keys[1]];
      }
    }

    // If field should provide date, we need to return it's
    // value in specific date format (Y,n,j).
    $date_fields = array(
      'date_field',
      'end_date_field',
      'project_date_field',
    );
    if (!is_array($field_value) && in_array($field_options_name, $date_fields)) {
      views_gantt_normalize_date_field($field_value);
    }
  }
  return $field_value;
}