reservation.php 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. <?php // $Id: reservation.php,v 1.34 2006/05/10 12:30:38 sjacobs Exp $
  2. /*
  3. ==============================================================================
  4. Dokeos - elearning and course management software
  5. Copyright (c) 2004-2008 Dokeos SPRL
  6. Copyright (c) Sebastien Jacobs (www.spiritual-coder.com)
  7. Copyright (c) Kristof Van Steenkiste
  8. Copyright (c) Julio Montoya Armas
  9. For a full list of contributors, see "credits.txt".
  10. The full license can be read in "license.txt".
  11. This program is free software; you can redistribute it and/or
  12. modify it under the terms of the GNU General Public License
  13. as published by the Free Software Foundation; either version 2
  14. of the License, or (at your option) any later version.
  15. See the GNU General Public License for more details.
  16. Contact address: Dokeos, rue du Corbeau, 108, B-1030 Brussels, Belgium
  17. Mail: info@dokeos.com
  18. ==============================================================================
  19. */
  20. /**
  21. ---------------------------------------------------------------------
  22. Reservation-manager (add, edit & delete)
  23. ---------------------------------------------------------------------
  24. */
  25. require_once('rsys.php');
  26. Rsys :: protect_script('reservation');
  27. $tool_name = get_lang('Booking');
  28. ///$interbreadcrumb[] = array ("url" => 'reservation.php', "name" => get_lang('Booking'));
  29. Display :: display_header($tool_name);
  30. api_display_tool_title($tool_name);
  31. if (isset($_GET['cat'])) {
  32. $category_id = Security::remove_XSS($_GET['cat']);
  33. }
  34. echo '<div class="actions">';
  35. /// echo '<a href="m_reservation.php?action=add"><img src="../img/view_more_stats.gif" border="0" alt="" title="'.get_lang('AddNewBookingPeriod').'"/>'.get_lang('AddNewBookingPeriod').'</a>';
  36. //echo '&nbsp;&nbsp;&nbsp;<a href="m_reservation.php?action=overviewsubscriptions">'.get_lang('OverviewReservedPeriods').'</a>';
  37. echo '<div style="float: right;"><a href="mysubscriptions.php">'.Display::return_icon('file_txt.gif',get_lang('BookingListView'),array('width'=>'22')).'&nbsp;'.get_lang('GoToListView').'</a></div>';
  38. echo '<a href="m_item.php?view=calendar">'.Display::return_icon('cube.png',get_lang('Resources')).'&nbsp;'.get_lang('Resources').'</a>';
  39. echo '&nbsp;&nbsp;<a href="m_reservation.php?view=calendar">'.Display::return_icon('calendar_day.gif',get_lang('BookingPeriods')).'&nbsp;'.get_lang('BookingPeriods').'</a>';
  40. echo '&nbsp;&nbsp;<a href="m_reservation.php?action=add&view=calendar">'.Display::return_icon('calendar_add.gif',get_lang('BookIt')).'&nbsp;'.get_lang('BookIt').'</a>';
  41. if (api_is_platform_admin())
  42. {
  43. //echo '&nbsp;&nbsp;<a href="m_category.php">'.Display::return_icon('settings.gif',get_lang('Configuration')).'&nbsp;'.get_lang('Configuration').'</a>';
  44. }
  45. echo '</div><br />';
  46. function getBlock($color) {
  47. return '<img src="../img/px_'.$color.'.gif" alt="" style="border:1px solid #000;height: 10px;width: 10px;vertical-align:top;margin-left:10px" />';
  48. }
  49. $gogogo=false;
  50. // Get resolution of user
  51. if((empty($_SESSION['swidth'])||empty($_SESSION['sheight']))&&(empty($_GET['swidth'])||empty($_GET['sheight']))) {
  52. ?>
  53. <script type="text/javascript">
  54. window.location.href='reservation.php?sheight='+screen. height+'&swidth='+screen.width;
  55. </script>
  56. <?php
  57. }
  58. elseif((empty($_SESSION['swidth']))) {
  59. $_SESSION['swidth']=$_GET['swidth'];
  60. $_SESSION['sheight']=$_GET['sheight'];
  61. $gogogo=true;
  62. }
  63. else
  64. $gogogo=true;
  65. echo '<div style="float: left;"><form id="cat_form" action="reservation.php" method="get"><input type="hidden" name="cat" value="'.$category_id.'" /><div style="float: left;">'.get_lang('ResourceType').': <select name="cat" onchange="this.form.submit();"><option value="0">'.get_lang('Select').'</option>';
  66. $cats = Rsys :: get_category_with_items();
  67. if(count($cats)>0){
  68. foreach ($cats as $cat)
  69. echo '<option value="'.$cat['id'].'"'. ($cat['id'] == $category_id ? ' selected="selected"' : '').'>'.$cat['name'].'</option>';
  70. }
  71. echo '</select></div></form></div>';
  72. if ($gogogo&&!empty($category_id)) {
  73. $itemlist = Rsys :: get_cat_items($category_id);
  74. echo '<div style="float: left;">';
  75. if (count($itemlist) != 0) {
  76. echo '<form id="item_form" action="reservation.php?cat='.$category_id.'&amp;item=" method="get">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="hidden" name="cat" value="'.$category_id.'" />'.get_lang('Resource').': <select name="item" onchange="this.form.submit();"><option value="0">'.get_lang('Select').'</option>';
  77. foreach ($itemlist as $id => $item)
  78. echo '<option value="'.$id.'"'. ($id == $_GET['item'] ? ' selected="selected"' : '').'>'.$item.'</option>';
  79. echo '</select></form>';
  80. }else{
  81. echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.get_lang('NoItemsReservation');
  82. }
  83. echo '</div>';
  84. if(!empty($_GET['item'])) {
  85. $calendar = new rCalendar();
  86. $time=Rsys::mysql_datetime_to_array($_GET['date'].' 00:00:00');
  87. ob_start();
  88. echo '<div style="float: left; margin-right: 10px">';
  89. if(isset($_GET['changemonth'])) {
  90. echo $calendar->get_mini_month(intval($time['month']),intval($time['year']),"&amp;cat=".$category_id."&amp;item=".$_GET['item']."&amp;changemonth=yes",$_GET['item']);
  91. }
  92. else
  93. echo $calendar->get_mini_month(date('m'),date('Y'),"&amp;cat=".$category_id."&amp;item=".$_GET['item'],$_GET['item']);
  94. echo '</div><div style="float: left" >';
  95. switch($_SESSION['swidth']) {
  96. case '640': $week_scale= 170;break;
  97. case '1024': $week_scale=130;break;
  98. case '1152': $week_scale=110;break;
  99. case '1280': $week_scale=94;break;
  100. case '1600': $week_scale=70;break;
  101. case '1792': $week_scale=60;break;
  102. case '1800': $week_scale=50;break;
  103. case '1920': $week_scale=40;break;
  104. case '2048': $week_scale=30;break;
  105. default: $week_scale= 150; // 800x600
  106. }
  107. if(isset($_GET['date'])){
  108. echo $calendar->get_week_view(intval($time['day']),intval($time['month']), $time['year'],$_GET['item'], $week_scale,$category_id);
  109. }else
  110. echo $calendar->get_week_view(intval(date('d')), intval(date('m')), intval(date('Y')), $_GET['item'], $week_scale,$category_id);
  111. echo '</div>';
  112. $buffer=ob_get_contents();
  113. ob_end_clean();
  114. $legend=getBlock('green').' '.api_ucfirst(get_lang('OpenBooking')).' '.getBlock('blue').' '.get_lang('TimePicker').' '.getBlock('orange').' '.get_lang('OutPeriod').' '.getBlock('red').' '.get_lang('Reserved').' '.getBlock('grey').' '.get_lang('NoReservations').' '.getBlock('black').' '.get_lang('Blackout');
  115. echo '<br /><br /><div style="text-align:right; border-bottom: 2px dotted #666; margin: 0 0 0.2em 0; padding: 0.2em;clear:both;font-family: Verdana,sans-serif;font-size: 1.2em;color:#666;font-weight:bold">'.$GLOBALS['weekstart'].' - '.$GLOBALS['weekend'].'</div>'.$buffer.'<div style="clear:both;">&nbsp;</div><div style="background-color:#EEE;padding: 0.5em;font-family:Verdana;sans-serif;font-size:10px;text-align:center">'.$legend.'</div>';
  116. }
  117. }
  118. Display :: display_footer();
  119. ?>