TRUE)); } } /** * Implementation of hook_requirements(). * * @ingroup tripal_stock */ function tripal_stock_requirements($phase) { $requirements = array(); if ($phase == 'install') { // make sure chado is installed if (!$GLOBALS["chado_is_installed"]) { $requirements ['tripal_stock'] = array( 'title' => "tripal_stock", 'value' => "ERROR: Chado must be installed before this module can be enabled", 'severity' => REQUIREMENT_ERROR, ); } } return $requirements; } /** * Implementation of hook_install(). * * @ingroup tripal_stock */ function tripal_stock_install() { // create the module's data directory tripal_create_files_dir('tripal_stock'); // set the default vocabularies tripal_set_default_cv('stock', 'type_id', 'stock_type'); tripal_set_default_cv('stockprop', 'type_id', 'stock_property'); tripal_set_default_cv('stock_relationship', 'type_id', 'stock_relationship'); } /** * Implementation of hook_uninstall(). * * @ingroup tripal_stock */ function tripal_stock_uninstall() { } /** * Implementation of hook_schema(). * * @ingroup tripal_stock */ function tripal_stock_schema() { $schema['chado_stock'] = array( 'fields' => array( 'vid' => array( 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, ), 'nid' => array( 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, ), 'stock_id' => array( 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, ), ), 'indexes' => array( 'stock_id' => array('stock_id'), 'nid' => array('nid'), ), 'unique' => array( 'stock_id' => array('stock_id'), ), 'primary key' => array('vid'), ); return $schema; } /** * Add cvs related to publications * * @ingroup tripal_pub */ function tripal_stock_add_cvs() { // Add cv for relationship types tripal_cv_add_cv( 'stock_relationship', 'Contains types of relationships between stocks.' ); tripal_cv_add_cv( 'stock_property', 'Contains properties for stocks.' ); tripal_cv_add_cv( 'stock_type', 'Contains a list of types for stocks.' ); } /** * Add cvterms related to publications * * @ingroup tripal_pub */ function tripal_stock_add_cvterms() { } /** * This is the required update for tripal_stock when upgrading from Drupal core API 6.x. * */ function tripal_stock_update_7200() { // add the new CVs. We can't use the Tripal API because during // an upgrade from D6 to D7 Tripal is disable. So, we have to manually add these // new vocabularies. // add the stock_relationshp CV try { $cv_id = db_query("SELECT cv_id FROM chado.cv WHERE name = 'stock_relationship'")->fetchField(); if (!$cv_id) { // add the vocabulary $cv_id = db_insert('chado.cv') ->fields(array( 'name' => 'stock_relationship', 'definition' => 'Contains types of relationships between stocks.' )) ->execute(); } // for backwards compatibility, get the previously set stock relationship CV, otherwise // use the new stock_relationship CV we just added $default_stockrel_cv = variable_get('chado_stock_relationship_cv', $cv_id); db_insert('tripal_cv_defaults') ->fields(array( 'table_name' => 'stock_relationship', 'field_name' => 'type_id', 'cv_id' => $default_stockrel_cv )) ->execute(); } catch (\PDOException $e) { $error = $e->getMessage(); throw new DrupalUpdateException('Failed to add stock_relationship vocabulary: '. $error); } // add the stock_property CV try { $cv_id = db_query("SELECT cv_id FROM chado.cv WHERE name = 'stock_property'")->fetchField(); if (!$cv_id) { // add the vocabulary $cv_id = db_insert('chado.cv') ->fields(array( 'name' => 'stock_property', 'definition' => 'Contains properties for stocks.' )) ->execute(); } // for backwards compatibility, get the previously set stock property CV, otherwise // use the new stock_property CV we just added $default_stockprop_cv = variable_get('chado_stock_prop_types_cv', $cv_id); db_insert('tripal_cv_defaults') ->fields(array( 'table_name' => 'stockprop', 'field_name' => 'type_id', 'cv_id' => $default_stockprop_cv )) ->execute(); } catch (\PDOException $e) { $error = $e->getMessage(); throw new DrupalUpdateException('Failed to add stock_property vocabulary: '. $error); } // add the stock_type CV try { $cv_id = db_query("SELECT cv_id FROM chado.cv WHERE name = 'stock_type'")->fetchField(); if (!$cv_id) { // add the vocabulary $cv_id = db_insert('chado.cv') ->fields(array( 'name' => 'stock_type', 'definition' => 'Contains a list of types for stocks.' )) ->execute(); } // for backwards compatibility, get the previously set stock types CV, otherwise // use the new stock_type CV we just added $default_stocktype_cv = variable_get('chado_stock_types_cv', $cv_id); db_insert('tripal_cv_defaults') ->fields(array( 'table_name' => 'stock', 'field_name' => 'type_id', 'cv_id' => $default_stocktype_cv )) ->execute(); } catch (\PDOException $e) { $error = $e->getMessage(); throw new DrupalUpdateException('Failed to add stock_type vocabulary: '. $error); } }