Mercurial > defr > drupal > ad
comparison channel/ad_channel.install @ 8:32c1a7d9e1fa ad tip
maj module ad en 2.1
| author | sly |
|---|---|
| date | Fri, 11 Sep 2009 11:10:20 +0000 |
| parents | 6aeff3329e01 |
| children |
comparison
equal
deleted
inserted
replaced
| 7:6aeff3329e01 | 8:32c1a7d9e1fa |
|---|---|
| 1 <?php | 1 <?php |
| 2 // $Id: ad_channel.install,v 1.1.4.8 2009/07/11 16:39:21 jeremy Exp $ | 2 // $Id: ad_channel.install,v 1.1.4.9 2009/07/28 17:39:35 jeremy Exp $ |
| 3 | 3 |
| 4 /** | 4 /** |
| 5 * | 5 * |
| 6 * Ad channel database schema. | 6 * Ad channel database schema. |
| 7 * Copyright (c) 2008-2009 Jeremy Andrews <jeremy@tag1consulting.com>. | 7 * Copyright (c) 2008-2009 Jeremy Andrews <jeremy@tag1consulting.com>. |
| 8 */ | 8 */ |
| 9 | 9 |
| 10 /** | 10 /** |
| 11 * Create the ad_channel schema. | 11 * Create the ad_channel schema. |
| 12 */ | 12 */ |
| 13 function ad_channel_schema() { | |
| 14 $schema['ad_channel'] = array( | |
| 15 'description' => 'The ad_channel table allows advertisements to be organized into channels against which rules can be applied.', | |
| 16 'fields' => array( | |
| 17 'chid' => array( | |
| 18 'type' => 'serial', | |
| 19 'not null' => TRUE, | |
| 20 'unsigned' => TRUE, | |
| 21 'description' => 'Unique channel ID.', | |
| 22 ), | |
| 23 'name' => array( | |
| 24 'type' => 'varchar', | |
| 25 'length' => 64, | |
| 26 'not null' => TRUE, | |
| 27 'default' => '', | |
| 28 'description' => 'The name of the channel.', | |
| 29 ), | |
| 30 'description' => array( | |
| 31 'type' => 'text', | |
| 32 'size' => 'big', | |
| 33 'not null' => FALSE, | |
| 34 'description' => 'A description of the channel.', | |
| 35 ), | |
| 36 'conid' => array( | |
| 37 'type' => 'int', | |
| 38 'not null' => TRUE, | |
| 39 'unsigned' => TRUE, | |
| 40 'default' => 0, | |
| 41 'description' => 'ID of the container the channel is in.', | |
| 42 ), | |
| 43 'weight' => array( | |
| 44 'type' => 'int', | |
| 45 'size' => 'medium', | |
| 46 'not null' => TRUE, | |
| 47 'unsigned' => TRUE, | |
| 48 'default' => 0, | |
| 49 'description' => 'Used when displaying channels to admins, heavier weights sink to the bottom.', | |
| 50 ), | |
| 51 'display' => array( | |
| 52 'type' => 'int', | |
| 53 'size' => 'tiny', | |
| 54 'not null' => TRUE, | |
| 55 'unsigned' => TRUE, | |
| 56 'default' => 0, | |
| 57 ), | |
| 58 'no_channel_percent' => array( | |
| 59 'type' => 'int', | |
| 60 'size' => 'medium', | |
| 61 'not null' => TRUE, | |
| 62 'unsigned' => TRUE, | |
| 63 'default' => 0, | |
| 64 ), | |
| 65 'inventory' => array( | |
| 66 'type' => 'int', | |
| 67 'not null' => TRUE, | |
| 68 'unsigned' => TRUE, | |
| 69 'default' => 0, | |
| 70 ), | |
| 71 'urls' => array( | |
| 72 'type' => 'text', | |
| 73 ), | |
| 74 'groups' => array( | |
| 75 'type' => 'text', | |
| 76 ), | |
| 77 ), | |
| 78 'primary key' => array('chid'), | |
| 79 'indexes' => array( | |
| 80 'name' => array('name'), | |
| 81 ), | |
| 82 ); | |
| 83 $schema['ad_channel_remnant'] = array( | |
| 84 'fields' => array( | |
| 85 'aid' => array( | |
| 86 'type' => 'int', | |
| 87 'not null' => TRUE, | |
| 88 'unsigned' => TRUE, | |
| 89 'default' => 0, | |
| 90 ), | |
| 91 'remnant' => array( | |
| 92 'type' => 'int', | |
| 93 'size' => 'tiny', | |
| 94 'not null' => TRUE, | |
| 95 'unsigned' => TRUE, | |
| 96 'default' => 0, | |
| 97 ), | |
| 98 ), | |
| 99 'primary key' => array('aid', 'remnant'), | |
| 100 ); | |
| 101 $schema['ad_channel_container'] = array( | |
| 102 'description' => 'The ad_channel_container table stores channel container definitions.', | |
| 103 'fields' => array( | |
| 104 'conid' => array( | |
| 105 'type' => 'serial', | |
| 106 'not null' => TRUE, | |
| 107 'unsigned' => TRUE, | |
| 108 'description' => 'Unique container ID.', | |
| 109 ), | |
| 110 'name' => array( | |
| 111 'type' => 'varchar', | |
| 112 'length' => 64, | |
| 113 'not null' => TRUE, | |
| 114 'default' => '', | |
| 115 'description' => 'The name of the container.', | |
| 116 ), | |
| 117 'description' => array( | |
| 118 'type' => 'text', | |
| 119 'size' => 'big', | |
| 120 'not null' => FALSE, | |
| 121 'description' => 'A description of the container.', | |
| 122 ), | |
| 123 'weight' => array( | |
| 124 'type' => 'int', | |
| 125 'size' => 'medium', | |
| 126 'not null' => TRUE, | |
| 127 'unsigned' => TRUE, | |
| 128 'default' => 0, | |
| 129 'description' => 'Used when displaying channels to admins, heavier weights sink to the bottom.', | |
| 130 ), | |
| 131 ), | |
| 132 'primary key' => array('conid'), | |
| 133 ); | |
| 134 $schema['ad_channel_node'] = array( | |
| 135 'description' => 'The ad_channel_node table stores per node channel information.', | |
| 136 'fields' => array( | |
| 137 'chid' => array( | |
| 138 'type' => 'int', | |
| 139 'not null' => TRUE, | |
| 140 'unsigned' => TRUE, | |
| 141 'default' => 0, | |
| 142 ), | |
| 143 'nid' => array( | |
| 144 'type' => 'int', | |
| 145 'not null' => TRUE, | |
| 146 'unsigned' => TRUE, | |
| 147 'default' => 0, | |
| 148 ), | |
| 149 ), | |
| 150 'primary key' => array('chid', 'nid'), | |
| 151 'indexes' => array( | |
| 152 'nid_chid' => array('nid', 'chid'), | |
| 153 ), | |
| 154 ); | |
| 155 $schema['ad_priority'] = array( | |
| 156 'fields' => array( | |
| 157 'aid' => array( | |
| 158 'type' => 'int', | |
| 159 'not null' => TRUE, | |
| 160 'unsigned' => TRUE, | |
| 161 'default' => 0, | |
| 162 ), | |
| 163 'priority' => array( | |
| 164 'type' => 'int', | |
| 165 'size' => 'tiny', | |
| 166 'not null' => TRUE, | |
| 167 'unsigned' => TRUE, | |
| 168 'default' => 0, | |
| 169 ), | |
| 170 ), | |
| 171 'primary key' => array('aid', 'priority'), | |
| 172 ); | |
| 173 return $schema; | |
| 174 } | |
| 175 | |
| 13 function ad_channel_install() { | 176 function ad_channel_install() { |
| 14 switch ($GLOBALS['db_type']) { | 177 // Create tables |
| 15 case 'mysql': | 178 drupal_install_schema('ad_channel'); |
| 16 case 'mysqli': | |
| 17 default: | |
| 18 // TODO: PostgreSQL support. Patches welcome. | |
| 19 /* The ad_channel table stores channel definitions and rules. | |
| 20 */ | |
| 21 db_query("CREATE TABLE {ad_channel} ( | |
| 22 chid INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, | |
| 23 name VARCHAR(64) NOT NULL DEFAULT '', | |
| 24 description LONGTEXT NULL, | |
| 25 conid INT(11) UNSIGNED NOT NULL DEFAULT '0', | |
| 26 weight TINYINT(4) SIGNED NOT NULL DEFAULT '0', | |
| 27 display TINYINT(1) UNSIGNED NOT NULL DEFAULT '0', | |
| 28 no_channel_percent INT(3) NOT NULL DEFAULT '0', | |
| 29 urls TEXT NULL, | |
| 30 groups TEXT NULL, | |
| 31 PRIMARY KEY (chid), | |
| 32 KEY (name) | |
| 33 );"); | |
| 34 /* The ad_channel_container table stores channel container definitions. | |
| 35 */ | |
| 36 db_query("CREATE TABLE {ad_channel_container} ( | |
| 37 conid INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, | |
| 38 name VARCHAR(64) NOT NULL DEFAULT '', | |
| 39 description LONGTEXT NULL, | |
| 40 weight TINYINT(4) SIGNED NOT NULL DEFAULT '0', | |
| 41 PRIMARY KEY (conid) | |
| 42 );"); | |
| 43 /* The ad_channel_node table stores per node channel information. | |
| 44 */ | |
| 45 db_query("CREATE TABLE {ad_channel_node} ( | |
| 46 chid INT(11) UNSIGNED NOT NULL DEFAULT '0', | |
| 47 nid INT(11) UNSIGNED NOT NULL DEFAULT '0', | |
| 48 PRIMARY KEY (chid, nid), | |
| 49 KEY (nid, chid) | |
| 50 );"); | |
| 51 /* The ad_channel_node table stores per node channel information. | |
| 52 */ | |
| 53 db_query("CREATE TABLE {ad_priority} ( | |
| 54 aid INT(11) UNSIGNED NOT NULL DEFAULT '0', | |
| 55 priority TINYINT UNSIGNED NOT NULL DEFAULT '0', | |
| 56 PRIMARY KEY (aid, priority) | |
| 57 );"); | |
| 58 } | |
| 59 } | 179 } |
| 60 | 180 |
| 61 /** | 181 /** |
| 62 * Completely uninstall the ad channel module. | 182 * Completely uninstall the ad channel module. |
| 63 */ | 183 */ |
| 64 function ad_channel_uninstall() { | 184 function ad_channel_uninstall() { |
| 65 switch ($GLOBALS['db_type']) { | 185 // Drop tables |
| 66 case 'mysql': | 186 drupal_uninstall_schema('ad_channel'); |
| 67 case 'mysqli': | |
| 68 default: | |
| 69 // TODO: PostgreSQL support. Patches welcome. | |
| 70 db_query('DROP TABLE {ad_channel}'); | |
| 71 db_query('DROP TABLE {ad_channel_container}'); | |
| 72 db_query('DROP TABLE {ad_channel_node}'); | |
| 73 } | |
| 74 } | 187 } |
| 75 | 188 |
| 76 /** | 189 /** |
| 77 * Populate the ad_priority table. | 190 * Populate the ad_priority table. |
| 78 */ | 191 */ |
