You are here

function google_admanager_update_6103 in DFP Small Business (Google Ad Manager) 6

Same name and namespace in other branches
  1. 6.3 google_admanager.install \google_admanager_update_6103()
  2. 6.2 google_admanager.install \google_admanager_update_6103()
  3. 7.2 google_admanager.install \google_admanager_update_6103()

Try again with last broken upgrade Description is at http://drupal.org/node/624284#comment-2939486

1 call to google_admanager_update_6103()
google_admanager_update_6200 in ./google_admanager.install
Baseline for 6.x-2.x schema

File

./google_admanager.install, line 73

Code

function google_admanager_update_6103() {
  $ret = array();
  $delta = db_result(db_query("SELECT delta FROM {blocks} WHERE module = 'google_admanager'"));
  if (empty($delta)) {

    // nothing in database
    return $ret;
  }
  $ad_slots = variable_get('google_admanager_ad_slots', '');
  $ad_slots = explode("\n", str_replace(array(
    "\r",
    "\t",
    "\0",
    "\v",
    " ",
  ), '', trim($ad_slots)));
  if (strlen($delta) > 3) {

    // convert back to the old schema
    foreach ($ad_slots as $i => $ad_slot) {
      db_query("UPDATE {blocks} SET delta = '%d' WHERE module = 'google_admanager' AND (delta = '%s' OR delta = '%s') LIMIT 1", $i, truncate_utf8(drupal_strtolower($ad_slot), 64), truncate_utf8(drupal_strtolower($ad_slot), 32));
      if (module_exists('panels')) {
        db_query("UPDATE {panels_pane} SET subtype = 'google_admanager-%d' WHERE type = 'block' AND (subtype = 'google_admanager-%s' OR subtype = 'google_admanager-%s') LIMIT 1", $i, truncate_utf8(drupal_strtolower($ad_slot), 64), truncate_utf8(drupal_strtolower($ad_slot), 32));
      }
    }
  }

  // Ok now the real update
  foreach ($ad_slots as $i => $ad_slot) {
    $ret[] = update_sql("UPDATE {blocks} SET delta = '" . md5(trim($ad_slot)) . "' WHERE module = 'google_admanager' AND delta = '" . $i . "'");
    if (module_exists('panels')) {
      $ret[] = update_sql("UPDATE {panels_pane} SET subtype = 'google_admanager-" . md5(trim($ad_slot)) . "' WHERE type = 'block' AND subtype = 'google_admanager-" . $i . "'");
    }
  }
  return $ret;
}