TRUE)); } } /** * Implementation of hook_requirements(). * * @ingroup tripal_legacy_contact */ function tripal_contact_requirements($phase) { $requirements = array(); if ($phase == 'install') { // make sure chado is installed if (!$GLOBALS["chado_is_installed"]) { $requirements ['tripal_contact'] = array( 'title' => "tripal_contact", 'value' => "ERROR: Chado must be installed before this module can be enabled", 'severity' => REQUIREMENT_ERROR, ); } } return $requirements; } /** * Implementation of hook_install(). * * @ingroup tripal_legacy_contact */ function tripal_contact_install() { // Add the contactprop table to Chado. tripal_contact_add_custom_tables(); // Add loading of the the tripal contact ontology to the job queue. $obo_path = '{tripal_contact}/files/tcontact.obo'; $obo_id = tripal_insert_obo('Tripal Contacts', $obo_path); tripal_submit_obo_job(array('obo_id' => $obo_id)); // Add cvterms for relationship types. tripal_contact_add_cvs(); tripal_contact_add_cvterms(); // Set the default vocabularies. tripal_set_default_cv('contact', 'type_id', 'tripal_contact'); tripal_set_default_cv('contactprop', 'type_id', 'tripal_contact'); tripal_set_default_cv('contact_relationship', 'type_id', 'contact_relationship'); } /** * Implementation of hook_uninstall(). * * @ingroup tripal_legacy_contact */ function tripal_contact_uninstall() { /* // remove our custom block visibility settings per node type db_delete('block_node_type') ->condition('module', 'chado_contact') ->condition('delta', 'contbase') ->execute(); */ } /** * Adds any cvs needed by this module. * * @ingroup tripal_legacy_contact */ function tripal_contact_add_cvs() { // Add the cv for contact properties. This is a default vocabulary in the event // that a user does not want to use the tripal_contact vocabulary tripal_insert_cv( 'contact_property', 'Contains properties for contacts. This can be used if the tripal_contact vocabulary (which is default for contacts in Tripal) is not desired.' ); // add the cv for the contact type. This is a default vocabulary in the event // that a user does not want to use the tripal_contact vocabulary tripal_insert_cv( 'contact_type', 'Contains types of contacts. This can be used if the tripal_contact vocabulary (which is default for contacts in Tripal) is not desired.' ); // Add the cv for the tripal_contact vocabulary which is loaded via the OBO tripal_insert_cv( 'tripal_contact', 'A heirarchical set of terms for describing a contact. It is intended to be used as the default vocabularies in Tripal for contact types and contact properties.' ); // add the cv for contact relationships tripal_insert_cv( 'contact_relationship', 'Contains types of relationships between contacts.' ); } /** * Adds any cvterms needed by this module. * * @ingroup tripal_legacy_contact */ function tripal_contact_add_cvterms() { } /** * Implementation of hook_schema(). * * @ingroup tripal_legacy_contact */ function tripal_contact_schema() { $schema['chado_contact'] = array( 'fields' => array( 'vid' => array( 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0 ), 'nid' => array( 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0 ), 'contact_id' => array( 'type' => 'int', 'not null' => TRUE, 'default' => 0 ) ), 'indexes' => array( 'contact_id' => array('contact_id') ), 'unique keys' => array( 'nid_vid' => array('nid', 'vid'), 'vid' => array('vid') ), 'primary key' => array('nid'), ); return $schema; } /** * Add any custom tables needed by this module. * - Contactprop: keep track of properties of contact * * @ingroup tripal_legacy_contact */ // This function was moved to tripal_chado/includes/setup/tripal_chado.setup.inc /* function tripal_contact_add_custom_tables(){ $schema = array ( 'table' => 'contactprop', 'fields' => array ( 'contactprop_id' => array ( 'type' => 'serial', 'not null' => true, ), 'contact_id' => array ( 'type' => 'int', 'not null' => true, ), 'type_id' => array ( 'type' => 'int', 'not null' => true, ), 'value' => array ( 'type' => 'text', 'not null' => false, ), 'rank' => array ( 'type' => 'int', 'not null' => true, 'default' => 0, ), ), 'primary key' => array ( 0 => 'contactprop_id', ), 'unique keys' => array ( 'contactprop_c1' => array ( 0 => 'contact_id', 1 => 'type_id', 2 => 'rank', ), ), 'indexes' => array ( 'contactprop_idx1' => array ( 0 => 'contact_id', ), 'contactprop_idx2' => array ( 0 => 'type_id', ), ), 'foreign keys' => array ( 'cvterm' => array ( 'table' => 'cvterm', 'columns' => array ( 'type_id' => 'cvterm_id', ), ), 'contact' => array ( 'table' => 'contact', 'columns' => array ( 'contact_id' => 'contact_id', ), ), ), ); chado_create_custom_table('contactprop', $schema, TRUE); } */