Suche

Admin FAQ

The Frequently Asked Questions Page for Admins.

Contents

General

Understanding the version numbering

The Releases page describes it.


Why we don't use autoincrements as ID's?

See this forum post http://www.tine20.org/forum/viewtopic.php?f=12&t=2336&p=10274#p10268 (german).


What is the 'notification service (address, username, password)?

This is required for sending notifications (e. g. for calendar invitations).


I get the error 'Out of memory (allocated x) (tried to allocate y bytes) in ...'. What does it mean?

Increase the variable 'memory_limit' in your php.ini.


A user can't log in and does not get an error.

Check if the group(s) the user belong to is allowed to login (see roles).


A user session expires, if his IP address changes

This happens because of the default activated IP validator in Tine20. To disable it, add the following to your config.inc.php:

'sessionIpValidation' => FALSE


How can I change themes

Tine20 is just shipped with one theme. External themes are not included to prevent license problems. But you can easily add more by yourself. See the Wiki for more information: Themes.


The message 'Service not available' appears instead of the logon screen

Check if you have disabled the addressbook. You can't use tine without addressbook, because the accounts are stored in there at least!


How do I activate the logger?

If you can access the setup or the webserver has no permission to change the config.inc.php file, you can put the following lines into it to activate the logger in DEBUG mode:

'logger' => 
 array (
   'active' => true,
   'filename' => '/var/log/tine20/tine20.log',
  // or with relative path:
  // 'filename' => './logs/tine20.log',
   'priority' => '7',
 ),

An example line from the log:

c42e8 username - 2012-11-19T10:17:48+00:00 NOTICE (5): Tinebase_Core::errorHandler::437 Undefined variable: opt in /home/pschuele/workspace/tine20/tine20/Sipgate/Preference.php::135 (8)
c42e8					request ID
username				Tine 2.0 username
2012-11-19T10:17:48+00:00		Servertime (in UTC)
NOTICE (5)				loglevel of this log message
Tinebase_Core::errorHandler::437	PHP class & function names + line number
Undefined variable: opt in /home/pschuele/workspace/tine20/tine20/Sipgate/Preference.php::135 (8)	the log message


How do I filter the log messages?

This is done by adding a filter to the logger section in the config.inc.php:

'logger' => 
 array (
   [...]
   'filter'   => array(
       'user'    => 'loginname', // user loginname to filter log messages
       'message' => '/Felamimail/', // string (regex) to filter in log messages
   ),
),

How do I see the run time and the time diff in the log?

This is done by adding the following to the logger section in the config.inc.php:

'logger' => 
 array (
   [...]
   'logruntime' => true, // prepend time passed since request started
   'logdifftime' => true, // prepend time passed since last log message

The message "filesdir config value not set" appears in the logfile and I can't open the Filemanager

You need to configure a Filestore path in your config.inc.php or in the setup (Config Manager/Filestore Path). This path is needed for the virtual file system of Tine 2.0 where all Filemanager files and more are saved.


How do I setup memcached caching?

Put this into your config.inc.php:

'caching' => 
 array (
   'active'    => true,
   'backend'   => 'Memcached',
   'host' => 'your.memcached.host',
   'port' => 11211,
 ),


Setup

How do I update my Tine 2.0 installation?

For a detailed description have a look at the update howto page

Regardless which way you choose: always create a backup (database and files) before you start!

Updating using the GUI:

Download the latest version from http://www.tine20.org and replace all files (except config.inc.php). Call http://{your-domain}/setup.php and login. All applications that need to be updated are preselected by default. Just click on 'update applications'. During the update, it is not possible for users to log in. After the update is done, setup automatically forwards to the login page.

Updating using the CLI: This way can be useful when you have to update a lot of applications or a major release change. Download the latest version from http://www.tine20.org and replace all files (except config.inc.php).

php setup.php –update


What doe the entries below 'authentication' / 'user accounts' / 'canonical form of user accounts' mean?

This is just required for LDAP authentication. See Zend LDAP module for explanation: http://framework.zend.com/manual/1.5/en/zend.ldap.using.html (chapter 'Account Name Canonicalization').


What is the 'authentication' / 'Email' / 'Imap' / 'Append domain to username' option?

If your Imap server requires as username a full address like username@{mydomain}, then add your domain here for global setting.


How to fix failed 'setup tests'?

If an extention is missing, see the PHP documention for how to enable it in php.ini. If e. g. the 'zip' test failed, see the accoding chapter in the PHP documentation: http://php.net/manual/en/book.zip.php

The extentions have to be compiled (if you compiled PHP by yourself) or installed (if you install packages provided by e. g. your Linux distribution).


Tine20 says 'magic_quote_gpc' are enabled

First of all, see http://de.php.net/manual/en/security.magicquotes.disabling.php.

If you must/need let magic quotes enabled, see the following hint how to use Tine20 anyway: http://www.tine20.org/forum/viewtopic.php?f=8&t=1280#p18204 (english)


How do I setup the session (save path, lifetime, ...)?

Add this to your config.inc.php (or configure it via setup.php):

'session' => 
 array (
   'path' => '/session/save/path,
   'lifetime => 86400,
 ),


Administration

How do I setup automatic alarms for tasks?

Add a row to your config table:

insert into [tine20_]config (`id`, `application_id`, `name`, `value`) VALUES ('SOMEID', '_TASKAPPID_', 'automaticalarm', '1440');

1440 is the alarm time (before the due date of the task) in minutes. In this case, a notification email will be send 24 hours before the due date. you need a cronjob for the alarm notifications.


How do I setup the cronjob?

  • Since Tine 2.0 version Neele (2011-01-4), the cronuser is created on the fly when triggerAsyncEvents is called. It is no longer needed to add a user or set an id in the config.inc.php
  • Add command to crontab (every 5 minutes)
*/5 * * * * php -d include_path=.:/www/tine:/www/tine/library:/etc/tine20 /www/tine/tine20.php --method Tinebase.triggerAsyncEvents >> /var/log/cron.log

(You need to adjust the paths)

If you still get no notifications, you need to make sure that an email sender is set for your notifications service. Go to setup.php / Email settings / Smtp and add an Email address for the sender there.

Andy has a short HowTo (in german) on his blog: http://www.andysblog.de/tine-2-0-cronjob-anlegen


How to authenticate against an IMAP server?

This was implemented in Neele 2010-11, see Tracker #1470

Log into setup.php and select IMAP as authentication provider for user login.


Is it possible to have LDAP just for authentication (read-only LDAP)?

Currently just read-write LDAP support is available. Until no LDAP data is changed (e. g. user password, etc.) it could maybe be used read-only, too.


How can I define an application to be the default one?

That's what the user-preference 'default application' defines. But since Milena, the last opened application is shown after re-login.


What is the part for adding 'computer' for?

This is required for managing a samba domain via Tine20.


How can old log entries in the database automatically be purged?

This can be done via CLI, e. g. via cronjob (But it removes all log entries!)

php tine20.php --username tine20admin --method Tinebase.clearTable access_log

Replace 'tine20admin' with an accountname with admin privileges from your installation.

Tine 2010-11 Beta1 and later allows you to specify a date. All entries before are removed.

php tine20.php --username tine20admin --method Tinebase.clearTable access_log --date="2010-09-10" 

You can schedule a cronjob with the following command to remove entries older than 30 days

/usr/bin/php /path/to/tine20.php --username tine20admin --password {password_for_this_account} --method Tinebase.clearTable access_log -- date="$(/bin/date --date="30 day ago" +%Y-%m-%d)"


How can I import a large number of users for automatic account creation?

If you plan to import users from a CSV-file, see the User Import Howto.


How can I just log defined types of actions (e. g. HTTP, ActiveSync,...)?

This is currently not implemented, but planned for next major release. See Tracker #2924


PDF export doesn't show special characters like ŻżŁłĆćĘꌜĄąŹźŃń

Enable an UTF8 font having this characters in your config.inc.php

'pdfexport' => array(
  'fontpath' => '/var/www/tine20/test/unifont.ttf',
  'fontpathbold' => '/var/www/tine20/test/unifont.ttf',
  'fontembed' => true
),


How do I activate DB profiling?

put this into your config.inc.php (database section):

'profiler' => 'true',
'queryProfiles' => TRUE,


Tine20 is slow - what can i do?

put following in a .htaccess if you use apache.

################################################################################
# Optimize Caching behaviour
 ################################################################################
# 1. Set Expire Headers
    <ifmodule mod_expires.c>
     ExpiresActive On
     ExpiresDefault A604800
     ExpiresByType image/x-icon A604800
     ExpiresByType image/jpeg A604800
     ExpiresByType image/png A604800
     ExpiresByType image/gif A604800
     ExpiresByType image/js A604800
     ExpiresByType application/x-shockwave-flash A604800
  </ifmodule>
 
# 2. Set Cache Controll headers
  <FilesMatch "\.(xml|txt|html|js|css|png|gif|jpg|jpeg)$">
    Header set Cache-Control "max-age=604800, public"
  </FilesMatch>

# 3. compress php output (json, etc)
  php_flag zlib.output_compression On

# 4. other caching params
  SetOutputFilter DEFLATE
  Header unset ETag
  FileETag None


alternate syntax for mod_header with debian5 lenny and apache2.2-common (2.2.9-10+lenny8)

the mod_header is used an other syntax for expire directives Apache Doku:

http://httpd.apache.org/docs/2.0/mod/mod_expires.html#expiresbytype
http://httpd.apache.org/docs/2.0/mod/mod_expires.html#AltSyn


the working syntax for mod_header is

################################################################################
# Optimize Caching behaviour
################################################################################
# 1. Set Expire Headers
   <ifmodule mod_expires.c>
    ExpiresActive On
    ExpiresDefault A604800
    ExpiresByType image/x-icon  A2592000  # 1 MONTH
    ExpiresByType image/jpeg A2592000 # 1 MONTH
    ExpiresByType image/png A2592000 # 1 MONTH
    ExpiresByType image/gif A2592000 # 1 MONTH
    ExpiresByType image/js A2592000 # 1 MONTH
    ExpiresByType application/x-shockwave-flash A2592000 # 1 MONTH
   </ifmodule>


the A stand for Access

and the M stand for Modified

for correct date code use:

http://snipplr.com/view/4265/cache-control-with-htaccess-expires-by-type/


How do I reset the admin password?

Via

$ php setup.php --create_admin

you can add and reset passwords of admin users.

see http://forge.tine20.org/mantisbt/view.php?id=4137


Module: Calendar

How do I configure calendar notifications / invitations ?

  • Add a valid SMTP-configuration (this can be done in the setup).
  • Add a notification service email address (got to setup, too).
  • Check your preferences for your desired notification levels.


How can I setup email alarm notification for calendar events?

Add the following line to your config.inc.php:

'cronuserid' => 'ID-of-an-admin-account',

The value for 'ID-of-an-admin-account' you get out of the 'tine20_account' table of your database.

With the following command you can start sending of queued mails: php /path/to/your/tine20/installation/tine20.php --method Tinebase.triggerAsyncEvents

This command you can place as a cronjob to send alarms automatically. The following example check for due alarms every 5 mins:

*/5 * * * *             /path/to/php /path/to/your/tine20/installation/tine20.php --method Tinebase.triggerAsyncEvents

Short explanation: A database entry for every alarm is inserted into the 'tine20_alarm' table. If an email was send by the command above, the field 'sent_status' of the database entry switches from 'pending' to 'success'.


How can I set a fixed calendar (like holidays) that is always shown?

Add this to your config.inc.php (check the id(s) of the calendar/container):

'fixedCalendars' => array(4652),


Module: Addressbook

How can I enable/disable the map panel

The map panel is enabled by default. To update/set the geo data of your contact it has to be saved and the address / location has to be know by the nominatim service (look into logfile to see if some error occurred).

To disable the panel, add

'mapPanel' => false,

to your config.inc.php


How can I add custom fields to the Addressbook / Timetracker?

See Howto add custom fields


How can I import contacts?

At first, you have to create a new addressbook (or get the container_id of an existing addressbook).

You need to supply a csv file with your data and an import definition with some basic settings and the field mapping.

Import definition

<?xml version="1.0" encoding="UTF-8"?> 
<config>
 <model>Addressbook_Model_Contact</model>
 <plugin>Addressbook_Import_Csv</plugin>
 <type>import</type>
 <headline>1</headline>
 <dryrun>0</dryrun>
 <delimiter>;</delimiter>
 <shared_tags>create</shared_tags>
 <description>tine adb import</description>
 <container_id>5</container_id>
 <mapping>
       <field>

Invalid language.

You need to specify a language like this: <source lang="html4strict">...</source>

Supported languages for syntax highlighting:

4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, arm, asm, asp, asymptote, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcl, dcpu16, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, freeswitch, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, haxe, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, ldif, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, nagios, netrexx, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, octave, oobas, oorexx, oracle11, oracle8, oxygene, oz, parasail, parigp, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, pys60, python, q, qbasic, rails, rebol, reg, rexx, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, spark, sparql, sql, stonescript, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, upc, urbi, uscript, vala, vb, vbnet, vedit, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic


contact_id
           <destination></destination>
       </field>
           .....
       <field>

Invalid language.

You need to specify a language like this: <source lang="html4strict">...</source>

Supported languages for syntax highlighting:

4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, arm, asm, asp, asymptote, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcl, dcpu16, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, freeswitch, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, haxe, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, ldif, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, nagios, netrexx, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, octave, oobas, oorexx, oracle11, oracle8, oxygene, oz, parasail, parigp, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, pys60, python, q, qbasic, rails, rebol, reg, rexx, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, spark, sparql, sql, stonescript, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, upc, urbi, uscript, vala, vb, vbnet, vedit, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic


contact_uid
           <destination></destination>
       </field>
       <field>

Invalid language.

You need to specify a language like this: <source lang="html4strict">...</source>

Supported languages for syntax highlighting:

4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, arm, asm, asp, asymptote, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcl, dcpu16, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, freeswitch, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, haxe, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, ldif, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, nagios, netrexx, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, octave, oobas, oorexx, oracle11, oracle8, oxygene, oz, parasail, parigp, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, pys60, python, q, qbasic, rails, rebol, reg, rexx, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, spark, sparql, sql, stonescript, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, upc, urbi, uscript, vala, vb, vbnet, vedit, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic


Tags
           <destination>tags</destination>
           <separator>,</separator>
       </field>
 </mapping>
</config>


Import command

php tine20.php --username user --password password --method Addressbook.import import.csv definition.xml

See this forum thread for additional information about importing contacts from egw 1.6: http://www.tine20.org/forum/viewtopic.php?f=12&t=1650 (german).


How can I add new salutations?

NOTE: this is deprecated! Beginning with Milan (2012-03) the salutations are saved as a keyfield config. You have to change the values of the config 'contactSalutation' to add / edit salutations.

Just insert a new row into the [tine20_]addressbook_salutations table:

   INSERT INTO  `tine20`.`tine20_addressbook_salutations` (
   `id` ,
   `name` ,
   `gender` ,
   `image_path`
   )
   VALUES (
   '5',  'Family',  'other', NULL
   );

The value in the id column has to be unique. You can add an image path for the default image, too.


How can I change the address parsing rules?

Beginning with version Milan (2012-03) there is a new button in the Addressbook contact edit dialog: 'Parse address'. You can paste a string with address data that is parsed and all recognized strings are automatically added to the corresponding contact fields.

You can define your own custom rules by changing the file Addressbook/Convert/Contact/config/convert_from_string.xml. For each contact property (field) you can add a regular expression (regex). If it matches, the value is set in the contact.

<?xml version="1.0" encoding="UTF-8"?>
<config>
   <rules>
       <rule>
           <field>adr_one_postalcode</field>
           <regex>/\s*(\d{5})\s+[a-zA-Z]+/m</regex>
       </rule>
       <more rules>[...]</more rules>
   </rules>
</config>

It is possible to change the location of the rules file by defining a config setting (name: 'parseRulesFile') with the path to the custom rules file.


Module: Felamimail

What does the setting 'use system account' mean?

If the system accounts setting is activated in the setup, all users get an email account with their tine username/passwords. You can define the hostname/port/etc in the setup.php (email configuration), too.


Migration from EGroupware

Import accounts/calendar from EGroupware

See the eGW Migration Howto.


Support

Community support (free)

Forum: http://www.tine20.org/forum


Commercial support, customisations and other services around Tine20

http://www.tine20.com/services/supporteditionen.html


How can I sponsor a certain feature

If you can't wait for a certain feature and want to speed up its implementation, you might search for the possibility for sponsoring like other open source projects have it.

The Tine 2.0 Project does not have the possibility to place your sponsoring via some micro payment system. However, you can contact the Metaways sales team on http://www.tine20.com an place you request. There the requests are collected manually. If enough requests are collected, the feature will be implemented on a normal development contract basis.