Browse Source

Removing session category and course calls, using 2 functions get session and get_session_admin_complete to see more session details

Julio Montoya 12 years ago
parent
commit
ec383d6949
1 changed files with 64 additions and 120 deletions
  1. 64 120
      main/inc/lib/sessionmanager.lib.php

+ 64 - 120
main/inc/lib/sessionmanager.lib.php

@@ -148,49 +148,7 @@ class SessionManager {
     
     static function get_count_admin() {
         $tbl_session            = Database::get_main_table(TABLE_MAIN_SESSION);
-        $tbl_session_category   = Database::get_main_table(TABLE_MAIN_SESSION_CATEGORY);        
-        $tbl_user               = Database::get_main_table(TABLE_MAIN_USER);
-
-        $where = 'WHERE 1 = 1 ';
-        $user_id = api_get_user_id();
-        
-        if (api_is_session_admin() && api_get_setting('allow_session_admins_to_see_all_sessions') == 'false') {
-            $where.=" WHERE s.session_admin_id = $user_id ";
-        }
         
-        $query_rows = "SELECT count(*) as total_rows
-         FROM $tbl_session s
-            LEFT JOIN  $tbl_session_category sc ON s.session_category_id = sc.id
-            INNER JOIN $tbl_user u ON s.id_coach = u.user_id
-         $where ";
-         
-        global $_configuration;
-        if ($_configuration['multiple_access_urls']) {
-            $table_access_url_rel_session= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
-            $access_url_id = api_get_current_access_url_id();
-            if ($access_url_id != -1) {
-                $where.= " AND ar.access_url_id = $access_url_id ";
-                
-                $query_rows = "SELECT count(*) as total_rows
-                 FROM $tbl_session s
-                    LEFT JOIN  $tbl_session_category sc ON s.session_category_id = sc.id
-                    INNER JOIN $tbl_user u ON s.id_coach = u.user_id
-                    INNER JOIN $table_access_url_rel_session ar ON ar.session_id = s.id
-                 $where ";
-            }
-        }
-        $result_rows = Database::query($query_rows);
-        $recorset = Database::fetch_array($result_rows);
-        $num = $recorset['total_rows'];
-        return $num;    
-    }
-    
-    
-    static function get_count_admin_complete() {
-        $tbl_session            = Database::get_main_table(TABLE_MAIN_SESSION);
-        $tbl_session_category   = Database::get_main_table(TABLE_MAIN_SESSION_CATEGORY);        
-        $tbl_user               = Database::get_main_table(TABLE_MAIN_USER);
-
         $where = 'WHERE 1 = 1 ';
         $user_id = api_get_user_id();
         
@@ -198,11 +156,7 @@ class SessionManager {
             $where.=" WHERE s.session_admin_id = $user_id ";
         }
         
-        $query_rows = "SELECT count(*) as total_rows
-         FROM $tbl_session s
-            LEFT JOIN  $tbl_session_category sc ON s.session_category_id = sc.id
-            INNER JOIN $tbl_user u ON s.id_coach = u.user_id
-         $where ";
+        $query_rows = "SELECT count(*) as total_rows FROM $tbl_session s $where ";
          
         global $_configuration;
         if ($_configuration['multiple_access_urls']) {
@@ -211,30 +165,25 @@ class SessionManager {
             if ($access_url_id != -1) {
                 $where.= " AND ar.access_url_id = $access_url_id ";
                 
-                $query_rows = "SELECT count(*) as total_rows
-                 FROM $tbl_session s
-                    LEFT JOIN  $tbl_session_category sc ON s.session_category_id = sc.id
-                    INNER JOIN $tbl_user u ON s.id_coach = u.user_id
-                    INNER JOIN $table_access_url_rel_session ar ON ar.session_id = s.id
-                 $where ";
+                $query_rows = "SELECT COUNT(*) as total_rows 
+                               FROM $tbl_session s
+                               INNER JOIN $table_access_url_rel_session ar 
+                               ON ar.session_id = s.id $where ";
             }
         }
         $result_rows = Database::query($query_rows);
-        $recorset = Database::fetch_array($result_rows);
-        $num = $recorset['total_rows'];
+        $row = Database::fetch_array($result_rows);
+        $num = $row['total_rows'];
         return $num;    
-    }
+    }    
     
     /**
      * Gets the admin session list callback of the admin/session_list.php page
      * @param array order and limit keys
      */
     public static function get_sessions_admin($options = array()) {
-        $tbl_session            = Database::get_main_table(TABLE_MAIN_SESSION);
-        $tbl_session_category   = Database::get_main_table(TABLE_MAIN_SESSION_CATEGORY);        
-        $tbl_user               = Database::get_main_table(TABLE_MAIN_USER);      
-        $tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);        
-        $tbl_course             = Database::get_main_table(TABLE_MAIN_COURSE);        
+        $tbl_session            = Database::get_main_table(TABLE_MAIN_SESSION);                     
+        //$tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
         $tbl_session_field_values = Database::get_main_table(TABLE_MAIN_SESSION_FIELD_VALUES);
         $tbl_session_field_options = Database::get_main_table(TABLE_MAIN_SESSION_FIELD_OPTIONS);
                 
@@ -244,17 +193,8 @@ class SessionManager {
         if (api_is_session_admin() && api_get_setting('allow_session_admins_to_manage_all_sessions') == 'false') {
             $where.=" AND s.session_admin_id = $user_id ";
         }
-
-        $coach_name = " CONCAT (u.lastname , ' ', u.firstname) as coach_name ";
-
-        if (api_is_western_name_order()) {            
-            $coach_name = " CONCAT (u.firstname, ' ', u.lastname) as coach_name ";
-        }        
-
-        $today = api_get_utc_datetime();   
         
-        $inject_extra_fields = null;
-                
+        $inject_extra_fields = null;                
         $extra_fields = array();
         $extra_fields_info = array();
         
@@ -290,41 +230,21 @@ class SessionManager {
             $my_options = $extra_field_option->get_field_options_by_field($double['id'], true);
             $options_by_double['extra_'.$double['field_variable']] = $my_options;            
         }
-                  
-        //var_dump($options_by_double);
-        //sc.name as category_name,         
+        
         $select = 
-                "SELECT * FROM ( ".
-                "    SELECT DISTINCT ".
-//                "    SELECT DISTINCT ".
-//                "        IF ( ".
-//                "            (s.access_start_date <= '$today' AND '$today' < s.access_end_date) OR ".
-//                "            (s.access_start_date  = '0000-00-00 00:00:00' AND s.access_end_date  = '0000-00-00 00:00:00' ) OR ".
-//                "           (s.access_start_date <= '$today' AND '0000-00-00 00:00:00' = s.access_end_date) OR ".
-//                "            ('$today' < s.access_end_date AND '0000-00-00 00:00:00' = s.access_start_date) ".
-//                "        , 1, 0) as session_active, ".
-//                " 1 as session_active, ".
+                "SELECT * FROM ( SELECT DISTINCT ".
                 " s.name, ".
-//                " s.nbr_courses, ". 
-//                " s.nbr_users, ".
                 " s.display_start_date, ".
                 " s.display_end_date, ".
-//                " $coach_name, ".
                 " access_start_date, ".
                 " access_end_date, ".
                 " s.visibility, ".
-//                " u.user_id, ".
                 " $inject_extra_fields ".
-//                " c.title as course_title, ".
                 " s.id ";
         
-        if (!empty($options['where'])) {
-            //var_dump($inject_extra_fields);
-            //var_dump($options);
-            if (!empty($options['extra'])) {                
-                 
-                $options['where'] = str_replace(' 1 = 1  AND', '', $options['where']);
-                //var_dump($options['where']);
+        if (!empty($options['where'])) {        
+            if (!empty($options['extra'])) {
+                $options['where'] = str_replace(' 1 = 1  AND', '', $options['where']);                
                 $options['where'] = str_replace('AND', 'OR', $options['where']);
                 
                 foreach ($options['extra'] as $extra) {
@@ -339,17 +259,10 @@ class SessionManager {
         if (!empty($options['limit'])) {            
             $where .= " LIMIT ".$options['limit'];
         }
-        
-        //LEFT JOIN $tbl_course c ON (src.course_id = c.id)
-        //LEFT JOIN $tbl_course c ON (src.course_code = c.code)
-        //INNER JOIN $tbl_course c ON (src.course_code = c.code OR src.course_code = NULL)
+        //" LEFT JOIN $tbl_session_rel_course src ON (src.id_session = s.id) ".
         $query = "$select FROM $tbl_session s ".
                     " LEFT JOIN $tbl_session_field_values fv ON (fv.session_id = s.id) ".
-                    " INNER JOIN $tbl_session_field_options fvo ON (fv.field_id = fv.field_id) ".
-                    " LEFT JOIN $tbl_session_rel_course src ON (src.id_session = s.id) ".
-//                    " LEFT JOIN $tbl_course c ON (src.course_code = c.code) ".
-                    " LEFT JOIN $tbl_session_category sc ON (s.session_category_id = sc.id) ".
-//                    " INNER JOIN $tbl_user u ON (s.id_coach = u.user_id) ".
+                    " INNER JOIN $tbl_session_field_options fvo ON (fv.field_id = fv.field_id) ".                    
                     $where;
         
         global $_configuration;
@@ -357,15 +270,12 @@ class SessionManager {
         if ($_configuration['multiple_access_urls']) {
             $table_access_url_rel_session= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
             $access_url_id = api_get_current_access_url_id();
+            //" LEFT JOIN $tbl_session_rel_course src ON (src.id_session = s.id) ".
             if ($access_url_id != -1) {
                 $where.= " AND ar.access_url_id = $access_url_id ";
                 $query = "$select ".
                     " FROM $tbl_session s ".
-                    " LEFT JOIN $tbl_session_field_values fv ON (fv.session_id = s.id) ".
-                    " LEFT JOIN $tbl_session_rel_course src ON (src.id_session = s.id) ".
-//                    " LEFT JOIN $tbl_course c ON (src.course_code = c.code) ".
-                    " LEFT JOIN $tbl_session_category sc ON (s.session_category_id = sc.id) ".
-//                    " INNER JOIN $tbl_user u ON (s.id_coach = u.user_id) ".
+                    " LEFT JOIN $tbl_session_field_values fv ON (fv.session_id = s.id) ".                    
                     " INNER JOIN $table_access_url_rel_session ar ON (ar.session_id = s.id) ".
                     " $where";
             }
@@ -376,8 +286,7 @@ class SessionManager {
         if (!empty($options['order'])) { 
             $query .= " ORDER BY ".$options['order'];
         }        
-        error_log($query);
-       // echo $query;
+        error_log($query);       
         
         $result = Database::query($query);
         $formatted_sessions = array();
@@ -387,9 +296,7 @@ class SessionManager {
             foreach ($sessions as $session) {
                 $session_id = $session['id'];
                 $session['name'] = Display::url($session['name'], "resume_session.php?id_session=".$session['id']);
-
-//                $session['coach_name'] = Display::url($session['coach_name'], "user_information.php?user_id=".$session['user_id']);
-
+                
                 if ($session['session_active'] == 1) {
                     $session['session_active'] = Display::return_icon('accept.png', get_lang('Active'), array(), ICON_SIZE_SMALL);
                 } else {
@@ -437,21 +344,58 @@ class SessionManager {
                     }
                 }
                 
-                //Magic filter
-                
                 if (isset($formatted_sessions[$session_id])) {                    
+                    //Compare and filter sessions with the same content
                     $formatted_sessions[$session_id] = self::compare_arrays_to_merge($formatted_sessions[$session_id], $session);                    
                 } else {
                     $formatted_sessions[$session_id] = $session;
-                }
-                //$formatted_sessions[] = $session;
+                }                
             }
         }        
-        
         return $formatted_sessions;
     }    
     
     
+    static function get_count_admin_complete() {
+        $tbl_session            = Database::get_main_table(TABLE_MAIN_SESSION);
+        $tbl_session_category   = Database::get_main_table(TABLE_MAIN_SESSION_CATEGORY);        
+        $tbl_user               = Database::get_main_table(TABLE_MAIN_USER);
+
+        $where = 'WHERE 1 = 1 ';
+        $user_id = api_get_user_id();
+        
+        if (api_is_session_admin() && api_get_setting('allow_session_admins_to_see_all_sessions') == 'false') {
+            $where.=" WHERE s.session_admin_id = $user_id ";
+        }
+        
+        $query_rows = "SELECT count(*) as total_rows
+         FROM $tbl_session s
+            LEFT JOIN  $tbl_session_category sc ON s.session_category_id = sc.id
+            INNER JOIN $tbl_user u ON s.id_coach = u.user_id
+         $where ";
+         
+        global $_configuration;
+        if ($_configuration['multiple_access_urls']) {
+            $table_access_url_rel_session= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
+            $access_url_id = api_get_current_access_url_id();
+            if ($access_url_id != -1) {
+                $where.= " AND ar.access_url_id = $access_url_id ";
+                
+                $query_rows = "SELECT count(*) as total_rows
+                 FROM $tbl_session s
+                    LEFT JOIN  $tbl_session_category sc ON s.session_category_id = sc.id
+                    INNER JOIN $tbl_user u ON s.id_coach = u.user_id
+                    INNER JOIN $table_access_url_rel_session ar ON ar.session_id = s.id
+                 $where ";
+            }
+        }
+        $result_rows = Database::query($query_rows);
+        $recorset = Database::fetch_array($result_rows);
+        $num = $recorset['total_rows'];
+        return $num;    
+    }
+    
+    
     /**
      * Gets the admin session list callback of the admin/session_list.php page with all user/details
      * @param array order and limit keys