.. You may want to use the usual include line. Uncomment and adjust the path. .. include:: ../Includes.txt ====================== 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: |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, , `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: Table of Contents ----------------- **`EXT: Booking Extension 1 <#__RefHeading__5708_1738894311>`_** **`Introduction 3 <#__RefHeading__5710_1738894311>`_** `What does it do? 3 <#__RefHeading__463_413120346>`_ `Screenshots 3 <#__RefHeading__465_413120346>`_ **`Users manual 7 <#__RefHeading__467_413120346>`_** **`Administration 9 <#__RefHeading__31511_818911409>`_** **`Configuration 10 <#__RefHeading__31515_818911409>`_** `Reference 10 <#__RefHeading__1120_1531398549>`_ **`Tutorial 12 <#__RefHeading__31523_818911409>`_** **`Known problems 13 <#__RefHeading__31525_818911409>`_** **`To-Do list 14 <#__RefHeading__477_413120346>`_** **`ChangeLog 15 <#__RefHeading__31623_818911409>`_** .. _Introduction: Introduction ------------ .. _What-does-it-do: 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: 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: 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: ((generated)) ^^^^^^^^^^^^^ .. _New-Features-in-0-5-0: 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: Administration -------------- .. _Configuration: 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: Reference ^^^^^^^^^ .. ### BEGIN~OF~TABLE ### .. _PIDstorage: PIDstorage """""""""" .. container:: table-row 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: showPriceDetails """""""""""""""" .. container:: table-row Property showPriceDetails Data type boolean Description Show detailed description of seasons and prices Default :: 1 .. _dateFormat: dateFormat """""""""" .. container:: table-row 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 .. ###### END~OF~TABLE ###### [tsref:plugin.tx\_abbooking\_pi1] .. ### BEGIN~OF~TABLE ### .. _cssBooking: cssBooking """""""""" .. container:: table-row 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 .. ###### END~OF~TABLE ###### [tsref:plugin.tx\_abbooking\_pi1.file] .. _Examples: 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: Tutorial -------- TBD .. _Known-problems: Known problems -------------- .. _To-Do-list: 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: ChangeLog --------- .. ### BEGIN~OF~TABLE ### .. _0-5-1: 0.5.1 ^^^^^ .. container:: table-row 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: 0.5.0 ^^^^^ .. container:: table-row 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: 0.4.5 ^^^^^ .. container:: table-row 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: 0.4.4 ^^^^^ .. container:: table-row 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: 0.4.3 ^^^^^ .. container:: table-row 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: 0.4.2 ^^^^^ .. container:: table-row 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: 0.4.0 ^^^^^ .. container:: table-row Version 0.4.0 Changes \- new feature: seasonal prices possible .. _0-3-7: 0.3.7 ^^^^^ .. container:: table-row 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: 0.3.6 ^^^^^ .. container:: table-row 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: 0.3.4 ^^^^^ .. container:: table-row Version 0.3.4 Changes \- Flexform reworked, StoragePID added- preview release before 0.4.0; some features don't work yet .. _0-3-3: 0.3.3 ^^^^^ .. container:: table-row Version 0.3.3 Changes \- minor bugfixes .. _0-3-2: 0.3.2 ^^^^^ .. container:: table-row 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: 0.3.1 ^^^^^ .. container:: table-row Version 0.3.1 Changes \- Fix some PHP warnings- make ab\_swiftmailer optional but recommended .. _0-3-0: 0.3.0 ^^^^^ .. container:: table-row 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: 0.2.3 ^^^^^ .. container:: table-row Version 0.2.3 Changes \- Add support for custom CSS file- Add debug flag and make logging depending on this flag .. _0-2-2: 0.2.2 ^^^^^ .. container:: table-row Version 0.2.2 Changes \- Fix some PHP warnings .. _0-2-1: 0.2.1 ^^^^^ .. container:: table-row Version 0.2.1 Changes \- Multilanguage support for detailed description in availability list mode .. _0-2-0: 0.2.0 ^^^^^ .. container:: table-row Version 0.2.0 Changes \- Now availability check is possible over multiple rooms- First documentation added .. _Unknown-Property: ((Unknown Property)) ^^^^^^^^^^^^^^^^^^^^ .. container:: table-row Version Changes .. _Unknown-Property: ((Unknown Property)) ^^^^^^^^^^^^^^^^^^^^ .. container:: table-row Version Changes .. _Unknown-Property: ((Unknown Property)) ^^^^^^^^^^^^^^^^^^^^ .. container:: table-row Version Changes .. _Unknown-Property: ((Unknown Property)) ^^^^^^^^^^^^^^^^^^^^ .. container:: table-row Version Changes .. ###### END~OF~TABLE ###### .. ######CUTTER_MARK_IMAGES###### .. |img-1| image:: img-1.png .. :align: left .. :border: 0 .. :height: 44 .. :id: graphics5 .. :name: graphics5 .. :vspace: 57 .. :width: 161 .. |img-2| image:: img-2.png .. :align: left .. |img-3| image:: img-3.jpeg .. :align: left .. :border: 0 .. :height: 214 .. :id: Grafik1 .. :name: Grafik1 .. :width: 366 .. |img-4| image:: img-4.jpeg .. :align: left .. :border: 0 .. :height: 344 .. :id: Grafik3 .. :name: Grafik3 .. :width: 172 .. |img-5| image:: img-5.jpeg .. :align: left .. :border: 0 .. :height: 206 .. :id: Grafik4 .. :name: Grafik4 .. :width: 211 .. |img-6| image:: img-6.jpeg .. :align: left .. :border: 0 .. :height: 504 .. :id: Grafik7 .. :name: Grafik7 .. :width: 397 .. |img-7| image:: img-7.jpeg .. :align: left .. :border: 0 .. :height: 781 .. :id: Grafik6 .. :name: Grafik6 .. :width: 491 .. |img-8| image:: img-8.jpeg .. :align: left .. :border: 0 .. :id: Grafik8 .. :name: Grafik8 .. :width: 100%