function gallery_assist_update_3 in Gallery Assist 6
Implementation of hook_update_N().
File
- ./
gallery_assist.install, line 598 - Install, update and uninstall functions and DB tables for the Gallery Assist module.
Code
function gallery_assist_update_3() {
$ret = array();
// DB Operations.
$result1 = db_query("SELECT gref, shadow, data from {gallery_assist}");
$my_data = array();
while ($r = db_fetch_object($result1)) {
$my_data[$r->gref] = $r;
$data = unserialize($r->data);
$data['shadow'] = $r->shadow;
$my_data[$r->gref]->show_in_homepage_block = $data['show_in_homepage_block'];
unset($data['show_in_homepage_block']);
unset($my_data[$r->gref]->shadow);
$my_data[$r->gref]->data = serialize($data);
}
$spec = array(
'show_in_homepage_block' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'description' => 'Marker that help to filter which galleries will be showed in the block Galleries.',
),
'cover' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'description' => 'Marker that help to filter which galleries will be showed in the block Galleries.',
),
);
db_add_field($ret, 'gallery_assist', 'show_in_homepage_block', $spec['show_in_homepage_block']);
if (count($my_data) > 1) {
foreach ($my_data as $k) {
$show_in_homepage_block = isset($k->show_in_homepage_block) && $k->show_in_homepage_block ? 1 : 0;
$data = $k->data;
$gref = $k->gref;
update_sql("UPDATE {gallery_assist} set show_in_homepage_block = {$show_in_homepage_block}, data = '{$data}' WHERE gref = {$gref}");
$type = 'Update 2';
$message = 'Table <strong>%table_name</strong> was sucessfull altered.</br>';
$variables = array(
'%table_name' => 'gallery_assist',
'@gid' => $k->gref,
'@show_in_homepage_block' => $k->show_in_homepage_block,
);
watchdog($type, $message, $variables);
}
}
drupal_set_message('<p><strong>The feature "cover" is new. At now you or the registered users of your homepage (with Gallery Assist permissions) can choose a image as cover for each gallery.</strong></p>');
db_drop_field($ret, 'gallery_assist', 'shadow');
// Add the cover column..
//db_query("ALTER TABLE {gallery_assist_item} ADD cover INT UNSIGNED NOT NULL DEFAULT %d AFTER comments", 0);
// Set a cover for each existing gallery.
db_add_field($ret, 'gallery_assist_item', 'cover', $spec['cover']);
// Set a image as cover in each existing gallery.
$q = "SELECT pid from {gallery_assist_item} GROUP BY gref";
$result2 = db_query($q);
while ($r2 = db_fetch_object($result2)) {
update_sql("UPDATE {gallery_assist_item} set cover = 1 WHERE pid = " . $r2->pid);
}
// Build or update settings variables.
$new_key = array(
'file_size' => '',
'user_size' => '',
'resolution' => 0,
'extensions' => 'jpg jpeg gif png',
);
$types = node_get_types();
$check['default'] = variable_get('gallery_assist_default_data', FALSE);
$check['default']['hide_in_teaser'] = FALSE;
$check['default']['show_download_link'] = FALSE;
$check['default']['item_effect'] = FALSE;
$check['default']['max_items'] = FALSE;
$check['default']['max_form_items'] = 6;
$check['default']['ga_public_status'] = 2;
$check['default']['admin_public_status'] = FALSE;
$check['default']['validate_upload'] = $new_key;
$check['default']['pager_t_height'] = 20;
$check['default']['pager_t_active_height'] = 25;
// User permissions.
$check['default']['extra_layout_settings_allowed'] = 0;
$check['default']['common_settings_allowed'] = 0;
$check['default']['hide_teaser_container_allowed'] = 0;
$check['default']['display_download_link_allowed'] = 0;
$check['default']['container_format_allowed'] = 0;
$check['default']['gallery_container_weight_allowed'] = 0;
$check['default']['show_in_homepage_block_allowed'] = 0;
$check['default']['gallery_public_status_allowed'] = 0;
$check['default']['show_titles_allowed'] = 0;
$check['default']['show_in_userprofile_allowed'] = 0;
$check['default']['gallery_items_shadow_allowed'] = 0;
variable_set('gallery_assist_' . $v->type, $check['default']);
foreach ($types as $v) {
if (variable_get('gallery_assist_' . $v->type, 0) == 1) {
$check[$v->type] = variable_get('gallery_assist_' . $v->type . '_data', FALSE);
$check[$v->type]['hide_in_teaser'] = $check['default']['hide_in_teaser'];
$check[$v->type]['show_download_link'] = $check['default']['show_download_link'];
$check[$v->type]['item_effect'] = $check['default']['item_effect'];
$check[$v->type]['max_items'] = $check['default']['max_items'];
$check[$v->type]['max_form_items'] = $check['default']['max_form_items'];
$check[$v->type]['ga_public_status'] = $check['default']['ga_public_status'];
$check[$v->type]['admin_public_status'] = $check['default']['admin_public_status'];
$check[$v->type]['validate_upload'] = $new_key;
$check[$v->type]['pager_t_height'] = $check['default']['pager_t_height'];
$check[$v->type]['pager_t_active_height'] = $check['default']['pager_t_active_height'];
// User permissions.
$check[$v->type]['extra_layout_settings_allowed'] = 0;
$check[$v->type]['common_settings_allowed'] = 0;
$check[$v->type]['hide_teaser_container_allowed'] = 0;
$check[$v->type]['display_download_link_allowed'] = 0;
$check[$v->type]['container_format_allowed'] = 0;
$check[$v->type]['gallery_container_weight_allowed'] = 0;
$check[$v->type]['show_in_homepage_block_allowed'] = 0;
$check[$v->type]['gallery_public_status_allowed'] = 0;
$check[$v->type]['show_titles_allowed'] = 0;
$check[$v->type]['show_in_userprofile_allowed'] = 0;
$check[$v->type]['gallery_items_shadow_allowed'] = 0;
variable_set('gallery_assist_' . $v->type . '_data', $check[$v->type]);
}
}
$block_update = variable_get('gallery_assist_block_data', FALSE);
$block_update[2]['cover'] = 'DESC';
variable_set('gallery_assist_block_data', $block_update);
gallery_assist_clearthecache();
return $ret;
}