1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- <?php
- /**
- * Because the nd_experiment_id can be associated with projects, phenotypes,
- * stocks, genotypes, etc. it becomes slow to allow the template to use the
- * chado_expand_var function to traverse the FK relationships. Ideally
- * we would use the chado_expand_var function to only return a subset of
- * paged results. This function queries for all of the nd_experiment_genotypes
- * that share an nd_experiment_id with a stock
- *
- * @param $variables
- * The list of variables that will be passed into the template
- */
- function tripal_natural_diversity_preprocess_tripal_stock_nd_genotypes(&$variables) {
- $stock = $variables['node']->stock;
- // because the nd_experiment_id value can be used to associate projects, genotypes,
- // phenotypes, etc, we must do an inner join to only pull out those that
- // associate a stock to a genotype.
- $sql = "
- SELECT NDEG.nd_experiment_genotype_id
- FROM {nd_experiment_stock} NDES
- INNER JOIN {nd_experiment_genotype} NDEG ON NDEG.nd_experiment_id = NDES.nd_experiment_id
- WHERE NDES.stock_id = :stock_id
- ";
- $results = chado_query($sql, [':stock_id' => $stock->stock_id]);
- $nd_exp_ids = [];
- foreach ($results as $result) {
- $nd_exp_ids[] = $result->nd_experiment_genotype_id;
- }
- $stock->nd_experiment_genotype_ids = $nd_exp_ids;
- }
- /**
- * Because the nd_experiment_id can be associated with projects, phenotypes,
- * stocks, genotypes, etc. it becomes slow to allow the template to use the
- * chado_expand_var function to traverse the FK relationships. Ideally
- * we would use the chado_expand_var function to only return a subset of
- * paged results. This function queries for all of the nd_experiment_phenotypes
- * that share an nd_experiment_id with a stock
- *
- * @param $variables
- * The list of variables that will be passed into the template
- */
- function tripal_natural_diversity_preprocess_tripal_stock_nd_phenotypes(&$variables) {
- $stock = $variables['node']->stock;
- // because the nd_experiment_id value can be used to associate projects, phenotypes,
- // phenotypes, etc, we must do an inner join to only pull out those that
- // associate a stock to a phenotype.
- $sql = "
- SELECT NDEP.nd_experiment_phenotype_id
- FROM {nd_experiment_stock} NDES
- INNER JOIN {nd_experiment_phenotype} NDEP ON NDEP.nd_experiment_id = NDES.nd_experiment_id
- WHERE NDES.stock_id = :stock_id
- ";
- $results = chado_query($sql, [':stock_id' => $stock->stock_id]);
- $nd_exp_ids = [];
- foreach ($results as $result) {
- $nd_exp_ids[] = $result->nd_experiment_phenotype_id;
- }
- $stock->nd_experiment_phenotype_ids = $nd_exp_ids;
- }
|