| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423 | 
							- <?php
 
- require_once "api/tripal_entities.api.inc";
 
- require_once "includes/tripal_entities.chado_entity.inc";
 
- require_once "includes/tripal_entities.entity_form.inc";
 
- require_once "includes/tripal_entities.tables.inc";
 
- require_once "includes/TripalEntity.inc";
 
- require_once "includes/TripalEntityController.inc";
 
- require_once "includes/TripalEntityUIController.inc";
 
- require_once "includes/TripalBundle.inc";
 
- require_once "includes/TripalBundleController.inc";
 
- require_once "includes/TripalBundleUIController.inc";
 
- /**
 
-  * Implements hook_views_api().
 
-  */
 
- function tripal_entities_views_api() {
 
-   return array(
 
-     'api' => 3,
 
-   );
 
- }
 
- /**
 
-  * Implements hook_menu().
 
-  */
 
- function tripal_entities_menu() {
 
-   $items = array();
 
-   // The administative settings menu.
 
-   $items['admin/tripal/BioData'] = array(
 
-     'title' => 'Biological Data',
 
-     'description' => 'Tools for publishing, configurating and managing biological data.',
 
-     'page callback' => 'tripal_entities_admin_view',
 
-     'access arguments' => array('administer tripal data types'),
 
-     'file' =>  'includes/tripal_entities.admin.inc',
 
-     'type' => MENU_NORMAL_ITEM,
 
-   );
 
-   // The default tab.
 
-   $items['admin/tripal/BioData/default'] = array(
 
-     'title' => 'Biological Data',
 
-     'type' => MENU_DEFAULT_LOCAL_TASK,
 
-     'weight' =>  1,
 
-   );
 
-   $items['admin/tripal/BioData/access'] = array(
 
-     'title' => 'Access',
 
-     'description' => 'Set default access permissions for collections of data.',
 
-     'page callback' => 'drupal_get_form',
 
-     'page arguments' => array('tripal_entities_admin_access_form'),
 
-     'access arguments' => array('administer tripal data types'),
 
-     'file' =>  'includes/tripal_entities.admin.inc',
 
-     'type' => MENU_LOCAL_TASK,
 
-     'weight' => 3
 
-   );
 
-   return $items;
 
- }
 
- /**
 
-  * Implements hook_admin_paths().
 
-  */
 
- function tripal_entities_admin_paths() {
 
-   if (variable_get('node_admin_theme')) {
 
-     $paths = array(
 
-       'BioData/*/edit' => TRUE,
 
-       'BioData/*/delete' => TRUE,
 
-       'BioData/add' => TRUE,
 
-       'BioData/add/*' => TRUE,
 
-     );
 
-     return $paths;
 
-   }
 
- }
 
- /**
 
-  * Implements hook_menu_local_tasks_alter().
 
-  */
 
- function tripal_entities_menu_local_tasks_alter(&$data, $router_item, $root_path) {
 
-   // Add action link to 'BioData/add' on 'admin/content/BioData' page.
 
-   if ($root_path == 'admin/content/BioData') {
 
-     $item = menu_get_item('BioData/add');
 
-     if ($item['access']) {
 
-       $data['actions']['output'][] = array(
 
-         '#theme' => 'menu_local_action',
 
-         '#link' => $item,
 
-       );
 
-     }
 
-   }
 
- }
 
- /**
 
-  *
 
-  * @param unknown $account
 
-  */
 
- function tripal_entities_shortcut_default_set($account) {
 
-   $sets = shortcut_sets();
 
-   $found = FALSE;
 
-   foreach ($sets as $set) {
 
-     if ($set->title == 'TripalDefault') {
 
-       $found = TRUE;
 
-     }
 
-   }
 
-   if (!$found) {
 
-     $t = get_t();
 
-     // Create an initial default shortcut set.
 
-     $shortcut_set = new stdClass();
 
-     $shortcut_set->title = $t('TripalDefault');
 
-     $shortcut_set->links = array(
 
-       array(
 
-         'link_path' => 'BioData/add',
 
-         'link_title' => 'Add Biological Data',
 
-         'weight' => -23,
 
-       ),
 
-       array(
 
-         'link_path' => 'admin/content/BioData',
 
-         'link_title' => 'Find Biological Data',
 
-         'weight' => -22,
 
-       ),
 
-       array(
 
-         'link_path' => 'node/add',
 
-         'link_title' => $t('Add content'),
 
-         'weight' => -21,
 
-       ),
 
-       array(
 
-         'link_path' => 'admin/content',
 
-         'link_title' => $t('Find content'),
 
-         'weight' => -20,
 
-       ),
 
-     );
 
-     shortcut_set_save($shortcut_set);
 
-   }
 
-   $sets = shortcut_sets();
 
-   foreach ($sets as $set) {
 
-    if ($set->title == 'TripalDefault') {
 
-      return $set->set_name;
 
-    }
 
-   }
 
- }
 
- /**
 
-  * Implements hook_permission().
 
-  */
 
- function tripal_entities_permission() {
 
-   // We set up permisssions to manage entity types, manage all entities and the
 
-   // permissions for each individual entity
 
-   $permissions = array(
 
-     'administer tripal data types' => array(
 
-       'title' => t('Administer Tripal data types'),
 
-       'description' => t('Create and delete fields for Tripal data types, and set their permissions.'),
 
-     ),
 
-     'administer tripal data' => array(
 
-       'title' => t('Administer Tripal data'),
 
-       'description' => t('Edit and delete all tripal data'),
 
-     ),
 
-   );
 
-   return $permissions;
 
- }
 
- /**
 
-  * Implements hook_theme().
 
-  */
 
- function tripal_entities_theme($existing, $type, $theme, $path) {
 
-   return array(
 
-     'tripal_entity' => array(
 
-       'render element' => 'elements',
 
-       'template' => 'tripal_entity',
 
-       'path' => "$path/theme/templates"
 
-     ),
 
-     'tripal_entities_date_combo' => array(
 
-       'render element' => 'element',
 
-       'file' => 'includes/tripal_entities.chado_entity.inc',
 
-     ),
 
-     'tripal_entities_add_list' => array(
 
-       'variables' => array('content' => NULL),
 
-       'file' => 'includes/tripal_entities.entity_form.inc',
 
-     ),
 
-   );
 
- }
 
- /**
 
-  * https://api.drupal.org/api/drupal/modules!rdf!rdf.module/group/rdf/7
 
-  */
 
- function tripal_entities_rdf_mapping() {
 
-   return array();
 
- /*   return array(
 
-     'type' => 'tripal_entity',
 
-     'bundle' => 'gene',
 
-     'mapping' => array(
 
-       'rdftype' => array('sioc:Item', 'foaf:Document'),
 
-       'title' => array(
 
-         'predicates' => array('dc:title'),
 
-       ),
 
-       'uid' => array(
 
-         'predicates' => array('sioc:has_creator'),
 
-         'type' => 'rel',
 
-       ),
 
-       'name' => array(
 
-         'predicates' => array('foaf:name'),
 
-       ),
 
-       'uniquename' => array(
 
-         'predicates' => array('foaf:name'),
 
-       ),
 
-       'organism_id' => array(
 
-         'predicates' => array('sioc:has_parent'),
 
-         'type' => 'rel'
 
-       )
 
-     ),
 
-   ); */
 
- }
 
- // http://www.bluespark.com/blog/drupal-entities-part-3-programming-hello-drupal-entity
 
- // http://dikini.net/31.08.2010/entities_bundles_fields_and_field_instances
 
- /**
 
-  * Implement hook_entity_info().
 
-  */
 
- function tripal_entities_entity_info() {
 
-   $entities = array();
 
-   $entities['BioData'] = array (
 
-     // A human readable label to identify our entity.
 
-     'label' => 'Biological Data',
 
-     'plural label' => 'Biological Data',
 
-     // The entity class and controller class extend the classes provided by the
 
-     // Entity API.
 
-     'entity class' => 'TripalEntity',
 
-     'controller class' => 'TripalEntityController',
 
-     // The table for this entity defined in hook_schema()
 
-     'base table' => 'tripal_entity',
 
-     // Returns the uri elements of an entity.
 
-     'uri callback' => 'tripal_entities_vocbulary_term_uri',
 
-     // IF fieldable == FALSE, we can't attach fields.
 
-     'fieldable' => TRUE,
 
-     // entity_keys tells the controller what database fields are used for key
 
-     // functions. It is not required if we don't have bundles or revisions.
 
-     // Here we do not support a revision, so that entity key is omitted.
 
-     'entity keys' => array (
 
-       'id' => 'id',
 
-       'bundle' => 'bundle'
 
-     ),
 
-     'bundle keys' => array (
 
-       'bundle' => 'bundle'
 
-     ),
 
-     // Callback function for access to this entity.
 
-     'access callback' => 'tripal_entity_access',
 
-     // FALSE disables caching. Caching functionality is handled by Drupal core.
 
-     'static cache' => FALSE,
 
-     // Bundles are added dynamically below.
 
-     'bundles' => array (),
 
-     'label callback' => 'tripal_entity_label',
 
-     // The information below is used by the TripalEntityUIController
 
-     // (which extends the EntityDefaultUIController). The admin_ui
 
-     // key here is mean to appear on the 'Find Content' page of the
 
-     // administrative menu.
 
-     'admin ui' => array (
 
-       'path' => 'admin/content/BioData',
 
-       'controller class' => 'TripalEntityUIController',
 
-       'menu wildcard' => '%tripal_entity',
 
-       'file' => 'includes/TripalEntityUIController.inc'
 
-     ),
 
-     'view modes' => array (
 
-       'full' => array (
 
-         'label' => t ('Full content'),
 
-         'custom settings' => FALSE
 
-       ),
 
-       'teaser' => array (
 
-         'label' => t ('Teaser'),
 
-         'custom settings' => TRUE
 
-       )
 
-     )
 
-   );
 
-   // The entity that holds information about the entity types.
 
-   $entities['BioData_bundles'] = array (
 
-     'label' => 'Biological Data Type', //$voc->db_id->name . ' (' . $voc->cv_id->name . ') Data Type',
 
-     'entity class' => 'TripalBundle',
 
-     'controller class' => 'TripalBundleController',
 
-     'base table' => 'tripal_bundle',
 
-     'fieldable' => FALSE,
 
-     'bundle of' => 'BioData',
 
-     'exportable' => FALSE,
 
-     'entity keys' => array (
 
-       'id' => 'id',
 
-       'name' => 'bundle',
 
-       'label' => 'label'
 
-     ),
 
-     'access callback' => 'tripal_bundle_access',
 
-     'module' => 'tripal_entities',
 
-     // Enable the entity API's admin UI.
 
-     'admin ui' => array (
 
-       'path' => 'admin/structure/BioData',
 
-       'controller class' => 'TripalBundleUIController',
 
-       'file' => 'includes/TripalBundleUIController.inc',
 
-       'menu wildcard' => '%tripal_bundle',
 
-     )
 
-   );
 
-   // Dynamically add in the bundles. Bundles are alternative groups of fields
 
-   // or configuration associated with an entity type .We want to dynamically
 
-   // add the bundles to the entity.
 
-   $published_terms = chado_generate_var('tripal_term', array('publish' => 1), array('return_array' => 1));
 
-   foreach ($published_terms as $term) {
 
-     $cvterm = $term->cvterm_id;
 
-     $bundle_id = 'dbxref_' . $cvterm->dbxref_id->dbxref_id;
 
-     $label = preg_replace('/_/', ' ', ucwords($cvterm->name));
 
-     $entities['BioData']['bundles'][$bundle_id] = array (
 
-       'label' => $label,
 
-       'admin' => array (
 
-         'path' => 'admin/structure/BioData/manage/%tripal_bundle',
 
-         'real path' => 'admin/structure/BioData/manage/' . $bundle_id,
 
-         'bundle argument' => 4,
 
-         'access arguments' => array (
 
-           'administer tripal data types'
 
-         )
 
-       )
 
-     );
 
-   }
 
-   return $entities;
 
- }
 
- /**
 
-  * Get published vocabularies as select options
 
-  * @return multitype:NULL
 
-  */
 
- function tripal_entities_get_published_vocabularies_as_select_options() {
 
-   $published_vocs = chado_generate_var('tripal_vocabulary', array('publish' => 1), array('return_array' => 1));
 
-   $options = array();
 
-   foreach ($published_vocs as $voc) {
 
-     $options [$voc->cv_id->cv_id] = $voc->cv_id->name;
 
-   }
 
-   return $options;
 
- }
 
- /**
 
-  * Get published vocabularies as select options
 
-  * @return multitype:NULL
 
-  */
 
- function tripal_entities_get_db_names_for_published_vocabularies() {
 
-   $published_vocs = chado_generate_var('tripal_vocabulary', array('publish' => 1), array('return_array' => 1));
 
-   $db = array();
 
-   foreach ($published_vocs as $voc) {
 
-     $db [$voc->db_id->db_id] = $voc->db_id->name;
 
-   }
 
-   return $db;
 
- }
 
- /**
 
-  * Get published terms as select options
 
-  * @return multitype:NULL
 
-  */
 
- function tripal_entities_get_published_terms_as_select_options($cv_id = NULL) {
 
-   $where = array('publish' => 1);
 
-   $published_terms = chado_generate_var('tripal_term', $where, array('return_array' => 1));
 
-   $options = array();
 
-   foreach ($published_terms as $term) {
 
-     if (!$cv_id) {
 
-       $options [$term->cvterm_id->name] = $term->cvterm_id->name;
 
-     }
 
-     else {
 
-       if ($term->cvterm_id->cv_id->cv_id == $cv_id) {
 
-         $options [$term->cvterm_id->name] = $term->cvterm_id->name;
 
-       }
 
-     }
 
-   }
 
-   return $options;
 
- }
 
- /**
 
-  * Menu argument loader; Load a tripal data type by string.
 
-  *
 
-  * @param $type
 
-  *   The machine-readable name of a tripal data type to load.
 
-  * @return
 
-  *   A tripal data type array or FALSE if $type does not exist.
 
-  */
 
- function tripal_bundle_load($bundle_type, $reset = FALSE) {
 
-   // Get the type of entity by the ID.
 
-   $bundle_types = db_select('tripal_bundle', 'tdt')
 
-     ->fields('tdt', array('id', 'type'))
 
-     ->condition('bundle', $bundle_type)
 
-     ->execute()
 
-     ->fetchObject();
 
-   if ($bundle_types) {
 
-     $entity = entity_load('BioData_bundles', array($bundle_types->id), array(), $reset);
 
-     return reset($entity);
 
-   }
 
-   return FALSE;
 
- }
 
- /**
 
-  * Allows the menu system to use a wildcard to fetch the entity.
 
-  *
 
-  * Make sure that the wildcard you choose in the tripal_entity entity
 
-  * definition fits the function name here.
 
-  *
 
-  * @param $id
 
-  *   Integer specifying the tripal_entity id.
 
-  * @param $reset
 
-  *   A boolean indicating that the internal cache should be reset.
 
-  * @return
 
-  *   A fully-loaded $tripal_entity object or FALSE if it cannot be loaded.
 
-  *
 
-  * @see tripal_entity_load_multiple()
 
-  */
 
- function tripal_entity_load($id, $reset = FALSE) {
 
-     $entity = entity_load('BioData', array($id), array(), $reset);
 
-     return reset($entity);
 
- }
 
 
  |