diff --git a/main/attendance/index.php b/main/attendance/index.php index 49c2f643ee..b7f5c734ee 100644 --- a/main/attendance/index.php +++ b/main/attendance/index.php @@ -1,29 +1,163 @@ , Ghent University, Belgium, refactoring and tighter integration in Dokeos - */ +* Template (front controller in MVC pattern) used for distpaching to the controllers depend on the current action +* @author Christian Fasanando +* @author Carlos Vargas (link to attendance tool ) +* @package chamilo.attendance +*/ // name of the language file that needs to be included -$language_file = array('userInfo'); +$language_file = array ('userInfo'); -// including the global dokeos file +// including files require_once '../inc/global.inc.php'; +require_once api_get_path(LIBRARY_PATH).'attendance.lib.php'; +require_once api_get_path(LIBRARY_PATH).'app_view.php'; +require_once 'attendance_controller.php'; +require_once api_get_path(LIBRARY_PATH).'usermanager.lib.php'; +require_once api_get_path(LIBRARY_PATH).'course.lib.php'; +require_once api_get_path(LIBRARY_PATH).'sortabletable.class.php'; +require_once api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php'; +require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/gradebook_functions.inc.php'; + + +// current section +$this_section = SECTION_COURSES; + +// protect a course script +api_protect_course_script(true); + +// defining constants and variables +$calendar_id = ''; +if (isset($_GET['calendar_id'])) { + $calendar_id = intval($_GET['calendar_id']); +} + +// get actions +$actions = array('attendance_list', 'attendance_sheet_list', 'attendance_sheet_add', 'attendance_add', 'attendance_edit', 'attendance_delete', 'attendance_delete_select'); +$actions_calendar = array('calendar_list', 'calendar_add', 'calendar_edit', 'calendar_delete', 'calendar_all_delete'); +$action = 'attendance_list'; +if (isset($_GET['action']) && (in_array($_GET['action'],$actions) || in_array($_GET['action'],$actions_calendar))) { + $action = $_GET['action']; +} + +// get attendance id +$attendance_id = 0; +if (isset($_GET['attendance_id'])) { + $attendance_id = intval($_GET['attendance_id']); +} + +// instance object attendance for using like library here +$attendance = new Attendance(); + +// attendance controller object +$attendance_controller = new AttendanceController(); + +if (!empty($attendance_id)) { + // attendance data by id + $attendance_data = $attendance->get_attendance_by_id($attendance_id); +} + +$htmlHeadXtra[] = ''; +$htmlHeadXtra[] = ''; +$htmlHeadXtra[] = ''; +$htmlHeadXtra[] = ''; -// setting the tool constants -$tool = TOOL_ATTENDANCE; -// displaying the header -Display::display_header(get_lang(ucfirst($tool))); -// Tool introduction -Display::display_introduction_section(TOOL_NOTEBOOK); +// interbreadcrumbs +if (!empty($_GET['gradebook']) && $_GET['gradebook']=='view' ) { + $_SESSION['gradebook']=Security::remove_XSS($_GET['gradebook']); + $gradebook= $_SESSION['gradebook']; +} elseif (empty($_GET['gradebook'])) { + unset($_SESSION['gradebook']); + $gradebook= ''; +} +$param_gradebook = ''; +if (isset($_SESSION['gradebook'])) { + $param_gradebook = '&gradebook='.$gradebook; +} +if (!empty($gradebook)) { + $interbreadcrumb[] = array ('url' => '/main/gradebook/index.php', 'name' => get_lang('Gradebook')); +} +$interbreadcrumb[] = array ('url' => 'index.php?action=attendance_list'.$param_gradebook, 'name' => get_lang('Attendance')); +if($action == 'attendance_add') $interbreadcrumb[] = array ('url' => '#', 'name' => get_lang('CreateANewAttendance')); +if($action == 'attendance_edit') $interbreadcrumb[] = array ('url' => '#', 'name' => get_lang('Edit')); +if($action == 'attendance_sheet_list' || $action == 'attendance_sheet_add') $interbreadcrumb[] = array ('url' => '#', 'name' => $attendance_data['name']); +if($action == 'calendar_list' || $action == 'calendar_edit' || $action == 'calendar_delete' || $action == 'calendar_all_delete') { + $interbreadcrumb[] = array ('url' => 'index?'.api_get_cidreq().'&action=attendance_sheet_list&attendance_id='.$attendance_id.$param_gradebook, 'name' => $attendance_data['name']); + $interbreadcrumb[] = array ('url' => '#', 'name' => get_lang('AttendanceCalendar')); +} +if($action == 'calendar_add') { + $interbreadcrumb[] = array ('url' => 'index?'.api_get_cidreq().'&action=attendance_sheet_list&attendance_id='.$attendance_id.$param_gradebook, 'name' => $attendance_data['name']); + $interbreadcrumb[] = array ('url' => '#', 'name' => get_lang('AddDateAndTime')); +} +// delete selected attendance +if (isset($_POST['action']) && $_POST['action'] == 'attendance_delete_select') { + $attendance_controller->attendance_delete($_POST['id']); +} +// distpacher actions to controller +switch ($action) { + case 'attendance_list' : $attendance_controller->attendance_list(); + break; + case 'attendance_add' : $attendance_controller->attendance_add(); + break; + case 'attendance_edit' : $attendance_controller->attendance_edit($attendance_id); + break; + case 'attendance_delete' : $attendance_controller->attendance_delete($attendance_id); + break; + case 'attendance_sheet_list' : $attendance_controller->attendance_sheet($action, $attendance_id); + break; + case 'attendance_sheet_add' : $attendance_controller->attendance_sheet($action, $attendance_id); + break; + case 'calendar_list' : + case 'calendar_add' : + case 'calendar_edit' : + case 'calendar_all_delete' : + case 'calendar_delete' : $attendance_controller->attendance_calendar($action, $attendance_id, $calendar_id); + break; + default : $attendance_controller->attendance_list(); +} -// footer -Display :: display_footer(); \ No newline at end of file +?> \ No newline at end of file