Schoorbs
- About
- Documentation(EN)
- Dokumentation(DE)
- All
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
Week view
Month view
Admininistration
Help / FAQ
Advanced search
Simple search + results
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
Links related to Schoorbs
Other sites for Schoorbs
- Schoorbs @ Google Code
- Schoorbs @ Launchpad.com
- Schoorbs @ Freshmeat
- Schoorbs @ Ohloh
- Schoorbs information on the main XhochY-site
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
-
Stable
- Schoorbs 1.0.0 Announcement, schoorbs-1.0.0.7z, schoorbs-1.0.0.zip
- Schoorbs 1.0.1 Announcement, schoorbs-1.0.1.7z, schoorbs-1.0.1.zip
- Schoorbs 1.0.2 Announcement, schoorbs-1.0.2.7z, schoorbs-1.0.2.zip
- Schoorbs 1.0.3 Announcement, schoorbs-1.0.3.7z, schoorbs-1.0.3.zip
- Schoorbs 1.0.4 Announcement, schoorbs-1.0.4.7z, schoorbs-1.0.4.zip
-
Unstable
- Schoorbs 1.0-Alpha 1: Announcement, schoorbs-1.0-alpha1.zip, schoorbs-1.0-alpha1.7z
- Schoorbs 1.0-Alpha 2: Announcement, schoorbs-1.0-alpha2.zip, schoorbs-1.0-alpha2.7z
- Schoorbs 1.0-Alpha 3: Announcement, schoorbs-1.0-alpha3.zip, schoorbs-1.0-alpha3.7z
- Schoorbs 1.0-Alpha 4: Announcement, schoorbs-1.0-alpha4.zip, schoorbs-1.0-alpha4.7z
- Schoorbs 1.0-Alpha 5: Announcement, schoorbs-1.0-alpha5.zip, schoorbs-1.0-alpha5.7z
- Schoorbs 1.0-Beta 1: Announcement, schoorbs-1.0-beta1.zip, schoorbs-1.0-beta1.7z
- Schoorbs 1.0-Beta 2: Announcement, schoorbs-1.0-beta2.zip, schoorbs-1.0-beta2.7z
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.
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.
Site Linkmap Table of Contents
This is a map of the complete site and its structure.
- Schoorbs ___________________ site
- About ___________________ about
- Index ___________________ index : Welcome to Schoorbs
- Screenshots ___________________ screenies
- Demo ___________________ demo : Schoorbs demo
- Links ___________________ links : Links related to Schoorbs
- License ___________________ license : License of Schoorbs(GPL)
- Releases ___________________ releases : Already released versions of Schoorbs
- Roadmap ___________________ roadmap : Roadmap
- Sitemap (ToC) ___________________ linkmap : Table of Contents
- Documentation(EN) ___________________ enduser
- Overview ___________________ index
- Installation ___________________ install
- Configuration ___________________ config
- Usage ___________________ usage
- Upgrade Schoorbs ___________________ upgrade
- Upgrade from MRBS 1.2.x ___________________ upgrade_mrbs
- Dokumentation(DE) ___________________ endnutzer
- Überblick ___________________ index
- Installation ___________________ installation
- Konfiguration ___________________ config
- Normaler Gebrauch ___________________ usage
- Administration ___________________ admin
- Logging ___________________ logging
- Upgrade von Schoorbs ___________________ upgrade
- Upgrade von MRBS 1.2.x ___________________ upgrade
- All ___________________ all
- Whole Site HTML ___________________ whole_site_html
- Whole Site PDF ___________________ whole_site_pdf
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.
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>
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'.
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".
Upgrade a Schoorbs installation
How to upgrade
Please backup all your Schoorbs data(files and database) before an upgrade!
- We have a Schoorbs installation in ..../schoorbs
- Copy the directory of your current Schoorbs-installation to anothter location, e.g. schoorbs-old
- Download the new version of Schoorbs
- Extract it to the place where your current Schoorbs installation was before you moved it.
-
Copy over the following files from the current installation to the new
installation:
- config.inc.php
- schoorbs-includes/logging.configuration.php
- Now you are already finsihed, if you want you could delete the files from the previous Schoorbs installtion which we moved to schoorbs-old.
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.
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.
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>
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').
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.
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.
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.
Upgrade von Schoorbs
Upgrade von Schoorbs
Bitte machen Sie zuvor eine Sicherheitskopie von allen Schoorbs-Daten (Dateien und Datenbank)!
- Wir haben eine Schoorbs Installation in ..../schoorbs
- Kopieren Sie den Ordner ihrer alten Schoorbs Installation an eine andere Stelle, z.b. schoorbs-old.
- Laden Sie die neueste Schoorbs Version herunter.
- Entpacken Sie diese Version an die Stelle, wo sich Ihre bisherige Installation befand.
-
Kopieren Sie folgende Dateien von der alten zur neuen Installation:
- config.inc.php
- schoorbs-includes/logging.configuration.php
- 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.
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.


