| webmaster@1 | 1 <?php | 
| webmaster@1 | 2 // $Id: taxonomy.install,v 1.7 2008/01/08 07:46:41 goba Exp $ | 
| webmaster@1 | 3 | 
| webmaster@1 | 4 /** | 
| webmaster@1 | 5  * Implementation of hook_schema(). | 
| webmaster@1 | 6  */ | 
| webmaster@1 | 7 function taxonomy_schema() { | 
| webmaster@1 | 8   $schema['term_data'] = array( | 
| webmaster@1 | 9     'description' => t('Stores term information.'), | 
| webmaster@1 | 10     'fields' => array( | 
| webmaster@1 | 11       'tid' => array( | 
| webmaster@1 | 12         'type' => 'serial', | 
| webmaster@1 | 13         'unsigned' => TRUE, | 
| webmaster@1 | 14         'not null' => TRUE, | 
| webmaster@1 | 15         'description' => t('Primary Key: Unique term ID.'), | 
| webmaster@1 | 16       ), | 
| webmaster@1 | 17       'vid' => array( | 
| webmaster@1 | 18         'type' => 'int', | 
| webmaster@1 | 19         'unsigned' => TRUE, | 
| webmaster@1 | 20         'not null' => TRUE, | 
| webmaster@1 | 21         'default' => 0, | 
| webmaster@1 | 22         'description' => t('The {vocabulary}.vid of the vocabulary to which the term is assigned.'), | 
| webmaster@1 | 23       ), | 
| webmaster@1 | 24       'name' => array( | 
| webmaster@1 | 25         'type' => 'varchar', | 
| webmaster@1 | 26         'length' => 255, | 
| webmaster@1 | 27         'not null' => TRUE, | 
| webmaster@1 | 28         'default' => '', | 
| webmaster@1 | 29         'description' => t('The term name.'), | 
| webmaster@1 | 30       ), | 
| webmaster@1 | 31       'description' => array( | 
| webmaster@1 | 32         'type' => 'text', | 
| webmaster@1 | 33         'not null' => FALSE, | 
| webmaster@1 | 34         'size' => 'big', | 
| webmaster@1 | 35         'description' => t('A description of the term.'), | 
| webmaster@1 | 36       ), | 
| webmaster@1 | 37       'weight' => array( | 
| webmaster@1 | 38         'type' => 'int', | 
| webmaster@1 | 39         'not null' => TRUE, | 
| webmaster@1 | 40         'default' => 0, | 
| webmaster@1 | 41         'size' => 'tiny', | 
| webmaster@1 | 42         'description' => t('The weight of this term in relation to other terms.'), | 
| webmaster@1 | 43       ), | 
| webmaster@1 | 44     ), | 
| webmaster@1 | 45     'primary key' => array('tid'), | 
| webmaster@1 | 46     'indexes' => array( | 
| webmaster@1 | 47       'taxonomy_tree' => array('vid', 'weight', 'name'), | 
| webmaster@1 | 48       'vid_name' => array('vid', 'name'), | 
| webmaster@1 | 49     ), | 
| webmaster@1 | 50   ); | 
| webmaster@1 | 51 | 
| webmaster@1 | 52   $schema['term_hierarchy'] = array( | 
| webmaster@1 | 53     'description' => t('Stores the hierarchical relationship between terms.'), | 
| webmaster@1 | 54     'fields' => array( | 
| webmaster@1 | 55       'tid' => array( | 
| webmaster@1 | 56         'type' => 'int', | 
| webmaster@1 | 57         'unsigned' => TRUE, | 
| webmaster@1 | 58         'not null' => TRUE, | 
| webmaster@1 | 59         'default' => 0, | 
| webmaster@1 | 60         'description' => t('Primary Key: The {term_data}.tid of the term.'), | 
| webmaster@1 | 61       ), | 
| webmaster@1 | 62       'parent' => array( | 
| webmaster@1 | 63         'type' => 'int', | 
| webmaster@1 | 64         'unsigned' => TRUE, | 
| webmaster@1 | 65         'not null' => TRUE, | 
| webmaster@1 | 66         'default' => 0, | 
| webmaster@1 | 67         'description' => t("Primary Key: The {term_data}.tid of the term's parent. 0 indicates no parent."), | 
| webmaster@1 | 68       ), | 
| webmaster@1 | 69     ), | 
| webmaster@1 | 70     'indexes' => array( | 
| webmaster@1 | 71       'parent' => array('parent'), | 
| webmaster@1 | 72     ), | 
| webmaster@1 | 73     'primary key' => array('tid', 'parent'), | 
| webmaster@1 | 74   ); | 
| webmaster@1 | 75 | 
| webmaster@1 | 76   $schema['term_node'] = array( | 
| webmaster@1 | 77     'description' => t('Stores the relationship of terms to nodes.'), | 
| webmaster@1 | 78     'fields' => array( | 
| webmaster@1 | 79       'nid' => array( | 
| webmaster@1 | 80         'type' => 'int', | 
| webmaster@1 | 81         'unsigned' => TRUE, | 
| webmaster@1 | 82         'not null' => TRUE, | 
| webmaster@1 | 83         'default' => 0, | 
| webmaster@1 | 84         'description' => t('Primary Key: The {node}.nid of the node.'), | 
| webmaster@1 | 85       ), | 
| webmaster@1 | 86       'vid' => array( | 
| webmaster@1 | 87         'type' => 'int', | 
| webmaster@1 | 88         'unsigned' => TRUE, | 
| webmaster@1 | 89         'not null' => TRUE, | 
| webmaster@1 | 90         'default' => 0, | 
| webmaster@1 | 91         'description' => t('Primary Key: The {node}.vid of the node.'), | 
| webmaster@1 | 92       ), | 
| webmaster@1 | 93       'tid' => array( | 
| webmaster@1 | 94         'type' => 'int', | 
| webmaster@1 | 95         'unsigned' => TRUE, | 
| webmaster@1 | 96         'not null' => TRUE, | 
| webmaster@1 | 97         'default' => 0, | 
| webmaster@1 | 98         'description' => t('Primary Key: The {term_data}.tid of a term assigned to the node.'), | 
| webmaster@1 | 99       ), | 
| webmaster@1 | 100     ), | 
| webmaster@1 | 101     'indexes' => array( | 
| webmaster@1 | 102       'vid' => array('vid'), | 
| webmaster@1 | 103       'nid' => array('nid'), | 
| webmaster@1 | 104     ), | 
| webmaster@1 | 105     'primary key' => array('tid', 'vid'), | 
| webmaster@1 | 106   ); | 
| webmaster@1 | 107 | 
| webmaster@1 | 108   $schema['term_relation'] = array( | 
| webmaster@1 | 109     'description' => t('Stores non-hierarchical relationships between terms.'), | 
| webmaster@1 | 110     'fields' => array( | 
| webmaster@1 | 111       'trid' => array( | 
| webmaster@1 | 112         'type' => 'serial', | 
| webmaster@1 | 113         'not null' => TRUE, | 
| webmaster@1 | 114         'description' => t('Primary Key: Unique term relation ID.'), | 
| webmaster@1 | 115       ), | 
| webmaster@1 | 116       'tid1' => array( | 
| webmaster@1 | 117         'type' => 'int', | 
| webmaster@1 | 118         'unsigned' => TRUE, | 
| webmaster@1 | 119         'not null' => TRUE, | 
| webmaster@1 | 120         'default' => 0, | 
| webmaster@1 | 121         'description' => t('The {term_data}.tid of the first term in a relationship.'), | 
| webmaster@1 | 122       ), | 
| webmaster@1 | 123       'tid2' => array( | 
| webmaster@1 | 124         'type' => 'int', | 
| webmaster@1 | 125         'unsigned' => TRUE, | 
| webmaster@1 | 126         'not null' => TRUE, | 
| webmaster@1 | 127         'default' => 0, | 
| webmaster@1 | 128         'description' => t('The {term_data}.tid of the second term in a relationship.'), | 
| webmaster@1 | 129       ), | 
| webmaster@1 | 130     ), | 
| webmaster@1 | 131     'unique keys' => array( | 
| webmaster@1 | 132       'tid1_tid2' => array('tid1', 'tid2'), | 
| webmaster@1 | 133     ), | 
| webmaster@1 | 134     'indexes' => array( | 
| webmaster@1 | 135       'tid2' => array('tid2'), | 
| webmaster@1 | 136     ), | 
| webmaster@1 | 137     'primary key' => array('trid'), | 
| webmaster@1 | 138   ); | 
| webmaster@1 | 139 | 
| webmaster@1 | 140   $schema['term_synonym'] = array( | 
| webmaster@1 | 141     'description' => t('Stores term synonyms.'), | 
| webmaster@1 | 142     'fields' => array( | 
| webmaster@1 | 143       'tsid' => array( | 
| webmaster@1 | 144         'type' => 'serial', | 
| webmaster@1 | 145         'not null' => TRUE, | 
| webmaster@1 | 146         'description' => t('Primary Key: Unique term synonym ID.'), | 
| webmaster@1 | 147       ), | 
| webmaster@1 | 148       'tid' => array( | 
| webmaster@1 | 149         'type' => 'int', | 
| webmaster@1 | 150         'unsigned' => TRUE, | 
| webmaster@1 | 151         'not null' => TRUE, | 
| webmaster@1 | 152         'default' => 0, | 
| webmaster@1 | 153         'description' => t('The {term_data}.tid of the term.'), | 
| webmaster@1 | 154       ), | 
| webmaster@1 | 155       'name' => array( | 
| webmaster@1 | 156         'type' => 'varchar', | 
| webmaster@1 | 157         'length' => 255, | 
| webmaster@1 | 158         'not null' => TRUE, | 
| webmaster@1 | 159         'default' => '', | 
| webmaster@1 | 160         'description' => t('The name of the synonym.'), | 
| webmaster@1 | 161       ), | 
| webmaster@1 | 162     ), | 
| webmaster@1 | 163     'indexes' => array( | 
| webmaster@1 | 164       'tid' => array('tid'), | 
| webmaster@1 | 165       'name_tid' => array('name', 'tid'), | 
| webmaster@1 | 166     ), | 
| webmaster@1 | 167     'primary key' => array('tsid'), | 
| webmaster@1 | 168   ); | 
| webmaster@1 | 169 | 
| webmaster@1 | 170   $schema['vocabulary'] = array( | 
| webmaster@1 | 171     'description' => t('Stores vocabulary information.'), | 
| webmaster@1 | 172     'fields' => array( | 
| webmaster@1 | 173       'vid' => array( | 
| webmaster@1 | 174         'type' => 'serial', | 
| webmaster@1 | 175         'unsigned' => TRUE, | 
| webmaster@1 | 176         'not null' => TRUE, | 
| webmaster@1 | 177         'description' => t('Primary Key: Unique vocabulary ID.'), | 
| webmaster@1 | 178       ), | 
| webmaster@1 | 179       'name' => array( | 
| webmaster@1 | 180         'type' => 'varchar', | 
| webmaster@1 | 181         'length' => 255, | 
| webmaster@1 | 182         'not null' => TRUE, | 
| webmaster@1 | 183         'default' => '', | 
| webmaster@1 | 184         'description' => t('Name of the vocabulary.'), | 
| webmaster@1 | 185       ), | 
| webmaster@1 | 186       'description' => array( | 
| webmaster@1 | 187         'type' => 'text', | 
| webmaster@1 | 188         'not null' => FALSE, | 
| webmaster@1 | 189         'size' => 'big', | 
| webmaster@1 | 190         'description' => t('Description of the vocabulary.'), | 
| webmaster@1 | 191       ), | 
| webmaster@1 | 192       'help' => array( | 
| webmaster@1 | 193         'type' => 'varchar', | 
| webmaster@1 | 194         'length' => 255, | 
| webmaster@1 | 195         'not null' => TRUE, | 
| webmaster@1 | 196         'default' => '', | 
| webmaster@1 | 197         'description' => t('Help text to display for the vocabulary.'), | 
| webmaster@1 | 198       ), | 
| webmaster@1 | 199       'relations' => array( | 
| webmaster@1 | 200         'type' => 'int', | 
| webmaster@1 | 201         'unsigned' => TRUE, | 
| webmaster@1 | 202         'not null' => TRUE, | 
| webmaster@1 | 203         'default' => 0, | 
| webmaster@1 | 204         'size' => 'tiny', | 
| webmaster@1 | 205         'description' => t('Whether or not related terms are enabled within the vocabulary. (0 = disabled, 1 = enabled)'), | 
| webmaster@1 | 206       ), | 
| webmaster@1 | 207       'hierarchy' => array( | 
| webmaster@1 | 208         'type' => 'int', | 
| webmaster@1 | 209         'unsigned' => TRUE, | 
| webmaster@1 | 210         'not null' => TRUE, | 
| webmaster@1 | 211         'default' => 0, | 
| webmaster@1 | 212         'size' => 'tiny', | 
| webmaster@1 | 213         'description' => t('The type of hierarchy allowed within the vocabulary. (0 = disabled, 1 = single, 2 = multiple)'), | 
| webmaster@1 | 214       ), | 
| webmaster@1 | 215       'multiple' => array( | 
| webmaster@1 | 216         'type' => 'int', | 
| webmaster@1 | 217         'unsigned' => TRUE, | 
| webmaster@1 | 218         'not null' => TRUE, | 
| webmaster@1 | 219         'default' => 0, | 
| webmaster@1 | 220         'size' => 'tiny', | 
| webmaster@1 | 221         'description' => t('Whether or not multiple terms from this vocabulary may be assigned to a node. (0 = disabled, 1 = enabled)'), | 
| webmaster@1 | 222       ), | 
| webmaster@1 | 223       'required' => array( | 
| webmaster@1 | 224         'type' => 'int', | 
| webmaster@1 | 225         'unsigned' => TRUE, | 
| webmaster@1 | 226         'not null' => TRUE, | 
| webmaster@1 | 227         'default' => 0, | 
| webmaster@1 | 228         'size' => 'tiny', | 
| webmaster@1 | 229         'description' => t('Whether or not terms are required for nodes using this vocabulary. (0 = disabled, 1 = enabled)'), | 
| webmaster@1 | 230       ), | 
| webmaster@1 | 231       'tags' => array( | 
| webmaster@1 | 232         'type' => 'int', | 
| webmaster@1 | 233         'unsigned' => TRUE, | 
| webmaster@1 | 234         'not null' => TRUE, | 
| webmaster@1 | 235         'default' => 0, | 
| webmaster@1 | 236         'size' => 'tiny', | 
| webmaster@1 | 237         'description' => t('Whether or not free tagging is enabled for the vocabulary. (0 = disabled, 1 = enabled)'), | 
| webmaster@1 | 238       ), | 
| webmaster@1 | 239       'module' => array( | 
| webmaster@1 | 240         'type' => 'varchar', | 
| webmaster@1 | 241         'length' => 255, | 
| webmaster@1 | 242         'not null' => TRUE, | 
| webmaster@1 | 243         'default' => '', | 
| webmaster@1 | 244         'description' => t('The module which created the vocabulary.'), | 
| webmaster@1 | 245       ), | 
| webmaster@1 | 246       'weight' => array( | 
| webmaster@1 | 247         'type' => 'int', | 
| webmaster@1 | 248         'not null' => TRUE, | 
| webmaster@1 | 249         'default' => 0, | 
| webmaster@1 | 250         'size' => 'tiny', | 
| webmaster@1 | 251         'description' => t('The weight of the vocabulary in relation to other vocabularies.'), | 
| webmaster@1 | 252       ), | 
| webmaster@1 | 253     ), | 
| webmaster@1 | 254     'primary key' => array('vid'), | 
| webmaster@1 | 255     'indexes' => array( | 
| webmaster@1 | 256       'list' => array('weight', 'name'), | 
| webmaster@1 | 257     ), | 
| webmaster@1 | 258   ); | 
| webmaster@1 | 259 | 
| webmaster@1 | 260   $schema['vocabulary_node_types'] = array( | 
| webmaster@1 | 261     'description' => t('Stores which node types vocabularies may be used with.'), | 
| webmaster@1 | 262     'fields' => array( | 
| webmaster@1 | 263       'vid' => array( | 
| webmaster@1 | 264         'type' => 'int', | 
| webmaster@1 | 265         'unsigned' => TRUE, | 
| webmaster@1 | 266         'not null' => TRUE, | 
| webmaster@1 | 267         'default' => 0, | 
| webmaster@1 | 268         'description' => t('Primary Key: the {vocabulary}.vid of the vocabulary.'), | 
| webmaster@1 | 269       ), | 
| webmaster@1 | 270       'type' => array( | 
| webmaster@1 | 271         'type' => 'varchar', | 
| webmaster@1 | 272         'length' => 32, | 
| webmaster@1 | 273         'not null' => TRUE, | 
| webmaster@1 | 274         'default' => '', | 
| webmaster@1 | 275         'description' => t('The {node}.type of the node type for which the vocabulary may be used.'), | 
| webmaster@1 | 276       ), | 
| webmaster@1 | 277     ), | 
| webmaster@1 | 278     'primary key' => array('type', 'vid'), | 
| webmaster@1 | 279     'indexes' => array( | 
| webmaster@1 | 280       'vid' => array('vid'), | 
| webmaster@1 | 281     ), | 
| webmaster@1 | 282   ); | 
| webmaster@1 | 283 | 
| webmaster@1 | 284   return $schema; | 
| webmaster@1 | 285 } | 
| webmaster@1 | 286 |