You are here

function google_admanager_wrong_update_6102 in DFP Small Business (Google Ad Manager) 6.3

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

Implementation of hook_update_N().

Convert block deltas from integers to strings based on the Google Ad Manager slot name. See http://drupal.org/node/624284

File

./google_admanager.install, line 43
Install, update and uninstall functions for the google_admanager module.

Code

function google_admanager_wrong_update_6102() {
  $ret = array();
  $ad_slots = variable_get('google_admanager_ad_slots', '');
  $ad_slots = explode("\n", str_replace(array(
    "\r",
    "\t",
    "\0",
    "\v",
    " ",
  ), '', trim($ad_slots)));
  $block_deltas = array();
  foreach ($ad_slots as $i => $ad_slot) {
    $block_deltas[$i] = truncate_utf8(drupal_strtolower($ad_slot), 32);
  }
  if (is_array($ad_slots)) {
    $result = db_query("SELECT bid, delta FROM {blocks} WHERE module = 'google_admanager'");
    while ($block = db_fetch_object($result)) {
      if (isset($ad_slots[$block->delta])) {

        //updating block with new delta based on the block name
        $ret[] = update_sql("UPDATE {blocks} SET delta = '" . $block_deltas[$block->delta] . "' WHERE bid = " . $block->bid);
      }
      else {

        //removing the block which does not exist anymore
        $ret[] = update_sql("DELETE FROM {blocks} WHERE bid = " . $block->bid);
      }
    }
  }
  return $ret;
}