annotate sites/all/modules/quicktabs/quicktabs.install @ 9:830c812b520f

added smtp module
author root <root@paio.local>
date Mon, 28 Oct 2013 15:34:27 +0000
parents a75ead649730
children 134d4b2e75f6
rev   line source
danielebarchiesi@2 1 <?php
danielebarchiesi@2 2
danielebarchiesi@2 3 /**
danielebarchiesi@2 4 * @file
danielebarchiesi@2 5 * Install, update and uninstall functions for the quicktabs module.
danielebarchiesi@2 6 */
danielebarchiesi@2 7
danielebarchiesi@2 8 /**
danielebarchiesi@2 9 * Implements hook_schema().
danielebarchiesi@2 10 */
danielebarchiesi@2 11 function quicktabs_schema() {
danielebarchiesi@2 12 $schema['quicktabs'] = array(
danielebarchiesi@2 13 'description' => 'The quicktabs table.',
danielebarchiesi@2 14 'export' => array(
danielebarchiesi@2 15 'key' => 'machine_name',
danielebarchiesi@2 16 'identifier' => 'quicktabs',
danielebarchiesi@2 17 'default hook' => 'quicktabs_default_quicktabs',
danielebarchiesi@2 18 'api' => array(
danielebarchiesi@2 19 'owner' => 'quicktabs',
danielebarchiesi@2 20 'api' => 'quicktabs',
danielebarchiesi@2 21 'minimum_version' => 1,
danielebarchiesi@2 22 'current_version' => 1,
danielebarchiesi@2 23 ),
danielebarchiesi@2 24 'export callback' => 'quicktabs_export',
danielebarchiesi@2 25 ),
danielebarchiesi@2 26 'fields' => array(
danielebarchiesi@2 27 'machine_name' => array(
danielebarchiesi@2 28 'description' => 'The primary identifier for a qt block.',
danielebarchiesi@2 29 'type' => 'varchar',
danielebarchiesi@2 30 'length' => 255,
danielebarchiesi@2 31 'not null' => TRUE,
danielebarchiesi@2 32 ),
danielebarchiesi@2 33 'ajax' => array(
danielebarchiesi@2 34 'description' => 'Whether this is an ajax views block.',
danielebarchiesi@2 35 'type' => 'int',
danielebarchiesi@2 36 'unsigned' => TRUE,
danielebarchiesi@2 37 'not null' => TRUE,
danielebarchiesi@2 38 'default' => 0,
danielebarchiesi@2 39 ),
danielebarchiesi@2 40 'hide_empty_tabs' => array(
danielebarchiesi@2 41 'description' => 'Whether this tabset hides empty tabs.',
danielebarchiesi@2 42 'type' => 'int',
danielebarchiesi@2 43 'size' => 'tiny',
danielebarchiesi@2 44 'unsigned' => TRUE,
danielebarchiesi@2 45 'not null' => TRUE,
danielebarchiesi@2 46 'default' => 0,
danielebarchiesi@2 47 ),
danielebarchiesi@2 48 'default_tab' => array(
danielebarchiesi@2 49 'description' => 'Default tab.',
danielebarchiesi@2 50 'type' => 'int',
danielebarchiesi@2 51 'unsigned' => TRUE,
danielebarchiesi@2 52 'not null' => TRUE,
danielebarchiesi@2 53 'default' => 0,
danielebarchiesi@2 54 ),
danielebarchiesi@2 55 'title' => array(
danielebarchiesi@2 56 'description' => 'The title of this quicktabs block.',
danielebarchiesi@2 57 'type' => 'varchar',
danielebarchiesi@2 58 'length' => 255,
danielebarchiesi@2 59 'not null' => TRUE,
danielebarchiesi@2 60 ),
danielebarchiesi@2 61 'tabs' => array(
danielebarchiesi@2 62 'description' => 'A serialized array of the contents of this qt block.',
danielebarchiesi@2 63 'type' => 'text',
danielebarchiesi@2 64 'size' => 'medium',
danielebarchiesi@2 65 'not null' => TRUE,
danielebarchiesi@2 66 'serialize' => TRUE,
danielebarchiesi@2 67 ),
danielebarchiesi@2 68 'renderer' => array(
danielebarchiesi@2 69 'description' => 'The rendering mechanism.',
danielebarchiesi@2 70 'type' => 'varchar',
danielebarchiesi@2 71 'length' => 255,
danielebarchiesi@2 72 'not null' => TRUE,
danielebarchiesi@2 73 ),
danielebarchiesi@2 74 'style' => array(
danielebarchiesi@2 75 'description' => 'The tab style.',
danielebarchiesi@2 76 'type' => 'varchar',
danielebarchiesi@2 77 'length' => 255,
danielebarchiesi@2 78 'not null' => TRUE,
danielebarchiesi@2 79 ),
danielebarchiesi@2 80 'options' => array(
danielebarchiesi@2 81 'description' => 'A serialized array of the options for this qt instance.',
danielebarchiesi@2 82 'type' => 'text',
danielebarchiesi@2 83 'size' => 'medium',
danielebarchiesi@2 84 'not null' => FALSE,
danielebarchiesi@2 85 'serialize' => TRUE,
danielebarchiesi@2 86 ),
danielebarchiesi@2 87 ),
danielebarchiesi@2 88 'primary key' => array('machine_name'),
danielebarchiesi@2 89 );
danielebarchiesi@2 90 return $schema;
danielebarchiesi@2 91 }
danielebarchiesi@2 92
danielebarchiesi@2 93
danielebarchiesi@2 94 /**
danielebarchiesi@2 95 * Update to 7.x-3.x
danielebarchiesi@2 96 */
danielebarchiesi@2 97 function quicktabs_update_7300() {
danielebarchiesi@2 98
danielebarchiesi@2 99 if (!db_field_exists('quicktabs', 'machine_name')) {
danielebarchiesi@2 100 // Pull all existing quicktabs, and then delete existing quicktabs. We will reinsert.
danielebarchiesi@2 101 $result = db_query("SELECT * FROM {quicktabs}");
danielebarchiesi@2 102 if (!db_query("DELETE FROM {quicktabs}")) {
danielebarchiesi@2 103 throw new DrupalUpdateException(t('Could not complete the update.'));
danielebarchiesi@2 104 }
danielebarchiesi@2 105
danielebarchiesi@2 106 db_drop_field('quicktabs', 'qtid');
danielebarchiesi@2 107 $name_field = array(
danielebarchiesi@2 108 'description' => 'The primary identifier for a qt block.',
danielebarchiesi@2 109 'type' => 'varchar',
danielebarchiesi@2 110 'length' => 255,
danielebarchiesi@2 111 'not null' => TRUE,
danielebarchiesi@2 112 );
danielebarchiesi@2 113 db_add_field('quicktabs', 'machine_name', $name_field);
danielebarchiesi@2 114 db_add_primary_key('quicktabs', array('machine_name'));
danielebarchiesi@2 115
danielebarchiesi@2 116 $output = $used = array();
danielebarchiesi@2 117 foreach ($result as $qt) {
danielebarchiesi@2 118 $row = (array)$qt;
danielebarchiesi@2 119 // Generate a machine-readable string
danielebarchiesi@2 120 $qt_name = strtolower(preg_replace('/[^a-zA-Z0-9_]+/', '_', $row['title']));
danielebarchiesi@2 121 $i = 0;
danielebarchiesi@2 122 while (in_array($i == 0 ? $qt_name : "{$qt_name}_{$i}", $used)) {
danielebarchiesi@2 123 $i++;
danielebarchiesi@2 124 }
danielebarchiesi@2 125 $row['machine_name'] = $used[] = $i == 0 ? $qt_name : "{$qt_name}_{$i}";
danielebarchiesi@2 126 unset($row['qtid']);
danielebarchiesi@2 127 unset($row['style']);
danielebarchiesi@2 128 $row['renderer'] = 'tabs';
danielebarchiesi@2 129 $placeholders = implode(', ', array_keys($row));
danielebarchiesi@2 130 $values = array();
danielebarchiesi@2 131 // Ugh - really?? Somebody tell me there's a better way to do this :-/
danielebarchiesi@2 132 foreach ($row as $name => $value) {
danielebarchiesi@2 133 $values[':' . $name] = $value;
danielebarchiesi@2 134 }
danielebarchiesi@2 135 $tokens = implode(', ', array_keys($values));
danielebarchiesi@2 136 db_query("INSERT INTO {quicktabs} ($placeholders) VALUES($tokens)", $values);
danielebarchiesi@2 137
danielebarchiesi@2 138 $output[] = "Converted quicktab {$row['machine_name']}.";
danielebarchiesi@2 139 }
danielebarchiesi@2 140 }
danielebarchiesi@2 141
danielebarchiesi@2 142 // Add the renderer field
danielebarchiesi@2 143 $renderer_field = array(
danielebarchiesi@2 144 'description' => 'The rendering mechanism.',
danielebarchiesi@2 145 'type' => 'varchar',
danielebarchiesi@2 146 'length' => 255,
danielebarchiesi@2 147 'not null' => TRUE,
danielebarchiesi@2 148 'default' => 'quicktabs',
danielebarchiesi@2 149 );
danielebarchiesi@2 150 db_add_field('quicktabs', 'renderer', $renderer_field);
danielebarchiesi@2 151 $output[] = "Added the renderer field";
danielebarchiesi@2 152
danielebarchiesi@2 153
danielebarchiesi@2 154 return implode('<br />', $output);
danielebarchiesi@2 155 }
danielebarchiesi@2 156
danielebarchiesi@2 157 /**
danielebarchiesi@2 158 * Add the options field which will hold renderer-specific options.
danielebarchiesi@2 159 */
danielebarchiesi@2 160 function quicktabs_update_7301() {
danielebarchiesi@2 161 $options_field = array(
danielebarchiesi@2 162 'description' => 'A serialized array of the options for this qt instance.',
danielebarchiesi@2 163 'type' => 'text',
danielebarchiesi@2 164 'size' => 'medium',
danielebarchiesi@2 165 'not null' => FALSE,
danielebarchiesi@2 166 'serialize' => TRUE,
danielebarchiesi@2 167 );
danielebarchiesi@2 168 db_add_field('quicktabs', 'options', $options_field);
danielebarchiesi@2 169 return "Added the options field";
danielebarchiesi@2 170 }
danielebarchiesi@2 171
danielebarchiesi@2 172 /**
danielebarchiesi@2 173 * Rebuild the registry because of changed method name.
danielebarchiesi@2 174 */
danielebarchiesi@2 175 function quicktabs_update_7302() {
danielebarchiesi@2 176 registry_rebuild();
danielebarchiesi@2 177 }
danielebarchiesi@6 178
danielebarchiesi@6 179 /**
danielebarchiesi@6 180 * Add support for view modes.
danielebarchiesi@6 181 */
danielebarchiesi@6 182 function quicktabs_update_7303() {
danielebarchiesi@6 183 foreach (quicktabs_load_multiple() as $quicktab) {
danielebarchiesi@6 184 $updated = FALSE;
danielebarchiesi@6 185
danielebarchiesi@6 186 foreach ($quicktab->tabs as &$tab) {
danielebarchiesi@6 187 if ($tab['type'] === 'node') {
danielebarchiesi@6 188 $tab['view_mode'] = !empty($tab['teaser']) ? 'teaser' : 'full';
danielebarchiesi@6 189 unset($tab['teaser']);
danielebarchiesi@6 190 $updated = TRUE;
danielebarchiesi@6 191 }
danielebarchiesi@6 192 }
danielebarchiesi@6 193
danielebarchiesi@6 194 if (!$updated) {
danielebarchiesi@6 195 continue;
danielebarchiesi@6 196 }
danielebarchiesi@6 197
danielebarchiesi@6 198 if (empty($quicktab->in_code_only)) {
danielebarchiesi@6 199 $result = drupal_write_record('quicktabs', $quicktab, 'machine_name');
danielebarchiesi@6 200 }
danielebarchiesi@6 201 else {
danielebarchiesi@6 202 $result = drupal_write_record('quicktabs', $quicktab);
danielebarchiesi@6 203 }
danielebarchiesi@6 204 if (!$result) {
danielebarchiesi@6 205 throw new DrupalUpdateException(t('Could not complete the update.'));
danielebarchiesi@6 206 }
danielebarchiesi@6 207 }
danielebarchiesi@6 208 return 'Added support for view modes.';
danielebarchiesi@6 209 }