Hi
I want to create calendar of the booked days on the bookable resource page, for example on the "flat" page. Human will book a nessasary flat to specific date, and on the flat page on booking calendar this dates marked as booked.
How i can did it?
PS, excuse me for my bad english.

Comments

Anonymous’s picture

Assigned: suvannet » Unassigned
Status: Active » Postponed (maintainer needs more info)

I'm not entirely sure that I understood what you need.

Lets use your example:

You have one system administrating e.g. ten flats for a motel. Each flat has its own page. On this page a calendar is displayed showing for each day whether the given flat is available or not.
Available days are links allowing a user to directly book this flat for the given day, correct?

If yes you could have a look at the Event Booking extension, it might provide the needed functionality. An alternative would be using the "Bookings Free Cache"-submodule (for the display of available times) and an adoption of the "Booking Button"-submodule (for the booking link)

suvannet’s picture

thanks tirsales,
i used calendar_block module for this, this module has hook where i can write some code to display available days for the flat.
It's very cool module.

Anonymous’s picture

Fantastic :) Could you share your code? I'm very interested in seeing new ways to display bookings

suvannet’s picture

sure, this is a hook_calendar_block, i used it in the publicbookings.module.

function publicbookings_calendar_block(&$calendar, &$date, $op) {
switch($op) {
case 'alter':
$sql = "SELECT start, end
FROM bookings_schedules
WHERE resource_id = '%s' AND status = '4'";
$q = db_query($sql, $calendar->resource_id);
while ($row = db_fetch_array($q))
{
$start_date = strtotime($row['start']);
$end_date = strtotime($row['end']);
$cur_date = strtotime($date->day.".".$date->month.".".$date->year);
if($start_date <= $cur_date && $end_date >= $cur_date)
{
$date->content = '

'.$date->day.'

';
}
}
$sql = "SELECT start, end
FROM bookings_schedules
WHERE resource_id = '%s' AND status = '2'";
$q = db_query($sql, $calendar->resource_id);
while ($row = db_fetch_array($q))
{
$start_date = strtotime($row['start']);
$end_date = strtotime($row['end']);
$cur_date = strtotime($date->day.".".$date->month.".".$date->year);
if($start_date <= $cur_date && $end_date >= $cur_date)
{
$date->content = '

'.$date->day.'

';
}
}
break;
}
}

there i mark calendar of unconfirmed and booked days for the flat.

then, i change some code of calendar_block.module
I was change $calendar object on line 126, i add resource_id param:

// Resource ID used for Booking system
$resource_id = 0;
if (arg(0) == 'node') $resource_id = arg(1);
$calendar = (object) array(
'year' => date('Y'),
'month' => date('m'),
'weekdays' => $weekdays,
'resource_id' => (int)$resource_id,
);

And then i change calendar_block.js file, on line 63 i add this:
ref.ajax_settings.data.resource_id = Drupal.toJson(ref.settings.calendar.resource_id);

Then i put calendar_block block into my page.
That's all.

YK85’s picture

subscribing

doublejosh’s picture

Subscribing.

easyRider’s picture

Its possible to include this next releases? Dont like to code, its more dificult to further updates...

easyRider’s picture

Do you think its possible to use atontimes code in a next release?