/[drupal]/contributions/modules/audio/audio.install
ViewVC logotype

Diff of /contributions/modules/audio/audio.install

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.19 by drewish, Wed May 14 03:57:00 2008 UTC revision 1.20 by drewish, Sun May 25 17:21:26 2008 UTC
# Line 2  Line 2 
2  // $Id: audio.install,v 1.18 2007/11/02 05:56:00 drewish Exp $  // $Id: audio.install,v 1.18 2007/11/02 05:56:00 drewish Exp $
3    
4  /**  /**
5   * Install the initial schema.   * Implementation of hook_install().
6   */   */
7  function audio_install() {  function audio_install() {
8    switch ($GLOBALS['db_type']) {    drupal_install_schema('audio');
     case 'mysql':  
     case 'mysqli':  
       db_query("  
         CREATE TABLE {audio} (  
           `vid` int(10) unsigned NOT NULL default '0',  
           `nid` int(10) unsigned NOT NULL default '0',  
           `title_format` varchar(128) default '',  
           `play_count` int(10) unsigned NOT NULL default '0',  
           `download_count` int(10) unsigned NOT NULL default '0',  
           `downloadable` tinyint(1) NOT NULL default '1',  
           `file_format` varchar(10) NOT NULL default '',  
           `file_mime` varchar(255) NOT NULL default '',  
           `file_name` varchar(255) NOT NULL default '',  
           `file_path` varchar(255) NOT NULL default '',  
           `file_size` int(10) unsigned NOT NULL default '0',  
           `sample_rate` int(10) unsigned NOT NULL default '0',  
           `channel_mode` varchar(10) NOT NULL default '',  
           `bitrate` float unsigned NOT NULL default '0',  
           `bitrate_mode` varchar(4) NOT NULL default '',  
           `playtime` varchar(10) NOT NULL default '',  
           PRIMARY KEY  (`vid`)  
         ) /*!40100 DEFAULT CHARACTER SET utf8 */  
       ");  
       db_query("  
         CREATE TABLE  {audio_metadata} (  
           `vid` int(10) unsigned NOT NULL default '0',  
           `tag` varchar(45) NOT NULL default '',  
           `value` varchar(255) NOT NULL default '',  
           `clean` varchar(255) NOT NULL default '',  
           PRIMARY KEY  (`vid`,`tag`,`value`),  
           KEY `audio_metadata_tags` (`clean`)  
         ) /*!40100 DEFAULT CHARACTER SET utf8 */  
       ");  
       break;  
   
     case 'pgsql':  
       db_query("  
         CREATE TABLE {audio} (  
             vid integer NOT NULL default '0'  
                 CHECK (vid >= 0),  
             nid integer NOT NULL default '0'  
                 CHECK (nid >= 0),  
             title_format varchar(128) default '',  
             play_count integer NOT NULL default '0'  
                 CHECK (play_count >= 0),  
             download_count integer NOT NULL default '0'  
                 CHECK (download_count >= 0),  
             downloadable smallint NOT NULL default '1',  
             file_format varchar(10) NOT NULL default '',  
             file_mime varchar(255) NOT NULL default '',  
             file_name varchar(255) NOT NULL default '',  
             file_path varchar(255) NOT NULL default '',  
             file_size integer NOT NULL default '0'  
                 CHECK (filesize >= 0),  
             sample_rate integer NOT NULL default '0'  
                 CHECK (sample_rate >= 0),  
             channel_mode varchar(10) NOT NULL default '',  
             bitrate float NOT NULL default '0'  
                 CHECK (bitrate >= 0),  
             bitrate_mode varchar(4) NOT NULL default '',  
             playtime varchar(10) NOT NULL default '',  
             PRIMARY KEY  (vid)  
         );  
       ");  
       db_query("  
         CREATE TABLE {audio_metadata} (  
             vid integer NOT NULL default '0'  
                 CHECK (vid >= 0),  
             tag varchar(45) NOT NULL default '',  
             value varchar(255) NOT NULL default '',  
             clean varchar(255) NOT NULL default '',  
             PRIMARY KEY  (vid, tag, value)  
         );  
       ");  
       break;  
   }  
   
9    _audio_add_default_perms();    _audio_add_default_perms();
10  }  }
11    
# Line 90  function audio_install() { Line 13  function audio_install() {
13   * Implementation of hook_uninstall().   * Implementation of hook_uninstall().
14   */   */
15  function audio_uninstall() {  function audio_uninstall() {
16    db_query('DROP TABLE {audio}');    drupal_uninstall_schema('audio');
   db_query('DROP TABLE {audio_file}');  
   db_query('DROP TABLE {audio_metadata}');  
   
17    variable_del('audio_allowed_extensions');    variable_del('audio_allowed_extensions');
18    variable_del('audio_block_random_n');    variable_del('audio_block_random_n');
19    variable_del('audio_default_downloadable');    variable_del('audio_default_downloadable');
# Line 105  function audio_uninstall() { Line 25  function audio_uninstall() {
25    variable_del('audio_teaser_format');    variable_del('audio_teaser_format');
26  }  }
27    
28    function audio_schema() {
29      $schema['audio'] = array(
30        'description' => t('Main audio table.'),
31        'fields' => array(
32          'vid' => array(
33            'type' => 'int',
34            'size' => 'medium',
35            'not null' => TRUE,
36          ),
37          'nid' => array(
38            'type' => 'int',
39            'size' => 'medium',
40            'not null' => TRUE,
41          ),
42          'title_format' => array(
43            'type' => 'varchar',
44            'length' => 128,
45            'default' => '',
46          ),
47          'play_count' => array(
48            'type' => 'int',
49            'size' => 'medium',
50            'not null' => TRUE,
51            'default' => 0,
52          ),
53          'download_count' => array(
54            'type' => 'int',
55            'size' => 'medium',
56            'not null' => TRUE,
57            'default' => 0,
58          ),
59          'downloadable' => array(
60            'type' => 'int',
61            'size' => 'tiny',
62            'not null' => TRUE,
63            'default' => 1,
64          ),
65          'file_format' => array(
66            'type' => 'varchar',
67            'length' => 10,
68            'not null' => TRUE,
69            'default' => '',
70          ),
71          'file_mime' => array(
72            'type' => 'varchar',
73            'length' => 255,
74            'not null' => TRUE,
75            'default' => '',
76          ),
77          'file_name' => array(
78            'type' => 'varchar',
79            'length' => 255,
80            'not null' => TRUE,
81            'default' => '',
82          ),
83          'file_path' => array(
84            'type' => 'varchar',
85            'length' => 255,
86            'not null' => TRUE,
87            'default' => '',
88          ),
89          'file_size' => array(
90            'type' => 'int',
91            'size' => 'medium',
92            'not null' => TRUE,
93            'default' => 0,
94          ),
95          'sample_rate' => array(
96            'type' => 'int',
97            'size' => 'medium',
98            'not null' => TRUE,
99            'default' => 0,
100          ),
101          'channel_mode' => array(
102            'type' => 'varchar',
103            'length' => 10,
104            'not null' => TRUE,
105            'default' => '',
106          ),
107          'bitrate' => array(
108            'type' => 'float',
109            'size' => 'medium',
110            'not null' => TRUE,
111            'default' => 0,
112          ),
113          'bitrate_mode' => array(
114            'type' => 'varchar',
115            'length' => 4,
116            'not null' => TRUE,
117            'default' => '',
118          ),
119          'playtime' => array(
120            'type' => 'varchar',
121            'length' => 10,
122            'not null' => TRUE,
123            'default' => '',
124          ),
125        ),
126        'primary key' => array('vid'),
127      );
128      $schema['audio_metadata'] = array(
129        'description' => t('Extended data about audio files.'),
130        'fields' => array(
131          'vid' => array(
132            'type' => 'int',
133            'size' => 'medium',
134            'not null' => TRUE,
135          ),
136          'tag' => array(
137            'type' => 'varchar',
138            'length' => 45,
139            'not null' => TRUE,
140            'default' => '',
141          ),
142          'value' => array(
143            'type' => 'varchar',
144            'length' => 255,
145            'not null' => TRUE,
146            'default' => '',
147          ),
148          'clean' => array(
149            'type' => 'varchar',
150            'length' => 255,
151            'not null' => TRUE,
152            'default' => '',
153          ),
154        ),
155        'primary key' => array('vid', 'tag', 'value'),
156        'indexes' => array(
157          'audio_metadata_tags' => array('clean'),
158        ),
159      );
160      return $schema;
161    }
162    
163  /**  /**
164   * Add permission to download and view audio to the anonymous and authenticated   * Add permission to download and view audio to the anonymous and authenticated
165   * roles by default.   * roles by default.
# Line 135  function _audio_add_default_perms() { Line 190  function _audio_add_default_perms() {
190   */   */
191  function audio_update_9() {  function audio_update_9() {
192    $ret = array();    $ret = array();
193    switch ($GLOBALS['db_type']) {    db_change_field($ret, 'audio', 'playcount', 'play_count',
194      case 'mysql':      array(
195      case 'mysqli':        'type' => 'int',
196        $ret[] = update_sql(        'size' => 'medium',
197  <<<MYSQL_UPDATE        'not null' => TRUE,
198          ALTER TABLE {audio}        'default' => 0,
199            CHANGE COLUMN `playcount` `play_count` INTEGER UNSIGNED NOT NULL DEFAULT 0,      )
200            ADD COLUMN `download_count` INTEGER UNSIGNED NOT NULL DEFAULT 0 AFTER `play_count`;    );
201  MYSQL_UPDATE    db_add_field($ret, 'audio', 'download_count',
202        );      array(
203        break;        'type' => 'int',
204    }        'size' => 'medium',
205          'not null' => TRUE,
206          'default' => 0,
207        )
208      );
209    return $ret;    return $ret;
210  }  }
211    
# Line 181  function audio_update_10() { Line 240  function audio_update_10() {
240   */   */
241  function audio_update_11() {  function audio_update_11() {
242    $ret = array();    $ret = array();
243    switch ($GLOBALS['db_type']) {    db_change_field($ret, 'audio_metadata', 'tag', 'tag',
244      case 'mysql':      array(
245      case 'mysqli':        'type' => 'varchar',
246        $ret[] = update_sql(        'length' => 45,
247  <<<MYSQL_UPDATE        'not null' => TRUE,
248          ALTER TABLE {audio_metadata}        'default' => '',
249            MODIFY COLUMN `tag` VARCHAR(45) NOT NULL DEFAULT '';      )
250  MYSQL_UPDATE    );
       );  
       break;  
   }  
   
251    return $ret;    return $ret;
252  }  }
253    
# Line 209  function audio_update_12() { Line 264  function audio_update_12() {
264   */   */
265  function audio_update_13() {  function audio_update_13() {
266    $ret = array();    $ret = array();
267    $ret[] = update_sql("UPDATE {audio_file} SET origname = filename WHERE origname='' OR origname IS NULL");    $ret[] = update_sql("UPDATE {audio_file} SET origname = filename WHERE origname='' OR origname IS NULL;");
268    return $ret;    return $ret;
269  }  }
270    
# Line 270  function audio_update_111() { Line 325  function audio_update_111() {
325   */   */
326  function audio_update_5200() {  function audio_update_5200() {
327    $ret = array();    $ret = array();
328    switch ($GLOBALS['db_type']) {    $ret[] = update_sql("UPDATE {audio_file} SET filename = origname");
329      case 'mysql':    db_drop_field($ret, 'audio_file', 'origname');
     case 'mysqli':  
       $ret[] = update_sql("UPDATE {audio_file} SET filename = origname");  
       $ret[] = update_sql("ALTER TABLE {audio_file} DROP COLUMN `origname`");  
       break;  
   }  
330    return $ret;    return $ret;
331  }  }
332    
# Line 328  function audio_update_5201() { Line 378  function audio_update_5201() {
378   */   */
379  function audio_update_5202() {  function audio_update_5202() {
380    $ret = array();    $ret = array();
381    switch ($GLOBALS['db_type']) {    db_change_field($ret, 'audio', 'fileformat', 'file_format',
382      case 'mysql':      array(
383      case 'mysqli':        'type' => 'varchar',
384        $ret[] = update_sql("ALTER TABLE {audio}        'length' => 10,
385          CHANGE COLUMN `fileformat` `file_format` varchar(10) NOT NULL default '',        'not null' => TRUE,
386          ADD COLUMN `file_mime` varchar(255) NOT NULL default '' AFTER `file_format`,        'default' => '',
387          ADD COLUMN `file_name` varchar(255) NOT NULL default '' AFTER `file_mime`,      )
388          ADD COLUMN `file_path` varchar(255) NOT NULL default '' AFTER `file_name`,    );
389          ADD COLUMN `file_size` INTEGER UNSIGNED NOT NULL default 0 AFTER `file_path`,    db_add_field($ret, 'audio', 'file_mime',
390          ADD COLUMN `remote_url` varchar(255) NOT NULL default '' AFTER `file_size`,      array(
391          ADD COLUMN `remote_size` INTEGER UNSIGNED NOT NULL default 0 AFTER `remote_url`        'type' => 'varchar',
392        ");        'length' => 255,
393        $ret[] = update_sql("UPDATE {audio} a INNER JOIN {audio_file} af ON a.vid = af.vid SET a.file_name = af.filename, a.file_path = af.filepath, a.file_mime = af.filemime, a.file_size = af.filesize");        'not null' => TRUE,
394        $ret[] = update_sql("DROP TABLE {audio_file}");        'default' => '',
395        break;      )
396    }    );
397      db_add_field($ret, 'audio', 'file_name',
398        array(
399          'type' => 'varchar',
400          'length' => 255,
401          'not null' => TRUE,
402          'default' => '',
403        )
404      );
405      db_add_field($ret, 'audio', 'file_path',
406        array(
407          'type' => 'varchar',
408          'length' => 255,
409          'not null' => TRUE,
410          'default' => '',
411        )
412      );
413      db_add_field($ret, 'audio', 'file_size',
414        array(
415          'type' => 'int',
416          'size' => 'medium',
417          'not null' => TRUE,
418          'default' => 0,
419        )
420      );
421      db_add_field($ret, 'audio', 'remote_size',
422        array(
423          'type' => 'varchar',
424          'length' => 255,
425          'not null' => TRUE,
426          'default' => '',
427        )
428      );
429      db_add_field($ret, 'audio', 'remote_size',
430        array(
431          'type' => 'int',
432          'size' => 'medium',
433          'not null' => TRUE,
434          'default' => 0,
435        )
436      );
437      $ret[] = update_sql("UPDATE {audio} a INNER JOIN {audio_file} af ON a.vid = af.vid SET a.file_name = af.filename, a.file_path = af.filepath, a.file_mime = af.filemime, a.file_size = af.filesize");
438      db_drop_table($ret, 'audio_file');
439    
440    // Build an array of renamed tokens.    // Build an array of renamed tokens.
441    $tokens = array(    $tokens = array(

Legend:
Removed from v.1.19  
changed lines
  Added in v.1.20

  ViewVC Help
Powered by ViewVC 1.1.3