You are here

function starrating_update_7001 in Star Rating 7.2

Change all starrating_rating fields to list_integer

File

./starrating.install, line 13
Install/update/uninstall functions for starrating module

Code

function starrating_update_7001() {
  $result = '';
  $result = db_query("SELECT data FROM {field_config} WHERE type = 'starrating_rating'");
  if ($result) {
    while ($row = $result
      ->fetchAssoc()) {
      $field_data[] = unserialize($row['data']);
    }
  }

  //convert the max_value to allowed_values of a list_integer
  foreach ($field_data as $key => $data) {
    $max_value = intval($data['settings']['max_value']);
    unset($data['settings']['max_value']);
    $data['settings']['allowed_values'] = range(0, $max_value);
    $data['settings']['allowed_values_function'] = '';

    //daten serialize, struktur von list_integer übernehme nund zurückschreiben
    $serialized_data = serialize($data);
    $id = $data['id'];
    db_query("UPDATE {field_config} SET data=:serialized_data WHERE id=:id", array(
      ":serialized_data" => $serialized_data,
      ":id" => $id,
    ));
  }

  /*
    $result2 = '';
    $result2 = db_query("SELECT * FROM {field_config} WHERE type = 'list_integer'");

    if ($result2) {
      while ($row1 = $result2->fetchAssoc()) {
        $fields2[] = $row1;
        $data2 = unserialize($row1['data']);
      }
    }*/

  // convert the starrating_rating to list_integer
  db_query("UPDATE {field_config} SET type = 'list_integer' WHERE type = 'starrating_rating'");

  // Clear caches.
  field_cache_clear(TRUE);
}