availability_calendar.module array(array('data' => ' ', 'class' => 'calavailable'), array('data' => t('Available'), 'class' => 'keystatus')), array(array('data' => ' ', 'class' => 'calnotavailable'), - array('data' => t('Fully booked'), 'class' => 'keystatus')) + array('data' => t('Fully booked'), 'class' => 'keystatus')), + array(array('data' => ' ', 'class' => 'calavailfullbook'), + array('data' => t('Available / Fully booked'), 'class' => 'keystatus')), + array(array('data' => ' ', 'class' => 'calfullbookavail'), + array('data' => t('Fully booked / Available'), 'class' => 'keystatus')), + array(array('data' => ' ', 'class' => 'calprobookfullbook'), + array('data' => t('Provisionally booked / Fully booked'), 'class' => 'keystatus')), + array(array('data' => ' ', 'class' => 'calfullbookprobook'), + array('data' => t('Fully booked / Provisionally booked'), 'class' => 'keystatus')), + array(array('data' => ' ', 'class' => 'calavailprobook'), + array('data' => t('Available / Provisionally booked'), 'class' => 'keystatus')), + array(array('data' => ' ', 'class' => 'calprobookavail'), + array('data' => t('Provisionally booked / Available'), 'class' => 'keystatus')) availability_calendar.module $cells = array(); // our container for cells foreach ($week as $key => $val) { $weeknumber = $key + 1; array_push($cells, array('data' => $notes[$weeknumber], 'class' => 'calnote')); // add the note cell to the cells array for ($i=0; $i<7; $i++) { // if there's a date, it's part of this month if ($week[$key][$i]) { $todayclass = ''; if ( $today == $week[$key][$i] . ',' . $month . ',' . $year) { $todayclass = 'caltoday'; } if ($day_status[$week[$key][$i]] == 1) { // booked array_push($cells, array('data' => $week[$key][$i], 'class' => "calnotavailable $todayclass")); } elseif ($day_status[$week[$key][$i]] == 2) { // provisionally booked array_push($cells, array('data' => $week[$key][$i], 'class' => "calnotavailableprov $todayclass")); } + /* Day Multi-Status (A) */ + elseif ($day_status[$week[$key][$i]] == 3) { // available-fully booked + array_push($cells, array('data' => $week[$key][$i], 'class' => "calavailfullbook $todayclass")); + } + elseif ($day_status[$week[$key][$i]] == 4) { // fully booked-available + array_push($cells, array('data' => $week[$key][$i], 'class' => "calfullbookavail $todayclass")); + } + /* Day Multi-Status (B) */ + elseif ($day_status[$week[$key][$i]] == 5) { // provisionally booked-fully booked + array_push($cells, array('data' => $week[$key][$i], 'class' => "calprobookfullbook $todayclass")); + } + elseif ($day_status[$week[$key][$i]] == 6) { // fully booked-provisionally booked + array_push($cells, array('data' => $week[$key][$i], 'class' => "calfullbookprobook $todayclass")); + } + /* Day Multi-Status (C) */ + elseif ($day_status[$week[$key][$i]] == 7) { // available-provisionally booked + array_push($cells, array('data' => $week[$key][$i], 'class' => "calavailprobook $todayclass")); + } + elseif ($day_status[$week[$key][$i]] == 8) { // provisionally booked-available + array_push($cells, array('data' => $week[$key][$i], 'class' => "calprobookavail $todayclass")); + } + else { // available + array_push($cells, array('data' => $week[$key][$i], 'class' => "calavailable $todayclass")); + } else { // available array_push($cells, array('data' => $week[$key][$i], 'class' => "calavailable $todayclass")); } } availability_calendar.module /** * availability_calendars status options. */ function availability_calendars_options() { // TODO: make these configurable return array( 0 => t('Available'), 1 => t('Fully booked'), - 2 => t('Provisionally booked') + 2 => t('Provisionally booked'), + 3 => t('Available / Fully booked'), + 4 => t('Fully booked / Available'), + 5 => t('Provisionally booked / Fully booked'), + 6 => t('Fully booked / Provisionally booked'), + 7 => t('Available / Provisionally booked'), + 8 => t('Provisionally booked / Available') ); } availability_calendars.css table.cal tr td.calnotavailable { color: #fff; text-align: center; background: lightpink; } + + /* Day Multi-Status (A) */ + table.cal tr td.calavailfullbook { + color: #ccc; + text-align: center; + background: gray; + } + + table.cal tr td.calfullbookavail { + color: #ccc; + text-align: center; + background: silver; + } + + /* Day Multi-Status (B) */ + table.cal tr td.calprobookfullbook { + color: #ccc; + text-align: center; + background: lime; + } + + table.cal tr td.calfullbookprobook { + color: #ccc; + text-align: center; + background: olive; + } + + /* Day Multi-Status (C) */ + table.cal tr td.calavailprobook { + color: #ccc; + text-align: center; + background: teal; + } + + table.cal tr td.calprobookavail { + color: #ccc; + text-align: center; + background: aqua; + } td.keystatus { padding-left: 2px; }