XhochY > Schoorbs
Schoorbs
 
Font size:      

Schoorbs

About

Welcome to Schoorbs

What is Schoorbs

Schoorbs is a free room/resource booking system licensed under the GPLv2 which is served as a web application using PHP and MySQL/PostgreSQL.

Features

  • Access it using your favorite webbrowser (valid XHTML 1.1)
  • Runs on every webserver supporting PHP(>= 4.3) and MySQL or PostgreSQL.
  • Ensures that conflicting entries cannot be entered.
  • Selectable Day / Week / Month views.
  • Very flexible options on resource/room bookings.
  • Multiple authentication levels (read-only, user, administrator).
  • Multiple languages supported (translated to Czech, Chinese, Danish, Dutch, Finnish, French, German, Greek, Italian, Japanese, Norwegian, Portuguese, Spanish, Swedish).
  • Communication with Schoorbs through a REST-API is also possible, so making own scripts/programs using Schoorbs is possible without using PHP.
  • Uses the equal database structure as MRBS, you even could use both in parallel, if you want to evaluate them.

Contact

All problems about Schoorbs, not depending if they are developement related or just a usage question, could be posted on our mailinglist. If you find a bug in Schoorbs or you want to propose a new feature, just submit a new entry at our issue tracker.

Browsing/Getting the complete source

via ...

Schoorbs Screenshots

Hint

These screenshots are taken on Ubuntu Linux using Firefox 2.0 and Schoorbs 1.0.0. Click on the images to enlarge them.

Day view

Day view

Week view

Week view

Month view

Month view

Admininistration

Admin view

Help / FAQ

Help view

Advanced search

Advanced search view

Simple search + results

Simple search view

Schoorbs Demo

Demo

There is a demo installation of Schoorbs available. It uses 'php' as session module and 'config' as authentication module. Schoorbs 1.0.0 is the running version at the moment. Please try to not break it too much!
Following users are available:

  • admin / admin
  • demo / demo

Schoorbs demo installation

Links related to Schoorbs

Other sites for Schoorbs

Other related sites

Welcome to Schoorbs

How all is licensed

  • The Schoorbs application and sourcecode is liceneed under the terms of the GPL.
  • This website is mostly licensed under the terms of the "Creative Commons Attribution-Share Alike 3.0 Unported"-license, where there is a CC BY-SA symbol on the bottom of the page.
  • All other content on this website, which is not specially marked, is not free, and is copyrighted by their its owners.

GNU GENERAL PUBLIC LICENSE

		    
		       Version 2, June 1991

 Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

			    Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users.  This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it.  (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.)  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.

  To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have.  You must make sure that they, too, receive or can get the
source code.  And you must show them these terms so they know their
rights.

  We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.

  Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software.  If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.

  Finally, any free program is threatened constantly by software
patents.  We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary.  To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.

  The precise terms and conditions for copying, distribution and
modification follow.

		    GNU GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License.  The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language.  (Hereinafter, translation is included without limitation in
the term "modification".)  Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.

  1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.

You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.

  2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

    a) You must cause the modified files to carry prominent notices
    stating that you changed the files and the date of any change.

    b) You must cause any work that you distribute or publish, that in
    whole or in part contains or is derived from the Program or any
    part thereof, to be licensed as a whole at no charge to all third
    parties under the terms of this License.

    c) If the modified program normally reads commands interactively
    when run, you must cause it, when started running for such
    interactive use in the most ordinary way, to print or display an
    announcement including an appropriate copyright notice and a
    notice that there is no warranty (or else, saying that you provide
    a warranty) and that users may redistribute the program under
    these conditions, and telling the user how to view a copy of this
    License.  (Exception: if the Program itself is interactive but
    does not normally print such an announcement, your work based on
    the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.

In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

  3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:

    a) Accompany it with the complete corresponding machine-readable
    source code, which must be distributed under the terms of Sections
    1 and 2 above on a medium customarily used for software interchange; or,

    b) Accompany it with a written offer, valid for at least three
    years, to give any third party, for a charge no more than your
    cost of physically performing source distribution, a complete
    machine-readable copy of the corresponding source code, to be
    distributed under the terms of Sections 1 and 2 above on a medium
    customarily used for software interchange; or,

    c) Accompany it with the information you received as to the offer
    to distribute corresponding source code.  (This alternative is
    allowed only for noncommercial distribution and only if you
    received the program in object code or executable form with such
    an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for
making modifications to it.  For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable.  However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.

If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.

  4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License.  Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.

  5. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
distribute the Program or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.

  6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions.  You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.

  7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all.  For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices.  Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

  8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded.  In such case, this License incorporates
the limitation as if written in the body of this License.

  9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

Each version is given a distinguishing version number.  If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation.  If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.

  10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission.  For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this.  Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.

			    NO WARRANTY

  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.

  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

		     END OF TERMS AND CONDITIONS

	    How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author<

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License along
    with this program; if not, write to the Free Software Foundation, Inc.,
    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:

    Gnomovision version 69, Copyright (C) year name of author
    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License.  Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary.  Here is a sample; alter the names:

  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
  `Gnomovision' (which makes passes at compilers) written by James Hacker.

  <signature of Ty Coon>, 1 April 1989
  Ty Coon, President of Vice

This General Public License does not permit incorporating your program into
proprietary programs.  If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library.  If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

Releases

Overview

At the moment the stable relases have the version number 1.0.x, the unstable versions are only kept at the moment for historical reasons, you shouldn't use them.

Schoorbs 1.0

Continous Builds

At buildbot.xhochy.com we have a continous builder which goes through each new Subversion revision. This should help developers to verify that Schoorbs runs on other platforms too. Locally we have a virtual machine with several chroot-environments to check Schoorbs in several Database<->PHP combinations. If you want to have this machine, just contact us through our mailinglist.

Creative Commons License

Roadmap

Overview

Since the first Beta release of Schoorbs, there will only be bug fixes submitted to Schoorbs 1.0, for Schoorbs 2.0 new ideas could be discussed on our mailinglist.

Creative Commons License

Site Linkmap Table of Contents

This is a map of the complete site and its structure.

Documentation(EN)

Enduser documentation for Schoorbs

Where to download

You will find always the newest version of Schoorbs on our Releases page. If you want to use Schoorbs for productive environments, you should choose the latest available stable version. If you are interested in new/upcoming features in Schoorbs, but do not want to use this installation for every-day-usage, you might want to check out the latest unstable version. Please consider unstable version are likely more buggy because they are untested, stable version have already been tested a longer period, so that most bugs have already been fixed for them.

Where to get help with problems

If you get problems with Schoorbs (maybe while installing), it is the best to sent a mail to the Schoorbs mailinglist.

If your problem is (or could be) a bug in Schoorbs, you should report it at our Issuse Tracker @ Google Code too.

License

While Schoorbs is licensed under the GPLv2, the end-user documentation is licensed under the "Creative Commons Attribution-ShareAlike 3.0 Unported"-license, which is not a strict copyleft license, but is more permissive than the GPLv2 and it isn't a license that was made for software cases only. All documentation included in the code of Schoorbs such as the API-docs are licensed under the GPLv2. Some parts of the documentation maybe stripped out of the INSTALL, README ... files of MRBS the pages containing those texts do not have a CC-BY-SA-logo at the button and are licensed under the GPLv2. We want to replace all of the GPLv2-documentation because a single license for the whole end-user documentation is more user-friendly and the old MRBS documentation could be already outdated, we just keep it, to not have undocumented parts of software.

Creative Commons License

Installation

Prerequests

In opposite to the active development on Schoorbs, for the normal usage you only need few dependencies. The following software should be sufficient:

  • A modern HTTP server, e.g. Apache or Lighty
  • PHP >= 4.3 as servermodul(SAPI) or via Fast(CGI)
  • Considering the database, we support at the moment PosgtreSQL >= 7.x and MySQL >= 4.x. The fitting PHP-module for the database must be installed too.

How to install

If you use Schoorbs, you should always take care that your running version is up to date, because only the latest version has the most security because nearly all known bugs are fixed in it, you should check periodically if there is a new one. The latest Schoorbs version could always be found on schoorbs.xhochy.com, where it is provided in 2 versions, a ZIP-archive and a 7z-archive. Both include the same files, but the 7z-archive is due the higher compression rate of the LZMA algorithm a lot smaller. Although 7z offers better compression, not on every computer there is are program which could extract them, so you could alternately download the ZIP-archive.
The chosen archive should be extracted in a directory which could be accessed by the web server.

At the moment we use the template engine Smarty which needs to have write-rights on the folder schoorbs-includes/Smarty/templates_c to temproraly store the page. If you are using Linux you could apply these right via the following command:

chmod a+rw -R schoorbs-includes/Smarty/templates_c

Since on most Linux systems the web server runs as user www-data you could set the owner of that folder to this user which is the more secure way, but therefore you may need additional rights.

chown -R www-data:www-data schoorbs-includes/Smarty/templates_c

Schoorbs saves all his data(e.g. meetings) in a database. At the moment only MySQL and PostgreSQL are supported. Since those two systems differ in the way how you create the initial database structure, in the following I will provide seperate explanations for both. You can find in the directory schoorbs-misc/install-sql for both database systems SQL-scripts that will help you during the process. Those scripts will be used and explained in the next paragraphs.

MySQL based database installation:

To require no additional software, I will explain the MySQL based way using the command line utilities that ship with MySQL. As a prerequest there must exist a database user who has write permissions to the database in which Schoorbs should store its data. There are 2 prewritten scripts for MySQL available: tables.my.sql and tables-legacy.my.sql. The first one create database tables with the prefix 'schoorbs_', the second one creates legacy tables with the prefix 'mrbs_'. If you want an other prefix for your tables, you have to edit one of this files and replace all occurences of 'schoorbs_' or 'mrbs_' with your own prefix.
After you have decided which prefiy you want to use, you insert the table structure with the following command line into the database:

mysql -u <User> -p <Database> < tables.my.sql

PostgreSQL based database installation:

If you want to use PostgreSQL, you have to take care which version, you are using since there have been some significant changes, that require to other table creation code for newer versions(>= 7.3). You can check your PostgreSQL version with:

psql -V

Depending on your version of PostgreSQL there exist the SQL-scripts tables.pg.73and_above.sql and tables-legacy.pg.73and_above.sql or tables.pg.sql and tables-legacy.sql. The first two apply for the PostgreSQL versions 7.3 and following, the other two for older versions. The scripts with 'legacy' in their name create tables with the prefix 'mrbs_', the other ones with 'schoorbs_'. If you want to have an other prefix you have to edit one of those files manually.
After you have decided which prefiy you want to use, you insert the table structure with the following command line into the database:

psql -a -f tables.pg.sql <Database>

Creative Commons License

Configuration

General

All configuration of Schoorbs is done in the file config.inc.php. If you have a new installation, this file doesn't exist, the best way is to copy it from config.inc.php-dist, an example configuration.

Attention:
Undocumented variables may have at the moment no effect, since some modules were deactivated during the Fork from MRBS, e.g. the LDAP authentication, or they are only used during development. The deactivated modules are not usable at the moment because they require a security review, but if you need one of these modules, you write a short message to the mailinglist, so that the developers know which modules require attention. If you stay in contact with them, then it is likely that the module will be ready in a short time period.

Database

The first paragraph in the configuration file of Schoorbs is considering the database connection. As already said in the chapter 'installation', you have at the moment the choice between MySQL and PostgreSQL. Altough there are two options for MySQL considering the database driver, PHP offers the interfaces mysqli which should be used for systems with PHP 5+ and MySQL 5+, and mysql which should be used an all older systems. For PostgreSQL users only the module pgsql is available. The name of the selected database driver should be set as the value of the variable $dbsys. The value of the variable $db_host should be set to the host on which your database server is running, in most cases localhost will be sufficent. The name of your database should be set in $db_database. Username and password go into the variables $db_login and $db_password. The value of $db_tbl_prefix should correspond to the database prefix you have choosen during the installation.

Example configuration (connection via MySQLi):

$dbsys = "mysqli";
$db_host = "localhost";
$db_database = "schoorbs";
$db_login = 'schoorbs';
$db_password = 'secret_password';
$db_tbl_prefix = "schoorbs_";
$db_nopersist = 1;

Site identifictaion

As site identification, only the name of the administrator($mrbs_admin), his e-mail($mrbs_admin_email) and the name of the company/organization($mrbs_company) using Schoorbs could be set, this should be enough to let the user know on whoms page he is and he has to contact with problems.

Example configuration:

$mrbs_admin = "Mister Musterman";
$mrbs_admin_email = "mail@example.org";
$mrbs_company = "Example Company";

Calendar / Periods

Schoorbs offers two possibilities t adjust the bookable time units. On the one hand you could specify a fixed time span($resolution) in seconds apply for all units and crop the times when you can book a room by the start in hours($morningstarts) and minutes($morningstarts_minutes) and an end time in hours($eveningends) and minutes($eveningends_minutes). If you have choosen a day start of 7:30 and a resolution of 1800(-> 1/2h), so your clients are able too book units beginning at 7:30, 8:00, 8:30, ...
If your booking units do not have the same length, you should use named time units, called periods. These bookings are identified by their name, not by the time they start. The names of these units are stored in the array $periods. If you want to use this timing system instead of the first possiblity you have to set $enable_periods to true.
In general you could now addtionally choose, if a week stats on sunday($weekstarts = 0;) or on monday($weekstarts = 1;).

Example configuration with fixed time units:

$enable_periods = false;
$resolution = 2700;
$morningstarts = 8;
$eveningends   = 17;
$morningstarts_minutes = 0;
$eveningends_minutes = 0;
$periods[] = array();
$weekstarts = 1;

Example configuration with named time units(periods):

$enable_periods = true;
$resolution = 2700;
$morningstarts = 8;
$eveningends   = 17;
$morningstarts_minutes = 0;
$eveningends_minutes = 0;
$periods[] = "08:00-08:45";
$periods[] = "08:45-09:30";
$periods[] = "09:30-09:45";
$periods[] = "09:45-10:30";
$periods[] = "10:30-11:15";
$periods[] = "11:15-11:30";
$periods[] = "11:30-12:15";
$periods[] = "12:15-13:00";
$periods[] = "13:00-13:15";
$periods[] = "13:15-14:00";
$periods[] = "14:00-14:45";
$periods[] = "14:45-15:30";
$periods[] = "15:30-16:15";
$weekstarts = 1;

Authentication

The authentication is divided into two modular sections: 'authentication' (variable: $auth["type"]) and 'session' (variable: $auth["session"]).

The section 'session' provides the interface, which require the username and password from the client und saves it alongs several HTTP-requests. Availa are the moudles 'cookie' (Request of the password via HTML-GUI, saving username and password in a cookie), 'host' (the username is the hostname of the connected user, empty password), 'http' (username and password are requested via HTTP-authentication), 'ip' (the username is the ip of the connected user, empty password), 'php' (request of password/username via HTML-GUI, saves it with php's session_*-functions) and 'remote_user' (like 'http', but the authentication is done via the webserver, only the username will be submitted to Schoorbs).
Addition to 'http': The title of the HTTP-authentication could be set via the variable $auth['realm'].
Addition to 'remote_user': You could specify a link where the users could log themselves out: $auth['remote_user']['logout_link']

The validation of the combination of username and password is done by the module used in the section 'authentictation'. There are 4 modules available: 'config' (The username/password combination is stored in config.inc.php), 'db' (the combination will be stored in a database), 'ext' (a program will be executed to check the combination).
Addition to 'config': The username/password combination will be stored in the array $auth["user"], e.g.: $auth["user"]["nutzername1"] = "password1";
Addtition to 'ext': The executed programm is defined in the varibale $auth["prog"], the parameters are specified in $auth["params"], '#PASSWORD#' and '#USERNAME#' are placeholders.

The both sections control who could login, but they do not define who has adminstration privilegs and who not. People who should have those rights are listed in the array $auth["admin"], e.g. $auth["admin"][] = "nutzername1";.
Administrators are able to create new areas and rooms and could modify entries by other users.

Example configuartion ('session'='php' and 'type'='config'):

$auth["session"] = "php"; 
$auth["type"] = "config"; 
# The list of administrators (can modify other peoples settings)
$auth["admin"][] = "nutzername1"; 
# 'auth_config' user database
$auth["user"]["nutzername1"] = "password1";
$auth["user"]["nutzername2"] = "password2";

Language

In Schoorbs there not many language specific settings. In the common case documents will be delivered in UTF-8, at some place there is the possiblity to retract this via $unicode_encoding = 1;. Schoorbs tries to automatecally detect the language of the users, if this may fail, the language specified in $default_language_tokens which contains a two character language code(e.g. 'en'). By default the frequently asked questions will be displayed in English, but there are versions in Spain('_es'), German('_de') and French('_fr'), if you prefer one of these languages you should fill $faqfilelang with the fitting string.

Categories

Schoorbs gives you the choice to categorize your bookings. Herefor you have to the fill the array $typel with the description as the values and a uppercase letter between 'A' - 'J' as the index. Each letter colors the entry in a different style which defined via CSS(schoorbs-misc/style/style.css).

Example categories (with german scholar usage):

$typel["A"] = "Referat";
$typel["B"] = "normaler Unterricht";
$typel["C"] = "Kursarbeit";
# $typel["D"] = "D";
$typel["E"] = get_vocab("external");
# $typel["F"] = "F";
# $typel["G"] = "G";
# $typel["H"] = "H";
$typel["I"] = get_vocab("internal");
# $typel["J"] = "J";

Miscellaneous settings

Other configurations are e.g. the maximum number of repetetions is specified in ($max_rep_entrys). Additionally you could turn on the display of the times on the right side of the timetable with $times_right_side = true. With $javascript_cursor you could activate the highlighting of the current cell where the mouse is pointing at. When the user is accessing the index.php of Schoorbs he will see the timetable view defined in $default_view, either 'day', 'week' or 'month'.

Creative Commons License

Common usage

Booking a ressource

By default you start a booking process by clicking on a green cross in the timetable. It doesn't matter which room or time you click on, it's only important that you click in the right area on a cross, all other parameters could be changed on the following page.

After you clicked on a cross, you will be redirect to the page "Add Entry". In brief description you should give a short title for this booking, a full description is optional but provides all other users a more detailed information what this booking is about. If you are using periods in your Schoorbs installation, you only have to choose the start periods and how long it will last, users with time-based calendars choose the start time, the duration and the unit of the duration, e.g. hours.

Everything explained until yet is important for all types of entries, single or repeated ones. If you want to add a reoccuring/repeated entry the last lines of this form are interesting for you. The "Repeat End Date" specifies the day of the last entry of this repeated booking. Above this field you could choose the type of the repeating, for n-weekly, you could choose below the dayes when the entry is repeated. After a click on "Save" either the day view with the new entry added or a list of conflicting bookings will be shown.

Changing a booking

Is a booking not anymore required, than you could delete is as long as its start time isn't already in the past. By clicking on the entry in the timetable you will be redirected to a page with information about this entry. At the bottom of this page there is a link "Delete Entry". Using this link you will only delete the current entry, if you want to delete a whole series, you could click on "Delete series", but remember that this action could not be done in reverse, so please think carefully about what you are doing.

If you have made a mistake during the creation of the enty, you do not need to delete the entry and create a new one (like in some other software). On the page with the detailed information about an entry you could click on "Edit entry" and change everything exactly like when you are creating a new entry. If you want to edit a whole series, you should use "Edit series".

Creative Commons License

Upgrade a Schoorbs installation

How to upgrade

Please backup all your Schoorbs data(files and database) before an upgrade!

  1. We have a Schoorbs installation in ..../schoorbs
  2. Copy the directory of your current Schoorbs-installation to anothter location, e.g. schoorbs-old
  3. Download the new version of Schoorbs
  4. Extract it to the place where your current Schoorbs installation was before you moved it.
  5. Copy over the following files from the current installation to the new installation:
    • config.inc.php
    • schoorbs-includes/logging.configuration.php
  6. Now you are already finsihed, if you want you could delete the files from the previous Schoorbs installtion which we moved to schoorbs-old.

Creative Commons License

Upgrade from MRBS 1.2.x

Upgrade from MRBS 1.2.x

If you have already an old MRBS installation, you should first make a backup of your old files (especially config.inc.php) and your database. If you have downloaded the Schoorbs package, you should extract it to a location where your webserver can access it. Then copy your old config.inc.php to the new Schoorbs installation and you should have a running Schoorbs.

Example of an upgrade from MRBS 1.2.5 to Schoorbs using a Linx distribution or a Linux/Unix-like system (e.g. Apple MacOS):

At first we do a backup of the old MRBS installation files into a tar.gz-archive:
$ tar zcf mrbs-backup.tar.gz mrbs/

Then we make a backup of the database, either MySQL oder PostgreSQL:
$ mysqldump mrbs --password=.... --user=mrbs --host=localhost > mbrs.sql or $ pg_dump mrbs > mbrs.sql

Now, after all data is backed up, we download a new version of Schoorbs into the same directory as mrbs/ is in. For example if we have downloaded the 7z-archive, we extract it with:
$ 7zr x schoorbs.7z When the archive is extracted we should have a new directory called schoobrs, in which we copy the old config.inc.php to keep the settings we have configured for MRBS. We do not have to change anything concearning the database because the database interface in Schoorbs is the same as in MRBS (but a bit more secure).
$ cp mrbs/config.inc.php schoorbs/

We now have a running Schoorbs, but at another location than the old MRBS-installation. Because we made a backup of our old MRBS-data we just could remove the mrbs/ directory and set a link from it to the new schoorbs/-directory:
$ rm -rf mrbs/
$ ln -s mrbs schoorbs/

The room/resource booking system is now upgraded to Schoorbs, if you want to use some new Schoorbs features you might need to enable them, e.g. activate the .htaccess files for the REST-interface.

Creative Commons License

Dokumentation(DE)

Endnutzer Dokumentation für Schoorbs

Wo kann man es herunterladen?

Sie finden auf der Release-Seite immer die aktuellste Version zum Download. Zum täglichen Nutzen sollte man die stabile(eng. stable) Ausgabe herunterladen, da diese ausgiebig getestet wurde und auch möglichst schnell aktualisiert wird, wenn ein Fehler gefunden wurde. Möchten Sie jedoch die Features zukünftiger Schoorbs-Versionen ausprobieren, können Sie eine experimentelle Version herunterladen, diese sollte jedoch keinesfalls(!) für produktive Zwecke genutzt werden, da sie viele noch unbekannte Fehler beinhalten kann, da sie noch nicht ausreichend gut getestet wurde.

Wo bekommt man bei Problemen Hilfe?

Wenn Sie Probleme oder Fragen bezüglich Schoorbs haben, aber auf dieser Seite keine Hilfe finden, so wenden sie sich am Besten an unsere Mailingliste. Standardmäßig sollte hier die Kommunikation auf Englisch erfolgen, fehlen Ihnen jedoch wichtige sprachliche Kenntnisse, können sie ruhig auch eine E-Mail auf Deutsch schicken, da einige der Entwickler(auch der Projektinitiator) Deutsche sind bzw. Deutsch können.

Finden Sie einen Fehler in Schoorbs, so melden Sie dies am Besten auch im Issuse Tracker @ Google Code.

Lizenz

Während Schoorbs unter der GPLv2 lizensiert ist, ist die Endnutzerdokumentation unter der "Creative Commons Attribution-ShareAlike 3.0 Unported"-Lizenz verfügbar, welche zwar nicht so frei wie die GPL ist, jedoch den "Weitergebern" an anderer Stelle mehr Möglichkeiten gibt. Normalerweise wird durch den CC-BY-SA Button am Ende der Seite angezeigt, dass dieser Text unter CC-BY-SA-3.0-Lizenz steht, fehlt diese Button jedoch und es wurde auf dieser Seite keine weitere Angabe zur Lizenz gemacht, so sollten Sie am Besten auf der Mailingliste eine kleine Aufforderung schreiben, die Lizenz für die jeweiligen Seite klarzustellen.

Creative Commons License

Installation

Vorraussetzungen

Im Gegensatz zur aktiven Entwicklung an Schoorbs, braucht man zur normalen Nutzung kaum Zusatzsoftware. Folgende Komponenten sollten zum Betrieb genügen:

  • Ein moderner Webserver, bei der Entwicklung wurde hauptsächlich der Apache HTTP Server 2.2 eingestetzt, jedoch sollte Schoorbs ohne Probleme auch auf alternativen Webservern wie Lighty laufen.
  • PHP >= 4.3 als Servermodul(SAPI) oder per Fast(CGI)
  • Als Datenbank kann PosgtreSQL >= 7.x oder MySQL >= 4.x genutzt werden, die jeweiligen PHP-Module zur Datenbank müssen auch installiert sein.

Installationsanleitung

Beim Einsatz von Schoorbs sollte man die jeweils neueste Version benutzen, da in dieser die meisten bekannten Fehler schon korrigiert sind. Auf schoorbs.xhochy.com ist diese immer verlinkt, sie wird in 2 Editionen bereitgestellt, ein Mal als Zip-Archiv und ein Mal als 7z-Archiv. Beide Archive enthalten die gleichen Dateien, jedoch ist das Zip-Archiv deutlich größer, wobei aber auf nahezu jedem Computer heutzutage ein Programm zum Entpacken von Zip-Acrhiven vorhanden ist. Viele Nutzer haben dagegen aber oftmals kein Programm installiert, um das deutlich kleinere 7z-Archiv zu entpacken.
Das jeweils gewählte Archiv sollte man nun in einem Verzeichnis entpacken, auf welches der Webserver zugreifen kann, wie Sie dies jeweils bei Ihrem Webserver einstellen, lesen Sie in dessen Dokumentation nach. Zu beachten ist hierbei noch, dass die PHP-Dateien nicht direkt ausgeliefert werden sollen, sondern zuerst noch von einem PHP-Interpreter ausgewertet werden müssen, weil sonst der Nutzer anstatt der erwarteten HTML-Seite nur den Quelltext der jeweiligen PHP-Datei zu sehen bekommt.

Da aktuell noch die Templateenigne Smarty genutzt wird und diese ihre Templates zwischenspeichern muss, muss man ihr Schreibrechte auf dem Ordner schoorbs-includes/Smarty/templates_c. Dies kann man unter Linux mit folgendem Befehl machen:

chmod a+rw -R schoorbs-includes/Smarty/templates_c

Da auf den meisten Linux-Systemen der Webserver unter dem Nutzer www-data läuft, kann man, wenn man selbst die jeweiligen Rechte hat, diesen Nutzer als Eigentümer dieses Ordners eintragen, was deutlich sicherer ist:

chown -R www-data:www-data schoorbs-includes/Smarty/templates_c

Bei Schoorbs werden die gesamten Daten(z.B. Buchungen) in einer Datenbank gespeichert. Als mögliche Datenbanksoftware wird zur Zeit nur MySQL oder PostgreSQL unterstützt. Da beide Systeme bei der Konfiguration und Installation der Tabellen gößtenteils unterschiedlich sind, sind für beide im Folgenden separate Anleitungen vorhanden. Im Verzeichnis schoorbs-misc/install-sql finden sich für beide Datenbanksysteme SQL-Scripte, die bei der Installation hilfreich sind und im nachfolgenden Absatz benutzt werden.

datenbankbezogene Installation bei MySQL:

Um möglichst wenig Zusatzsoftware vorrauszusetzen, zeige ich die Installation des MySQL-bezogenen Teils mit Hilfe der Kommandozeilenprogramme, welche direkt mit MySQL zusammen ausgeliefert werden. Als Basis muss ein Datenbank-Nutzer existieren, der Schreibszugriff auf die Datenbank hat, in der die Tabellen für Schoorbs angelegt werden sollen. Es gibt zur Installation 2 vorgefertigte SQL-Scripte, tables.my.sql und tables-legacy.my.sql, ersteres erstellt dabei Datenbank-Tabellen für Schoorbs mit dem Präfix 'schoorbs_', die legacy-Variante hingegen erzeugt Tabllen mit dem Präfix 'mrbs_'. Möchte man einen anderen Präfix für die Tabellen haben, so muss man eine dieser beiden Dateien manuell bearbeiten.
Hat man sich nun für einen Präfix entschieden, kann man die Tabellen in der Datenbank mit folgenden Kommandozeilenaufruf erzeugen:

mysql -u <Nutzer> -p <Datenbank> < tables.my.sql

datenbankbezogene Installation bei PostgreSQL:

Möchte man PostreSQL benutzten, so muss man die Version der Software beachten. Da sich bei Version 7.3 einige Funktionen geändert haben, gibt es für diese und neuere Versionen separate SQL-Scripte zur Installation. Sie bekommen ihre aktuelle PostgreSQL-Version per folgendem Kommando angezeigt:

psql -V

Abhängig von der vorhanden Version gibt es die SQL-Scripte tables.pg.73and_above.sql und tables-legacy.pg.73and_above.sql bzw. tables.pg.sql und tables-legacy.sql. Die ersten beiden Scripte sind angepasst für die Verwendung bei den neueren PostgreSQL-Versionen. Die Scripte mit dem Zusatz 'legacy' erzeugen Tabellen mit dem Präfix 'mrbs_', die anderen beiden mit 'schoorbs_'. Möchte man Tabellen mit einem alternativen Präfix, so muss man ein Script manuell bearbeiten. Zum Erzeugen der Tabellen in der Datenbank reicht das Ausführen des folgenden Befehls auf der Kommandozeile:

psql -a -f tables.pg.sql <Datenbank>

Creative Commons License

Konfiguration

Allgemein

Jegliche Konfiguration des Ressourcenbuchungssystems findet in der Datei config.inc.php statt. Bei einer neuen Installation existiert diese Datei jedoch noch nicht, nur config.inc.php-dist, eine Beispielkonfiguration. Sie können diese Datei einfach nach config.inc.php kopieren und diese dann bearbeiten.

Achtung:
Nicht dokumentierte Variabeln haben zur Zeit keine Wirkung, da z.B. beim Fork von MRBS einige Module, wie z.B. die Authentifizierung über LDAP, deaktiviert wurden, oder die Variabeln sind nur während der Entwicklung bedeutent und sollten deshalb nicht verändert werden. Die deaktivierten Module sind zwar zur Zeit nicht verfügbar, werden aber in nächster Zeit wieder bereitgestellt, da sie manuell auf Sicherheit überprüft werden, sollten Sie eines dieser Module benötigen, so wenden Sie sich bitte an die Mailingliste, damit diese Modul, wenn möglich, bevorzugt überprüft wird.

Datenbank

Der erste Abschnitt der Konfiguration von Schoorbs in der Datei config.inc.php betrifft die Einstellungen zur Datenbank. Wie schon im Kapitel zur Installation erwähnt, hat man bei Schoorbs nur die Wahl zwischen MySQL und PostgreSQL. Jedoch gibt es für die Nutzung von MySQL zwei unterschiedliche Module, ein Mal das Module mysqli, welches an sich nur für Syteme mit PHP 5+ und MySQL 5+ eignet, bei diesen aber sehr empfehlenswert ist. Für alle anderen Systeme mit MySQL sollte man das Modul mysql nutzen. Für den Zugriff auf PostgreSQL steht nur das Modul pgsql zur Verfügung. Das jeweils passende Modul schreiben Sie als Wert zur Variable $dbsys. In die Variable $db_host tragen sie den Namen des Computers ein, auf welchem der Datenbankserver läuft, bei PostgreSQL können sie diesen Wert auch leer lassen, wenn sie möchten, dass die Verbindung zur Datenbank anstatt über TCP/IP per Unix Socket geschiet. Den Namen der Datenbank tragen Sie bei der Variable $db_database ein. Nutzername und Passwort gehören in die Variabeln $db_login und $db_password. In $db_tbl_prefix tragen Sie den während der Installation gewählten Tabellenpräfix ein, meistens ist dies 'schoorbs_' oder 'mrbs_'. Als letzte Konfigurationsmöglichkeit können Sie wählen, ob Sie peristente Datenbankverbindungen haben wollen. Sie sollten diese jedoch nur nutzen, wenn Sie genau wissen, was Sie tun, ansonsten empfiehlt sich das Deaktivieren von peristenten Verbindungen, welches durch das Setzen von $db_nopersist = 1; bewirkt wird.

Beispielkonfiguration (für eine Verbindung per MySQLi):

$dbsys = "mysqli";
$db_host = "localhost";
$db_database = "schoorbs";
$db_login = 'schoorbs';
$db_password = 'geheimes_passwort';
$db_tbl_prefix = "schoorbs_";
$db_nopersist = 1;

Seiteninformationen

Als sogenannte Seiteninformationen kann man hier nur den Administrations-Kontakt und den Titel der Seite festlegen. Den Namen des Administrators weist man der Variable $mrbs_admin zu, seine E-Mail trägt man in $mrbs_admin_email ein. Den Titel der Seite legt man in der Variable $mrbs_company fest, dieser Titel kann auch (X)HTML-Tags wie z.b. <a> enthalten.

Beispielkonfiguration:

$mrbs_admin = "Herr Mustermann";
$mrbs_admin_email = "mail@example.org";
$mrbs_company = "Die Example Firma";

Kalender / Zeiteinheiten

Bei Schoorbs gibt es 2 Möglichkeiten die Zeiteinheiten, welche gebucht werden können festzulegen. Auf der einen Seite gibt es die Möglichkeit eine feste Dauer($resolutuin) in Sekunden anzugeben, die für jede Einheit gilt. Solche Einheiten kann man zwischen einem angebenen Tagesstart($morningstarts (Stunde) und $morningstarts_minutes (Minuten)) und einem angebenen Tagesende($eveningends (Stunde) und $eveningends_minutes (Minuten)) buchen. Hat man z.B. als Tagesstart 7:30 angeben, und als Auflösung 1800(-> 1/2 h) gewählt, so kann man jeweils um 7:30, 8:00, 8:30, ... eine Einheit buchen.
Möchte man nun aber Zeiteinheiten mit unterschiedlicher Länge bzw. möchte man die Einheit überhaupt nicht über die Zeit, sondern über einen spezifischen Namen bestimmen, so kann man einen Array($periods) angeben, welche Einheiten verfügbar sein sollen. Um diese Funktion zu nutzen, muss man die Variable $enable_periods auf true setzen.
Allgemein gesehen kann man noch auswählen, ob der Wochenbeginn an einem Sonntag($weekstarts = 0;) oder an einem Montag ($weekstarts = 1;) ist.

Beispielkonfiguration mit festen Zeiteinheiten:

$enable_periods = false;
$resolution = 2700;
$morningstarts = 8;
$eveningends   = 17;
$morningstarts_minutes = 0;
$eveningends_minutes = 0;
$periods[] = array();
$weekstarts = 1;

Beispielkonfiguration mit benannten Zeiteinheiten

$enable_periods = true;
$resolution = 2700;
$morningstarts = 8;
$eveningends   = 17;
$morningstarts_minutes = 0;
$eveningends_minutes = 0;
$periods[] = "08:00-08:45";
$periods[] = "08:45-09:30";
$periods[] = "09:30-09:45";
$periods[] = "09:45-10:30";
$periods[] = "10:30-11:15";
$periods[] = "11:15-11:30";
$periods[] = "11:30-12:15";
$periods[] = "12:15-13:00";
$periods[] = "13:00-13:15";
$periods[] = "13:15-14:00";
$periods[] = "14:00-14:45";
$periods[] = "14:45-15:30";
$periods[] = "15:30-16:15";
$weekstarts = 1;

Authentifizierung

Bei der Authentifizierung bei Schoorbs gibt es 2 modulare Bereiche, 'authentication' (Variable: $auth["type"]) und 'session' (Variable: $auth["session"]).

Der Bereich 'session' ist für die Schnittstelle verantwortlich, die vom Benutzer Nutzername und Passwort verlangt und dieses auch über mehrere HTTP-Requests hinweg speichert. Hier stehen die Module 'cookie' (Abfrage des Passworts per HTML-GUI, speichern des Namens/Passworts in einem Cookie), 'host'(Der DNS-Hostname des Nutzers ist der Nutzername, Passwörter gibt es nicht), 'http' (Name/Passwort werden über HTTP-Authentication nachgefragt), 'ip' (Die IP des Nutzers ist der Nutzername, Passwörter gibt es nicht), 'php' (Name/Passwort werden per HTML abgefragt, Name/Passwort werden mit PHPs internem Session-Handling abgespeichert) und 'remote_user' (wie 'http', nur hier ist der Webserver für die HTTP-Authentikation zuständig).
Zusatz zu 'http': Den Titel der HTTP-Authentifikation kann man mit der Variable $auth['realm'] setzen.
Zustatz zu 'remote_user': Man kann einen Link spezifizieren, auf dem sich Nutzer ausloggen können: $auth['remote_user']['logout_link']

Die Überprüfung der Kombination von Nutzername und Passwort wird im Bereich 'authentication' erledigt. Hier existieren 4 Module: 'config' (Die zulässign Name/Passwort-Kombinationen werden in der config.inc.php fest abgespeichert), 'db' (Name und Passwort werden in der Datenbank abgespeichert), 'ext' (Es wird ein Programm ausgeführt, welches die Kombination überprüft) und 'none' (Jegliche Kombination von Name/Passwort wird als korrekt angesehen).
Zusatz zu 'config': Die Name/Passwort-Kombinationen werden im Array $auth["user"] gespeichert, z.b.: $auth["user"]["nutzername1"] = "password1";
Zusatz zu 'ext': Das auszuführende Programm wird in der Variable $auth["prog"] festgelegt, die Parameter für das Programm in $auth["params"], wobei bei den Parametern '#PASSWORD#' und '#USERNAME#' jeweils durch die zu überprüfende Kombination ersetzt wird.

Die beiden Bereiche regeln zwar, wie und wer sich einloggen darf, jedoch legen sie noch nicht fest, welcher Benutzer Administratorrechte hat. Einem Benutzer kann man Administratorrechte geben in dem man ihm dem Array $auth["admin"] hinzufügt, z.B.: $auth["admin"][] = "nutzername1";.
Administratoren können neue Bereiche und Ressourcen erstellen und Einträge anderer Nutzer bearbeiten.

Beispielkonfiguartion (mit 'session'='php' und 'type'='config'):

$auth["session"] = "php"; 
$auth["type"] = "config"; 
# The list of administrators (can modify other peoples settings)
$auth["admin"][] = "nutzername1"; 
# 'auth_config' user database
$auth["user"]["nutzername1"] = "password1";
$auth["user"]["nutzername2"] = "password2";

Sprache

Zur Sprache sind bei Schoorbs nicht viele Einstellungen notwendig. Normalerweise wird alles per UTF-8 ausgeben, an einigen Stellen besteht jedoch die Möglichkeit dies zu unterlassen, möchte man dies, so kommentiert man die Zeile $unicode_encoding = 1; aus. Schoorbs versucht die Sprache des Nutzers automatisch zu ermitteln, sollte dies jedoch mal nicht gelingen, so wird auf die Variable $default_language_tokens zurürckgegriffen, welche einen zweistelligen Sprachcode(kleine Buchstaben, z.B.: 'de') enthält. Standardmäßig werden die häufig gestellten Fragen(FAQ) in Englisch angezeigt, es existieren jedoch auch Versionen in Spanisch('_es'), Deutsch('_de') und Französisch('_fr'), möchte man lieber eine dieser Sprachen haben, so muss man die jeweilige Zeichenkette in die Variable $faqfilelang eintragen.

Kategorien

Schoorbs bietet die Möglichkeit Buchungen in Kategorien einzuodnen und sie passend farblich zu hinterlegen. Dazu existieren die Arrayspalten 'A' - 'J' des Arrays $typel. Jeder Buchstabe färbt den jeweiligen Eintrag anders, die Farbe wird per CSS (schoorbs-misc/style/style.css) festgelegt. Die Kategorien 'external' und 'internal' müssen hierbei jedoch immer erhalten bleiben.

Beispielkategorien (bei schulischer Nutzung):

$typel["A"] = "Referat";
$typel["B"] = "normaler Unterricht";
$typel["C"] = "Kursarbeit";
# $typel["D"] = "D";
$typel["E"] = get_vocab("external");
# $typel["F"] = "F";
# $typel["G"] = "G";
# $typel["H"] = "H";
$typel["I"] = get_vocab("internal");
# $typel["J"] = "J";

Sontige Einstellungen

Sonstige Konfigurationen sind z.B. die maximale Anzahl an Wiederholungen, die ein regelmäßiger Termin haben kann($max_rep_entrys). Weiterhin kann man noch festlegen, ob auch auf der rechten Seite der Tabelle die Uhrzeiten angezeigt werden sollen, was man durch das Setzen von $times_right_side auf true bzw. false aktivieren bzw. deaktivieren kann. Mit $javascript_cursor kann man das farbliche Hervorheben der Tabellenspalte aktivieren, über die man gerade mit dem Mauszeiger geht, diese Funktion wäre zwar auch mit CSS implemtierbar, jedoch würde sie dann nicht korrekt von allen Browser dargestellt werden, weshalb hier die Javascript-Variante, die einzig verfügbare ist. Mit $default_view legt man fest, welche Ansicht normalerweise benutzt wird, wenn der Nutzer im Browser die Index-Seite ansteuert, mögliche Ansichten sind: Tag('day'), Woche('week') oder Monat('month').

Creative Commons License

Normaler Gebrauch

Buchen einer Ressource

Standardmäßig muss man auf das grüne Kreuz klicken um den „Bestellvorgang“ für eine Resource zu starten. Es ist hierbei jedoch nicht wichtig welchen Termin man auswählt bzw. welche Resource, man muss nur achten, dass man im richtigen Bereich auf das Kreuz klickt, alle anderen Parameter kann man auf der darauffolgenden Seite noch ändern.

Hat man nun darauf geklickt wird man auf die Seite „Eintrag hinzufügen“ weitergeleitet. Unter Kurzbeschreibung sollte man das Unterrichtsfach und die Klassen eintragen. Eine vollständige Beschreibung ist nicht zwingend nötig, sie ist aber bei Terminen, die von mehreren Lehrern betreut werden sehr sinnvoll, da man so auch noch direkt relevante Informationen mitteilen kann. Unter Period gibt man die Starteinheit ein.

Alles was ich bisher erklärt habe, muss man für alle Termine wissen, egal ob man sie für ein einziges Mal bucht oder ob sie häufiger vorkommen. Sollte letzteres der Fall sein, so sind die letzten drei Zeilen des Formulars interessant. Bei dem „Ende der Wiederholung“ legt man den letzten Tag fest, an dem nochmals der Termin auftreten dürfte, die anderen beiden Felder dürften selbsterklärend sein.
Nach einen Klick auf Speichern bekommt man entweder den Kalender angezeigt, inklusive des neu gebuchten Termins oder eine Liste aller Termine, die mit dem Termin in Konflikt liegen, den man buchen wollte.

Ändern einer Buchung

Sollte man eine Buchung doch nicht benötigen, kann man diese, sofern sie nicht in der Vergangenheit liegt, wieder abbestellen. Hierzu klickt man in der Kalenderübersicht einfach auf den Termin. Am unteren Ende der Informationen zu diesem Termin gibt es einen Link „Eintrag löschen“. Dieser löscht nur diesen Eintrag, egal ob es ein einzelner ist oder ob er zu einer wiederholenden Veranstaltung gehört. Sollte es eine wiederholende Veranstaltung sein, hat man auch noch die Möglichkeit auf den Link „Alle Einträge löschen“ zu klicken, was dann alle Einträge dieser Veranstaltung löschen würde. Zur Sicherheit macht Schoorbs aber vor jedem Löschen noch eine Ja/Nein-Abfrage per Javascript, bei der man nicht direkt auf 'Ja' klicken sollte, sondern erst noch mal nachdenken sollte, ob dieser Termin wirklich gelöscht werden soll, diese Aktion ist nicht umkehrbar!

Hat man beim Bestellen einen Fehler gemacht und möchte den Termin nicht erst löschen und dann wieder neu eingeben, kann man auf der Übersichtsseite des Termin auf „Eintrag ändern“ klicken und man kann dann dort alles wieder neu einstellen, genauso als würde man einen neuen Eintrag hinzufügen.

Creative Commons License

Administration

Bereiche

Bereiche sind für die Funktionsfähigkeits des Ressourcenbuchungsystems unwichtig, jedoch helfen sie den Überblick über eine große Menge an Ressourcen zu halten. Als Informationen zur Erstellung eines Bereiches wird nur dessen Name benötigt, den man auf der Seite Admin im oben gezeigten Feld eingibt. Möchte man einen Bereich wieder loswerden, so klickt man hinter dessen Namen auf „Löschen“, ist der Name des Bereichs falsch geschrieben oder sollte er sich mal ändern, kann man dies mit einem Klick auf „Bearbeiten“ korrigieren. Das Ändern des Namens hat keinen Einfluss auf die Ressourcen und deren Termine.

Ressourcen

Resourcen sind zwar die Kerneinheiten des Raumbuchungssystem, jedoch lassen sie sich sehr einfach administrieren. Im Gegensatz zu den Bereichen muss man hier außer des Namens auch noch die Kapazität des Raumes und eine kleine Beschreibung angeben. Diese zusätzlichen Daten sind jedoch nur informativ und werden nicht für irgendwelche Berechnungen benutzt. „Löschen“ und „Bearbeiten“ funktionieren genau wie bei der Bereichsadministration.

Creative Commons License

Konfiguration

Allgemein

Mit der Weboberfläche von Schoorbs kann man sich immer den aktuellen Zustand der Buchungen angucken, jedoch nicht wann Buchungen gelöscht oder geändert wurden. Auf den ersten Blick erscheinen diese Ereignisse unwichtig, jedoch kann man nur hiermit den Missbrauch der Software durch bestimmte Nutzer nachweisen, so könnte z.B. ein Nutzer immer einen Saal zu einer bestimmten Uhrzeit blockieren, aber immer kurz zuvor den Eintrag wieder löschen, nur weil er z.B. nicht möchte, dass ein Kollege einen bestimmten Saal oft nutzt. Desweiteren könnte man hiermit auch einem Administrator nachweisen, dass er bestimmte Einträge gelöscht hat, die nicht gelöscht werden sollten und somit sein Amt missbraucht hat.

Es werden zur Zeit nur das Erstellen/Ändern/Löschen eines Terims über die Web-Oberfläche protokolliert, d.h. jegliche Nutzung der REST-Schnittstelle bleibt an sich unprotokolliert. Jedoch kann man bei der REST-Schnittstelle die Weblogs zu Hilfe ziehen, da hier die gesamte ausgeführte Aktion an Hand der URLs zu identifizieren ist.

Die gesamte Konfiguration des Protokollierungssystems findet in der Datei schoorbs-includes/logging.configuration.php statt. Um das System zu aktivieren, setzt man dort der Wert der Variable active auf true, möchtet man es hingegen abschalten, setzt man den Wert auf false. Bei der Variable backend kann man einstellen, welches Plugin genutzt werden soll um die Protokollierung abzuspeichern. Zur Zeit existiert als einzigstes Logging-Plugin nur das Modul syslog, welches das Linux-interne Logging-System nutzt, um die Ereignisse zu protokollieren.

Hinweis: Aktuell existiert nur das Modul syslog, da dies im Rahmen meiner Facharbeit erstellt wurde, das System ist jedoch so modular programmiert, dass das Erstellen eines weiteren Protokollierungs-Plugins sehr simpel sein sollte.

Syslog

Das Syslog-Modul kann man nur unter Linux-Systemen nutzen, da unter anderen Systemen diese Funktionialität dort nicht vorhanden ist. Syslog ist ein Programm, welches unter Linux/Unix, die Ereignissmeldungen verschiedener Programme entgegennimmt und diese dann auf verschiedene Log-Dateien verteilt.

Um Syslog zu sagen, wo etwas hingeloggt werden soll, stellt man auf der Seite des Programms, welches die Ergeinisse sendet, ein, welche Priorität die Nachrichten haben sollen. Als Priorität sollte man standardmäßig die Option 'syslog-priority' auf LOG_INFO, da die Ereignisse, die von Schoorbs ausgelöst werden lediglich informativen Charakter haben, die Fehler werden direkt im Web ausgegeben. Als 'syslog-facility' ist standardmäßig LOG_USER ausgewählt, hier könnte man aber auch LOG_LOCAL0 bis LOG_LOCAL7 benutzen. Die facility bestimmt das sog. Themengebiet des Ereignisses. Auf der Seite das Syslog-Dienstes kann man nun einstellen, in welche Dateien diese facility-priority-Kombination geschrieben wird, die Konfiguration zwischen den Syslog-Programmen sehr unterschiedlich, weshalb ich hier nicht weiter daraufeingehen werde.

Creative Commons License

Upgrade von Schoorbs

Upgrade von Schoorbs

Bitte machen Sie zuvor eine Sicherheitskopie von allen Schoorbs-Daten (Dateien und Datenbank)!

  1. Wir haben eine Schoorbs Installation in ..../schoorbs
  2. Kopieren Sie den Ordner ihrer alten Schoorbs Installation an eine andere Stelle, z.b. schoorbs-old.
  3. Laden Sie die neueste Schoorbs Version herunter.
  4. Entpacken Sie diese Version an die Stelle, wo sich Ihre bisherige Installation befand.
  5. Kopieren Sie folgende Dateien von der alten zur neuen Installation:
    • config.inc.php
    • schoorbs-includes/logging.configuration.php
  6. Hiermit ist auch schon der Upgrade-Vorgang abgeschlossen, wenn Sie die alte Version nicht mehr behalten möchten, können Sie diese jetzt löschen, in dem Sie den Ordner schoorbs-old löschen.

Creative Commons License

Upgrade von MRBS 1.2.x

Upgrade von MRBS 1.2.x

Sollten sie bereits eine alte MRBS Installation haben, sollten Sie zu erst ein Backup Ihrer alten Dateien(vor allem config.inc.php) und Ihrer Datenbank machen. Wenn Sie das Schoorbs Paket heruntergeladen haben, sollten Sie es an einer Stelle entpacken, wo ihr Webserver darauf zugreifen kann. Kopieren Sie danach die alte config.inc.php in das neue Schoorbs-Verzeichnis. Bereits nun sollten Sie eine laufende Schoorbs-Version haben.

Beispiel-Upgrade-Vorgang von MRBS 1.2.x (getestet mit 1.2.6 und 1.2.5) unter einem Linux/Unix System:

Als erstes machen wir ein Backup der alten MRBS installation in ein tar.gz-Archiv: $ tar zcf mrbs-backup.tar.gz mrbs/

Nun fertigen wir noch ein Backup der Datenbank an, entweder MySQL oder PostgreSQL:
$ mysqldump mrbs --password=.... --user=mrbs --host=localhost > mrbs.sql oder $ pg_dump mrbs > mbrs.sql

Nun, nachdem alle Daten gebackupped wurden, laden wir eine neue Version von Schoorbs herunter und entpacken sie in dem selben Verzeichnis, wo sich auch mrbs/ befindet. Z.B. wenn wir ein 7z-Archiv heruntergeladen haben, entpacken wir es mit
$ 7zr x schoorbs.7z
Nachdem das Archiv entpackt wurde, haben nun einen neuen Ordner names schoorbs. In diesen Ordner kopieren wird die alte config.inc.php, um die Einstellungen der alten MRBS Installation zu nutzen. Da sich die Datenbankstruktur von MRBS zu Schoorbs nicht geändert hat, muss dort auch keine Veränderung mehr vorgenommen werden.
$ cp mrbs/config.inc.php schoorbs/

Wir haben nun eine neue, laufende Schoorbs Installation, aber an einer anderen Position, wie die vorherige MRBS Installation. Damit man Schoorbs auch über die URL von MRBS erreicht, löschen wir zu erst das MRBS-Verzeichnis, von welchem wir ein Backup haben und erstellen dann einen symbolischen Link von mrbs nach schoorbs/:
$ rm -rf mrbs/
$ ln -s mrbs schoorbs/

Das Raum & Resourcenbuchungsysstem ist nun auf Schoorbs aktualisiert, möchten Sie die neunen Features von Schoorbs nutzten, z.B. das Logging, so können Sie diese nun konfigurieren.

Creative Commons License

All