Browse Source

plugin search course: support anonymous user, list open courses, remove registration #4597

Laurent Opprecht 13 years ago
parent
commit
0adb2748e5
1 changed files with 20 additions and 6 deletions
  1. 20 6
      plugin/search_course/lib/search_course_widget.class.php

+ 20 - 6
plugin/search_course/lib/search_course_widget.class.php

@@ -69,7 +69,7 @@ class SearchCourseWidget
 
         return $url == $index_url || $url == $root;
     }
-    
+
     /**
      *
      * @return bool
@@ -245,13 +245,16 @@ EOT;
             $details = implode(' - ', $details);
             $title = $course['title'];
 
-            $href = api_get_path(WEB_PATH) . 'courses/' . $course['code'];
+            $href = api_get_path(WEB_PATH) . 'courses/' . $course['code'] .'/index.php';
             echo '<tr><td><b><a href="' . $href . '">' . "$title</a></b><br/>$details</td><td>";
-            if ($course['registration_code'])
+            if (!api_is_anonymous())
             {
-                Display::display_icon('passwordprotected.png', '', array('style' => 'float:left;'));
+                if ($course['registration_code'])
+                {
+                    Display::display_icon('passwordprotected.png', '', array('style' => 'float:left;'));
+                }
+                $this->display_subscribe_icon($course, $user_courses);
             }
-            $this->display_subscribe_icon($course, $user_courses);
             echo '</td></tr>';
         }
         echo '</table>';
@@ -333,9 +336,20 @@ EOT;
         $search_term = Database::escape_string($search_term);
         $course_table = Database::get_main_table(TABLE_MAIN_COURSE);
 
+        if (api_is_anonymous())
+        {
+            $course_fiter = 'visibility = ' . COURSE_VISIBILITY_OPEN_WORLD;
+        }
+        else
+        {
+            $course_fiter = 'visibility = ' . COURSE_VISIBILITY_OPEN_WORLD . ' OR ';
+            $course_fiter .= 'visibility = ' . COURSE_VISIBILITY_OPEN_PLATFORM . ' OR ';
+            $course_fiter .= '(visibility = ' . COURSE_VISIBILITY_REGISTERED . ' AND subscribe = 1)';
+        }
+
         $sql = <<<EOT
                 SELECT * FROM $course_table 
-                WHERE code LIKE '%$search_term%' OR visual_code LIKE '%$search_term%' OR title LIKE '%$search_term%' OR tutor_name LIKE '%$search_term%' 
+                WHERE ($course_fiter) AND (code LIKE '%$search_term%' OR visual_code LIKE '%$search_term%' OR title LIKE '%$search_term%' OR tutor_name LIKE '%$search_term%') 
                 ORDER BY title, visual_code ASC      
 EOT;