123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252 |
- <?php
- require_once "charts.php";
- require_once "trees.php";
- //
- // Copyright 2009 Clemson University
- //
- /*************************************************************************
- *
- */
- function tripal_cv_init(){
- // add the tripal_cv JS and CSS
- drupal_add_css(drupal_get_path('theme', 'tripal').
- '/css/tripal_cv.css');
- drupal_add_js(drupal_get_path('theme', 'tripal').'/js/tripal_cv.js');
- // add the jsTree JS and CSS
- drupal_add_css(drupal_get_path('theme', 'tripal').'/js/jsTree/source/tree_component.css');
- drupal_add_js (drupal_get_path('theme', 'tripal').'/js/jsTree/source/_lib.js');
- drupal_add_js (drupal_get_path('theme', 'tripal').'/js/jsTree/source/tree_component.js');
- }
- /*************************************************************************
- *
- */
- function tripal_cv_menu() {
- $items = array();
- $items['admin/tripal/tripal_cv'] = array(
- 'title' => 'CV',
- 'description' => 'Manage integration of Chado controlled vocabularies',
- 'page callback' => 'drupal_get_form',
- 'page arguments' => array('tripal_cv_admin'),
- 'access arguments' => array('administer site configuration'),
- 'type' => MENU_NORMAL_ITEM,
- );
- $items['tripal_cv_chart'] = array(
- 'path' => 'tripal_cv_chart',
- 'title' => t('CV Chart'),
- 'page callback' => 'tripal_cv_chart',
- 'page arguments' => array(1),
- 'access arguments' => array('access content'),
- 'type' => MENU_CALLBACK
- );
- $items['tripal_cv_tree'] = array(
- 'path' => 'tripal_cv_tree',
- 'title' => t('CV Term Viewer'),
- 'page callback' => 'tripal_cv_tree',
- 'page arguments' => array(1),
- 'access arguments' => array('access content'),
- 'type' => MENU_CALLBACK
- );
- // menu items for working with the CV module tree browser
- /*
- $items['cv_browser'] = array(
- 'title' => t('CV Relationship Browser'),
- 'page callback' => 'tripal_cv_show_browser',
- 'access arguments' => array('access chado_cv content'),
- 'type' => MENU_NORMAL_ITEM
- );
- */
- $items['tripal_cv_init_browser'] = array(
- 'path' => 'tripal_cv_init_browser',
- 'title' => t('CV Browser'),
- 'page callback' => 'tripal_cv_init_browser',
- 'page arguments' => array(1),
- 'access arguments' => array('access content'),
- 'type' => MENU_CALLBACK
- );
- // menu item for interaction with the tree
- $items['tripal_cv_update_tree'] = array(
- 'path' => 'tripal_cv_update_tree',
- 'title' => t('CV Tree'),
- 'page callback' => 'tripal_cv_update_tree',
- 'page arguments' => array(2,3),
- 'access arguments' => array('access content'),
- 'type' => MENU_CALLBACK
- );
- // menu items for working with terms
- $items['tripal_cv_cvterm_info'] = array(
- 'path' => 'tripal_cv_cvterm_info',
- 'title' => t('CV Term Viewer'),
- 'page callback' => 'tripal_cv_cvterm_info',
- 'page arguments' => array(1),
- 'access arguments' => array('access content'),
- 'type' => MENU_CALLBACK
- );
- $items['tripal_cv_cvterm_edit'] = array(
- 'path' => 'tripal_cv_edit',
- 'title' => t('CV Term Editor'),
- 'page callback' => 'tripal_cv_cvterm_edit',
- 'page arguments' => array(1),
- 'access arguments' => array('edit chado_cv content'),
- 'type' => MENU_CALLBACK
- );
- return $items;
- }
- /*******************************************************************************
- * The following function proves access control for users trying to
- * perform actions on data managed by this module
- */
- function chado_cv_access($op, $node, $account){
- if ($op == 'create') {
- return user_access('create chado_cv content', $account);
- }
- if ($op == 'update') {
- if (user_access('edit chado_cv content', $account)) {
- return TRUE;
- }
- }
- if ($op == 'delete') {
- if (user_access('delete chado_cv content', $account)) {
- return TRUE;
- }
- }
- if ($op == 'view') {
- if (user_access('access chado_cv content', $account)) {
- return TRUE;
- }
- }
- return FALSE;
- }
- /*******************************************************************************
- * Set the permission types that the chado module uses. Essentially we
- * want permissionis that protect creation, editing and deleting of chado
- * data objects
- */
- function tripal_cv_perm(){
- return array(
- 'access chado_cv content',
- 'create chado_cv content',
- 'delete chado_cv content',
- 'edit chado_cv content',
- );
- }
- /*************************************************************************
- *
- */
- function tripal_cv_admin () {
- $form['update_cvtermpath'] = array(
- '#type' => 'fieldset',
- '#title' => t('Chado cvtermpath')
- );
- $form['update_cvtermpath']['description'] = array(
- '#type' => 'item',
- '#value' => t("Submit a job to update chado cvtermpath table."),
- '#weight' => 1,
- );
- $form['update_cvtermpath']['button'] = array(
- '#type' => 'submit',
- '#value' => t('Update cvtermpath'),
- '#weight' => 2,
- );
- return system_settings_form($form);
- }
- /*************************************************************************
- *
- */
- function tripal_cv_admin_validate($form, &$form_state) {
- global $user;
- // -------------------------------------
- // Submit a job to update cvtermpath
- $job_args = array();
- if ($form_state['values']['op'] == t('Update cvtermpath')) {
- tripal_add_job('Update cvtermpath','tripal_cv',
- 'tripal_cv_update_cvtermpath',$job_args,$user->uid);
- }
- }
- /***********************************************************
- * Update the cvtermpath table
- */
- function tripal_cv_update_cvtermpath($dummy = NULL, $job_id = NULL) {
- print "\nUpdating cvtermpath...\n";
- $previous_db = db_set_active('chado');
- $sql = "SELECT * FROM fill_cvtermpath('biological_process')";
- db_query($sql);
- $sql = "SELECT * FROM fill_cvtermpath('molecular_function')";
- db_query($sql);
- $sql = "SELECT * FROM fill_cvtermpath('cellular_component')";
- db_query($sql);
- db_set_active($previous_db);
- return;
- }
- /*******************************************************************************
- * We need to let drupal know about our theme functions and their arguments.
- * We create theme functions to allow users of the module to customize the
- * look and feel of the output generated in this module
- */
- function tripal_cv_theme () {
- return array(
- 'tripal_cv_cvterm_edit' => array (
- 'arguments' => array('cvterm'),
- ),
- );
- }
- /*************************************************************************
- */
- function tripal_cv_get_cv_id($cv_name){
- $sql = "
- SELECT cv_id FROM {cv} WHERE name = '%s'
- ";
- $previous_db = db_set_active('chado');
- $cv = db_fetch_object(db_query($sql,$cv_name));
- db_set_active($previous_db);
- return $cv->cv_id;
- }
- /*************************************************************************
- *
- */
- function tripal_cv_cvterm_edit($cvterm_id){
- $sql = "
- SELECT CVT.name as cvtermname, CVT.definition, CV.name as cvname
- FROM {CVTerm} CVT
- INNER JOIN CV on CVT.cv_id = CV.cv_id
- WHERE CVT.cvterm_id = %d
- ";
- $previous_db = db_set_active('chado');
- $cvterm = db_fetch_object(db_query($sql,$cvterm_id));
- db_set_active($previous_db);
- return theme('tripal_cv_cvterm_edit',$cvterm);
- }
- /*************************************************************************
- *
- */
- function theme_tripal_cv_cvterm_edit(&$cvterm){
- $output = "
- <div id=\"cvterm\">
- <table>
- <tr><th>Term</th><td>$cvterm->cvtermname</td></tr>
- <tr><th>Vocabulary</th><td>$cvterm->cvname</td></tr>
- <tr><th>Definition</th><td>$cvterm->definition</td></tr>
- </table>
- </div>
- ";
- return $output;
- }
|