You are here

function easychart_update_7322 in Easychart 7.3

Convert xAxis and yAxis to objects instead of arrays.

File

./easychart.install, line 33
Easychart install file.

Code

function easychart_update_7322() {

  // Get all existing chart configurations
  $query = new EntityFieldQuery();
  $query
    ->entityCondition('entity_type', 'node')
    ->entityCondition('bundle', 'easychart')
    ->fieldCondition('easychart', 'config', '', '!=');
  $result = $query
    ->execute();
  if (isset($result['node'])) {
    $easycharts = $result['node'];
    foreach ($easycharts as $easychart) {
      $node = node_load($easychart->nid);
      $item = field_get_items('node', $node, 'easychart');
      if (isset($item[0]['config']) && $item[0]['config'] != '') {
        $config = json_decode($item[0]['config']);

        // Remove the series object.
        unset($config->series);

        // Fix xAxis and yAxis.
        foreach ($config as $key => $item) {
          if (in_array($key, array(
            'xAxis',
            'yAxis',
          )) && is_object($item)) {
            $config->{$key} = array(
              $item,
            );
          }
        }
        $config = json_encode($config);
        $node->easychart['und'][0]['config'] = $config;
        field_attach_update('node', $node);
      }
    }
  }
}