Welcome to phpScheduleIt

Version 1.2.12
Nick Korbel
http://phpscheduleit.sourceforge.net

Description of General System Functionality

phpScheduleIt was developed for reservation and resource management. This includes a full user log in and registration system, user profile management, the scheduling/reservation system, and numerous administration tools.

The entire system was written using PHP by Nick Korbel. The system uses any PEAR supported database to store and manage all user, resource and reservation information. Because of the availability of PHP, this system will run on any platform that meets the aforementioned necessary requirements.

At the time of writing, the currently supported PEAR databases are: dbase, fbsql, interbase, informix, msql, mssql, mysql, oci8, odbc, pgsql and sybase (DB style interfaces to LDAP servers and MS ADO (using COM) are also availed from a separate package).

The system is optimized for Internet Explorer 5.5 or greater, Netscape 6.x or greater and Mozilla 1.0 or greater. Netscape 4.7 is not supported.

Any questions or bug reports should be directed to Nick Korbel at lqqkout13@users.sourceforge.net

This project is in no way associated with PHP or PEAR. The PHP license is included in the lib/pear/ directory.

Requirements

- PHP 4.3 or higher (4.2.x is supported but not recommended)
- PEAR::DB (included with most versions of PHP)
- PEAR::DB supported database. Compatible databases can be found here.
- End-users need IE5+ or Netscape 6.x+ (Netscape 4.7 or earlier is NOT supported)

Installation

If you are installing on a remotely hosted server, please see Instructions for Installing on a Remote Host

The installation creates all the necessary database tables and inserts a default schedule.

Installation can be accomplished automatically by using the included setup script or manually, by following the instructions below.

Note: Many of these steps include syntax that may or may not be exclusive to MySQL. Please consult your database manual for other database syntaxes.

1) Verify that the PEAR DB package, a PEAR supported database (view currently supported databases) and PHP version 4.2.0 or greater are installed and properly configured on the destination server. If not, download and install at least these versions.

2) Copy all of the phpScheduleIt files provided into a desired web directory. Remember this directory because we will need it in the next two steps.

3) Rename config/config.new.php to config/config.php and edit the file to be sure it is correct for your web server set up. Most importantly, make sure that the 'weburi', 'dbType', 'dbUser', 'dbPass' and 'dbName' settings are correct.

4) Follow the proper set of instructions below for your type of setup. If you are installing on a local machine, the automatic installation is advised.

5) After the installation is complete, you must register a user with the email address set for 'adminemail' in config.php. This will be your administrative user.

Remote Installation -

If you are installing on a remote server, please follow the instructions in Instructions for Installing on a Remote Host before proceeding. This short document will guide you through creating the database, tables and database user needed for accessing the data used in phpScheduleIt.

Automatic Installation -

1) Simply run the install script by navigating your browser to http://yourwebsite.com/path_to_phpscheduleit/install/. You will be asked for your database password. Note that you do not need to log in as root, but the user needs to have permission to create and drop databases.

2) You will receive a confirmation or rejection notice about each command being executed. If everything goes well, you will receive a final notice that the installation was successful.

3) DELETE THE 'INSTALL' DIRECTORY. This is a critical step. If the directory is left, then anyone is open to destroy your newly created database.

Manual Installation -

1) File preparation: The defaults used in the manual installation will work correctly, but it is a good idea to change these. If you plan on keeping the defaults, you can skip this step.

To change the database name, change the word 'phpScheduleIt' on line 163 in setup.sql to your new database name. To change the database user name, change the word 'schedule_user' on line 164 in setup.sql to your new database user name. To change the user password, change the word 'password' on line 164 to your new user password.

2) The initial database must be set up. There is an included setup file for this. To execute the setup file in mysql, navigate to the MySQL executable directory (usually /usr/local/mysql/bin) and at the shell prompt type the following:

mysql -u root -p < %path to directory%/install/setup.sql

For example: mysql -u root -p < /www/htdocs/phpscheduleit/install/setup.sql

You will be prompted to enter the root MySQL password at this point. This script will create the schedule database, the schedule user/password combination and grant specific privileges to that user.

For syntax for other databases, please consult your manual.

3) Verify the installation was successful by bringing up the MySQL Monitor (typing mysql at the shell prompt). Please note that all commands entered in the MySQL Monitor end with a semicolon. At the mysql prompt, type show databases;. You will be informed that the database has been changed.

If the database that you just created is listed, then the installation was successful.

Type quit; to exit the MySQL Monitor.

4) Open the config.php file and immediately change the administrative login ($conf['app']['adminEmail']) from its default to a new desired login.

5) If desired, change any other settings in the configuration file.

6) DELETE THE 'INSTALL' DIRECTORY. This is a critical step. If the directory is left, then anyone is open to destroy your newly created database.

Multiple Database Setup -

To set up the system to use multiple databases (for example sharing a login table), first make sure that the tables that you want to use from a different database are already running. Next, set up a new version of phpScheduleIt by following either the Automatic or Manual Setup instructions above.

Next, edit the config/config.php file. Find the 'pk_prefix' field and change it to something that no other instance of the scheduler is using.

Now, you will need to edit the lib/DBEngine.class.php file. This is where all the database names to be used are defined. In the DBEngine() function, find the line that starts with "$this->dbs = array (xxxx);" For each additional database that you want to associate with this version phpScheduleIt, add a comma and then the name of the database, in single quotes. For example, to use 2 databases the line would look like this:

$this->dbs = array ($GLOBALS['conf']['db']['dbName'], 'name_of_database2');

Further down, find function define_tables(). This is where the table/database relationships are defined. For each table, assign a database that it comes from. This can be done by counting, in order from 0, the number that the database you want to associate a table to, and typing that between the brackets on the same line as the table name. For example, to use the default database for the login table, but 'name_of_database2' for the rest of the tables, your code would look like this:

$this->table_to_database = array (
   'login'	        => $this->dbs[0],
   'reservations'	=> $this->dbs[1],
   'resources'    	=> $this->dbs[1],
   'permission'		=> $this->dbs[1]
 );

Be sure that you do not change the table names, only the number between the brackets.

Upgrading From version 1.1.x

If you are installing on a remotely hosted server, please see Instructions for Installing on a Remote Host

Note: A new configuration file is used in this release. Config files from earlier versions will not work. Please copy everything in config/config.new.php between the START COPY and END COPY comments.

Please refer to the release notes in the install directory for any additional information.

Web Based Update

1) Simply run the install script by navigating your browser to http://yourwebsite.com/path_to_phpscheduleit/install/update/. You will be asked for your database password. Note that you do not need to log in as root, but the user needs to have permission to create and drop databases.

2) You will receive a confirmation or rejection notice about each command being executed. If everything goes well, you will receive a final notice that the installation was successful.

3) DELETE THE 'INSTALL' DIRECTORY. This is a critical step. If the directory is left, then anyone is open to destroy your newly created database.

Manual Update

To execute the update file in MySQL, navigate to the MySQL executable directory (usually /usr/local/mysql/bin) and at the shell prompt type the following:

mysql -u root -p < %path to directory%/install/update/update.sql

For example: mysql -u root -p < /www/htdocs/phpscheduleit/install/update/update.sql

You will be prompted to enter the root MySQL password at this point. This script will update the database to the current schema.

For syntax for other databases, please consult your manual.

Upgrading From version 1.2.x

To upgrade from an earlier version of 1.2, simply copy all files in this package over your current phpScheduleIt files. No configuration or database changes were made.

Common Issues

If you are using MySQL 4.1 and above

There is a known authentication issue with PHP and MySQL 4.1 and above. When you are installing phpScheduleIt using MySQL 4.1+, please uncomment line 373 in install.php (for automatic installation) or uncomment line 166 in setup.sql (for manual installation). This will ensure that authentication works properly.

I get a message that says "Cannot find file 'DB.php"

Your environment either does not have PEAR installed or is not properly set up to find the PEAR files. Please see the PEAR documentation http://www.pear.php.net for instructions on installing PEAR. PEAR should be included and installed with PHP version 4.2 or greater.

Try setting the config.php 'safeMode' variable to 1. This will almost always resolve the issue.

I get a message that says "Error connecting to database: DB Error: no such database"

Most likely the variables are not set correctly in your config file. This is a simple fix, please see the readme for how to take care of it.

If that is not the issue, then it is possible the database was not set up. Please verify that the phpscheduleit database exists.

I get a message that says "Warning: unable to create file /var/log/phpscheduleitlog.txt"

Your server is not set up to allow PHP to create or write to files. This is commonly a permissions issue and changing permissions for PHP or for the directory that it is trying to write to usually works.

Getting Started

After the system has been successfully installed and set up, create an account for the administrator. You can do this by navigating to the Login (index.php) page and clicking the Register link. Be sure to enter the login exactly the same as it appears in the config.php file's 'adminemail' setting.

After the Administrator account has been registered, you need to add resources. Also, as new users are added, you will need to manage their permissions to allow them to reserve a resource.

Configuration File

Application Settings

All of these settings apply to how the application functions.

$conf['app']['weburi']

This is the full URL to the base directory of phpScheduleIt (where index.php resides). For example, if you installed it in htdocs/phpscheduleit, the value would be http://www.yoursite.com/phpscheduleit.

Please do not include the trailing slash on this value

$conf['app']['adminEmail']

This is the email address and login value for the administrator. phpScheduleIt allows for just one administrative account. Set this value to whatever you want to use as the administrative login and be sure to register an account with this value. You cannot log into phpScheduleIt using this address unless you register it.

This email address will also be used as the 'from' address for all email contact with the users.

$conf['app']['defaultLanguage']

The language code for the default language. This must be included in the language list in langs.php and will be used as the default and if any translations fail for another language. This language file MUST be in the /lang directory.

$conf['app']['safeMode']

If your web server is running PHP in safe mode. Set this value to 1 if PHP is running in safe mode or 0 if it is not.

$conf['app']['timeFormat']

This is the format to view the times in. A value of 12 means that dates and times will be on the 12 hour clock (using am/pm). A value of 24 means that dates and times will be on the 24 hour clock (no am/pm).

Only 12 and 24 are accepted values.

$conf['app']['calFirstDay'] = 0;

This is the first day of the week for the small navigational calendars. This must be a value between 0-6 (0 = Sunday, 6 = Saturday)

$conf['app']['techEmail']

The email address of your technical support. This value will be used to direct technical email and all bug reports. It is highly recommended to set this value so that this technical person can help the user or report any questions to the project homepage on SourceForge and improve phpScheduleIt.

$conf['app']['ccEmail']

This value should contain all email address to CC when a user clicks the 'Email Admin' link. To specify multiple email addresses, separate them with commas.

$conf['app']['emailAdmin']

This setting toggles whether to send email notifications of reservation and registration activity to administrator.

The only values this can be are 0 (which means that email will not be sent) and 1 (which means that email will be sent).

$conf['app']['emailType']

This defines how email communications should be sent. In most cases, leaving the default value of 'mail' will work. The other options are 'smtp' for SMTP, 'sendmail' for sendmail, or 'qmail' for qmail MTA.

$conf['app']['smtpHost']

This defines the SMTP email host address. For example, smtp.email.com. You only need to set this variable if emailType is SMTP.

$conf['app']['smtpPort']

This defines the SMTP port. This is only required if emailType is SMTP and the default value should be fine.

$conf['app']['sendmailPath']

This defines the path to sendmail on your server. This only needs to be set if the emailType is 'sendmail' and the default value of '/usr/sbin/sendmail' will usually work.

$conf['app']['qmailPath']

This defines the path to qmail. This only needs to be set if the emailType is 'qmail' and the default value of '/var/qmail/bin/sendmail' will usually work.

$conf['app']['defaultPassword']

This value is the default password that is used when the administrator resets a password for a user. This value is only used if the admin does not enter a new password value when resetting a password for a user.

$conf['app']['title']

This is the title to use for the application. It will be used as the default title for pages and as the 'From' field in all email contacts.

$conf['app']['use_perms']

This setting toggles whether to use permissions or not. Using permissions will limit who can reserve resources. If permissions are on, only users who have been given permission to use a resource can reserve it. If permissions are turned off, anyone will be able to reserve any resource. Permission changes will still be saved, but they will not become effective until permissions are turned on through the config file.

The only values this can be are 0 (which means that permissions will not be used) and 1 (which means that permissions will be used).

$conf['app']['readOnlySummary']

This value tells if the read only schedule (available to all users and guests) should show the reservation summaries.

$conf['app']['readOnlyDetails']

This value tells if the read only schedule should allow visitors (registered and non-registered users) to click on the reservation and see the reservation details.

Please note that this opens up a small security hole in that if this is set, the login is not required to view reservations and the details are viewable to potentionally anyone.

$conf['app']['use_log']

This toggles the activity logging on or off. Logging writes all activity (registration, reservations, resource data) to a log file of your choice.

The only values this can be are 0 (which means that logging will not be used) and 1 (which means that logging will be used).

$conf['app']['logfile']

This value is the directory and file name of the log file to use. If the file does not exist, it will be created.

Please specify this as /directory/filename.extension.

$conf['app']['useLogonName']

This value tells if we should use a logon name for authentication instead of using the email address. Set this to 1 to use a logon name, 0 to use email address.

Notes: A unique email address will still be required. Also, if LDAP is being used for authenticaion, this will have no effect.

$conf['app']['minPasswordLength']

This is the minimum password length that is required for users registering or changing their password. It is recommended that this be at least 6.

Database Settings

All of these settings determine the database setup.

$conf['db']['dbType']

This is the database backend type. This must be a valid PEAR::DB setting.

The options are:
mysql -> MySQL
pgsql -> PostgreSQL
ibase -> InterBase
msql -> Mini SQL
mssql -> Microsoft SQL Server
oci8 -> Oracle 7/8/8i
odbc -> ODBC (Open Database Connectivity)
sybase -> SyBase
ifx -> Informix
fbsql -> FrontBase

$conf['db']['dbUser']

This value is the database user who has permission to create, alter, modify and delete data from the tables phpScheduleIt uses. This value is required to access the tables.

$conf['db']['dbPass']

This value is the password for the database user specified in $conf['db']['dbUser']. This value is required to access the tables.

$conf['db']['dbName']

This is the name of the database to be used by phpScheduleIt for storing all system data. The user specified in $conf['db']['dbUser'] will be given permission to use all tables in this database.

$conf['db']['hostSpec']

This is the host setting for your database server. In most cases 'localhost' will work. Some servers require you to use the loopback address.

$conf['db']['drop_old']

This value toggles whether the automatic installation should overwrite any databases with the same name as $conf['db']['dbName']. Please be very sure about this setting. If you are in doubt, leave it set to 0.

The only values this can be are 0 (which means that an existing database with the same name will not be overwritten) and 1 (which means that the aforementioned database will be overwritten).

$conf['db']['pk_prefix']

This value is the prefix that will be prepended to all primary keys in this database. This is required if you will be sharing databases between multiple versions of phpScheduleIt (for example, sharing a login data but having a different resource data).

This setting must be different for every instance of phpScheduleIt that is sharing the same database. 3 characters are recommended. Anything over 3 characters will be cut down to use only the first 3.

User Interface Settings

All of these settings change how the application looks and feels.

$conf['ui']['logoImage']

This value is the directory and filename of the image to use as the logo. Leave this empty if you do not want to use an image.

Please specify this as directory/filename.extension. This will be relative to the root directory of phpScheduleIt

$conf['ui']['welcome']

This is the welcome message to show at the login screen. Leave this value blank to display no message.

$conf['ui']['my_res']

This is the array that stores the color of the reservation block of all reservations that the current user owns. 'color' defines the standard color of the block, 'hover' defines the color when the mouse is over the reservation block, 'text' defines the color of the text printed on the reservation. Please do not include the hash mark (#) when specifying the colors.

To set the colors, add or alter this line.

$conf['ui']['my_res'][] = array ('color' => '5E7FB1', 'hover' => '799DD3', 'text' => 'FFFFFF');

$conf['ui']['other_res']
This is the array that stores the color of the reservation block of all reservations that the current user does not own. 'color' defines the standard color of the block, 'hover' defines the color when the mouse is over the reservation block, 'text' defines the color of the text printed on the reservation. Please do not include the hash mark (#) when specifying the colors.

To set the colors, add or alter this line.

$conf['ui']['other_res'][] = array ('color' => 'D2DDEC', 'hover' => 'AFBED3', 'text' => 'FFFFFF');

$conf['ui']['my_past_res']
This is the array that stores the color of the reservation block of all reservations that the current user owns, but have past. 'color' defines the standard color of the block, 'hover' defines the color when the mouse is over the reservation block, 'text' defines the color of the text printed on the reservation. Please do not include the hash mark (#) when specifying the colors.

Please refer to the two variables above this for how to set it properly.

$conf['ui']['other_past_res']

This is the array that stores the color of the reservation block of all reservations that the current user does not own, but have past. 'color' defines the standard color of the block, 'hover' defines the color when the mouse is over the reservation block, 'text' defines the color of the text printed on the reservation. Please do not include the hash mark (#) when specifying the colors.

Please refer to the two variables above this for how to set it properly.

$conf['ui']['positions']

This is the available choices to use when a new user is registering for phpScheduleIt. If you add values to this variable, they will appear in a pull down menu. If you do not add values then the position field will be a text box instead of a pull down menu.

To add positions to the pull down menu, add the following line.

$conf['ui']['positions'][] = "Position Value";

To add more positions, repeat the above line for each position. They will be displayed in the order you list them. The value cannot be more than 255 characters.

$conf['ui']['institutions']

This is the available choices to use when a new user is registering for phpScheduleIt. If you add values to this variable, they will appear in a pull down menu. If you do not add values then the institution field will be a text box instead of a pull down menu.

To add positions to the pull down menu, add the following line.

$conf['ui']['institutions'][] = "Institution Value";

To add more institutions, repeat the above line for each position. They will be displayed in the order you list them. The value cannot be more than 100 characters.

LDAP Settings

$conf['ldap']['authentication']

This sets whether you want to use LDAP authentication or not. The only acceptable values are true and false.

$conf['ldap']['host']

This is your LDAP server's host name. For example, ldap.example.com

$conf['ldap']['port']

This is the port that your need to connect to your LDAP server on, usually 389.

$conf['ldap']['basedn']

LDAP people search base. Set this to where people in your organization are stored in LDAP, typically ou=people,o=domain.com.

System Navigation

Entry into the phpScheduleIt system defaults to the login screen. Here a user can log in or navigate to the registration page. If a user has selected the "Keep Me Logged In" option, then they will be automatically forwarded to My Control Panel each time they return to the system (until they manually Log Out). After a successful login or registration, the user will be automatically forwarded to My Control Panel.

My Control Panel is the "Home Page" for each user. They will be able to view, modify and delete their upcoming reservations. The list of reservations is sortable in ascending/descending order based on column name. Here, they will also be presented with a Quick Links table where they can navigate to the scheduler, edit their profile/password or log out of the system. Users can return to My Control Panel from anywhere in the system at any time by clicking the "My Control Panel" underneath the welcome message.

The scheduler is where users book new reservations and edit past ones. Clicking on a resource's name will bring up a pop-up window where the user can reserve the resource. If the user selects a time which is already reserved by another user, the reservation will fail and they will be prompted to try again. Users CANNOT edit or delete another user's reservation. They will only be allowed to view it. Also, users cannot book or modify a reservation for a past date, an inactive resource or a resource that they have not been given permission to reserve. The administrator has the power to modify or delete any reservation in the system from both the scheduler and from the admin tool "Manage Reservations".

When a user clicks the Quick Link "Edit My Profile Information/Password", they will be brought to a page resembling the Registration page with all of their information filled in (except the password). Editing the information will result in a change in the database. Blank or unchanged fields will not be altered in the database.

User Management

Warnings:

When using more that one instance of phpScheduleIt are sharing a database, it is critical that all data integrity issues are addressed. For example, sharing a login table but using independent reservation/resource/training tables can result in compromised data integrity. If a user has reservations committed on more than one system and they are deleted from the global login table, their reservations will not be removed unless they are deleted from one of the secondary instances of the system.

There are two main techniques that can be used to resolve this issue:

1) The shared data (in this case, the login information) must be removed from a secondary instance of the application. This secondary instance will be aware of all databases in the system and will be able to remove all data associated with the data being deleted.

2) The "leftover" data can be manually deleted from the system by an Administrator. In this example, reservations associated with deleted users can be deleted from the scheduler or from the admin tools.

Notes:

The initial login table will be empty.

All users are required to register upon first use of phpScheduleIt. All fields in the Registration form are required. Registration will fail if the form is not completed entirely. Upon successful registration, a unique memberid will be automatically created for each user.

Users can edit their personal information at any time by logging in and selecting the "Edit My Profile Information/Password" option in the Quick Links table. They will be taken to their personal information page where any of the fields can be changed.

Administrative Tool : Manage Users

The administrator can delete users at any time from the system by selecting the "Manage Users" option in the Quick Links table. The "Manage Users" tool will navigate to a page listing all users, sorted alphabetically (by default), showing a specific number of users at a time. The list of users can be sorted by ascending/descending order by column name. For each column, clicking on the minus sign sorts the list in descending order based on that column name, clicking on the plus sign sorts the list in ascending order based on that column name. The sorting order will be preserved throughout pages.

From this table, you can email a user by clicking their email address, view all information about this user by clicking the View Info link, manage that user's training by clicking the Training link, or delete any number of users by checking their delete box.

Clicking a users name link for a user will bring up a new window listing all information about the selected user.

Clicking the Reset password link will bring you to a screen that allows you to reset a password for a user. This should rarely have to be done, because users have the power to get a new password if one is forgotten. This function resets the users password to the specified value or to the default value set in the config file if no value is given on the reset form. No confirmation email will be sent, so please notify the user after resetting their password.

Clicking the Permissions link will navigate to a new window where you can select which resources a user has or has not been given permission to use. Upon registration, will only have permission to use resources if auto-assign has been turned on in the config file. To grant or revoke permission for a user, check or uncheck the checkbox for each resource the user is allowed to use.

To delete a user, simply check the "Delete User" box for each user who the administrator wishes to remove and press the "Delete Users" button. The administrator will be prompted to verify the removal of all selected users and all of their reservations. After the successful removal of users, the Manage Users page will be refreshed showing that the changes have been made. Deleting a user will also delete ALL reservations for that user.

Resource Management

Notes:

The initial resources table will be empty.

Administrative Tool : Manage Resources

The administrator can delete resources at any time from the system by selecting the "Manage Resources" option in the Quick Links table. The "Manage Resources" tool will navigate to a page listing all resources, sorted alphabetically (by default), showing a specific number of resources at a time. The list of resources can be sorted by ascending/descending order by column name. For each column, clicking on the minus sign sorts the list in descending order based on that column name, clicking on the plus sign sorts the list in ascending order based on that column name. The sorting order will be preserved throughout pages.

To add a resource, enter the resource data into the Add Resource table at the bottom of the Manage Resources page.

You will need to specify which schedule this resource belongs to. You will also need to set the minimum and maximum reservation lengths. Users will not be able to make reservations that are shorter than the minimum or longer than the maximum. Checking the Auto-Assign Permission checkbox tells phpScheduleIt that you want all users (current and future) to be given permission to use this resource.

Press the "Add Resource" button. The resource will be added into the database with a unique identification number and the Manage Resources page will be refreshed, showing the new resource. New resources will be set to "Active" by default.

To modify a resource's information, click on the resource's Edit link. The information will appear in the form below. Any field that is changed will be updated in the database. Unchanged or empty fields will not be changed in the database.

To delete a resource, check the Delete checkbox for each resource the administrator wishes to delete and press the "Delete Resources" button. The administrator will be prompted to verify the removal of the selected resources. Deleting a resource will also delete ALL reservations held for that resource. After the resources have been removed from the database, the Manage Resources page will be refreshed, showing the successful removal of the resources.

The status column lists each resource's current status. To change a resource's status, simply click on the link in the "Status" column and the resource will either be activated or inactivated. Resource status does NOT affect previously made reservations.

When adding or modifying a resource, you have the option to select the minimum and maximum reservation length. Reservations less than the minimum or greater than the maximum length specified will not be accepted. Setting these values to the same time will require that all reservations are of this length.

Reservation Reminders

In order to enable reservation reminder emails, you must add allowed reminder times to your web.config, described above, and add an automated task.

Windows Steps

  1. Add a Scheduled Task to run php.exe send_reminders.php
  2. Start -> All Programs -> Accessories -> System Tools -> Scheduled Tasks
  3. Click Add Scheduled Task
  4. Click Next
  5. Click Browse and navigate to the location of php.exe (c:\php\php.exe in most cases)
  6. Perform this task: Daily at 12:00 AM
  7. Click Next
  8. Click Next
  9. Enter your credentials (or Click Next)
  10. Check "Open advanced properties for this task when I click Finish"
  11. Click Finish
  12. Change the Run box to append the full path to send_reminders.php.  For example, if phpScheduleIt is installed at c:\Inetpub\wwwroot\phpScheduleIt, this value should be c:\php\php.exe c:\Inetpub\wwwroot\phpScheduleIt\cmd\send_reminders.php
  13. Click the Schedule tab and click the Advanced button
  14. Check Repeat Task and enter Every 5 minutes for 24 hours

For more info: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/agent_change_schedule.mspx?mfr=true

Linux Steps

  1. Open your crontab editor: crontab –e
  2. Add a line to the crontab entry of the user running the web server process to run the email reminder script. Replace the directory structure below with your phpScheduleIt install path:
    1 * * * * cd /web/directory/phpscheduleit/cmd; ./send_reminders.php

For more info: http://en.wikipedia.org/wiki/Cron

Other Admin Tools

The administrator's Quick Links table is different than all others. Manage Users and Manage Resources have been described already. The rest will be described now. As a note, the admin tools can only be accessed by a user who logs in as the administrator. All other users will be locked out of any administrative page.

Manage Schedules allows you to add or edit schedules. Below is a description of the schedule properties:
Schedule Title: Title of the schedule to appear in links and as a title
Day Start: Time of the day to begin allowing reservations
Day End: Time of the day to stop allowing reservations
Time Span: Reservation intervals
Week Day Start: Day of the week to start the schedule
Days To Show: Number of days to show on the schedule at a time
Reservation Offset: Number of days in advance a user needs to make a reservation
Hidden: Whether the schedule can be viewed
Show Summary: Whether to show the reservation summaries
Admin Email: Email address of the administrator of this schedule

Manage Reservations will navigate to a page listing all reservations in the database ordered by increasing date, showing a specific number of reservations per page. The list of reservations can be sorted by ascending/descending order by column name. For each column, clicking on the minus sign sorts the list in descending order based on that column name, clicking on the plus sign sorts the list in ascending order based on that column name. The sorting order will be preserved throughout pages.

In this table, clicking on the user's name will open a pop-up window with all of the selected user's information. Clicking on the view, modify, delete links will open a pop-up window allowing you to view, modify or delete the selected reservation.

Manage Blackout Times brings you to a page set up like the online scheduler, but allows you to set blackout times (times that are unavailable to reserve). Setting blackout times is just like making a reservation.

Search Scheduled Resource Usage will navigate to a search form which will allow the administrator to specify certain search criteria. The criteria is as follows: all or any specific user, all or any specific resource, starting and ending times and starting and ending dates. By default, the selected starting and ending times will be the same as what is provided in the configuration file and the selected starting and ending dates are the lowest and highest dates currently reserved.

After performing the search, the results will be printed out for each user/resource combination, listed alphabetically. These results are also available in a text-only format by clicking the "Print these results to a text file" link at the top of the results page.

Mass Email Users will navigate to a page where you can send a mass email to any or all of the registered users. This email can contain HTML tags, if you wish.

View System Stats will bring you to a page where many statistics about almost every aspect of the system are given. Reservation statistics are also graphed out.

Notes

All database manipulation should be done though the Administration Tools, NOT manually. Manually editing the database can lead to data corruption and render the system unstable or useless.

Credits

Application Code

Nick Korbel <lqqkout13@users.sourceforge.net>
David Poole <David.Poole@fccc.edu>

External Projects

PEAR Framework
- http://pear.php.net

jscalendar
- http://sourceforge.net/projects/jscalendar/
- http://dynarch.com/mishoo/

Translations

Simplified Chinese (zh_CN)
- Fancy He

Traditional Chinese (zh_TW)
- Jing-Jong Shyue

Czech (cs)
- <jindrich@natur.cuni.cz>

Finnish (fi)
- Veli-Matti Koukeri

French (fr)
Application/Unit Testing
- J. Pe.

German (de)
- Ilja Kogan
- Anna

Greek (el)
- Socrates Katsoudas

Hungarian (hu)
- Attila <atoth@cmr.sote.hu>

Italian (it)
- <emiliano.meneghin@tin.it>
- Cristian Mezzetti

Japanese (jp)
- Mark Smith

Korean (ko)
- Mark Smith

Netherlands (nl)
- <gerbrand@teomech.ugent.be>

European Portuguese (pt_PT)
- Pedro Ramos

Brazillian Portuguese (pt_BR)
- Thiago Moesch
- Caliane Zschornack

Russian (ru)
- Sergey Salnikov

Spanish (es)
- Josue Rojas

Slovak (sk)
- Marián Murín

Slovenian (sl)
- Ernest Dras

Swedish (sv)
- Johan Sundström
- Klas Flodqvist

Turkish (tr)
- Ozcan Dogan

Bulgarian (bg)
- Владислав Живков

Polish (pl)
-Arkadiusz Lipiec

Danish (da)
- Christian Clausen

Arabic (ar)
- shbleidi

Resources

http://phpscheduleit.sourceforge.net
http://www.php.net
http://www.mysql.com
http://www.pear.php.net
http://www.oracle.com