From 261f196285b33443ea4c953e04dbf27248d27d19 Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Wed, 14 Jan 2009 18:49:59 +0100 Subject: [PATCH] [svn r17722] Several fixes in : Add booking period, language files reservation into booking, mysql fixes #821 --- main/reservation/m_category.php | 32 +++--- main/reservation/m_item.php | 15 ++- main/reservation/m_reservation.php | 160 +++++++++++++++++++-------- main/reservation/mysubscriptions.php | 2 +- main/reservation/rcalendar.php | 156 +++++++++++++------------- main/reservation/reservation.php | 31 +++--- main/reservation/rsys.php | 6 +- main/reservation/subscribe.php | 30 +++-- 8 files changed, 258 insertions(+), 174 deletions(-) diff --git a/main/reservation/m_category.php b/main/reservation/m_category.php index 67985e35c2..cb6445e387 100644 --- a/main/reservation/m_category.php +++ b/main/reservation/m_category.php @@ -48,10 +48,10 @@ $interbreadcrumb[] = array ("url" => "../admin/index.php", "name" => get_lang('P /** * Filter to display the modify-buttons * - * @param - int $id The category-id + * @param - int $id The ResourceType-id */ function modify_filter($id) { - return ''.' '; + return ''.' '; } /** @@ -61,35 +61,35 @@ function modify_filter($id) { switch ($_GET['action']) { case 'add' : $interbreadcrumb[] = array ("url" => "m_category.php", "name" => $tool_name); - Display :: display_header(get_lang('AddNewCategory')); - api_display_tool_title(get_lang('AddNewCategory')); + Display :: display_header(get_lang('AddNewResourceType')); + api_display_tool_title(get_lang('AddNewResourceType')); $form = new FormValidator('category', 'post', 'm_category.php?action=add'); - $form->add_textfield('name', get_lang('CategoryName'), true, array ('maxlength' => '128')); + $form->add_textfield('name', get_lang('ResourceTypeName'), true, array ('maxlength' => '128')); $form->addElement('submit', 'submit', get_lang('Ok')); if ($form->validate()) { $values = $form->exportValues(); if (Rsys :: add_category($values['name'])) - Display :: display_normal_message(Rsys :: get_return_msg(get_lang('CategoryAdded'), "m_category.php", $tool_name),false); + Display :: display_normal_message(Rsys :: get_return_msg(get_lang('ResourceTypeAdded'), "m_category.php", $tool_name),false); else - Display :: display_normal_message(Rsys :: get_return_msg(get_lang('CategoryExist'), "m_category.php?action=add", get_lang('AddNewCategory')),false); + Display :: display_normal_message(Rsys :: get_return_msg(get_lang('ResourceTypeExist'), "m_category.php?action=add", get_lang('AddNewResourceType')),false); } else $form->display(); break; case 'edit' : $interbreadcrumb[] = array ("url" => "m_category.php", "name" => $tool_name); - Display :: display_header(get_lang('EditCategory')); - api_display_tool_title(get_lang('EditCategory')); + Display :: display_header(get_lang('EditResourceType')); + api_display_tool_title(get_lang('EditResourceType')); $form = new FormValidator('category', 'post', 'm_category.php?action=edit'); - $form->add_textfield('name', get_lang('CategoryName'), true, array ('maxlength' => '128')); + $form->add_textfield('name', get_lang('ResourceTypeName'), true, array ('maxlength' => '128')); $form->addElement('hidden', 'id', $_GET['id']); $form->addElement('submit', 'submit', get_lang('Ok')); $form->setDefaults(Rsys :: get_category($_GET['id'])); if ($form->validate()) { $values = $form->exportValues(); if (Rsys :: edit_category($values['id'], $values['name'])) - Display :: display_normal_message(Rsys :: get_return_msg(get_lang('CategoryEdited'), "m_category.php", $tool_name),false); + Display :: display_normal_message(Rsys :: get_return_msg(get_lang('ResourceTypeEdited'), "m_category.php", $tool_name),false); else - Display :: display_normal_message(Rsys :: get_return_msg(get_lang('CategoryExist'), "m_category.php?action=edit&id=".$values['id'], get_lang('EditRight')),false); + Display :: display_normal_message(Rsys :: get_return_msg(get_lang('ResourceTypeExist'), "m_category.php?action=edit&id=".$values['id'], get_lang('EditRight')),false); } else $form->display(); break; @@ -97,9 +97,9 @@ switch ($_GET['action']) { $result = Rsys :: delete_category($_GET['id']); ob_start(); if ($result == 0) - Display :: display_normal_message(get_lang('CategoryDeleted'),false); + Display :: display_normal_message(get_lang('ResourceTypeDeleted'),false); else - Display :: display_normal_message(str_replace('#NUM#', $result, get_lang('CategoryHasItems')),false); + Display :: display_normal_message(str_replace('#NUM#', $result, get_lang('ResourceTypeHasItems')),false); $msg = ob_get_contents(); ob_end_clean(); default : @@ -108,7 +108,7 @@ switch ($_GET['action']) { api_display_tool_title($tool_name); echo $msg; - echo ''.get_lang('AddNewCategory').'

'; + echo ''.get_lang('AddNewResourceType').'

'; if (isset ($_POST['action'])) { switch ($_POST['action']) { case 'delete_categories' : @@ -122,7 +122,7 @@ switch ($_GET['action']) { } if ($warning) { ob_start(); - Display :: display_normal_message(get_lang('CategoryNotDeleted'),false); + Display :: display_normal_message(get_lang('ResourceTypeNotDeleted'),false); $msg2 = ob_get_contents(); ob_end_clean(); } diff --git a/main/reservation/m_item.php b/main/reservation/m_item.php index b7ea18f995..1a65a8e1e5 100644 --- a/main/reservation/m_item.php +++ b/main/reservation/m_item.php @@ -31,7 +31,7 @@ require_once ('rsys.php'); Rsys :: protect_script('m_item'); -$tool_name = get_lang('ItemManagerHeader'); +$tool_name = get_lang('ResourceList'); //$interbreadcrumb[] = array ("url" => "../admin/index.php", "name" => get_lang('PlatformAdmin')); /** @@ -313,11 +313,10 @@ switch ($_GET['action']) { $NoSearchResults = get_lang('NoRights'); - $interbreadcrumb[] = array ("url" => "mysubscriptions.php", "name" => get_lang('MyReservations')); - $interbreadcrumb[] = array ("url" => "index.php", "name" => get_lang('Configuration')); - + $interbreadcrumb[] = array ("url" => "mysubscriptions.php", "name" => get_lang('Booking')); $interbreadcrumb[] = array ("url" => "m_item.php", "name" => get_lang('ManageItems')); Display :: display_header(str_replace('#ITEM#', $item['name'], get_lang('MItemRights'))); + api_display_tool_title(get_lang('MItemRights2')); echo $msg; @@ -332,7 +331,7 @@ switch ($_GET['action']) { $table->set_header(1, get_lang('LangClass'), false); $table->set_header(2, get_lang('EditItemRight'), false); $table->set_header(3, get_lang('DeleteItemRight'), false); - $table->set_header(4, get_lang('MReservationPeriodsRight'), false); + $table->set_header(4, get_lang('MBookingPeriodsRight'), false); $table->set_header(5, get_lang('ViewItemRight'), false); $table->set_header(6, '', false, array ('style' => 'width:50px;')); $table->set_column_filter(6, 'modify_rights_filter'); @@ -365,7 +364,7 @@ switch ($_GET['action']) { $cats = Rsys :: get_category(); foreach ($cats as $cat) $catOptions[$cat['id']] = $cat['name']; - $form->addElement('select', 'category', get_lang('Category'), $catOptions); + $form->addElement('select', 'category', get_lang('ResourceType'), $catOptions); $form->add_textfield('name', get_lang('ItemName'), true, array ('maxlength' => '128')); $form->addElement('textarea', 'description', get_lang('ItemDescription'), array ('rows' => '3', 'cols' => '40')); $form->addRule('category', get_lang('ThisFieldIsRequired'), 'required'); @@ -401,7 +400,7 @@ switch ($_GET['action']) { Display :: display_header(str_replace('#ITEM#', $item['name'], get_lang('EditResource'))); api_display_tool_title(get_lang('EditResource')); $form = new FormValidator('item', 'post', 'm_item.php?action=edit'); - $form->addElement('select', 'category_id', get_lang('Category'), $catOptions); + $form->addElement('select', 'category_id', get_lang('ResourceType'), $catOptions); $form->add_textfield('name', get_lang('ItemName'), array ('maxlength' => '128')); $form->addElement('textarea', 'description', get_lang('ItemDescription'), array ('rows' => '3', 'cols' => '40')); $form->addRule('category_id', get_lang('ThisFieldIsRequired'), 'required'); @@ -462,7 +461,7 @@ switch ($_GET['action']) { $table->set_header(0, '', false, array ('style' => 'width:10px')); $table->set_header(1, get_lang('ItemName'), true); $table->set_header(2, get_lang('ItemDescription'), true); - $table->set_header(3, get_lang('Category'), true); + $table->set_header(3, get_lang('ResourceType'), true); $table->set_header(4, get_lang('ItemCreator'), true); $table->set_header(5, '', false, array ('style' => 'width:100px;')); $table->set_column_filter(5, 'modify_filter'); diff --git a/main/reservation/m_reservation.php b/main/reservation/m_reservation.php index ab98c3b774..963ca80363 100644 --- a/main/reservation/m_reservation.php +++ b/main/reservation/m_reservation.php @@ -43,8 +43,8 @@ $tool_name = get_lang('BookingPeriodList'); * @param - int $id The reservation-id */ function modify_filter($id) { - $out = ''; - $out .= ' '; + $out = ''; + $out .= ' '; $out .= ' '; return $out; } @@ -108,7 +108,7 @@ switch ($_GET['action']) { $table = new SortableTable('reservation', array ('Rsys', 'get_num_subscriptions_overview'), array ('Rsys', 'get_table_subcribed_reservations'), 1); $table->set_additional_parameters(array ('action' => 'overviewsubscriptions','keyword' => $_GET['keyword'])); $table->set_header(0, get_lang('ItemName'), true); - $table->set_header(1, get_lang('CategoryName'), true); + $table->set_header(1, get_lang('ResourceTypeName'), true); $table->set_header(2, get_lang('StartDate'), true); $table->set_header(3, get_lang('EndDate'), true); $table->set_header(4, get_lang('Name'), true); @@ -164,10 +164,9 @@ switch ($_GET['action']) { $cats = Rsys :: get_category_rights(); echo '
'; - echo ''; - + echo ''; echo '
'; - echo '
'.get_lang('Category').':
'; + echo '
'.get_lang('ResourceType').':
'; echo '
'; echo ''; echo '
'; - echo '
'.get_lang('Category').':
'; + echo '
'.get_lang('ResourceType').':
'; echo '
'; echo '
'; - echo '
'; - - echo ''; - + echo '
'; + echo ''; $itemlist = Rsys :: get_cat_r_items($categori[0]); $form = new FormValidator('reservation', 'post', 'm_reservation.php?action=edit&id='.$Reservation_id); - $choices[] = $form->createElement('radio', 'forever', '', get_lang('NoPeriod'), ($reservation[0][7] == '0000-00-00 00:00:00' && $reservation[0][8] == '0000-00-00 00:00:00' ? 0 : 1), array ('onclick' => 'javascript:timewindow_hide(\'forever_timewindow\')')); - $choices[] = $form->createElement('radio', 'forever', '', get_lang('FixedPeriod'), ($reservation[0][7] == '0000-00-00 00:00:00' || $reservation[0][8] == '0000-00-00 00:00:00' ? 1 : 0), array ('onclick' => 'javascript:timewindow_show(\'forever_timewindow\')')); + $choices[] = $form->createElement('radio', 'forever', '', get_lang('NoPeriod'), '0', array ('onclick' => 'javascript:timewindow_hide(\'forever_timewindow\')')); + $choices[] = $form->createElement('radio', 'forever', '', get_lang('FixedPeriod'), '1', array ('onclick' => 'javascript:timewindow_show(\'forever_timewindow\')')); $form->addElement('select', 'item_id', get_lang('Item'), $itemlist); $form->add_timewindow('start', 'end', get_lang('StartDate'), get_lang('EndDate')); @@ -423,15 +465,30 @@ switch ($_GET['action']) { $form->addElement('hidden', 'id', $Reservation_id); $form->addElement('hidden', 'timepicker2'); $form->addElement('hidden', 'period', ($reservation[0][7] == '0000-00-00 00:00:00' && $reservation[0][8] == '0000-00-00 00:00:00' ? 0 : 1)); - + if ($categori[0] == $tijdelijke_cat) $defaultvalues['item_id'] = $reservation[0][2]; + $defaultvalues['auto_accept'] = $reservation[0][3]; $defaultvalues['maxuser'] = $reservation[0][4]; $defaultvalues['start'] = $reservation[0][5]; $defaultvalues['end'] = $reservation[0][6]; - $defaultvalues['subscribe_from'] = $reservation[0][7]; - $defaultvalues['subscribe_until'] = $reservation[0][8]; + + $defaultvalues['forever']=($reservation[0][7] == '0000-00-00 00:00:00' && $reservation[0][8] == '0000-00-00 00:00:00' ? 0 : 1); + + $my_start_date = Rsys :: mysql_datetime_to_timestamp($reservation[0][5]); + + if ($defaultvalues['forever']==0) { + //here we set the default dates + $defaultvalues['subscribe_from'] = $my_start_date - 60*60 ; + $defaultvalues['subscribe_until'] = $my_start_date - 60 ; + } + else { + $defaultvalues['subscribe_from'] = $reservation[0][7]; + $defaultvalues['subscribe_until'] = $reservation[0][8]; + } + + $defaultvalues['notes'] = $reservation[0][10]; $defaultvalues['timepicker'] = $reservation[0][11]; $defaultvalues['timepicker2'] = $reservation[0][11]; @@ -448,26 +505,26 @@ switch ($_GET['action']) { $values = $form->exportValues(); //print_r($values); $auto_accept = true; - if ($values['forever'] == $values['period']) { + if (($values['forever'] == $values['period']) || $values['forever']=='0') { $values['subscribe_from'] = 0; $values['subscribe_until'] = 0; } $msg_number = Rsys :: edit_reservation($values['id'], $_POST['item_id'], $values['auto_accept'], $values['maxuser'], $values['start'], $values['end'], $values['subscribe_from'], $values['subscribe_until'], $values['notes'], $values['timepicker2']); switch ($msg_number) { case 0 : - Display :: display_normal_message(Rsys :: get_return_msg(get_lang('ReservationPeriodEdited'), "m_reservation.php", $tool_name),false); + Display :: display_normal_message(Rsys :: get_return_msg(get_lang('BookingPeriodEdited'), "m_reservation.php", $tool_name),false); break; case 1 : - Display :: display_normal_message(str_replace('#END#', "".$GLOBALS['end_date']."",str_replace('#START#', "".$GLOBALS['start_date']."",get_lang('ReservationPeriodDateOverlap'))),false); + Display :: display_normal_message(str_replace('#END#', "".$GLOBALS['end_date']."",str_replace('#START#', "".$GLOBALS['start_date']."",get_lang('BookingPeriodDateOverlap'))),false); break; case 2 : - Display :: display_normal_message(get_lang('ReservationPeriodSubscribeUntilAfterStart'),false); + Display :: display_normal_message(get_lang('BookingPeriodSubscribeUntilAfterStart'),false); break; case 3: Display :: display_normal_message(get_lang('ReservationMaxUsersOverrun'),false); break; case 4: - Display :: display_normal_message(get_lang('ReservationPeriodTimepickerLimitation'),false); + Display :: display_normal_message(get_lang('BookingPeriodTimepickerLimitation'),false); break; default : break; @@ -480,13 +537,18 @@ switch ($_GET['action']) { case 'delete' : Rsys :: delete_reservation($_GET["id"]); ob_start(); - Display :: display_normal_message(Rsys :: get_return_msg(get_lang('ReservationPeriodDeleted'), "m_reservation.php", $tool_name),false); + Display :: display_normal_message(Rsys :: get_return_msg(get_lang('BookingPeriodDeleted'), "m_reservation.php", $tool_name),false); $msg = ob_get_contents(); ob_end_clean(); default : $NoSearchResults = get_lang('NoReservations'); - $interbreadcrumb[] = array ("url" => "mysubscriptions.php", "name" => get_lang('Booking')); + if ($_GET['view']=='calendar') { + $interbreadcrumb[] = array ("url" => "reservation.php", "name" => get_lang('Booking')); + } + else { + $interbreadcrumb[] = array ("url" => "mysubscriptions.php", "name" => get_lang('Booking')); + } $interbreadcrumb[] = array ("url" => "m_reservation.php", "name" => get_lang('ManageBookingPeriods')); Display :: display_header(''); @@ -524,7 +586,7 @@ switch ($_GET['action']) { $table->set_header(7, get_lang('Notes'), false); $table->set_header(8, '', false, array ('style' => 'width:65px;')); $table->set_column_filter(8, 'modify_filter'); - $table->set_form_actions(array ('delete_reservations' => get_lang('DeleteSelectedReservationsPeriod')), 'reservations'); + $table->set_form_actions(array ('delete_reservations' => get_lang('DeleteSelectedBookingPeriod')), 'reservations'); $table->display(); } diff --git a/main/reservation/mysubscriptions.php b/main/reservation/mysubscriptions.php index f0e6c9c8d0..a408c188c5 100644 --- a/main/reservation/mysubscriptions.php +++ b/main/reservation/mysubscriptions.php @@ -64,7 +64,7 @@ switch ($_GET['action']) { api_display_tool_title($tool_name); echo '
'; -/// echo ''.get_lang('AddNewReservationPeriod').''; +/// echo ''.get_lang('AddNewBookingPeriod').''; //echo '   '.get_lang('OverviewReservedPeriods').''; echo '
'.Display::return_icon('sessions.gif',get_lang('BookingCalendarView')).' '.get_lang('GoToCalendarView').'
'; diff --git a/main/reservation/rcalendar.php b/main/reservation/rcalendar.php index 4444842276..2b7dd5077c 100644 --- a/main/reservation/rcalendar.php +++ b/main/reservation/rcalendar.php @@ -3,7 +3,7 @@ ============================================================================== Dokeos - elearning and course management software - Copyright (c) 2004-2008 Dokeos S.A. + Copyright (c) 2004-2008 Dokeos SPRL Copyright (c) Sebastien Jacobs (www.spiritual-coder.com) Copyright (c) Kristof Van Steenkiste @@ -89,23 +89,34 @@ class rCalendar { * Deze methode retourneert een balkje van een gegeven $width met een bepaalde kleur ($color) met evt. een titel * */ - function get_bar($width, $color, $link = '', $title = '', $id = null) { - // 1) width herberekenen om afrondingsfouten te beperken - if($GLOBALS['weekday_pointer']!=$GLOBALS['last_weekday_pointer']){ - $GLOBALS['daytotal']=0; - $GLOBALS['lasttotal']=0; - $GLOBALS['last_weekday_pointer']=$GLOBALS['weekday_pointer']; - }$GLOBALS['daytotal']+=$width; - $GLOBALS['rounded_total']=round($GLOBALS['daytotal']); - $width=$GLOBALS['rounded_total']-$GLOBALS['lasttotal']; - $GLOBALS['lasttotal']=$GLOBALS['rounded_total']; - // 2) kleur aanpassen indien item op blackout staat - if($GLOBALS['bblackout']&&$color!='red'&&$color!='orange'&&$color!='grey'){ - $color='black'; - $link=''; - } - // 3) html code returnen voor gekleurde bar - return ''; + function get_bar($width, $color, $link = '', $title = '', $itemid=null, $cat=null) { + // 1) width herberekenen om afrondingsfouten te beperken + if($GLOBALS['weekday_pointer']!=$GLOBALS['last_weekday_pointer']) { + $GLOBALS['daytotal']=0; + $GLOBALS['lasttotal']=0; + $GLOBALS['last_weekday_pointer']=$GLOBALS['weekday_pointer']; + } + + $GLOBALS['daytotal']+=$width; + $GLOBALS['rounded_total']=round($GLOBALS['daytotal']); + $width=$GLOBALS['rounded_total']-$GLOBALS['lasttotal']; + $GLOBALS['lasttotal']=$GLOBALS['rounded_total']; + // 2) kleur aanpassen indien item op blackout staat + if($GLOBALS['bblackout'] && $color!='red' && $color!='orange' && $color!='grey') { + $color='black'; + $link=''; + } + $img=''; + // 3) html code returnen voor gekleurde bar + if (!empty($itemid) && !empty($cat)&& !empty($link)) { + $link.='&cat='.$cat.'&item='.$itemid; + $img = ''; + } + else { + $img = ''; + } + return $img; + } /* @@ -114,7 +125,7 @@ class rCalendar { * - Deze methode ontvangt een item-id & 1 dag als parameter (dag+maand+jaar), de omliggende week (met reservaties etc.) wordt dan opgehaald * - hoe groter de $day_scale, hoe kleiner de tabel (86400/$day_scale=breedte van 1 dag) */ - function get_week_view($day, $month, $year, $itemid, $day_scale = 180) { + function get_week_view($day, $month, $year, $itemid, $day_scale = 180,$cat) { // 1) Item is blackout? >> True of False ... wordt gebruikt in get_bar methode om kleur indien nodig om te zetten $GLOBALS['bblackout']=Rsys::is_blackout($itemid); @@ -205,56 +216,60 @@ class rCalendar { // Subscribe_from is not yet reached $color = "orange"; $link = null; - } else { + } + else { // Subscription is not allowed $color = "red"; $link = null; } - // ..a2) stel titel in (dat je ziet als je over het balkje zweeft met je muis) - $title = date('H:i (d/m/Y)', $start).' » '.date('H:i (d/m/Y)', $end); + // ..a2) stel titel in (dat je ziet als je over het balkje zweeft met je muis) + $title = date('H:i (d/m/Y)', $start).' » '.date('H:i (d/m/Y)', $end); - // ..a3) controleer of het reservatie-periode-blok de huidige dag overschrijdt + // ..a3) controleer of het reservatie-periode-blok de huidige dag overschrijdt if ($end > $day_start_dates[$weekday_pointer] + $one_day) { // indien ja, cree�r dan balkjes voor elke volgende dag $trimmed_chunk_size = $chunk_size - ($end - ($day_start_dates[$weekday_pointer] + $one_day)); - $days[$weekday_pointer] .= $this->get_bar($trimmed_chunk_size / $day_scale, $color, $link, $title); + $days[$weekday_pointer] .= $this->get_bar($trimmed_chunk_size / $day_scale, $color, $link, $title, $itemid, $cat); $new_day = true; while ($new_day && $weekday_pointer < 7) { $weekday_pointer ++; - $GLOBALS['weekday_pointer']++; + $GLOBALS['weekday_pointer']++; $start = $days[$weekday_pointer]; $chunk_size = $end - $start; if ($end > $day_start_dates[$weekday_pointer] + $one_day) { // If still larger than one day, trim chunk and continue - $days[$weekday_pointer] .= $this->get_bar($one_day / $day_scale, $color, $link, $title); + $days[$weekday_pointer] .= $this->get_bar($one_day / $day_scale, $color, $link, $title, $itemid, $cat); } else { $trimmed_chunk_size = $end - $day_start_dates[$weekday_pointer]; - $days[$weekday_pointer] .= $this->get_bar($trimmed_chunk_size / $day_scale, $color, $link, $title); + $days[$weekday_pointer] .= $this->get_bar($trimmed_chunk_size / $day_scale, $color, $link, $title, $itemid, $cat); $new_day = false; } } - } else // indien niet, voeg dan gewoon het balkje toe aan de huidige dag - $days[$weekday_pointer] .= $this->get_bar($chunk_size / $day_scale, $color, $link, $title); + } + else // indien niet, voeg dan gewoon het balkje toe aan de huidige dag + $days[$weekday_pointer] .= $this->get_bar($chunk_size / $day_scale, $color, $link, $title, $itemid, $cat); // 6.4.B) Indien het WEL om een timepicker gaat... (max_users telt hier niet) - } + } else { $timepicker_min *= 60; $timepicker_max *= 60; $minute_interval = 30; - $minute_interval *= 60; - $color = "blue"; - $pickedcolor = "red"; - $tosmallchunkcolor = "yellow"; - $start_pointer = $start; - $link = "subscribe.php?rid=".$r['id'].'&timestart='; // + (start)tijd waarop geklikt werd = volwaardige link - if(count($s)==0){ + $minute_interval *= 60; + $color = "blue"; + $pickedcolor = "red"; + $tosmallchunkcolor = "yellow"; + $start_pointer = $start; + + $link = "subscribe.php?rid=".$r['id'].'&timestart='; // + (start)tijd waarop geklikt werd = volwaardige link + + if(count($s)==0) { if ($start > time()) { //controle of dat de time tussen $r['subscribe_from'] en $r['subscribe_until'] ligt if((Rsys :: mysql_datetime_to_timestamp($r['subscribe_from']) <= time() && Rsys :: mysql_datetime_to_timestamp($r['subscribe_until']) > time()) || ($r['subscribe_from'] == '0000-00-00 00:00:00' && $r['subscribe_until'] == '0000-00-00 00:00:00')) { - $days[$weekday_pointer] .= $this->get_bar(($end - $start) / $day_scale, $color, $link.$start_pointer, date('H:i', $start).' » '.date('H:i', $end)); + $days[$weekday_pointer] .= $this->get_bar(($end - $start) / $day_scale, $color, $link.$start_pointer, date('H:i', $start).' » '.date('H:i', $end), $itemid, $cat); } else { @@ -271,7 +286,7 @@ class rCalendar { if((Rsys :: mysql_datetime_to_timestamp($r['subscribe_from']) <= time() && Rsys :: mysql_datetime_to_timestamp($r['subscribe_until']) > time()) || ($r['subscribe_from'] == '0000-00-00 00:00:00' && $r['subscribe_until'] == '0000-00-00 00:00:00')) { if (($end - time()) >= $timepicker_min) { - $days[$weekday_pointer] .= $this->get_bar(($end - time()) / $day_scale, $color, $link.$start_pointer, date('H:i', time()).' » '.date('H:i', $end)); + $days[$weekday_pointer] .= $this->get_bar(($end - time()) / $day_scale, $color, $link.$start_pointer, date('H:i', time()).' » '.date('H:i', $end), $itemid, $cat); } else { @@ -292,38 +307,30 @@ class rCalendar { } else { - $i = 0; - - foreach ($s as $key => $sub) - { + $i = 0; + foreach ($s as $key => $sub) { $start = Rsys :: mysql_datetime_to_timestamp($sub['start_at']); $einde = Rsys :: mysql_datetime_to_timestamp($sub['end_at']); - if (Rsys :: mysql_datetime_to_timestamp($sub['start_at']) - $start_pointer <= 0) - { + if (Rsys :: mysql_datetime_to_timestamp($sub['start_at']) - $start_pointer <= 0) { //start onmiddelijk met een rood stuk $start_tijd = date('H:i',$start_pointer); $eind_tijd = date('H:i',$einde); $days[$weekday_pointer] .= $this->get_bar(($einde - $start_pointer) / $day_scale, $pickedcolor, null, $start_tijd.' » '.$eind_tijd); } - else - { - + else { //start met een blauw of oranje stuk //kijken of dat de start_tijd al buiten de huidige tijd ligt -> - if ($start_pointer > time()) - { + if ($start_pointer > time()) { $start_tijd = date('H:i',$start_pointer); $eind_tijd = date('H:i',$start); - if((Rsys :: mysql_datetime_to_timestamp($r['subscribe_from']) <= time() && Rsys :: mysql_datetime_to_timestamp($r['subscribe_until']) > time()) || ($r['subscribe_from'] == '0000-00-00 00:00:00' && $r['subscribe_until'] == '0000-00-00 00:00:00')) { + if((Rsys :: mysql_datetime_to_timestamp($r['subscribe_from']) <= time() && Rsys :: mysql_datetime_to_timestamp($r['subscribe_until']) > time()) || ($r['subscribe_from'] == '0000-00-00 00:00:00' && $r['subscribe_until'] == '0000-00-00 00:00:00')) { //niet buiten tijd! //blauw stuk maken indien groter dan timepicker_min anders geel - if (($start - $start_pointer) >= $timepicker_min) - { - $days[$weekday_pointer] .= $this->get_bar(($start - $start_pointer) / $day_scale, $color, $link.$start_pointer, $start_tijd.' » '.$eind_tijd); + if (($start - $start_pointer) >= $timepicker_min) { + $days[$weekday_pointer] .= $this->get_bar(($start - $start_pointer) / $day_scale, $color, $link.$start_pointer, $start_tijd.' » '.$eind_tijd, $itemid, $cat); } - else - { + else { $days[$weekday_pointer] .= $this->get_bar(($start - $start_pointer) / $day_scale, $tosmallchunkcolor, null, $start_tijd.' » '.$eind_tijd); } } @@ -350,16 +357,16 @@ class rCalendar { //blauw stuk maken indien groter dan timepicker_min anders geel if (($start - time()) >= $timepicker_min) { - $days[$weekday_pointer] .= $this->get_bar(($start - time()) / $day_scale, $color, $link.time(), date('H:i', time()).' » '.date('H:i', $start)); + $days[$weekday_pointer] .= $this->get_bar(($start - time()) / $day_scale, $color, $link.time(), date('H:i', time()).' » '.date('H:i', $start), $itemid, $cat); } else { - $days[$weekday_pointer] .= $this->get_bar(($start - time()) / $day_scale, $tosmallchunkcolor, $null, date('H:i', time()).' » '.date('H:i', $start)); + $days[$weekday_pointer] .= $this->get_bar(($start - time()) / $day_scale, $tosmallchunkcolor, null, date('H:i', time()).' » '.date('H:i', $start), $itemid, $cat); } } else { - $days[$weekday_pointer] .= $this->get_bar(($start - time()) / $day_scale, 'orange', $null, date('H:i', time()).' » '.date('H:i', $start)); + $days[$weekday_pointer] .= $this->get_bar(($start - time()) / $day_scale, 'orange', null, date('H:i', time()).' » '.date('H:i', $start)); } } @@ -394,7 +401,7 @@ class rCalendar { if (($end - time()) >= $timepicker_min) { //blauwe stuk - $days[$weekday_pointer] .= $this->get_bar(($end - time()) / $day_scale, $color, $link.time(), date('H:i', time()).' » '.date('H:i', $end)); + $days[$weekday_pointer] .= $this->get_bar(($end - time()) / $day_scale, $color, $link.time(), date('H:i', time()).' » '.date('H:i', $end), $itemid, $cat); } else { @@ -409,28 +416,25 @@ class rCalendar { } else { - if((Rsys :: mysql_datetime_to_timestamp($r['subscribe_from']) <= time() && Rsys :: mysql_datetime_to_timestamp($r['subscribe_until']) > time()) || ($r['subscribe_from'] == '0000-00-00 00:00:00' && $r['subscribe_until'] == '0000-00-00 00:00:00')) { + if((Rsys :: mysql_datetime_to_timestamp($r['subscribe_from']) <= time() && Rsys :: mysql_datetime_to_timestamp($r['subscribe_until']) > time()) || ($r['subscribe_from'] == '0000-00-00 00:00:00' && $r['subscribe_until'] == '0000-00-00 00:00:00')) { //blauw stuk maken indien groter dan timepicker_min anders geel - if (($end - $start_pointer) >= $timepicker_min) - { + if (($end - $start_pointer) >= $timepicker_min) { //blauwe stuk - $days[$weekday_pointer] .= $this->get_bar(($end - $start_pointer) / $day_scale, $color, $link.$start_pointer, date('H:i', $start_pointer).' » '.date('H:i', $end)); + $days[$weekday_pointer] .= $this->get_bar(($end - $start_pointer) / $day_scale, $color, $link.$start_pointer, date('H:i', $start_pointer).' » '.date('H:i', $end), $itemid, $cat); } - else - { - //gele stuk - $days[$weekday_pointer] .= $this->get_bar(($end - $start_pointer) / $day_scale, $tosmallchunkcolor, null, date('H:i', $start_pointer).' » '.date('H:i', $end)); - } - } - else - { - $days[$weekday_pointer] .= $this->get_bar(($end - $start_pointer) / $day_scale, 'orange', null, date('H:i', $start_pointer).' » '.date('H:i', $end)); - } + else { + //gele stuk + $days[$weekday_pointer] .= $this->get_bar(($end - $start_pointer) / $day_scale, $tosmallchunkcolor, null, date('H:i', $start_pointer).' » '.date('H:i', $end)); } } + else { + $days[$weekday_pointer] .= $this->get_bar(($end - $start_pointer) / $day_scale, 'orange', null, date('H:i', $start_pointer).' » '.date('H:i', $end)); + } } - } - } + } + } + } + } // 6.5) Zet de $last_end pointer op de eindtijd van de huidige reservatie periode diff --git a/main/reservation/reservation.php b/main/reservation/reservation.php index 2be5310fbe..c42a06c9ec 100644 --- a/main/reservation/reservation.php +++ b/main/reservation/reservation.php @@ -54,23 +54,28 @@ if (api_is_platform_admin()) echo '

'; - +function getBlock($color) { + return ''; +} $gogogo=false; // Get resolution of user -if((empty($_SESSION['swidth'])||empty($_SESSION['sheight']))&&(empty($_GET['swidth'])||empty($_GET['sheight']))){ +if((empty($_SESSION['swidth'])||empty($_SESSION['sheight']))&&(empty($_GET['swidth'])||empty($_GET['sheight']))) { ?>
'.get_lang('Category').':
'.get_lang('ResourceType').':
'; - if ($gogogo&&!empty($_GET['cat'])) { $itemlist = Rsys :: get_cat_items($_GET['cat']); echo '
'; @@ -93,19 +97,19 @@ if ($gogogo&&!empty($_GET['cat'])) { echo '        '.get_lang('NoItemsReservation'); } echo '
'; - if(!empty($_GET['item'])){ + if(!empty($_GET['item'])) { $calendar = new rCalendar(); $time=Rsys::mysql_datetime_to_array($_GET['date'].' 00:00:00'); ob_start(); echo '
'; - if(isset($_GET['changemonth'])){ + if(isset($_GET['changemonth'])) { echo $calendar->get_mini_month(intval($time['month']),intval($time['year']),"&cat=".$_GET['cat']."&item=".$_GET['item']."&changemonth=yes",$_GET['item']); } else echo $calendar->get_mini_month(date('m'),date('Y'),"&cat=".$_GET['cat']."&item=".$_GET['item'],$_GET['item']); echo '
'; - switch($_SESSION['swidth']){ + switch($_SESSION['swidth']) { case '640': $week_scale= 170;break; case '1024': $week_scale=130;break; case '1152': $week_scale=110;break; @@ -118,15 +122,14 @@ if ($gogogo&&!empty($_GET['cat'])) { default: $week_scale= 150; // 800x600 } if(isset($_GET['date'])){ - echo $calendar->get_week_view(intval($time['day']),intval($time['month']), $time['year'],$_GET['item'], $week_scale); + echo $calendar->get_week_view(intval($time['day']),intval($time['month']), $time['year'],$_GET['item'], $week_scale,$_GET['cat']); }else - echo $calendar->get_week_view(intval(date('d')), intval(date('m')), intval(date('Y')), $_GET['item'], $week_scale); + echo $calendar->get_week_view(intval(date('d')), intval(date('m')), intval(date('Y')), $_GET['item'], $week_scale,$_GET['cat']); echo '
'; $buffer=ob_get_contents(); ob_end_clean(); - function getBlock($color){ - return ''; - } + + $legend=getBlock('green').' '.ucfirst(get_lang('Reservation')).' '.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'); echo '

'.$GLOBALS['weekstart'].' - '.$GLOBALS['weekend'].'
'.$buffer.'
 
'.$legend.'
'; } diff --git a/main/reservation/rsys.php b/main/reservation/rsys.php index 29ef372661..da2c2207b1 100644 --- a/main/reservation/rsys.php +++ b/main/reservation/rsys.php @@ -93,7 +93,8 @@ class Rsys { */ function get_return_msg($msg, $page, $pageheader) { $target_url = api_get_path(WEB_PATH).'main/reservation/'.$page; - return $msg."

Return to $pageheader"; + $return = get_lang('GoTo'); + return $msg."

$return $pageheader"; } /** @@ -104,7 +105,8 @@ class Rsys { * @param - String $pageheader The tag to display as link */ function get_return_msg2($msg, $page, $pageheader) { - return $msg."

Return to $pageheader"; + $return = get_lang('GoTo'); + return $msg."

$return $pageheader"; } /** diff --git a/main/reservation/subscribe.php b/main/reservation/subscribe.php index 63fe888da3..e2db6ba25a 100644 --- a/main/reservation/subscribe.php +++ b/main/reservation/subscribe.php @@ -7,6 +7,7 @@ Copyright (c) 2004-2008 Dokeos SPRL Copyright (c) Sebastien Jacobs (www.spiritual-coder.com) Copyright (c) Kristof Van Steenkiste + Copyright (c) Julio Montoya Armas For a full list of contributors, see "credits.txt". The full license can be read in "license.txt". @@ -27,10 +28,23 @@ Reservation-manager (add, edit & delete) --------------------------------------------------------------------- */ + require_once('rsys.php'); - Rsys :: protect_script('reservation'); -$tool_name = get_lang('SubscribeManagerHeader'); + + +if (!empty($_GET['cat']) && !empty($_GET['item'] )) { + $cat = (int)$_GET['cat']; + $item = (int)$_GET['item']; + $interbreadcrumb[] = array ('url' => "reservation.php?cat=$cat&item=$item", 'name' => get_lang('Booking')); +} +else { + $interbreadcrumb[] = array ('url' => 'reservation.php', 'name' => get_lang('Booking')); +} + + +$tool_name = get_lang('BookIt'); + Display :: display_header($tool_name); api_display_tool_title($tool_name); @@ -141,10 +155,10 @@ if ($reservation[0][9] < $reservation[0][4]) { $result = Rsys :: add_subscription($_GET['rid'], api_get_user_id(),$values['accepted']); switch ($result) { case 0 : - Display :: display_normal_message(Rsys :: get_return_msg2(get_lang('ReservationAdded'), "javascript:history.go(-2)", get_lang('ReservationManagerHeader')),false); + Display :: display_normal_message(Rsys :: get_return_msg2(get_lang('ReservationAdded'), "javascript:history.go(-2)", get_lang('BookingView')),false); break; case 1 : - Display :: display_normal_message(Rsys :: get_return_msg2(str_replace('#END#', "".$GLOBALS['end_date']."",str_replace('#START#', "".$GLOBALS['start_date']."",get_lang('ReservationAlready'))),"reservation.php?cat=".$item[1]."&item=".$item[0]."", get_lang('ReservationManagerHeader')),false); + Display :: display_normal_message(Rsys :: get_return_msg2(str_replace('#END#', "".$GLOBALS['end_date']."",str_replace('#START#', "".$GLOBALS['start_date']."",get_lang('ReservationAlready'))),"reservation.php?cat=".$item[1]."&item=".$item[0]."", get_lang('BookingView')),false); break; } @@ -152,7 +166,7 @@ if ($reservation[0][9] < $reservation[0][4]) { $result = Rsys :: add_subscription_timepicker($_GET['rid'], api_get_user_id(), $values['startpicker'], $values['endpicker'],$values['accepted'],$values['min'],$values['max']); switch ($result) { case 0 : - Display :: display_normal_message(Rsys :: get_return_msg2(get_lang('ReservationAdded'), "reservation.php?cat=".$item[1]."&item=".$item[0]."&date=".date( 'Y-m-d',Rsys :: mysql_datetime_to_timestamp($values['startpicker']))."&changemonth=yes", get_lang('ReservationManagerHeader')),false); + Display :: display_normal_message(Rsys :: get_return_msg2(get_lang('ReservationAdded'), "reservation.php?cat=".$item[1]."&item=".$item[0]."&date=".date( 'Y-m-d',Rsys :: mysql_datetime_to_timestamp($values['startpicker']))."&changemonth=yes", get_lang('BookingView')),false); break; case 1 : Display :: display_normal_message(str_replace('#END#', "".$GLOBALS['end_date']."",str_replace('#START#', "".$GLOBALS['start_date']."",get_lang('ReservationOutOfDate'))),false); @@ -160,12 +174,12 @@ if ($reservation[0][9] < $reservation[0][4]) { echo $buffer; break; case 2 : - Display :: display_normal_message(get_lang('ReservationPeriodTooSmall'),false); + Display :: display_normal_message(get_lang('BookingPeriodTooSmall'),false); $form->display(); //echo $buffer; break; case 3 : - Display :: display_normal_message(get_lang('ReservationPeriodTooBig'),false); + Display :: display_normal_message(get_lang('BookingPeriodTooBig'),false); $form->display(); //echo $buffer; break; @@ -175,7 +189,7 @@ if ($reservation[0][9] < $reservation[0][4]) { else $form->display(); }else { - Display :: display_normal_message(Rsys :: get_return_msg2(get_lang('ReservationTresspassing'), "javascript:history.go(-2)", get_lang('ReservationManagerHeader')),false); + Display :: display_normal_message(Rsys :: get_return_msg2(get_lang('ReservationTresspassing'), "javascript:history.go(-2)", get_lang('BookingView')),false); }