12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- <?php
- // require_once "PHPExcel/Classes/PHPExcel.php";
- /*************************************************************************
- * tripal_search_unigene_init
- */
- function tripal_search_unigene_init(){
- drupal_add_css(drupal_get_path('theme', 'tripal').'/css/tripal_search_unigene.css');
- drupal_add_js(drupal_get_path('theme', 'tripal').'/js/tripal_search_unigene.js');
- }
- /*************************************************************************
- * tripal_search_unigene_views_api
- */
- function tripal_search_unigene_views_api() {
- return array(
- 'api' => 2.0,
- );
- }
- // A function to rewrite the SQL statement before submitting the query
- // Force GROUP BY feature_id and return only one row
- function tripal_search_unigene_views_pre_execute(&$view){
- if ($view->name == 'unigene_search') {
- // AGGREGATORS
- $search = array('SELECT');
- $replace = array('SELECT min(');
- $view->build_info['query'] = str_replace($search, $replace, $view->build_info['query']);
- $view->build_info['count_query'] = str_replace($search, $replace, $view->build_info['count_query']);
-
- $search = array(',');
- $replace = array(', min(');
- $view->build_info['query'] = str_replace($search, $replace, $view->build_info['query']);
- $view->build_info['count_query'] = str_replace($search, $replace, $view->build_info['count_query']);
-
- $search = array(' AS ');
- $replace = array(') AS ');
- $view->build_info['query'] = str_replace($search, $replace, $view->build_info['query']);
- $view->build_info['count_query'] = str_replace($search, $replace, $view->build_info['count_query']);
- // GROUP BY
- if (preg_match("'ORDER BY'", $view->build_info['query'])) {
- $search = array('ORDER BY');
- $replace = array('GROUP BY unigene_for_search.feature_id ORDER BY');
- $view->build_info['query'] = str_replace($search, $replace, $view->build_info['query']);
- } else {
- $view->build_info['query'] .= " GROUP BY unigene_for_search.feature_id";
- }
- $view->build_info['count_query'] .= " GROUP BY unigene_for_search.feature_id";
-
- //drupal_set_message($view->build_info['query']);
- //drupal_set_message($view->build_info['count_query']);
-
- }
- }
|