1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152
|
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>WebCalendar System Administrator's Guide</title>
<style type="text/css">
body {
background-color: #FFFFFF;
font-family: Arial, Helvetica, sans-serif;
}
a {
text-decoration: none;
}
dt {
font-weight: bold;
margin-left: 25px;
margin-top: 20px;
}
.valid {
height: 31px;
width: 88px;
border-width: 0px;
}
pre {
font-family: courier, monospace;
font-size: 14px;
border: 1px solid #0000FF;
background-color: #EEEEFF;
padding: 4px;
margin-left: 25px;
margin-right: 25px;
}
tr {
background-color: #606080;
color: #F0F0F0;
}
td {
vertical-align: top;
}
th {
background-color: #000000;
}
.colorheader {
background-color: #000000;
color: #FFFFFF;
margin-left: 3px;
margin-right: 3px;
padding: 2px;
}
.newwin {
border-width: 0px;
}
.tip {
font-weight: bold;
background-color: #FFFF00;
border: 1px solid #000;
padding: 1px;
padding-left: 5px;
padding-right: 5px;
margin-right: 15px;
}
.note {
font-weight: bold;
background-color: #87CEFA;
padding: 2px;
}
hr {
margin-bottom: 7px;
}
h2 {
background-color: #191970;
color: #FFFFFF;
padding: 5px;
}
.top {
text-align: right;
}
</style>
</head>
<body>
<h1>WebCalendar System Administrator's Guide</h1>
<p><strong>WebCalendar Version:</strong> 0.9.45</p>
<h2>Table of Contents</h2>
<ul>
<li><a href="#intro">Introduction</a></li>
<li><a href="#requirements">System Requirements</a></li>
<li><a href="#fileunpacking">File Unpacking</a></li>
<li><a href="#dbsetup">Database Setup</a></li>
<li><a href="#appsetup">Application Setup</a></li>
<li><a href="#reminders">Setting Up Email Reminders</a></li>
<li><a href="#systemsettings">System Settings</a></li>
<li><a href="#siteextras">Custom Event Fields</a></li>
<li><a href="#faq">FAQ</a></li>
<li><a href="#trouble">Troubleshooting</a></li>
<li><a href="#help">Getting Help</a></li>
<li><a href="#license">Licensing</a></li>
<li><a href="#glossary">Glossary</a></li>
</ul>
<hr />
<a name="intro"></a>
<h2>Introduction</h2>
<p>WebCalender is an open source PHP-based multi-user calendar.</p>
<p><strong>Features:</strong></p>
<ul>
<li>Multi-user support</li>
<li>Group support</li>
<li>View day-at-glance</li>
<li>View month-at-glance</li>
<li>View week-at-glance</li>
<li>View year-at-glance</li>
<li>View another user's calendar</li>
<li>View multiple users' calendars at the same time</li>
<li>View one or more users' calendar via layers on top of your own calendar</li>
<li>Public calendar (that requires no login) where anonymous users
submit events that are approved by an administrator</li>
<li>Add/Edit/Delete users</li>
<li>Add/Edit/Delete events</li>
<li>Repeating events</li>
<li>Custom event fields</li>
<li>Search interface for calendar entries</li>
<li>User-configurable preferences for colors, 12/24 time format,
Week start on Sun or Mon, default work hours</li>
<li>Online help</li>
<li>Checks for scheduling conflicts</li>
<li>Support for multiple timezones</li>
<li>Users can accept or reject events added by another user to their calendar</li>
<li>Email reminders</li>
<li>Email notifications for new events</li>
<li>Support for 29 different languages:
<ul>
<li>Basque</li>
<li>Bulgarian</li>
<li>Catalan</li>
<li>繁體中文(Big5)</li>
<li>简体中文(GB2312)</li>
<li>Czech</li>
<li>Danish</li>
<li>Deutsch (German)</li>
<li>English</li>
<li>Español (Spanish)</li>
<li>Estonian</li>
<li>Français (French)</li>
<li>Galician</li>
<li>Hollands (Dutch)</li>
<li>Holo (Taiwanese)</li>
<li>Hungarian</li>
<li>Icelandic</li>
<li>Italiano (Italian)</li>
<li>Japanese</li>
<li>Korean</li>
<li>Norsk (Norwegian)</li>
<li>Polish</li>
<li>Portuguese</li>
<li>Portuguese/Brazil</li>
<li>Русско (Russian)</li>
<li>Suomalainen (Finnish)</li>
<li>Svensk (Swedish)</li>
<li>Turkish</li>
<li>Welsh</li>
</ul>
</li>
<li>Exporting to and importing from:
<ul>
<li>Palm Pilot</li>
<li>iCal</li>
<li>vCal</li>
</ul>
</li>
<li>Authentication using:
<ul>
<li>LDAP</li>
<li>HTTP authentication</li>
<li>NIS</li>
<li>web-based</li>
</ul>
</li>
<li>Activity log that tracks:
<ul>
<li>event creation</li>
<li>event updates</li>
<li>event acceptance</li>
<li>event rejection</li>
<li>email notifications</li>
<li>email reminders</li>
</ul>
</li>
</ul>
<div class="top"><a href="#" target="_top">↑ top</a></div>
<hr />
<a name="requirements"></a>
<h2>System Requirements</h2>
<ul>
<li>PHP 4 (PHP 5 not yet tested)</li>
<li>Database (see <a href="#database">below</a>)</li>
<li>CSS-enabled browser</li>
<li>JavaScript-enabled browser</li>
<li>If not using HTTP-based authentication, then browser cookies are required</li>
</ul>
<p><strong>Recommended:</strong></p>
<ul>
<li>pilot-link (if exporting to Palm):
<a href="http://sourceforge.net/project/?group_id=2158">http://sourceforge.net/project/?group_id=2158</a> <a href="http://sourceforge.net/project/?group_id=2158" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a></li>
</ul>
<p><a name="database">You must have one of the following databases installed</a>:</p>
<ul>
<li>MySQL</li>
<li>Oracle 8</li>
<li>PostgreSQL</li>
<li>Interbase</li>
<li>ODBC (PHP ODBC includes support for Adabas D, IBM DB2, Solid and Sybase SQL Anywhere as well as ODBC)</li>
</ul>
<p>For the database you choose, you must have its drivers built into
PHP. For example, to use MySQL, PHP must be compiled with MySQL
support (which is the default setting when installing PHP).
See the PHP pages (<a href="http://www.php.net">www.php.net</a> <a href="http://www.php.net" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a>)
for more information on setting up PHP.</p>
<p>No optional PHP packages (other than MySQL) are required for this
application. However, PHP shoud be compiled with <tt>--enable-track-vars</tt>
on some systems.</p>
<p>Make sure that <tt>magic_quotes_gpc</tt> in <tt>php.ini</tt>
is turned on (otherwise, you will get an error message when you try to access WebCalendar.)</p>
<p>You can run PHP either as a CGI or an Apache module. You'll get better
performance with PHP setup as a module. Not only will you not have to
deal with the CGI performance hit, but you'll be able to use PHP's
database connection pooling. Additionally, this application can use
a form/cookie-based authentication or traditional HTTP authentication.
For traditional HTTP authentication, PHP must be built as an Apache
module.</p>
<p>If you are planning on using email reminders, you will need to build
PHP as a CGI in order to run the <tt>send_reminders.php</tt> script. I would
strongly recommend building a module-based PHP for your web server
and then a second PHP build to create the CGI version.</p>
<p><span class="tip">TIP</span> Some Linux distributions come with both a module-based PHP
with Apache and a standalone PHP binary.
Check for <tt>/usr/bin/php</tt> to see if you already have the
PHP standalone executable. If it's there, you can use
the following command to see what version of PHP you have:</p>
<pre>/usr/bin/php -v</pre>
<div class="top"><a href="#" target="_top">↑ top</a></div>
<hr />
<a name="fileunpacking"></a>
<h2>File Unpacking</h2>
<p>Unpack the calendar software in its own directory somewhere where
your web server will find it. (See your web server docs for info.)</p>
<p>By default, WebCalendar should create its own directory
when you unpack it. The new directory name will typically
contain the version name (such as <tt>WebCalendar-0.9.41</tt>).
You can rename this directory after unpacking the files if you
prefer a directory name like <tt>calendar</tt> or <tt>webcalendar</tt>.
Keep in mind that unless you remap the directory (via your web server's
configuration settings), it will be part of the URL for the calendar.</p>
<div class="top"><a href="#" target="_top">↑ top</a></div>
<hr />
<a name="dbsetup"></a>
<h2>Database Setup</h2>
<p>There are three steps in setting up the database:</p>
<ol>
<li>Creating the database</li>
<li>Creating the user</li>
<li>Creating the required tables</li>
</ol>
<p>Follow the steps outlined below for the database you are using.
When complete, a single user account will be created
with the <strong>login "admin" and password "admin"</strong>, which you are encouraged
to use to create your own account.</p>
<p><span class="note">Note:</span> In the examples below, text in <strong>bold</strong>
represents text that you must type in.</p>
<h3 class="colorheader">MySQL</h3>
<p>The following will create a database named "intranet".</p>
<pre><strong>mysqladmin create intranet</strong></pre>
<p>Next, create the database user account that will be used to access the database.</p>
<pre><strong>mysql --user=root mysql</strong>
mysql> <strong>GRANT ALL PRIVILEGES ON *.* TO webcalendar@localhost
IDENTIFIED BY 'webcal01' WITH GRANT OPTION;</strong>
mysql> <strong>FLUSH PRIVILEGES;</strong>
mysql> <strong>QUIT</strong></pre>
<p>If you will be accessing MySQL from a different machine than
the one running the web server, repeat the command above
and replace 'localhost' with the hostname of the other machine.</p>
<p>Create the calendar tables using the supplied <tt>tables-mysql.sql</tt> file:</p>
<pre><strong>mysql intranet < tables-mysql.sql</strong></pre>
<p>In the above example, "intranet" is the name of your database.</p>
<h3 class="colorheader">Oracle</h3>
<p>The following will create a tablespace named "webcalendar".
From the command line, startup sqlplus and
issue the following command:</p>
<pre><strong>sqlplus</strong>
SQL> <strong>CREATE TABLESPACE webcalendar
DATAFILE 'webcalendar.dat' SIZE 10M
AUTOEXTEND ON NEXT 10M MAXSIZE 40M;</strong></pre>
<p>Next, create the database user account that will be used to access the database.</p>
<pre><strong>sqlplus</strong>
SQL> <strong>CREATE USER webcalendar IDENTIFIED BY webcal01
DEFAULT TABLESPACE webcalendar;</strong>
SQL> <strong>GRANT dba TO webcalendar;</strong>
SQL> <strong>quit</strong></pre>
<p>Create the calendar tables using the supplied <tt>tables-oracle.sql</tt> file:</p>
<pre><strong>sqlplus webcalendar/webcal01</strong>
SQL> <strong>@tables-oracle;</strong>
SQL> <strong>quit</strong></pre>
<h3 class="colorheader">PostgreSQL</h3>
<p>The following will create a database named "webcalendar".
From the command line, startup psql and
issue the following command:</p>
<pre><strong>create database webcalendar;
\c webcalendar
\i tables-postgres.sql
\q</strong></pre>
<h3 class="colorheader">Interbase</h3>
<p>The following will create a database named "WEBCAL.gdb".
From the command line, startup usql and
issue the following command:</p>
<pre><strong>CREATE DATABASE 'WEBCAL.gdb';</strong></pre>
<p>Create the calendar tables using the supplied <tt>tables-ibase.sql</tt> file:</p>
<pre><strong>isql
connect /path/WEBCAL.gdb;
input path/table-ibase.sql;</strong></pre>
<h3 class="colorheader">ODBC</h3>
<p>Setup will depend on which database you are using.
When it comes time to create the tables,
the <tt>tables-postgres.sql</tt> file should work for most
databases.</p>
<div class="top"><a href="#" target="_top">↑ top</a></div>
<hr />
<a name="appsetup"></a>
<h2>Application Setup</h2>
<p>Next, you will need to run the web-based
database setup script
(simply direct your browser to your new WebCalendar location).
You will need to modify the permissions of the <tt>includes</tt>
directory. On Linux/UNIX, you should change this directory
to be read/write for all users (<tt>chmod 777 includes</tt>).
On Windows, change this directory to have full access for all users
using Windows Explorer.
Changing the write permissions will allow the web-based
database configuration tool to create the <tt>settings.php</tt> file.
<p>
<p><span class="tip">TIP</span> After you have created the
<tt>settings.php</tt> file (with the "Save Settings" button),
you can change the permissions back
to a more restrictive setting.
</p>
<p>After you test and save your database settings, you
will be prompted to enter an installation password.
<b>Write this password down somewhere.</b>
There is no way to reset this password. If you forget this
password and need to change your database settings, you will need
to hand-edit the <tt>settings.php</tt> file with a text editor.
</p>
<p>
If you choose not to use the web-based database configuration
tool, you can manually edit the <tt>settings.php</tt> file.
There is an example file <tt>settings.php.orig</tt> that you
can use as a starting point. Simply rename this file
to <tt>settings.php</tt>.
You will need to set the values
as follows in <tt>settings.php</tt>:</p>
<p>To configure your database access. Set the values for:</p>
<table class="distinguish">
<tr><td>
db_type</td><td>
One of "mysql", "oracle", "postgresql", "odbc", or "ibase"
</td></tr>
<tr><td>
db_host</td><td>
The hostname that database is running on.
(Use localhost if it's the same machine as
the web server.) (This variable is not used with ODBC)
</td></tr>
<tr><td>
db_login</td><td>
The database login
</td></tr>
<tr><td>
db_password</td><td>
The database password for the above login
</td></tr>
<tr><td>
db_database</td><td>
The name of the database that the calendar
tables reside in. ("intranet" in the <a href="#dbsetup">examples above</a>.)
For ODBC, this should be the DSN.
</td></tr>
<tr><td>
db_persistent</td><td>
Enable use of persistent (pooled) database
connections. This should typically be enabled.
</td></tr>
</table>
<p>You can configure the calendar to run in
single-user<sup><a href="#g_singleuser">*</a></sup>
mode or multi-user<sup><a href="#g_multiuser">*</a></sup> mode.
If this is your first time using the calendar, it's easier to try single-user.
You can always switch to multi-user later. Leave <tt>single_user</tt> set to
"N" (the default) for multi-user or set it to "Y" and set the
value of <tt>single_user_login</tt> to a login name of your liking
to set the system to single-user mode.
(And be sure to set the value of <tt>single_user_login</tt> to the login that you
would choose if you decide to switch to multi-user mode some day.)</p>
<p><span class="note">Note:</span> If you do decide to switch from single-user mode to multi-user mode,
make sure you add in a user to the system for the login you set the
<tt>single_user_login</tt> variable to. You will need to do this via the
database (mysql, sqlplus, etc.) Look in the <tt>tables-mysql.sql</tt>
(or <tt>tables-oracle.sql</tt>, etc.) to see the example of adding in the "admin" user.</p>
<p>If you are setting up a multi-user calendar, you will need to choose
how your users are authenticated. You must change the settings of
<tt>use_http_auth</tt> and <tt>user_inc</tt>
to setup which authentication method to use.</p>
<p>You currently have four choices:</p>
<ol>
<li>Web-based authentication (login/passwords verified in the WebCalendar database):<br />
<tt>use_http_auth = false</tt><br />
<tt>user_inc = user.php</tt>
</li>
<li>HTTP-based authentication (login/passwords verified by the web server):<br />
<tt>use_http_auth = true</tt><br />
<tt>user_inc = user.php</tt><br />
... and don't forget to setup your web server to handle user
authentication.<br />
<span class="note">Note:</span> In order to use HTTP-based authentication,
PHP must be setup as a module for your server rather than a CGI.
</li>
<li>NIS-based authentication (login/passwords verified by NIS):<br />
<tt>use_http_auth = false</tt><br />
<tt>user_inc = user-nis.php</tt><br />
Additional configuration settings will need to be set
in <tt>includes/user-nis.php</tt>.
</li>
<li>LDAP-based authentication (login/passwords verified by LDAP server):<br />
<tt>use_http_auth = false</tt><br />
<tt>user_inc = user-ldap.php</tt><br />
Additional configuration settings will need to be set
in <tt>includes/user-ldap.php</tt>.
</li>
</ol>
<p>Keep in mind that if you want to use reminders, you will need to
setup the <tt>send_reminders.php</tt> script (see below) and keep your admin
setting for "Email enabled" set to "Yes" on the admin settings page.</p>
<p>At this point, your WebCalendar installation should be up and running.
To access WebCalendar open up your favorite web browser and
type in the URL. The URL will depend on where you installed
WebCalendar.</p>
<p>When you unpacked/unzipped the WebCalendar distribution, it typically
creates a directory that includes the version number.
For example, if the zip file was named <tt>WebCalendar-0.9.99.zip</tt>
(or <tt>WebCalendar-0.9.99.tar.gz</tt>), then there
should be a <tt>WebCalendar-0.9.99</tt> directory. For convenience, you
can rename this directory so that the URL does not include the version
number. On Windows, you can do this from the Windows Explorer.
On Linux/UNIX, you can use the <tt>mv</tt> command to rename the directory.
Supposing you renamed the <tt>WebCalendar-0.9.99</tt> directory to just
be <tt>calendar</tt>, and you unpacked/unzipped the files into your toplevel
web server directory, the URL would be:</p>
<pre>http://yourserverhere/calendar/index.php</pre>
<p>If you have not previously configured your database settings,
you will be automatically redirected to a web page for
configuring your database settings.
After you have configured the database, use the URL again
to access WebCalendar.
</p>
<p>If you have configured your web server to use <tt>index.php</tt> as the
default index page for a directory, you can omit that from the URL.
On a single-user system, your browser should be redirected to week.php
initially. On a multi-user system, your browser should be redirected to login.php
so that you can login.</p>
<p><span class="tip">TIP</span> On a multi-user system, the only user account created
during installation has the username of "admin" and a password
of "admin". You should create a new admin account and delete this
one for security reasons.</p>
<div class="top"><a href="#" target="_top">↑ top</a></div>
<hr />
<a name="users"></a>
<h2>Creating Users</h2>
<p>After logging in as an admin user (the initial username is "admin" with
password "admin"), you will see a common set of links at the bottom
of each page. Follow these steps to create a new user:</p>
<ol>
<li>Login to WebCalendar as an admin user</li>
<li>Click on the "Admin" link at the bottom of any WebCalendar page</li>
<li>Click on the "Users" button</li>
<li>Click on the "Add New User" link</li>
<li>Fill out the form with details for the new user (email address is optional)</li>
<li>Click on the "Save" button</li>
</ol>
<p><span class="tip">TIP</span> On a single-user system, you do not need to create any users.</p>
<div class="top"><a href="#" target="_top">↑ top</a></div>
<hr />
<a name="reminders"></a>
<h2>Setting Up Email Reminders</h2>
<p>PHP does not come with a utility for executing time-based jobs.
So, in order to check periodically for email reminders, a shell
script was written in PHP. You will need two things to get this working:</p>
<ol>
<li>You should have a version of PHP built as a CGI (so that you can run
php from the command line). This does not mean you must build all
of PHP as a CGI. You can still build PHP as a module for your web
server and then build the CGI-based PHP later.<br />
<span class="note">Note:</span> Many Linux distributions and some Windows LAMP packages
come with the PHP built for CGI.</li>
<li>You must setup cron (on Linux/UNIX) or something like cron for Windows
to run the <tt>send_reminders.php</tt> script periodically.</li>
</ol>
<p>Building PHP as a CGI is outside the scope of these instructions. But,
if you read the PHP instructions, you'll see that the default build
settings will build the CGI-based PHP. If you really can't do this
(perhaps you don't have permission to install anything new on the
system), skip down a couple of paragraphs to an alternate solution
that does not require PHP CGI.</p>
<p>For Linux/UNIX users, add the following line to the crontab entry of
a user. (This would be the same user that the web server
process runs as.)</p>
<pre><tt>1 * * * * cd /some/directory/webcalendar/tools; ./send_reminders.php</tt></pre>
<p>Of course, replace the directory location to wherever the
<tt>send_reminders.php</tt> file can be found. If you moved this out of the
tools directory (which is recommended for security reasons),
be sure to update <tt>send_reminders.php</tt> since it needs
to know where to find other WebCalendar files.</p>
<p>If you cannot setup PHP as a CGI or have no idea how, you can leave
<tt>send_reminders.php</tt> in its current location and access it via a URL.
IMHO, this is not the best choice, but it still works. Setup a cron
job to access the URL. For Linux/UNIX users, add the following line to
the crontab entry of a user.</p>
<pre><tt>1 * * * * wget http://yourserverhere/webcalendardirectoryhere/tools/send_reminders.php > /dev/null</tt></pre>
<p>You should test this from the command line first to make sure your setup is correct. If you do not have <tt>wget</tt> installed on your system, you can use any tool (lynx, perl script, etc.) that is capable of making an HTTP request for this.</p>
<div class="top"><a href="#" target="_top">↑ top</a></div>
<hr />
<a name="systemsettings"></a>
<h2>System Settings</h2>
<p>System Settings allows the administrator to control what features are available to users as well as default values for certain features.</p>
<p>Many of these settings can be overridden by users in their Preferences (such as color).</p>
<h3>Settings</h3>
<dl>
<dt>Application Name</dt>
<dd>Specifies the document title (typically displayed in the window title bar of most browsers)</dd>
<dt>Server URL</dt>
<dd>Specifies the base URL of the calendar. This information is needed to accurately include URLs in email messages (Notifications and Reminders).</dd>
<dt>Language</dt>
<dd>Specifies the default language setting for all users.</dd>
<dt>Fonts</dt>
<dd>Specifies your preferred font. Multiple font names should be comma-separated.</dd>
<dt>Preferred View</dt>
<dd>Specify if users should see the day, week, month, or year after loggin in.</dd>
<dt>Display weekends in view</dt>
<dd>Specifies default setting for if Saturdays and Sundays should appear in the calendar when viewing a month or week</dd>
<dt>Date format</dt>
<dd>Specifies the default format for displaying dates</dd>
<dt>Time format</dt>
<dd>Specifies the default time format as either 12-hour (3:45pm) or 24-hour (15:14)</dd>
<dt>Time interval</dt>
<dd>Specify the default number of minutes each time block represents in the day and week display</dd>
<dt>Auto-referesh calendars</dt>
<dd>If set to "yes," the day, week, and month pages will automatically reload after a specified duration</dd>
<dt>Auto-refresh time</dt>
<dd>Specifies how long to wait before the auto-refresh should force a page to be reloaded</dd>
<dt>Display unapproved</dt>
<dd>Specifies whether events that have been added to a calendar but not yet approved should display on the calendar (in a different color)</dd>
<dt>Display week number</dt>
<dd>Specifies whether the week number should be displayed in month and week views</dd>
<dt>Week starts on</dt>
<dd>Specifies if week start on Sunday or Monday</dd>
<dt>Work hours</dt>
<dd>Specifies the default time range to display in day and week views</dd>
<dt>Disable Priority field</dt>
<dd>If enabled, the Priority field will not be used</dd>
<dt>Disable Access field</dt>
<dd>If enabled, the Access field will not be used</dd>
<dt>Disable Participants field</dt>
<dd>If enabled, the Participants field will not be used, and users will not be able to add events to any calendar other than their own.</dd>
<dt>Disable Repeating field</dt>
<dd>If enabled, users will not be able to create repeating events</dd>
<dt>Allow viewing other user's calendars</dt>
<dd>If enabled, users will be able to view the calendar of another user</dd>
<dt>Allow public access</dt>
<dd>If enabled, anonymous users will be able to view the public access calendar without logging in.</dd>
<dt>Public access can view other users</dt>
<dd>If enabled, anonymous users will be able to view the calendars of other users</dd>
<dt>Public access can add events</dt>
<dd>If enabled, anonymous users will be able to submit new events.</dd>
<dt>Public access new events require approval</dt>
<dd>If enabled, events submitted to the public access calendar (by anonymous users) will require approval by an admin user. If not enabled, then new events will appear on the public access calendar as soon as they are submitted.</dd>
<dt>Include add event link in views</dt>
<dd>If enabled, Views will include a link to quickly add events to the specified user's calendar.</dd>
<dt>Allow external users</dt>
<dd>If enabled, the create/edit event page will contain a text area to include the names (and optional email address) of event participants that are not calendar users.</dd>
<dt>External users can receive email notifications</dt>
<dd>If enabled, event participants entered into the External Participants area will receive email notifications at the same time as calendar users (if an email address was specified for the Exernal Participant).</dd>
<dt>External users can receive email reminders</dt>
<dd>If enabled, event participants entered into the External Participants area will receive email reminders at the same time as calendar users (if an email address was specified for the Exernal Participant).</dd>
<dt>Remember last login</dt>
<dd>If enabled, when a returning calendar user reaches the login page, their login name will be pre-filled with the last login username that they entered. (The password field will still be blank.)</dd>
<dt>Check for event conflicts</dt>
<dd>Specifies if the system should check for scheduling conflicts when a user adds or updates an event.</dd>
<dt>Conflict checking months</dt>
<dd>If conflict checking is enabled, this specifies how many months past the initial date the system will check for conflicts when a user adds or updates a repeating event.</dd>
<dt>Allow users to override conflicts</dt>
<dd>If enabled, users will be warned when there is an event conflict and be presented with the option of scheduling the event anyhow.</dd>
<dt>Limit number of timed events per day</dt>
<dd>If enabled, users can can be limited to a specific number of timed events per day</dd>
<dt>Maximum timed events per day</dt>
<dd>Specifies that maximum number of events that can be scheduled in one day of any one user.</dd>
</dl>
<h3>Groups</h3>
<dl>
<dt>Groups enabled</dt>
<dd>Specifies if group features should be enabled</dd>
<dt>User sees only his group</dt>
<dd>If enabled, users will be unaware of any users that are not in the same group as the user.</dd>
</dl>
<h3>Categories</h3>
<dl>
<dt>Cagtegoies enabled</dt>
<dd>Specifies if category features should be enabled</dd>
</dl>
<h3>Email</h3>
<dl>
<dt>Email enabled</dt>
<dd>Specifies if email functionality should be enabled. If set to "No," then no email messages will be sent at any time.</dd>
<dt>Default sender address</dt>
<dd>Specifies the email originator to use when the system sends out email Notifications and Reminders</dd>
<dt>Event reminders</dt>
<dd>Specifies if email reminders for events that include a reminder should be sent</dd>
<dt>Events added to my calendar</dt>
<dd>Specifies if the system should send email when an event is added</dd>
<dt>Events updated on my calendar</dt>
<dd>Specifies if the system should send email when an event is updated</dd>
<dt>Events removed from my calendar</dt>
<dd>Specifies if the system should send email when an event is deleted</dd>
<dt>Event rejected by participant</dt>
<dd>Specifies if the system should send email when a participant to an event rejects the event</dd>
</dl>
<h3>Colors</h3>
<dl>
<dt>Allow user to customize colors</dt>
<dd>Specifies whether color settings should be available to users in their Preferences</dd>
<dt>Document background</dt>
<dd>Specifies the background color of all pages</dd>
<dt>Document title</dt>
<dd>Specifies the color of page title on each page</dd>
<dt>Document text</dt>
<dd>Specifies the default text color on each page</dd>
<dt>Table grid color</dt>
<dd>Specifies color of the lines that make HTML table grids on each page</dd>
<dt>Table header background</dt>
<dd>Specifies the default background for the heading of any HTML table</dd>
<dt>Table header text</dt>
<dd>Specifies the default text color for the heading of any HTML table</dd>
<dt>Table cell background</dt>
<dd>Specifies the background color for table cells</dd>
<dt>Table cell background for current day</dt>
<dd>Specifies the background color for the table cell containing the current date</dd>
<dt>Table cell background for weekend</dt>
<dd>Specifies the background color for table cells that represent a Saturday or Sunday</dd>
<dt>Event popup background</dt>
<dd>Specifies the background color of event popup areas</dd>
<dt>Event popup text</dt>
<dd>Specifies the text color of event popup areas</dd>
</dl>
<div class="top"><a href="#" target="_top">↑ top</a></div>
<hr />
<a name="siteextras"></a>
<h2>Custom Event Fields</h2>
<p>You may want to customize the event-specific fields found in
the <tt>includes/site_extras.php</tt> field.
If this is your first time using the calendar, you can skip
this step and come back later since this step
is <i>optional</i>.</p>
<p>You can use this feature to add extra
fields to your calendar events. For example, you can add a URL,
a contact email address, or a location.</p>
<p>By default, this file is configured with
a single reminder field that allows the user to specify how long
before the event the reminder should be sent.</p>
<p><span class="tip">TIP</span> See <a href="#reminders">instructions</a> on setting
up reminders to enable sending of reminders.</p>
<p>When defining a new custom field, the following types listed below
are available. "Arg 1" and "Arg 2" have different meaning depending on the type
of field. In some cases, "Arg 1" and "Arg 2" are not used.</p>
<center>
<table style="width: 100%;">
<tr><th>
Type</th><th>
Description</th><th>
Arg 1</th><th>
Arg 2
</th></tr>
<tr><td>
<tt>EXTRA_TEXT</tt></td><td>
Allows the user to enter a single line of text</td><td>
Specifies the size of the text form element as it would appear in the
following ("NN" would be replaced with Arg 1):<br />
<tt><input size="NN" ...</tt></td><td>
N/A
</td></tr>
<tr><td>
<tt>EXTRA_MULTILINETEXT</tt></td><td>
Allows the user to enter multiple lines of text</td><td>
Specifies how many characters wide the textform element should be as it
would appear in the following ("NN" would be replaced with Arg 1):<br />
<tt><textarea cols="NN" ...</tt></td><td>
Specifies how many lines long the textform element should be as it would
appear in the following ("NN" would be replaced with Arg 1):<br />
<tt><textarea rows="NN" ...</tt>
</td></tr>
<tr><td>
<tt>EXTRA_URL</tt></td><td>
Allows the user to enter a single line of text and will be displayed as a
link when viewed</td><td>
N/A</td><td>
N/A
</td></tr>
<tr><td>
<tt>EXTRA_DATE</tt></td><td>
Allows the user to select a date using the standard date selection form
elements</td><td>
N/A</td><td>
N/A
</td></tr>
<tr><td>
<tt>EXTRA_EMAIL</tt></td><td>
Allows the user to enter a single line of text and will be displayed as
a mailto URL link</td><td>
N/A</td><td>
N/A
</td></tr>
<tr><td>
<tt>EXTRA_REMINDER</tt></td><td>
Allows the user to specify if a reminder should be sent out for
the event</td><td>
Specifies how many minutes before the event that the reminder
should be sent. </td><td>
Specifies other reminder-specific options. The following options are available:
<ul>
<li><tt>$EXTRA_REMINDER_WITH_DATE</tt></li>
<li><tt>$EXTRA_REMINDER_WITH_OFFSET</tt></li>
<li><tt>$EXTRA_REMINDER_DEFAULT_YES</tt></li>
</ul>
If more than one option is needed, they should be or-ed together with
the <tt>|</tt> character.
</td></tr>
<tr><td>
<tt>EXTRA_REMINDER_DATE</tt></td><td>
Allows the user to specify if a reminder should be sent out for the event
and and what time it should be sent</td><td>
Specifies the default for how many minutes before the event that the
reminder should be sent. The user can override this when they create/edit
the event.</td><td>
Specifies other reminder-specific options. The following options are available:
<ul>
<li><tt>$EXTRA_REMINDER_WITH_DATE</tt></li>
<li><tt>$EXTRA_REMINDER_WITH_OFFSET</tt></li>
<li><tt>$EXTRA_REMINDER_DEFAULT_YES</tt></li>
</ul>
If more than one option is needed, they should be or-ed together with
the <tt>|</tt> character.
</td></tr>
<tr><td>
<tt>EXTRA_SELECTION_LIST</tt></td><td>
Presents the user with a selection list (single selection) to choose from</td><td>
Specifies the list of available options using the PHP <tt>array</tt>
function</td><td>
N/A
</td></tr>
</table>
</center>
<div class="top"><a href="#" target="_top">↑ top</a></div>
<hr />
<a name="faq"></a>
<h2>Frequently Asked Questions</h2>
<dl>
<dt>How do I setup PHP, MySQL and Apache on Windows?</dt>
<dd>The easiest way to do this is to try one of the prepackaged bundles that will install all of these for you:
<ul>
<li><a href="http://www.foxserv.net/">FoxServ</a> <a href="http://www.foxserv.net" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a></li>
<li><a href="http://www.sokkit.net/">Sokkit</a> <a href="http://www.sokkit.net" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a> (formlery PHPTriad)</li>
</ul>
</dd>
<dt>How do I setup PHP, MySQL and Apache on UNIX/Linux?</dt>
<dd>There are many online instructions on how to do this. Here are a few:
<ul>
<li><a href="http://www.onlamp.com/pub/a/php/2000/11/17/php_admin.html">ONLamp.com: Basic Installtion of PHP on a Unix System</a> <a href="http://www.onlamp.com/pub/a/php/2000/11/17/php_admin.html" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a></li>
<li><a href="http://www.devshed.com/Server_Side/PHP/SoothinglySeamless/">Developer Shed: The Soothingly Seamless Setup of Apache, SSL, MySQL and PHP</a> <a href="http://www.devshed.com/Server_Side/PHP/SoothinglySeamless/" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a></li>
<li><a href="http://www.linuxhelp.net/guides/lamp/">Linux Help: LAMP Guide</a> <a href="http://www.linuxhelp.net/guides/lamp/" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a></li>
<li><a href="http://www.php.net/manual/en/installation.php">PHP.net</a> <a href="http://www.php.net/manual/en/installation.php" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a></li>
</ul>
</dd>
<dt>I've finished the install. What is the login to WebCalendar?</dt>
<dd>After the initial creation of the database tables, there will
be a single user account created with the username "admin" and
the password set to "admin" as well.
<br /><span class="note">Note:</span> This account is intended to get your started.
You should create a new admin account and delete this one.</dd>
<dt><a name="samplepublic">I want to use WebCalendar as an events calendar for
my organization. How do I set it up to do this?</a></dt>
<dd>You will want to setup WebCalendar to use public access.
<ol>
<li>Setup your <tt>config.php</tt> file as a multi-user
system (see <a href="#appsetup">instructions</a>).</li>
<li>In System Settings, set "Allow public access" to "Yes."</li>
<li>If you want people to be able to submit new events
through public access, set "Public access can add events"
to "Yes."</li>
<li>If you set "Public access can add events" to "Yes",
set the setting for "Public access new events
require approval" to your liking. If you set this to "Yes,"
an admin user will need to approve any new events before
they will appear on the public access calendar.</li>
<li>Login using one of the accounts you have setup.
Add a new event, and select "Public User" as one of the
participants.</li>
<li>If you have enabled "Require event approvals" in your
System Settings, then you will need to approve the new
event. Choose the "Unapproved Events" at the bottom
of any page (you must be an admin user to access this).
You will be presented with a list of unapproved events
(for both the current user and for the Public User account).
Approve the new event for the Public User.</li>
<li>Go to the Login page. You will see a "Access public calendar"
link that will bring you to the calendar for public access.</li>
<li>By default, the index.php page should send users to
the public calendar.</li>
</ol>
</dd>
<dt>Why are deleted events still present in the database?</dt>
<dd>When you delete an event from your calendar, it is not
deleted from the database. Instead, it is marked as deleted.
This allows the system administrator access to information
even after it is deleted.</dd>
<dt>Can I setup more than one public calendar?</dt>
<dd>You cannot directly setup two public calendars. However,
there are two options for emulating this type of functionality:
<ul>
<li>You can <a href="WebCalendar-UserManual.html#categories">create global categories</a> and point users to the calendar with only a certain category displayed.</li>
<li>You can setup multiple NonUser calendars and enable
public access viewing of other users' calendars.
You can then link directly to the calendar of one of
the NonUser calendars, or you can
<a href="WebCalendar-UserManual.html#views">setup a view</a>
that contains the calendar of one or more of the NonUser calendars.</li>
</ul>
</dd>
<dt>Can I embed WebCalendar as a component on another web page?</dt>
<dd>WebCalendar is meant to be run as a standalone web application.
You can customize the appearance of WebCalendar to match your existing
site.
To do this, In System Settings, set both "Custom header" and
"Custom trailer" to "Yes" and press the "Edit" button to enter the
header and trailer content.
<br />
If you are looking to just include a list of upcoming events in one
of your web pages, you can use the <tt>incoming.php</tt> page in
WebCalendar to do this. Edit the top of this file to configure options.
(These settings will likely move into System Settings in subsequent release.)
You can then use an <tt>iframe</tt> elsewhere on your web site as
in the example below:
<pre><iframe height="250" width="300" scrolling="yes" src="upcoming.php"></iframe></pre>
Include this HTML anywhere on any of your pages.
By default, the events from the public calendar will be loaded (so
you must have "Public Access" enabled in System Settings).
You can override this with another user's calendar.
(See <tt>upcoming.php</tt> for instructions on this.)
</dd>
<dt>How do I add a new translation?</dt>
<dd>
It's a fairly simple process. If you've ever translated a C-based app
that used GNU's gettext tool, then you'll have no problem. The I18N
support was based on GNU's <a href="http://www.gnu.org/software/gettext/gettext.html">gettext</a> <a href="http://www.gnu.org/software/gettext/gettext.html" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a>. Here's what you need to do.
<ol>
<li>look in the "translations" directory</li>
<li>copy the <tt>English-US.txt</tt> file into what you'd like to call your
language data file. (e.g. <tt>cp English-US.txt French.txt</tt>)</li>
<li>Now translate all the text to the _right_ of the ":" into the
new language. Do <i>not</i> alter the text to the left of the ":".</li>
<li>When you're done making changes, move into the "tools" directory.
Run the <tt>check_translation.pl</tt> script on your new data file to make
sure you have all the needed translations.
(e.g. <tt>perl check_translation.pl French</tt>)</li>
<li>Add the new language to both the $languages array and the
$browser_languages arrays defined in <tt>includes/config.php</tt>.</li>
<li>Test it out... </li>
<li>Post a copy of your translation (along with your changes to <tt>includes/config.php</tt>) to the <a href="http://sourceforge.net/tracker/?group_id=3870&atid=303870">SourceForge Patches</a> <a href="http://sourceforge.net/tracker/?group_id=3870&atid=303870" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a> for WebCalendar.</li>
</ol>
</dd>
<dt>How do I update an existing translation?</dt>
<dd>Just open up the translation file in the <tt>translations</tt> directory
with your favorite text editor (like vi, vim, emacs, pico, Notepad, etc.).
In particular look for places where missing translations are indicated.
All missing translations should be marked with a
"<< MISSING >>" note.
and typically the English version of the translation will also be included on the following line (as in the example below):
<pre># << MISSING >>
# Edit:
#</pre><br />
For some text, an abberviation may be used rather than the English text.
In those cases, the full text will be noted as in the following example:
<pre># << MISSING >>
# custom-script-help:
# English text: Allows entry of custom Javascript or stylesheet text that
# will be inserted into the HTML "head" section of every page.
#</pre><br />
When you're done making changes, move into the <tt>tools</tt> directory.
Run the <tt>check_translation.pl</tt> script on your new data file to make
sure you have all the needed translations:
<pre><tt>perl check_translation.pl French</tt></pre>
Post a copy of your translation to the
<a href="http://sourceforge.net/tracker/?group_id=3870&atid=303870">SourceForge Patches</a> <a href="http://sourceforge.net/tracker/?group_id=3870&atid=303870" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a> for WebCalendar.</dd>
<dt>I get an error about binhex() being an unsupported function. What does that mean?</dt>
<dd>The <tt>binhex()</tt> function was not in the early PHP 3.0.X releases. You
need to upgrade to a more recent PHP3 (or use PHP4).</dd>
<dt>Why aren't you using PHP4 sessions or PHPLIB sessions?</dt>
<dd>It would really be overkill for what the application needs. It also
simplifies installation by not requiring PHPLIB or PHP4. A future
version might switch to PHP4 if PHP4 is detected.</dd>
<dt>Why aren't you using ADODB for database access?</dt>
<dd>Again, this would be overkill for what we need. ADODB is almost
as big as WebCalendar itself, so I'm partial to my leaner php-dbi.php
solution.</dd>
</dl>
<div class="top"><a href="#" target="_top">↑ top</a></div>
<hr />
<a name="trouble"></a>
<h2>Troubleshooting</h2>
<dl>
<dt>I get error messages about undefined variables when I try to view any page.</dt>
<dd>On newer versions of PHP, the default setting of PHP is to display
messages when an undefined variable is referenced. To prevent
these messages from being displayed, change the setting of <tt>error_reporting</tt>
in your <tt>php.ini</tt> file to be:
<pre>error_reporting = E_ALL & ~E_NOTICE</pre>
Alternately, you can disable any error messages from being displayed
in the browser and have them logged to a file. (See the comments
included in the <tt>php.ini</tt> file for instructions on how to do this.)</dd>
<dt>I get errors when trying to add an event that contains a single quotation.</dt>
<dd>WebCalendar is designed to work with PHP's
<tt>magic_quotes_gpc</tt> feature (configured in <tt>php.ini</tt>).
If you do not have this enabled (<tt>On</tt> in <tt>php.ini</tt>),
you may get errors when adding events.
In WebCalendar version 0.9.43 or later, you will always get an error
message telling you to update <tt>php.ini</tt> if <tt>magic_quotes_gpc</tt>
is set to <tt>Off</tt>.
<br />
<span class="note">Note for Oracle and PostgreSQL:</span> You must also change the value of
<tt>magic_quotes_sybase</tt> to <tt>On</tt> within the <tt>php.ini</tt>
settings.</dd>
<dt>I get an error message from PHP saying "Call to undefined function: ..."</dt>
<dd>This tells you that your version of PHP is missing something that
WebCalendar needs. If the function mentioned is a database login
function (<em>ociplogin</em>, <em>mysql_pconnect</em>, <em>ibase_connect</em>, <em>pg_pconnect</em>),
then you probably do not have the needed database support for your database
compiled into PHP.
If the function is not a database connect call, then check the
<a href="http://www.php.net/manual/en/">PHP manual</a> <a href="http://www.php.net/manual/en/" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a>
to see if the function requires a specific version of PHP. You
may have an out-dated version of PHP that requires upgrading.</dd>
<dt>When I try and view certain pages, nothing happens for 30 seconds, then I get a time-out error.</dt>
<dd>On slower or very busy servers, it can take some time for the server
to get all the events. Most PHP installations have a built-in timeout
out of 30 seconds and will interrupt any request that takes longer than
that. This is most likely to happen on the year-long custom report or
on the month view when layers are being used. If you have access,
you can increase the time-out value for PHP in the <tt>php.ini</tt>
file by changing the setting of the <tt>max_execution_time</tt> setting.</dd>
<dt>I get an error message that says "Can't connect to local MySQL server through socket '/tmp/mysql.sock'."</dt>
<dd>This is a PHP/MySQL configuration issue. The value of <tt>mysql.default_socket</tt>
in your <tt>php.ini</tt> file must match the value of <tt>socket</tt> in your
<tt>my.cnf</tt> file. Edit the <tt>php.ini</tt> file to fix this problem.</dd>
<dt>I am not receiving any email messages from WebCalendar.</dt>
<dd>WebCalendar sends two types of email messages:
Notifications<a href="#g_notification">*</a> and Reminders<a href="#g_reminder">*</a>.
Check the following if you are not receiving any email:
<ol>
<li>You have defined a valid SMTP server in your PHP configuration file
<tt>php.ini</tt>. (The setting is "SMTP" in the "mail_function" section.)</li>
<li>In WebCalendar's System Settings, you have set the "Email Enabled" setting to "Yes".</li>
<li>In WebCalendar's System Settings, make sure you have the "Default sender address"
to something.
<br /><span class="note">Note:</span>
Some mail system will reject mail that has a "From" address
that is a different domain from the originating SMTP server.
So, if your SMTP server is smtp.mydomain.com and your "Default sender address"
is calendar@someotherdomain.com, some mail systems may bounce the mail back.</li>
<li>For a Notification, make sure you have the type of Notification
set to "Yes" in the user's Preferences.</li>
<li>For a Reminder:
<ul>
<li>Make sure you have "Event reminders" set to "Yes" in the user's Preferences.</li>
<li>Make sure you have <a href="#reminders">setup a cron job</a> to periodically
run the <tt>send_reminders.php</tt> script.</li>
</ul>
</li>
</ol>
</dd>
<dt>Some of the pages are displaying text in English rather than <insert your language here></dt>
<dd>The translations have been submitted at various points of WebCalendar development.
Some have not been updated to include newer features.</dd>
<dt>The text that I entered in the <a href="#siteextras">Custom Event Fields</a> is not being translated
to different languages.</dt>
<dd>You will need to add an entry in each of the translation files for any text you add
into the Custom Event Fields.</dd>
<dt>How do I get the most recent version of WebCalendar?</dt>
<dd>You can download the latest public release from SourceForge's
<a href="http://sourceforge.net/project/showfiles.php?group_id=3870">file list for WebCalendar</a> <a href="http://sourceforge.net/project/showfiles.php?group_id=3870" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a>.
<br />
You can download the latest development code from the CVS server using
the <a href="http://sourceforge.net/cvs/?group_id=3870">instructions provided by SourceForge</a> <a href="http://sourceforge.net/cvs/?group_id=3870" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a>. (You will need a CVS client to do this.)</dd>
<dt>How do I install a patch file listed on SourceForge's
<a href="http://sourceforge.net/tracker?group_id=3870&atid=303870">list of WebCalendar patches</a> <a href="http://sourceforge.net/tracker?group_id=3870&atid=303870" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a>?</dt>
<dd>Most patches are distributed as context diffs. That means they were produced using the UNIX <tt>diff</tt> command with the <tt>-C</tt> option. The patches are intended to be used with the <a href="http://www.fsf.org/software/patch/patch.html">GNU patch</a> <a href="http://www.fsf.org/software/patch/patch.html" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a> program. This program is standard on most Linux systems and can be obtained as part of the <a href="http://www.cygwin.com">Cygwin</a> <a href="http://www.cygwin.com" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a> package for Windows. Mac OS X will have the patch program installed if they install the developer tools CD.</dd>
<dt>I forgot/lost my admin password. How can I reset it?</dt>
<dd>The easiest way is to admin a new admin user and then use that
new user to reset the password for your old admin account.
Assuming you have deleted the original 'admin' login, you can use
the following SQL to insert a new admin user into the database:
<pre>INSERT INTO webcal_user ( cal_login, cal_passwd, cal_lastname,
cal_firstname, cal_is_admin ) VALUES
( 'admin', '21232f297a57a5a743894a0e4a801fc3', 'Administrator',
'Default', 'Y' );</pre>
This will add a user with login 'admin' and password 'admin' to the database.
If you still have a user named 'admin', then replace 'admin' in the above
SQL with a different username.
</dd>
<dt>I get a database error indicating table <tt>webcal_config</tt> does not exist.</dt>
<dd>This is the first table that WebCalendar tries to access, so it
typically means one of the following:
<ul>
<li>You have not created the database tables as described in the instructions</li>
<li>You have the wrong database name specified in your
<tt>includes/config.php</tt> file</li>
</ul>
</dd>
</dl>
<div class="top"><a href="#" target="_top">↑ top</a></div>
<hr />
<a name="help"></a>
<h2>Getting Help</h2>
<p>Try the Help/Troubleshooting forum for WebCalendar, hosted at SourceForge.net:</p>
<pre><a href="https://sourceforge.net/forum/forum.php?forum_id=11588">https://sourceforge.net/forum/forum.php?forum_id=11588</a> <a href="http://sourceforge.net/forum/forum.php?forum_id=11588" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a></pre>
<p>If you encounter a bug, please check the
<a href="http://sourceforge.net/tracker/?group_id=3870&atid=103870">list of open and pending bugs</a> <a href="http://sourceforge.net/tracker/?group_id=3870&atid=103870" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a>.
If you do <strong>not</strong> see anything similar, submit a new bug.
</p>
<div class="top"><a href="#" target="_top">↑ top</a></div>
<hr />
<a name="license"></a>
<h2>Licensing</h2>
<p>WebCalendar is distributed under the open source
<a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a> <a href="http://www.gnu.org/licenses/gpl.html" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a>.
If you have questions about this license, please
read their <a href="http://www.gnu.org/licenses/gpl-faq.html">GPL FAQ</a> <a href="http://www.gnu.org/licenses/gpl-faq.html" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a>.
</p>
<div class="top"><a href="#" target="_top">↑ top</a></div>
<hr />
<a name="glossary"></a>
<h2>Glossary</h2>
<dl>
<dt><a name="g_activitylog">Activity Log</a></dt>
<dd>A summary of recent updates to calendar data</dd>
<dt><a name="g_assistant">Assistant</a></dt>
<dd>A calendar user that has been designated by another calendar user
(the Boss) to help manage their calendar</dd>
<dt><a name="g_boss">Boss</a></dt>
<dd>A calendar user that has designated another calendar user
(the Assistant) to help manage his calendar</dd>
<dt><a name="g_externaluser">External User</a></dt>
<dd>A calendar participant that does not have a calendar user account</dd>
<dt><a name="g_group">Group</a></dt>
<dd>A mechanism of dividing up a large set of users into smaller sets of users</dd>
<dt><a name="g_layer">Layer</a></dt>
<dd>A function that allows a user to overlay another user's calendar
on top of his own calendar so that the standard day, week and month
pages show both his own and the layered user's events</dd>
<dt><a name="g_ldap">LDAP</a></dt>
<dd>LDAP (Lighweight Directory Access Protocol) is an Internet protocol
used to maintain user directories</dd>
<dt><a name="g_mulituser">Multi-User Mode</a></dt>
<dd>When WebCalendar is configued in Multi-User Mode,
there can be multiple user accounts, each with his
own calendar. Unless Public Access is enalbed, all users
will be required to login before they can access the system.</dd>
<dt><a name="g_nis">NIS</a></dt>
<dd>NIS (Network Information Service) is a UNIX-based user authentication
system for managing user directories in a network</dd>
<dt><a name="g_nonuser">NonUser Calendar</a></dt>
<dd>A participant to a calendar event that is not a calendar user. This is typically used either as a resource (conference room,
laptop computer) that needs to be shared or as a shared calendar
that other users overlay onto their own calendar using layers (company-wide calendar,
holiday calendar, etc.)</dd>
<dt><a name="g_notification">Notification</a></dt>
<dd>An email message that is sent when an event is added, removed
or updated in the user's calendar by another user</dd>
<dt><a name="g_preferredview">Preferred View</a></dt>
<dd>The standard page (day, week, month or year) that will
be presented to the user after logging in
(set in user <a href="#pref">Preferences</a>)</dd>
<dt><a name="g_preferredview">Public Access</a></dt>
<dd>A <a href="#systemsettings">System Setting</a> that will allow anonymous users
to access the calendar.
See the <a href="#samplepublic">simple instructions</a> for
setting this up in the <a href="#faq">FAQ section</a>.
(Requires WebCalendar to be configued in Multi-User Mode).</dd>
<dt><a name="g_reminder">Reminder</a></dt>
<dd>An email message that is sent before an event to remind
the participant</dd>
<dt><a name="g_singleuser">Single-User Mode</a></dt>
<dd>When WebCalendar is configued in Single-User Mode,
there is no concept of users. You will be managing a single
calendar and no login will be required.
Anyone accessing this calendar will have full privileges to
view, add, edit and delete all events.</dd>
<dt><a name="g_timeinterval">Time Interval</a></dt>
<dd>The amount of time each "block" will represent in
either the day or week view
(set in user <a href="#pref">Preferences</a>)</dd>
<dt><a name="g_view">View</a></dt>
<dd>A customized page that presents the events of selected users</dd>
<dt><a name="g_workhours">Work Hours</a></dt>
<dd>The default hours to show in the week and day view where
events are displayed in blocks of time (set in
user <a href="#pref">Preferences</a>)</dd>
</dl>
<div class="top"><a href="#" target="_top">↑ top</a></div>
<p>
<a href="http://validator.w3.org/check?uri=referer"><img
src="http://www.w3.org/Icons/valid-xhtml10"
alt="Valid XHTML 1.0!" style="border-width:0px;" /></a>
</p>
</body>
</html>
|