123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- <?php
- function tripal_insert_variable($name, $description) {
- $name = trim($name);
- if (!$name) {
- tripal_report_error('tripal_core', TRIPAL_ERROR,
- 'Must have a variable name when adding a new Tripal Variable.', array());
- return NULL;
- }
- if (!$description) {
- tripal_report_error('tripal_core', TRIPAL_ERROR,
- 'Must have a description when adding a new Tripal Variable.', array());
- return NULL;
- }
-
-
-
- $variable = tripal_get_variable($name);
- if ($variable) {
- return $variable;
- }
- else {
- db_insert('tripal_variables')
- ->fields(array(
- 'name' => $name,
- 'description' => $description,
- ))
- ->execute();
- return tripal_get_variable($name);
- }
- }
- function tripal_get_variable($name) {
- return db_select('tripal_variables', 'v')
- ->fields('v')
- ->condition('name', $name)
- ->execute()
- ->fetchObject();
- }
- function tripal_add_node_variable($nid, $name, $value, $rank = 0) {
-
-
-
-
- $variable = tripal_get_variable($name);
- if (!$variable) {
- $variable = tripal_insert_variable($name, "Added automatically. Please describe this variable.");
- }
-
-
-
-
- $values = tripal_get_node_variables($nid, $name);
- if (count($values) > 0) {
-
- $max_rank = 0;
- foreach ($values as $value) {
-
-
- if ($rank > 0 and $rank == $value->rank) {
- tripal_report_error('tripal_core', TRIPAL_ERROR,
- "The rank for the term, '$term', is already used for node $nid. " .
- "Cannot add the variable.", array());
- return FALSE;
- }
- if ($value->rank > $max_rank) {
- $max_rank = $value->rank;
- }
- }
- $rank = $max_rank++;
- }
-
-
- $node_variable_id = db_insert('tripal_node_variables')
- ->fields(array(
- 'variable_id' => $variable->variable_id,
- 'nid' => $nid,
- 'value' => $value,
- 'rank' => $rank
- ))
- ->execute();
- return $node_variable_id;
- }
-
- function tripal_get_node_variables($nid, $name = '', $rank = '') {
- $variables = array();
- if (!$nid) {
- return $variables;
- }
- $query = db_select('tripal_node_variables', 'tnv')
- ->fields('tnv')
- ->condition('nid', $nid, '=');
- if ($name) {
- $variable = tripal_get_variable($name);
- $query->condition('variable_id', $variable->variable_id, '=');
- }
- if ($rank) {
- $query->condition('rank', $rank, '=');
- }
- $results = $query->execute();
-
-
- while($variable = $results->fetchObject()) {
- $variables[] = $variable;
- }
- return $variables;
- }
- function tripal_delete_node_variables($nid, $name = '', $rank = '') {
- if (!$nid) {
- return FALSE;
- }
- $query = db_delete('tripal_node_variables')
- ->condition('nid', $nid, '=');
- if ($name) {
- $variable = tripal_get_variable($name);
- $query->condition('variable_id', $variable->variable_id, '=');
- }
- if ($rank) {
- $query->condition('rank', $rank, '=');
- }
- return $query->execute();
- }
|