Fr:User Contributions
From DAViCal Wiki
| Cet article ou cette section nécessitent d'être traduits depuis l'article User Contributions.
Si vous connaissez bien l'anglais, n'hésitez pas ! Merci pour 'DAViCal'. |
Contents |
Code or Examples Relating to DAViCal
Web Display of Calendars
J'ai écris ceci pour mettre des calendriers en provenance de Davical sur notre site web. C'est une ré-écriture de quelques classes qui récupèrent des data d'une base drupal, aussi aujourd'hui cela n'affiche pas tous les textes possibles.
I'd love to see this rolled into DAViCal on the user collections page or as a way of displaying groups of collections in read-only mode.
To install, you'll need to update the following line in caldav_display.classes.php with your information, and then adjust the calendars you'd like to display in sample_display.php. Put sample_display.php and calendar.css in a web accessible folder and place the classes file in your path.
$calendar_db = pg_connect("host=hostname port=5432 dbname=rscds user=general password=password_for_general"
Place calendar_notifier on a server with cli php and call it with cron to send out nightly agenda emails. Something like:
0 4 * * * php /usr/local/sbin/calendar/calendar_notifier.php
You'll also need to install Pear's Date class and a relatively recent version of JQuery.
Client Web pour DAViCal
Les informations ont été déplacées ici
Install davical on a server where you can find an another version of Postgresql
Récemment, j'ai été confronté à l'installation de Davial sur mon seveur, mais le soucis c'est que j'avais la version (8.0.23) déjà installé. Malheureusement, cette version n'est pas compatible avec les préconisations de Davical et je ne peux pas la désinstaller pour un site Web déjà présent.
Pour pouvoir quand même installer Davical et rester dans ses préconisations, j'ai récupéré et compilé les sources de Postgresql 8.4.2 sur mon système. J'ai lancé cette version, tout nouvellement compilée, sur un autre port réseau TCP ( 5433 ).
Pour faire cela, vous pouvez modifier le fichier [my new db datastore 8.4.2]/postgresql.conf
...
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost', '*' = all
# (change requires restart)
#port = 5432 # (change requires restart)
port = 5433 # (change requires restart)
max_connections = 100 # (change requires restart)
# Note: Increasing max_connections costs ~400 bytes of shared memory per
# connection slot, plus lock space (see max_locks_per_transaction).
...
Après cela, j'ai modifié le fichier create-database.sh pour qu'il puisse trouver ma nouvelle instance de postgresql.
J'ai de plus rajouter quelques variables d'environnement :
PGINSTALL=/opt/postgresql-8.4.2/bin the path where my new postgresql is export PGPORT=5433 this variable is read by all postgres commands for to know where postgresql server listen
J'ai ensuite modifié toutes les lignes ci-dessous ou on trouve une commande postgresql :
ex :
export DBVERSION="`psql -qAt -c "SELECT version();" template1 | cut -f2 -d' ' | cut -f1-2 -d'.'`"
by
export DBVERSION="`${PGINSTALL}/psql -qAt -c "SELECT version();" template1 | cut -f2 -d' ' | cut -f1-2 -d'.'`"
Ci-dessous le nouveau fichier modifié create-database.sh. Désolé, je n'ai pas pu uploader ce fichier dans le wiki, peut-être que l'admin pourra faire quelque chose ;-).
#!/bin/sh
#
# Build the DAViCal database
#
PGINSTALL=/opt/postgresql-8.4.2/bin
DBNAME="${1:-davical}"
export PGPORT=5433
ADMINPW="${2}"
DBADIR="`dirname \"$0\"`"
INSTALL_NOTE_FN="`mktemp -t tmp.XXXXXXXXXX`"
testawldir() {
[ -f "${1}/dba/awl-tables.sql" ]
}
#
# Attempt to locate the AWL directory
AWLDIR="/opt/lib/awl"
if ! testawldir "${AWLDIR}"; then
AWLDIR="/usr/share/awl"
if ! testawldir "${AWLDIR}"; then
AWLDIR="/usr/local/share/awl"
if ! testawldir "${AWLDIR}"; then
echo "Unable to find AWL libraries"
exit 1
fi
fi
fi
export AWL_DBAUSER=davical_dba
export AWL_APPUSER=davical_app
# Get the major version for PostgreSQL
export DBVERSION="`${PGINSTALL}/psql -qAt -c "SELECT version();" template1 | cut -f2 -d' ' | cut -f1-2 -d'.'`"
install_note() {
cat >>"${INSTALL_NOTE_FN}"
}
db_users() {
${PGINSTALL}/psql -qAt -c "SELECT usename FROM pg_user;" template1
}
create_db_user() {
if ! db_users | grep "^${1}$" >/dev/null ; then
${PGINSTALL}/psql -qAt -c "CREATE USER ${1} NOCREATEDB NOCREATEROLE;" template1
cat <<EONOTE | install_note
* You will need to edit the PostgreSQL pg_hba.conf to allow the
'${1}' database user access to the 'davical' database.
EONOTE
fi
}
create_plpgsql_language() {
if ! ${PGINSTALL}/psql ${DBA} -qAt -c "SELECT lanname FROM pg_language;" "${DBNAME}" | grep "^plpgsql$" >/dev/null; then
${PGINSTALL}/createlang plpgsql "${DBNAME}"
fi
}
try_db_user() {
[ "XtestX`${PGINSTALL}/psql -U "${1}" -qAt -c \"SELECT usename FROM pg_user;\" \"${DBNAME}\" 2>/dev/null`" != "XtestX" ]
}
create_db_user "${AWL_DBAUSER}"
create_db_user "${AWL_APPUSER}"
# FIXME: Need to check that the database was actually created.
if ! ${PGINSTALL}/createdb --encoding UTF8 --template template0 --owner "${AWL_DBAUSER}" "${DBNAME}" ; then
echo "Unable to create database"
exit 1
fi
#
# Try a few alternatives for a database user or give up...
if try_db_user "${AWL_DBAUSER}" ; then
export DBA="-U ${AWL_DBAUSER}"
else
if try_db_user "postgres" ; then
export DBA="-U postgres"
else
if try_db_user "${USER}" ; then
export DBA=""
else
if try_db_user "${PGUSER}" ; then
export DBA=""
else
cat <<EOFAILURE
* * * * ERROR * * * *
I cannot find a usable database user to construct the DAViCal database with, but
may have successfully created the davical_app and davical_dba users (I tried :-).
You should edit your pg_hba.conf file to give permissions to the davical_app and
davical_dba users to access the database and run this script again. If you still
continue to see this message then you will need to make sure you run the script
as a user with full permissions to access the local PostgreSQL database.
If your PostgreSQL database is non-standard then you will need to set the PGHOST,
PGPORT and/or PGCLUSTER environment variables before running this script again.
See: http://wiki.davical.org/w/Install_Errors/No_Database_Rights
EOFAILURE
exit 1
fi
fi
fi
fi
create_plpgsql_language
#
# Load the AWL base tables and schema management tables
${PGINSTALL}/psql -qAt ${DBA} -f "${AWLDIR}/dba/awl-tables.sql" "${DBNAME}" 2>&1 | egrep -v "(^CREATE |^GRANT|^BEGIN|^COMMIT|
NOTICE: )"
${PGINSTALL}/psql -qAt ${DBA} -f "${AWLDIR}/dba/schema-management.sql" "${DBNAME}" 2>&1 | egrep -v "(^CREATE |^GRANT|^BEGIN|^COMMIT| NOTICE: |^t$)"
#
# Load the DAViCal tables
${PGINSTALL}/psql -qAt ${DBA} -f "${DBADIR}/davical.sql" "${DBNAME}" 2>&1 | egrep -v "(^CREATE |^GRANT|^BEGIN|^COMMIT| NOTICE: |^t$)"
#
# Set permissions for the application DB user on the database
if ! ${DBADIR}/update-davical-database --dbname "${DBNAME}" --appuser "${AWL_APPUSER}" --nopatch --owner "${AWL_DBAUSER}" ; then
cat <<EOFAILURE
* * * * ERROR * * * *
The database administration utility failed. This is usually due to the Perl YAML
or the Perl DBD::Pg libraries not being available.
See: http://wiki.davical.org/w/Install_Errors/No_Perl_YAML
EOFAILURE
fi
#
# Load the required base data
${PGINSTALL}/psql -qAt ${DBA} -f "${DBADIR}/base-data.sql" "${DBNAME}" | egrep -v '^10'
#
# We can override the admin password generation for regression testing predictability
if [ "${ADMINPW}" = "" ] ; then
#
# Generate a random administrative password. If pwgen is available we'll use that,
# otherwise try and hack something up using a few standard utilities
ADMINPW="`pwgen -Bcny 2>/dev/null | tr \"\\\\\'\" '^='`"
fi
if [ "$ADMINPW" = "" ] ; then
# OK. They didn't supply one, and pwgen didn't work, so we hack something
# together from /dev/random ...
export LC_ALL=C
ADMINPW="`dd if=/dev/urandom bs=512 count=1 2>/dev/null | tr -c -d "a-km-zA-HJ-NP-Y0-9" | cut -c2-9`"
fi
if [ "$ADMINPW" = "" ] ; then
# Right. We're getting desperate now. We'll have to use a default password
# and hope that they change it to something more sensible.
ADMINPW="please change this password"
fi
${PGINSTALL}/psql -q -c "UPDATE usr SET password = '**${ADMINPW}' WHERE user_no = 1;" "${DBNAME}"
echo "NOTE"
echo "===="
cat "${INSTALL_NOTE_FN}"
rm "${INSTALL_NOTE_FN}"
cat <<FRIENDLY
* The password for the 'admin' user has been set to '${ADMINPW}'"
Thanks for trying DAViCal! Check in /usr/share/doc/davical/examples/ for
some configuration examples. For help, visit #davical on irc.oftc.net.
FRIENDLY
J'espère que ce howto pourra aider quelqu'un qui se retrouverai dans le même cas ;-)
ps : Merci aux développeurs de Davical pour cet excellent soft !
Vic
| | Cet article ou cette section nécessitent d'être 'relu'. Si vous connaissez bien le français, n'hésitez pas! Merci pour DAViCal. |


