name); } } /** * Implementation of hook_schema(). */ function print_mail_schema() { $schema['print_mail_node_conf'] = array( 'fields' => array( 'nid' => array( 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, ), 'link' => array( 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 1, 'size' => 'tiny', ), 'comments' => array( 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 1, 'size' => 'tiny', ), 'url_list' => array( 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 1, 'size' => 'tiny', ), ), 'primary key' => array('nid'), ); $schema['print_mail_page_counter'] = array( 'fields' => array( 'path' => array( 'type' => 'varchar', 'length' => 128, 'not null' => TRUE, ), 'totalcount' => array( 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, 'size' => 'big', ), 'timestamp' => array( 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, ), 'sentcount' => array( 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, 'size' => 'big', ), 'sent_timestamp' => array( 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, ), ), 'primary key' => array('path'), ); return $schema; } /** * Update to version 6.x-1.0 */ function print_mail_update_6000() { global $conf; $ret = array(); if (isset($conf['print_mail_settings'])) { $print_mail_settings = variable_get('print_mail_settings', ''); variable_set('print_mail_link_pos', array('link' => ($print_html_settings['show_link'] ? 'link' : 0) )); variable_set('print_mail_show_link', max(1, $print_mail_settings['show_link'])); variable_set('print_mail_node_link_visibility', $print_mail_settings['node_link_visibility']); variable_set('print_mail_node_link_pages', $print_mail_settings['node_link_pages']); variable_set('print_mail_link_class', $print_mail_settings['link_class']); variable_set('print_mail_sys_link_visibility', $print_mail_settings['sys_link_visibility']); variable_set('print_mail_sys_link_pages', $print_mail_settings['sys_link_pages']); variable_set('print_mail_book_link', $print_mail_settings['book_link']); variable_set('print_mail_teaser_default', $print_mail_settings['teaser_default']); variable_set('print_mail_teaser_choice', $print_mail_settings['teaser_choice']); variable_del('print_mail_settings'); } return $ret; } /** * Update to version 6.x-1.1 */ function print_mail_update_6001() { $schema['print_mail_node_conf'] = array( 'fields' => array( 'nid' => array( 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, ), 'link' => array( 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => '1', 'size' => 'tiny', ), 'comments' => array( 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => '1', 'size' => 'tiny', ), 'url_list' => array( 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => '1', 'size' => 'tiny', ), ), 'primary key' => array('nid'), ); $schema['print_mail_page_counter'] = array( 'fields' => array( 'path' => array( 'type' => 'varchar', 'length' => 128, 'not null' => TRUE, ), 'totalcount' => array( 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, 'size' => 'big', ), 'timestamp' => array( 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, ), 'sentcount' => array( 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, 'size' => 'big', ), 'sent_timestamp' => array( 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, ), ), 'primary key' => array('path'), ); $ret = array(); db_create_table($ret, 'print_mail_node_conf', $schema['print_mail_node_conf']); db_create_table($ret, 'print_mail_page_counter', $schema['print_mail_page_counter']); return $ret; } /** * Update to version 6.x-1.2 */ function print_mail_update_6003() { // Delete custom text strings set to the default $ret = array(); $vars = array( 'print_mail_link_text' => 'Send by email', 'print_mail_text_subject' => '!user has sent you a message from !site', 'print_mail_text_message' => 'Message from sender', 'print_mail_text_content' => '', 'print_mail_text_confirmation' => 'Thank you for spreading the word about !site.', ); $t = get_t(); foreach ($vars as $name => $default) { if (variable_get($name, '') == $t($default)) { variable_del($name); } } menu_rebuild(); return $ret; } /** * Update to version 6.x-1.8 */ function print_mail_update_6004() { // add new 'access send by email' permission to any role which has 'access print' $ret = array(); $dbret = db_query('SELECT * FROM {permission}'); while ($role = db_fetch_object($dbret)) { if ((strpos($role->perm, 'access print') !== FALSE)) { $role->perm = db_escape_string('access send by email, '. $role->perm); $ret[] = update_sql("UPDATE {permission} SET perm = '$role->perm' WHERE rid = $role->rid"); } } return $ret; } /** * Update to version 6.x-1.11 */ function print_mail_update_6005() { $ret = array(); // BLOCK_CACHE_GLOBAL -> 8 $ret[] = update_sql("UPDATE {blocks} SET cache = 8 WHERE module = 'print_mail' AND delta = '0'"); return $ret; } /** * Update to version 6.x-1.11 */ function print_mail_update_6006() { $ret = array(); // Module weight $ret[] = update_sql("UPDATE {system} SET weight = 1 WHERE name = 'print_mail'"); return $ret; } /** * Update to version 6.x-1.11 */ function print_mail_update_6007() { $ret = array(); foreach (node_get_types() as $key => $value) { $print_mail_display = variable_get('print_mail_display_'. $value->type, 1); $print_mail_display_comment = variable_get('print_mail_display_comment_'. $value->type, 0); $print_mail_display_urllist = variable_get('print_mail_display_urllist_'. $value->type, 1); $ret[] = update_sql("UPDATE {print_mail_node_conf} SET link = (link AND $print_mail_display), comments = (comments OR $print_mail_display_comment), url_list = (url_list AND $print_mail_display_urllist) WHERE nid IN (SELECT nid FROM {node} WHERE type = '$value->type');"); } return $ret; } /** * Update permissions to new spellings */ function print_mail_update_6100() { $ret = array(); $result = db_query("SELECT rid, perm FROM {permission} ORDER BY rid"); while ($role = db_fetch_object($result)) { $renamed_permission = str_replace('access send to friend', 'access send by email', $role->perm); $renamed_permission = str_replace('send unlimited e-mails', 'send unlimited emails', $renamed_permission); $renamed_permission = db_escape_string($renamed_permission); if ($renamed_permission != $role->perm) { $ret[] = update_sql("UPDATE {permission} SET perm = '$renamed_permission' WHERE rid = $role->rid"); } } return $ret; } /** * Enable block and help area links */ function print_mail_update_6118() { $ret = array(); $link_pos = variable_get('print_mail_link_pos', array('link' => 'link', 'block' => 'block', 'help' => 'help')); $link_pos['block'] = 'block'; $link_pos['help'] = 'help'; variable_set('print_mail_link_pos', $link_pos); return $ret; }