| 
webmaster@1
 | 
     1 <?php | 
| 
franck@19
 | 
     2 // $Id: taxonomy.install,v 1.7.2.1 2009/01/06 15:46:38 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( | 
| 
franck@19
 | 
     9     'description' => '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, | 
| 
franck@19
 | 
    15         'description' => '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, | 
| 
franck@19
 | 
    22         'description' => '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' => '', | 
| 
franck@19
 | 
    29         'description' => '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', | 
| 
franck@19
 | 
    35         'description' => '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', | 
| 
franck@19
 | 
    42         'description' => '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( | 
| 
franck@19
 | 
    53     'description' => '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, | 
| 
franck@19
 | 
    60         'description' => '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, | 
| 
franck@19
 | 
    67         'description' => "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( | 
| 
franck@19
 | 
    77     'description' => '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, | 
| 
franck@19
 | 
    84         'description' => '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, | 
| 
franck@19
 | 
    91         'description' => '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, | 
| 
franck@19
 | 
    98         'description' => '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( | 
| 
franck@19
 | 
   109     'description' => '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, | 
| 
franck@19
 | 
   114         'description' => '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, | 
| 
franck@19
 | 
   121         'description' => '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, | 
| 
franck@19
 | 
   128         'description' => '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( | 
| 
franck@19
 | 
   141     'description' => 'Stores term synonyms.', | 
| 
webmaster@1
 | 
   142     'fields' => array( | 
| 
webmaster@1
 | 
   143       'tsid' => array( | 
| 
webmaster@1
 | 
   144         'type' => 'serial', | 
| 
webmaster@1
 | 
   145         'not null' => TRUE, | 
| 
franck@19
 | 
   146         'description' => '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, | 
| 
franck@19
 | 
   153         'description' => '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' => '', | 
| 
franck@19
 | 
   160         'description' => '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( | 
| 
franck@19
 | 
   171     'description' => '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, | 
| 
franck@19
 | 
   177         'description' => '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' => '', | 
| 
franck@19
 | 
   184         'description' => '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', | 
| 
franck@19
 | 
   190         'description' => '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' => '', | 
| 
franck@19
 | 
   197         'description' => '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', | 
| 
franck@19
 | 
   205         'description' => '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', | 
| 
franck@19
 | 
   213         'description' => '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', | 
| 
franck@19
 | 
   221         'description' => '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', | 
| 
franck@19
 | 
   229         'description' => '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', | 
| 
franck@19
 | 
   237         'description' => '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' => '', | 
| 
franck@19
 | 
   244         'description' => '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', | 
| 
franck@19
 | 
   251         'description' => '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( | 
| 
franck@19
 | 
   261     'description' => '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, | 
| 
franck@19
 | 
   268         'description' => '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' => '', | 
| 
franck@19
 | 
   275         'description' => '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  |