DEPRECATION WARNING

This documentation is not using the current rendering mechanism and is probably outdated. The extension maintainer should switch to the new system. Details on how to use the rendering mechanism can be found here.

EXT: Booking Extension

Author:Alexander Bigga
Created:2011-12-06T19:55:57
Changed by:Alexander Bigga
Changed:2011-12-06T21:51:01
Classification:ab_booking
Keywords:booking, flat, room, hotel
Author:Alexander Bigga
Email:linux@bigga.de
Language:en

img-1 img-2 EXT: Booking Extension

Extension Key: ab_booking

Language: en

Version: x.y.z

Keywords: booking, flat, room, hotel

Copyright 2008-2011, Alexander Bigga, <linux@bigga.de>, ab_booing .bigga.de

This document is published under the Open Content License

available from http://www.opencontent.org/opl.shtml

The content of this document is related to TYPO3

- a GNU/GPL CMS/Framework available from www.typo3.org

Table of Contents

`EXT: Booking Extension 1 <#__RefHeading__5708_1738894311>`_

`Introduction 3 <#__RefHeading__5710_1738894311>`_

What does it do? 3

Screenshots 3

`Users manual 7 <#__RefHeading__467_413120346>`_

`Administration 9 <#__RefHeading__31511_818911409>`_

`Configuration 10 <#__RefHeading__31515_818911409>`_

Reference 10

`Tutorial 12 <#__RefHeading__31523_818911409>`_

`Known problems 13 <#__RefHeading__31525_818911409>`_

`To-Do list 14 <#__RefHeading__477_413120346>`_

`ChangeLog 15 <#__RefHeading__31623_818911409>`_

Introduction

What does it do?

  • This extension provides a very basic booking tool and may be used e.g. as flat booking system for a small set of rooms. It should be easily adapted to rent other things on a per day basis.
  • A calendar view shows vacant and booked dates. Vacant days may be selected and a booking form is shown. After sending the booking form, the client and you will receive a confirmation. The booking will be entered automaticallly in the calendar.
  • Multiple seasons are possible.

Screenshots

  • All details of the products and prices are kept in a sysfolder (e.g. “ab_booking” in the example). This is also the place where the bookings are stored.
  • The example shown in the following screenshots is a demo system at http://ab_booking.bigga.de . This small demo guesthouse offers five different rooms (“Zimmer 1” to “Zimmer 5”).

img-3 figure 1: Backend Example Structure

For every room exists a long description page (e.g. “Zimmer 1”) and a short description page (e.g. “Zimmer 1 kurz”). The last one is used in the availability list view.

img-4 figure 2: Calendar View

  • In the Calendar view you configure a view of the following months in rows and or columns. In the screen-shot you see two months in two rows and one column.

  • It is possible to assign multiple “prices” to every product. Seasons may be defined and assigned to every price. You have to create at least one season (“standard rate”) and assign it to every price.

  • The Availability Check checks all given products for availability.

    img-5 figure 3: Availability Check Form

  • If rooms are available, the result is shown with the content of the short description page. The short description is only shown if you selected in the product properties settings a page for “UID details”.

    img-6 figure 4: List of Available Rooms with Description

  • img-7 figure 5: Booking Form with Hints in an Additional Column

  • If you select a vacant date on the calendar view or an item in the availability view, you reach the booking form.

Users manual

  • Just install ab_booking and the optional ab_swiftmailer and date2cal extensions.

  • Create a Sysfolder (“ab_booking) and add new records to it. Start with a “ Product Prices ” and then a “ Product Properties ”. Each product requires at least one associated price.

  • Create at least one “ Season” (see figure Fehler: Referenz nicht gefunden) and assign it to the prices. You may created seasons with start and stopdates.

  • If multiple prices are valid for a day, the price on top will be choosen.

  • You may add a special product (“closing times”) with all details set to zero. The price don't care. You can use this “product” to lock the whole booking system for certain dates.

  • Create for each product a page in your tree. Add another page, which may be used as short description. Insert the Booking Calendar plugin and select a view (e.g. Calendar) for one or more Product Ids (e.g. “Zimmer 1” and “Schliesszeiten”).

  • Important : Select the PID of the Sysfolder (“ab_booking”) as StoragePID in each plugin! Note : You may set the StoragePID by adding it to the General Record Storage Page in your page settings (see “Configuration” below).

  • Create an “Booking Page” where people enter their personal data and submit the booking form. On this page you add again the Booking Calendar plugin but with the “BOOKING” view. Go to the Booking-tab and enter your message you will send as email-confirmation to your clients.

    img-8 figure 6: Plugin Settings in Flexform

  • Up to TYPO3 4.4.x it is possible to use ab_swiftmailer to send theconfirmation mail via the global settings of it. If you don't use it, you have to enter your name and email-address in the Booking- tab.As of TYPO3 4.5.x the swiftmailer is included into TYPO3. I'm using the following settings in my localconf.php:

    $TYPO3_CONF_VARS['MAIL']['transport'] = 'smtp';
    $TYPO3_CONF_VARS['MAIL']['transport_smtp_server'] = 'mail.bytecamp.net:25';
    $TYPO3_CONF_VARS['MAIL']['transport_smtp_encrypt'] = '0';
    $TYPO3_CONF_VARS['MAIL']['transport_smtp_username'] = 'EMAIL_USERNAME';
    $TYPO3_CONF_VARS['MAIL']['transport_smtp_password'] = 'EMAIL_PASSWORD';
    $TYPO3_CONF_VARS['MAIL']['defaultMailFromAddress'] = 'linux@bigga.de';
    $TYPO3_CONF_VARS['MAIL']['defaultMailFromName'] = 'Alexander Bigga';
    
  • If you want to use the language overlay feature , don't forget to add the config.sys_lanugage_mode and config_sys_language_overlay settings to your template (see Configuration)

  • More details and a HowTo will follow. In the meantime have a look at http://ab_booking.bigga.de where ab_booking is in action. This is a demo site . Feel free to play with the extension!

  • If you like the small calendar next to the date field, install date2cal extension. I tested it with current version 7.3.1.

  • I hope, you aren't confused totally now.Please mail your question, feature and bug-reports to linux@bigga.de

  • ab_booking is on forge now. You may use the bugtracker to report your bugs and feature requests too: http://forge.typo3.org/projects /extension-ab_booking/issues

  • Have a look at the backend login at http://ab_booking.bigga.de/login . Username is “abbooking”, password is “demo”. You can't change anything but you can follow the setup easily.

((generated))

New Features in 0.5.0

With version 0.5.0 the rate settings get a little more flexible. For example you may now enter rates for a double as follows:

  • 1 night: 90 € + 10 € for room cleaning
  • 2 nights: 2x90€ but no extra charge room cleaning
  • 3 nights: 3x80€
  • 7 nights: 7x(90€-20%)

You can achieve this by entering the following code into the price database field:

90,D:3:80,D:7:20%

Read (comma separated): It costs 90 per night. A discount ("D") is offered after 3 nights and the new price is 80. Another discount ("D") is vallid after 7 days and you pay 90 minus 20%. And so on...

The same with the room cleaning. If you want only an extra charge for people comming one night, you enter in single component:

10,D:2:-1

Read: It costs 10 per stay. A discount ("D") is valid after 2 days and the price is removed (-1). You could of course write as well:

10,D:2:5,D:7:-1

In this case the customers pay 10 for one night, 5 for 2-6 nights and no extra charge for more than 7 nights.

Or you can offer optionally breakfast and the customer may deselect it or not.

7,D:3:10%,O

Read: It costs 7 per person. A discount of 10% is applied after 3 nights. The customer may deselect this option ("O").

With 0.5.0 you may also influence the minimum stay for the customer. E.g. if you like to set a minimum stay of 3 nights for bookings more than 8 weeks in the future you can set:

3,W:8:2,W:1:1

Read: The minium stay is three nights. 8 weeks before booking start it is reduced to 2 nights. And in the last week before arrival it is set to 1 night.

There is an other view which is quite useful in my case: a check-in overview. Now you can put on an internal page a view with the coming arrivals and depatures for the next 4 days (sorry, not configurable at the moment). And you have a simple calendar field to jump to any date in the past and future!

Administration

Configuration

  • To add a CSS style to the extension you may select “Default CSS ab_booking” as static template file in your template. This default CSS may be overwritten using TypoScript.
  • You may enable logging of availability requests after installation of ab_booking in the Extension-Manger -> ab_booking -> Enable features -> enableDebug and DebugLogFile. Please check if the directory of the given path already exists.

Reference

PIDstorage

Property

PIDstorage

Data type

Int

Description

Set storage PID of ab_booking sysfolder. This may also be set in the plugin-configuration or in the site-settings (Options->General Record Storage page).

Example:

plugin.tx_abbooking_pi1.PIDstorage = 15

Default

showPriceDetails

Property

showPriceDetails

Data type

boolean

Description

Show detailed description of seasons and prices

Default

1
dateFormat

Property

dateFormat

Data type

string

Description

Overwrite the default dateFormat settings in the small calendar.

If you use date2cal: please note that the “%x” format doesn't work unfortunately.

Example:
config.language = de
plugin.tx_abbooking_pi1.dateFormat = %d.%m.%y
[globalVar = GP:L = 1]
config.language = en
plugin.tx_abbooking_pi1.dateFormat = %d/%m/%y
[global]

Default

%d.%m.%Y for config.language = de
%d/%m/%Y for
config.language = en
%Y-%m-%d for all other settings

[tsref:plugin.tx_abbooking_pi1]

cssBooking

Property

cssBooking

Data type

string

Description

Set custom CSS file.

Example:
plugin.tx_abbooking_pi1.file.cssBooking = fileadmin/templates/cssBookingExample.css

Default

EXT:res/cssBooking.css

[tsref:plugin.tx_abbooking_pi1.file]

Examples

If you want to change the default text used in the formulars or in the availability list, add the following TypoScript to your template:

plugin.tx_abbooking_pi1 {
  _LOCAL_LANG {
    de {
      we_may_offer = was für eine blöde Überschrift:
        discount = Rabatt
        specialComponent1 = Endreinigungspauschale
    }
    en {
      we_may_offer = what a stupid headline:
   discount = Discount
        specialComponent1 = Room Cleaning
    }
  }
}

This overwrites the label “we_may_offer” which is used in the availability list. All other labels are in the language file EXT:ab_booking/pi1/locallang.xml.

If you want to use multiple languages you have to enable the language overlay mode and you have to add translations for products and prices.

config {
  sys_language_mode = content_fallback
  sys_language_overlay = 1
}

Tutorial

TBD

Known problems

To-Do list

  • Add support for more “business models” (e.g. weekend prices, )
  • Add categories
  • Add support for multiple items of the same category
  • Evaluate the web accessibility

TYPO3 Forge link to ab_booking project .

ChangeLog

0.5.1

Version

0.5.1

Changes

- calendar is now created with div-tags. Please check your CSS- settings!

- Updated the manual with recent doc_template

0.5.0

Version

0.5.0

Changes

-new features: make price depend on the duration of booking-new feature: minimum stay now possible to configure depending on time before booking start-new feature: make single component depending on the duration of booking- fix problem with empty title field-new feature: checkin overview with simple select date for the next 4 days- new feature: show breakfast as extra component per person-new feature: allow more than 4 adults if every additional adult pays the same extra charge

0.4.5

Version

0.4.5

Changes

- new feature: setting the dateFormat via TypoScript- new feature: setting minimum stay period and “Block Days after Booking” to prices properties (feature #26976)

0.4.4

Version

0.4.4

Changes

- bugfix: #27093, #13892- multilanguage support for prices and products titles- limited support to TYPO3 4.5.x and 4.4.x

0.4.3

Version

0.4.3

Changes

- bugfix: no bookings are possible now, if no rate is present for a given period- changes of the css style (especially request form)

0.4.2

Version

0.4.2

Changes

- bugfix: check availability again in step 2 to avoid bookings of unavailable periods- setup new demo site http://ab_booking.bigga.de

0.4.0

Version

0.4.0

Changes

- new feature: seasonal prices possible

0.3.7

Version

0.3.7

Changes

- bugfix of serveral PHP warnings (Thanks to Stefan Lembke for pointing this out!)- bugfix in email sending (Thanks to Ecsedi Adrienn for pointing this out!)

0.3.6

Version

0.3.6

Changes

- bugfix usage of setting the StoragePID (no number of persons was shown)- added currency field in product_prices table- added “progress bar” for the three booking steps (enter – check - finished)

0.3.4

Version

0.3.4

Changes

- Flexform reworked, StoragePID added- preview release before 0.4.0; some features don't work yet

0.3.3

Version

0.3.3

Changes

- minor bugfixes

0.3.2

Version

0.3.2

Changes

- Replace a backend-function call with an own one to fix a problem with Typo3 4.1.x

0.3.1

Version

0.3.1

Changes

- Fix some PHP warnings- make ab_swiftmailer optional but recommended

0.3.0

Version

0.3.0

Changes

- Add single line list mode as calendar view- replace support for rlmp_dateselect with date2cal- make date2cal optional

0.2.3

Version

0.2.3

Changes

- Add support for custom CSS file- Add debug flag and make logging depending on this flag

0.2.2

Version

0.2.2

Changes

- Fix some PHP warnings

0.2.1

Version

0.2.1

Changes

- Multilanguage support for detailed description in availability list mode

0.2.0

Version

0.2.0

Changes

- Now availability check is possible over multiple rooms- First documentation added

((Unknown Property))

Version

Changes

((Unknown Property))

Version

Changes

((Unknown Property))

Version

Changes

((Unknown Property))

Version

Changes