Compare commits

...

520 Commits
master ... 1.0

Author SHA1 Message Date
Ralf Becker
4707638070 missing param 2005-11-08 10:13:47 +00:00
Ralf Becker
550b6319f4 backported a bugfixes from HEAD:
addressbook popup for email apps: adding all search results was not working with ldap (contacts_ldap class did not support the "!''" filter used)
2005-11-04 07:05:07 +00:00
Ralf Becker
a5c24a7b3e backported two bugfixes from HEAD:
1) fixed bug report by Dros on the german list: using account in ldap, nextmatch (eg. in setting group ACL's) is not working
2) implemented the same default, as for the sql class: everything which is not 'accounts' or 'groups'
2005-11-04 07:01:23 +00:00
Lars Kneschke
b4104657b2 Fix for bug #1314911 Error in felamimail default template 2005-10-19 18:06:40 +00:00
Oscar Manuel Gómez Senovilla
dd93a60cf0 bug 1313566 and phpgwapi es-ES update 2005-10-13 22:06:56 +00:00
Carsten Wolff
95aa6563f5 fix an usort sideeffect 2005-09-30 16:05:35 +00:00
Carsten Wolff
951a4c8ec6 fix PHP3 legacy performance bug and use usort() for sorting ldap_search results. 2005-09-28 11:58:04 +00:00
Ralf Becker
dfd69e00fd fixed a typo in the notice 2005-09-20 13:12:50 +00:00
Ralf Becker
26b4b5a239 disabled the build of fedora core 2 packages 2005-09-20 11:41:14 +00:00
Ralf Becker
3976f2b954 1.0.0.009-3 2005-09-20 11:30:50 +00:00
Ralf Becker
c49b822a94 the xmlrpc log should be off be default, as it contains everything in cleartext (eg. passwords) and it is in most distros world readable 2005-09-20 10:13:09 +00:00
Ralf Becker
009be56bdc fix for register_long_arrays off 2005-09-20 08:21:50 +00:00
Ralf Becker
d7cf6e6fb7 fixed bug reported by Frank Becker on the german list: deleting a link deletes all attached files too 2005-09-19 12:58:53 +00:00
Ralf Becker
518a0b3cfe fixed an other $GLOBALS['egw 2005-09-19 12:31:29 +00:00
Lars Kneschke
4250e7b6a7 reverted to $GLOBALS['phpgw'] 2005-09-15 08:09:17 +00:00
Ralf Becker
27cc39d1fc 1.0.0.009-2 2005-09-12 11:39:23 +00:00
Ralf Becker
900855140d added configuration switch for xmlrpc and soap services (default off) 2005-09-10 10:48:24 +00:00
Ralf Becker
7750e10e2b added configuration switch for xmlrpc and soap services (default off) 2005-09-10 10:33:56 +00:00
Ralf Becker
9181a45343 script (admin-only) to delete ACL records of not (longer) existing accounts 2005-09-10 08:57:29 +00:00
Lars Kneschke
babecd6862 display "grant access" link only when we have NOT user grants disabled 2005-09-07 09:22:00 +00:00
Ralf Becker
7871067e98 added patch from raphaelpereira-AT-gmail.com to allow creation of the DB under Postgres again 2005-09-06 10:14:43 +00:00
Miles Lott
c0af40f45a Fix setting of detail var. 2005-09-03 18:19:49 +00:00
Carsten Wolff
127aedb65f fix change_owner() 2005-08-30 20:57:03 +00:00
Miles Lott
a23f8f23e9 Yet another change for compat 2005-08-19 12:33:21 +00:00
Miles Lott
4d53018b08 Additional fix to rollback to phpgw_info array for this branch 2005-08-18 12:43:53 +00:00
Miles Lott
6be6611f92 Small fix for constants used in this branch 2005-08-18 12:39:22 +00:00
Miles Lott
92a4805448 Bump version to 009 2005-08-18 12:30:49 +00:00
Miles Lott
659e7351c8 Add changes from HEAD branch for security update to XMLRPC 2005-08-15 15:33:05 +00:00
Ralf Becker
aa44877178 1.0.0.008-2 2005-07-16 10:14:02 +00:00
Ralf Becker
ebf9609590 fixed not working update of existing build-root 2005-07-09 09:10:31 +00:00
Ralf Becker
4f0dd0066b merged Milosch's xmlrpc fixes to 1.0.0 2005-07-08 18:27:00 +00:00
Ralf Becker
12aa419eb6 bugfix release 1.0.0.008 (xmlrcp security problems) 2005-07-08 14:35:35 +00:00
Lars Kneschke
6419b5c091 defined twice and breaking PHP5 2005-07-05 04:55:31 +00:00
Carsten Wolff
dd2984573c another shot at datetime.iso8601:
- accept both simple and extended format from input

- output simple format, if
    + either the client is vbXMLRPC
    + or the client sends a HTTP-header "isoDate: simple"
2005-06-30 18:54:11 +00:00
Ralf Becker
22bac121d5 fixed wrong Windows detection and changed default path to show slashes on windows too 2005-06-16 05:36:09 +00:00
Ralf Becker
6a17844ac6 backported fix from HEAD: necessary primary group was not set 2005-05-31 14:22:03 +00:00
Lars Kneschke
3dedbd3ed8 russian calendar data
submitted by Alexander Krasnov
2005-05-29 11:29:36 +00:00
Lars Kneschke
61756cd49b file holidays.RU.csv was added on branch Version-1_0_0-branch on 2005-05-29 11:30:21 +0000 2005-05-29 11:29:35 +00:00
nobody
d88782eff0 This commit was manufactured by cvs2svn to create branch
'Version-1_0_0-branch'.
2005-05-29 11:29:34 +00:00
petere78
0c093c132a Fix broken PAM authentication 2005-05-24 13:01:43 +00:00
petere78
b5f7b12209 Fix month display in Konqueror 2005-05-12 07:58:21 +00:00
Carsten Wolff
84c48d12ad fix month display in Konqueror 2005-05-10 13:53:48 +00:00
Carsten Wolff
a0623e3516 honor ldap protocol version setting 2005-05-07 20:57:10 +00:00
Ralf Becker
31646ba9bb fixed translation 2005-05-02 11:40:23 +00:00
Ralf Becker
0ac70368cc applied security relevant patch from nikolaus.jeremic-at-pro-inform.de: checking old password before changeing for a regular user 2005-04-28 13:16:09 +00:00
Ralf Becker
31fe84bd6f build-script, specs and .rpmmacros used for the 1.0.0.007 2005-04-15 18:09:13 +00:00
Ralf Becker
3d36ba1ba4 pushing the version to 1.0.0.007 2005-04-15 16:33:27 +00:00
Ralf Becker
1f0711163c Finnish langfiles from Jussi Siponen - jusiponen-at-users.sf.net 2005-04-15 15:34:07 +00:00
nobody
f6d6e39ae6 This commit was manufactured by cvs2svn to create branch
'Version-1_0_0-branch'.
2005-04-15 15:34:07 +00:00
Ralf Becker
0a39c63e7a Russian langfiles from ReklamaLab.RU 2005-04-15 15:07:27 +00:00
nobody
022df12063 This commit was manufactured by cvs2svn to create branch
'Version-1_0_0-branch'.
2005-04-15 15:07:27 +00:00
Ralf Becker
05d2e0957e fix for not working pam-auth if magic_quotes_gpc is on, as suggested by Robert Theisen <trobert@redhat.com> on the developer list 2005-04-15 14:48:05 +00:00
Ralf Becker
b2aa061bd9 fixed not working charset conversation in setup 2005-04-15 14:20:14 +00:00
Ralf Becker
cbbb189df6 Croation translations from Mladen Novosel <mnovosel-AT-info-sol.net> 2005-04-15 10:22:10 +00:00
Ralf Becker
e5e62d93b3 Croation translations from Mladen Novosel <mnovosel-AT-info-sol.net> 2005-04-15 10:07:41 +00:00
Ralf Becker
485ef12612 NL holidays from Theo Beers <t_beers-AT-ilse.nl> 2005-04-15 06:13:57 +00:00
Ralf Becker
9b701ac5b9 applied patch from Cornelius Weiss: fixes some probs with xmlrpc too 2005-04-13 08:58:03 +00:00
Ralf Becker
8071d23ea5 added missing charset-translation of the cn (common name), thanks to Martin Dalum <martin-AT-cabo.dk> 2005-04-12 09:54:46 +00:00
Ralf Becker
a2a1969946 some bugfixes:
- date-time: empty date not recogniced
- date-timeonly, date-houronly: use only seconds, no timezone converstation between server-time and UTC (default for mktime())
2005-04-10 21:28:12 +00:00
dragob
9817e2cd83 Fixed translation. 2005-04-08 10:39:01 +00:00
Ralf Becker
15250f5776 fixed freebusy format as requested by Tobias K�nig <tokoe-at-kde.org> 2005-03-31 13:16:18 +00:00
Ralf Becker
ce06f44d22 new holiday file for NL from E.Jennekens-at-XWire.nl 2005-03-30 15:57:20 +00:00
Ralf Becker
3168a88a87 fixed bug of not removable apps in the user management 2005-03-30 14:45:16 +00:00
Ralf Becker
fdc23f5846 fixed html comment from Bertrand Croq <bertrand.croq-at-freeskop.com> 2005-03-30 08:59:23 +00:00
Ralf Becker
750bd3bb9b fixed bug: private filter not working as suggested by Bertrand Croq <bertrand.croq-at-freeskop.com> on the developer list 2005-03-29 10:16:35 +00:00
Ralf Becker
b141e0606d fix for bug [ 1164773 ] Moving events in calendar:
recur_exception was never set
2005-03-28 08:25:23 +00:00
Ralf Becker
e00dc3ec4e MY holidays from hoyanf <hoyanf-at-hotmail.com> 2005-03-25 07:32:27 +00:00
Ralf Becker
4e550758cd NZ holidays from Mark van Walraven <mark-AT-compel.co.nz> 2005-03-24 13:44:52 +00:00
nobody
a68e1c2199 This commit was manufactured by cvs2svn to create branch
'Version-1_0_0-branch'.
2005-03-24 13:44:52 +00:00
Ralf Becker
c52cccac0e IL holidays from Ilan Tayary <ilan-AT-cogniview.com> 2005-03-24 13:36:38 +00:00
Ralf Becker
ec82877ff4 DK holidays from Martin Dalum <martin-AT-cabo.dk> 2005-03-24 13:31:30 +00:00
Ralf Becker
c96764557a fixed problems pointed out by gulftech 2005-03-15 15:41:31 +00:00
Ralf Becker
2f3846b405 renamed French export file, as its non-ascii chars caused trouble on non-iso-8859-1 systems 2005-03-15 15:04:05 +00:00
nobody
4579b90e68 This commit was manufactured by cvs2svn to create branch
'Version-1_0_0-branch'.
2005-03-15 15:04:05 +00:00
Ralf Becker
c967b7581f fixed problems pointed out by gulftech 2005-03-15 14:34:22 +00:00
Ralf Becker
d2e35416ab fix for the problems reported by gulftech, now tested a view days on my own production server and egroupware.org 2005-03-15 08:37:51 +00:00
Ralf Becker
3e3d6116db fixint the problems pointed out by GulfTech, thought they should be fixed in the categories class 2005-03-12 16:37:50 +00:00
Ralf Becker
5b642979f0 allow 1-digit day and month, as suggested by Manfred Herr (Digitask GmbH) 2005-03-10 06:53:38 +00:00
Ralf Becker
4df4f22337 fixed the dynamic loading of the session extension (was missing the PHP_SHLIB_{PREFIX&SUFFIX}) 2005-03-07 06:42:17 +00:00
reinerj
96a9356854 holiday file from Slaven Crnjac 2005-03-04 13:12:31 +00:00
dawnlinux
f3ba0142ab Fix the following bugs,
[ 996794 ] Custom field can not be deleted.
[ 1029059 ] Delete user fields
[ 1154738 ] Customer fields contain UTF-8 works could not be deleted.

The problem is due to, some specail characters, e.g, utf-8 chars, are url-encoded for generationg the url, but are not decoded when trying to delete them.
2005-03-02 06:20:55 +00:00
dawnlinux
d1d0b4b1c1 Add a German translation 2005-02-28 03:09:54 +00:00
reinerj
ee86aa7bba update Switzerland holiday file from Samuel Weiss 2005-02-26 07:08:56 +00:00
Ralf Becker
aada45e0c9 fixed bug: not all custom fields are shown readonly if only editing the status is allowed (thought they will not be saved anyway) 2005-02-24 14:10:26 +00:00
Ralf Becker
28b05351bc fallback to db sessions if php's session extension is not loadable, atm. you get cryptic errors, bugs in the bugtracker and mails on the list ;-) 2005-02-21 08:07:45 +00:00
Ralf Becker
f39a9d0835 checking for the session extension 2005-02-21 08:04:51 +00:00
Ralf Becker
e295e8f1f7 new norwegian translations from ��yvind Kronkvist <oyvind-at-kronkvist.no> 2005-02-19 10:39:25 +00:00
nobody
be3ff0b895 This commit was manufactured by cvs2svn to create branch
'Version-1_0_0-branch'.
2005-02-19 10:39:25 +00:00
reinerj
291d60d413 update Italy holiday file from Giovanni Guerrieri 2005-02-17 11:53:07 +00:00
Ralf Becker
91fa9b8bbb latest translations from Valentin Laskov 2005-02-17 07:15:23 +00:00
Ralf Becker
70d6d035fc fixed bug reported on the devel-list: clicking on "Grand access" icons (pencil) while adding a new account results in an sql error
==> icon not longer shown, as we have no user-id yet
2005-02-15 08:29:29 +00:00
Ralf Becker
34caa21bd3 merged fix from Andy only commited to HEAD:
fix group edit bug detected by Maanus, so after editing groups in combination
with LDAP, the remain with account type "g" and not getting "u".
2005-02-15 08:28:16 +00:00
Ralf Becker
682e38cb1d fixed bug reported by Reinhard Gustavik on the german list: custom status get's not saved and not used 2005-02-14 10:30:36 +00:00
Ralf Becker
28f22fab5c fix for php5 2005-02-12 14:38:42 +00:00
Ralf Becker
6ad247a14b fix for bug [ 1120676 ] Date&Linking Probs in InfoLog:
caused by error in handling of array's when magic_quotes_gpc was on
2005-02-12 14:02:39 +00:00
Ralf Becker
423fa639fa updated dependencies 2005-02-10 14:18:51 +00:00
Ralf Becker
8bf60e4af0 fix for bug [ 1084324 ] Database error when try to search holidays 2005-02-10 01:00:36 +00:00
Ralf Becker
9b52f5fba5 fixed bug reported from Adriano on the user-list: daily matrix view gives warning if no participants selected.
Also fixed not working switch between daily and weekly view.
2005-02-09 23:13:23 +00:00
Ralf Becker
f368adc1ae fixed bug [ 1107983 ] Repeating Events out of order/shifted 2005-02-09 19:58:55 +00:00
Ralf Becker
a9328ad77f fixed bug [ 1115160 ] Calender Updated Time Error 2005-02-09 18:15:15 +00:00
Ralf Becker
0acd04ce49 fixed bug [ 1119190 ] broken HTML escaping in calendar notes 2005-02-09 18:03:49 +00:00
Ralf Becker
7aa0f60d98 fixed bug [ 1103731 ] calendar dont work without infolog installed 2005-02-09 17:54:46 +00:00
Ralf Becker
a029793462 fixed bug [ 1106069 ] bad hypertext link creation when '&' is in the URL 2005-02-09 16:49:47 +00:00
Ralf Becker
4425e6383a fixed bug [ 1051483 ] deleting an infolog entry not delete it's attachments.
I also delete empty dirs (after last attachment was deleted).
2005-02-09 16:29:27 +00:00
Ralf Becker
abcc643b2b fixed not working attachments after first file-attachment on new created infolog-entries, eg. [ 1052140 ] 2005-02-09 15:02:44 +00:00
Ralf Becker
f5656e49f4 select: fixed quoting of option texts in selectbox,
htmlspecialchars: dont quote &nbsp; &lt; &gt; as they are already entities
2005-02-09 13:50:59 +00:00
Ralf Becker
fa30c02528 fix for bug [ 1049574 ] Windows does not support dates prior 1970-01-01
using adodb's datelibary instead of the regular php-functions: date, mktime, ...
also added input-validation for dates and the hour widget
2005-02-09 10:41:00 +00:00
Ralf Becker
09279b48cb fix for bug [ 1049574 ] Windows does not support dates prior 1970-01-01
using adodb's datelibary instead of the regular php-functions: date, mktime, ...
2005-02-09 10:35:28 +00:00
Ralf Becker
3eb201a071 using clone() to create copies of the db-object for php5 compatibility 2005-02-08 18:03:28 +00:00
Ralf Becker
c5cd575b44 using clone() to create copies of the db-object for php5 compatibility 2005-02-08 17:58:25 +00:00
reinerj
70ae993114 update holidays file from Centurypcb Raymond Chen 2005-02-07 15:13:25 +00:00
reinerj
bf2769e376 update lang file from Mats Fredriksson for Swedish 2005-02-04 17:47:00 +00:00
reinerj
465364efa8 update lang file from Mats Fredriksson for Swedish 2005-02-04 17:35:29 +00:00
reinerj
b7bcb310af update lang file from Mats Fredriksson for Swedish 2005-02-04 17:34:44 +00:00
reinerj
2a40bb8a97 update lang file from Mats Fredriksson for Swedish 2005-02-04 17:33:03 +00:00
reinerj
6e6208cd11 update lang file from Mats Fredriksson for Swedish 2005-02-04 17:31:18 +00:00
Ralf Becker
b176bb96f3 Fixed disapearing backslashes if magic_quotes_gpc=Off. Now stripslashes is only run if it's On. 2005-02-04 13:44:13 +00:00
Ralf Becker
f48bb9f670 fixed error with fulltext indexes (eg. in the wiki), when the default-type-type is set to InnoDB, which is eg. the default for some newer windows installs or mysql 4.1.x 2005-02-04 10:46:21 +00:00
Oscar Manuel Gómez Senovilla
0f7d93fa3e *** empty log message *** 2005-01-31 00:37:09 +00:00
Oscar Manuel Gómez Senovilla
c5a7aac6f4 bug 112125 2005-01-29 21:04:01 +00:00
nobody
d09c69e1d0 This commit was manufactured by cvs2svn to create branch
'Version-1_0_0-branch'.
2005-01-29 21:04:01 +00:00
Oscar Manuel Gómez Senovilla
f06923a9f7 bug 1112125 2005-01-29 21:00:29 +00:00
Oscar Manuel Gómez Senovilla
824440a459 bug 1109750 2005-01-29 13:28:18 +00:00
ak703
78d1fafef0 fixes lost email when adding users 2005-01-28 22:18:39 +00:00
reinerj
0a7ea17057 update lang file from ReklamaLab.RU 2005-01-28 18:26:46 +00:00
reinerj
1ee818779a lang file update Swedish from Marko 2005-01-17 13:33:43 +00:00
reinerj
1951b4f39d lang file update Swedish from Marko 2005-01-17 13:29:43 +00:00
reinerj
c61a39b9ac lang file update Swedish from Marko 2005-01-17 13:22:59 +00:00
reinerj
18cae12c94 lang file update Swedish from Marko 2005-01-17 13:17:07 +00:00
nobody
14618021b1 This commit was manufactured by cvs2svn to create branch
'Version-1_0_0-branch'.
2005-01-17 13:17:07 +00:00
reinerj
8c63fd4714 lang file update Swedish from Marko 2005-01-17 13:12:32 +00:00
reinerj
3d80941e14 lang file update Swedish from Marko 2005-01-17 13:09:36 +00:00
reinerj
34bd5a5ba8 lang file update Swedish from Marko 2005-01-17 13:01:42 +00:00
reinerj
8957d1cccd lang file update Swedish from Marko 2005-01-17 12:56:04 +00:00
reinerj
b8529cc3c0 lang file update Swedish from Marko 2005-01-17 12:50:33 +00:00
reinerj
a50b3825fe lang file from ReklamaLab.RU 2005-01-16 23:26:59 +00:00
reinerj
f4f5b91632 lang file from ReklamaLab.RU 2005-01-16 21:41:05 +00:00
reinerj
74ba7af7ef lang file from ReklamaLab.RU 2005-01-12 20:45:34 +00:00
reinerj
13e9ea3960 add holidays for switzerland from devein 2005-01-08 00:37:43 +00:00
alpeb
0e9f7e2133 Fixes bug 1027461: daily view and events list in home made browser overflow width. This happened only in mozilla browsers, and only sometimes (apparently depending on the order images were downloaded from the server). It seems to be a mozilla bug related to the overflow css property. I just removed the property; anyway it wasn't serving any purpose. 2005-01-02 22:21:23 +00:00
dawnlinux
7fb8b4dbea Thanks to Wang Penghui AT realss DOT com 2004-12-22 17:10:11 +00:00
dawnlinux
1477083f4c Thanks to Wang Penghui AT realss DOT com 2004-12-22 16:35:15 +00:00
dawnlinux
29adbe817b Correct a variable name, it should be "$_account_id" not "$account_id" 2004-12-14 02:13:59 +00:00
Ralf Becker
a00f443eec fix for xmlrpc error from korganizer: "unknown function name2id" 2004-12-13 08:51:27 +00:00
dawnlinux
85a0917146 Collect a spelling, it should be "administrator" not "adminstrator". 2004-12-12 06:35:24 +00:00
reinerj
198fa0d983 update the slovenian lang file from orb_ter 2004-11-27 22:19:55 +00:00
reinerj
cca9dfe7b8 update the slovenian lang file from orb_ter 2004-11-27 22:15:30 +00:00
reinerj
7ba040132a update slovenian lang file 2004-11-24 16:37:53 +00:00
reinerj
af37670379 updatet build script 2004-11-19 14:42:02 +00:00
reinerj
666607774b update build script to build bitrock windows packages 2004-11-19 14:26:13 +00:00
Ralf Becker
b7a8cf9b48 fixed escaping of parameters for the wz_tooltips: single quotes in calendar titles caused all tooltips on that page not to appear 2004-11-17 14:19:12 +00:00
Ralf Becker
be74b456aa fixed spelling error which caused the green check to displayed at the admin-account section even if no user accounts exist 2004-11-17 12:48:22 +00:00
Ralf Becker
589116a6bc added content-type header with correct charset to override the webservers default 2004-11-15 08:58:05 +00:00
Ralf Becker
429b9b0913 fix for bug [ 1062480 ] case error in schema_proc_pgsql 2004-11-08 16:14:48 +00:00
Ralf Becker
eaa73638f1 setting the version to 1.0.0.006 2004-11-06 12:20:09 +00:00
shrykedude
2bb9634b3e Fix for occassional session-verification problem 2004-11-03 05:02:25 +00:00
reinerj
58e4f9f51c add import script file from itanczos 2004-11-03 00:51:42 +00:00
dawnlinux
304b86635e Add title for logo image of template "prisma" 2004-10-29 03:59:29 +00:00
dawnlinux
846e0d44f4 Add tilte for logo image of template "jerryr" 2004-10-29 03:56:02 +00:00
dawnlinux
2180b87c02 Add title for logo image of template "idots" 2004-10-29 03:49:56 +00:00
dawnlinux
47fa1fedca Add title for logo image of template "edge-it" 2004-10-29 03:44:07 +00:00
Lars Kneschke
e2394006a8 bug fix for [ 1043166 ] Does not use return email address
solved by Gareth Horth
2004-10-24 10:51:19 +00:00
reinerj
a92c084471 add import script file from itanczos 2004-10-24 09:56:44 +00:00
Lars Kneschke
399618a7b6 make clone working with PHP5 too 2004-10-21 18:13:46 +00:00
Ralf Becker
ec9361225a added clone function for php4, use as $db = clone($this->db); 2004-10-20 09:03:18 +00:00
Lars Kneschke
614d56fd6f add email address also for new accounts
see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=270672
2004-10-18 05:16:24 +00:00
mgalgoci
6059d6cc0f - some minor asthetic cleanups
- give us a fighting chance at importing daily and monthly events.
2004-10-15 19:46:30 +00:00
mgalgoci
7b9ae9942e - spelling fixes from HEAD
I've tested these and have not encountered any issues
2004-10-15 18:23:49 +00:00
mgalgoci
287eb1ada5 - cleanups and annotations to match HEAD 2004-10-15 18:20:59 +00:00
mgalgoci
99b3a59493 cosmetic cleanups and annotations to match what I've committed to HEAD 2004-10-15 18:18:43 +00:00
Ralf Becker
29afd4fa32 killed debug-message 2004-10-06 15:11:09 +00:00
Carsten Wolff
deb111800a fix recurance enddate in xml-rpc and a typo 2004-10-06 09:13:59 +00:00
Carsten Wolff
9c7f9aad64 use String for ID in xml-rpc, too 2004-10-06 09:11:40 +00:00
bgigon
3bc6615523 Fix strange bugs.
Somes "ghost" characters appears
2004-09-30 12:21:08 +00:00
reinerj
35010c30bb Thank you to Raphael and Vinicius from Thyamad/Brazil which fix the broken update for Debian Woody. After a change between 003 and 005 it was NOT longer possible to update a Woody eGW installation. Sometimes it need only a good will to fix a problem 2004-09-29 20:06:41 +00:00
reinerj
26ca4a40bf update New Caledonia holiday file from Guilhem Basset 2004-09-29 16:40:29 +00:00
nobody
f6eaa45d6d This commit was manufactured by cvs2svn to create branch
'Version-1_0_0-branch'.
2004-09-29 16:40:29 +00:00
reinerj
0d89d16735 update Belgian holiday file from Wim Vinckier 2004-09-29 16:35:19 +00:00
bgigon
34d4bf087c backport some modifications 2004-09-29 13:29:24 +00:00
bgigon
619dec0faa Fixbug
Problems with persistent participants from matrixview
2004-09-29 12:36:52 +00:00
bgigon
7e31271830 Fix Security Holes
Another prohibited users can view availability of another users
 (and reconstruct calendar for a user, in final)
Now, Users can view _only_ availability of users when owner has a good
 rights (minimal: read)
2004-09-28 15:57:29 +00:00
reinerj
3bd4118e3e update Hebrew holiday file from Ilan Tayary 2004-09-28 13:46:22 +00:00
bgigon
8e257934f3 Adding files 2004-09-28 12:50:07 +00:00
bgigon
a93aac8d2f New template 2004-09-28 10:17:35 +00:00
reinerj
b86196d51d update lang file from Oldrich Dlouhy 2004-09-27 09:01:38 +00:00
dragob
d11d2193be New/updated Slovenian translations. 2004-09-23 17:54:25 +00:00
Ralf Becker
6270294429 fix for problem reported by Julius Wehrmann, a single date-picker (no other widgets) does not work 2004-09-20 18:50:36 +00:00
reinerj
8a79c25d06 update lang file from Theytaz Antoine 2004-09-20 07:45:10 +00:00
Ralf Becker
666289886e fix for bug [ 1006205 ] wiki editing broken with Safari
- safari gets now recogniced as browser by the html-class
- html::htmlarea show's a textarea if HTMLarea is not availible (suppresses error with safari)
- dont show button to convert to html if:
  * HTMLarea is not availible for the browser
  * admin disabled it in the wiki configuration
2004-09-19 21:20:08 +00:00
reinerj
0bf8e4a287 fix a typo 2004-09-19 20:52:37 +00:00
Ralf Becker
3a9c7b62d7 fixed typo, thanks to Jo�o Martins 2004-09-19 20:33:41 +00:00
alpeb
9998281008 Wasn't finding htmlarea.css when not using /egroupware as base directory 2004-09-19 16:43:31 +00:00
Ralf Becker
c2b14a5f85 fixed MsSQL problem: DISTINCT on text column in function get_installed_charsets 2004-09-19 12:53:05 +00:00
Ralf Becker
f360253fb2 fixed search on text-columns: MsSQL need to cast the column to varchar 2004-09-19 12:35:44 +00:00
alpeb
5924aa86f4 Added button translation 2004-09-18 21:36:45 +00:00
alpeb
a19e998d97 Added button translation 2004-09-18 21:35:51 +00:00
alpeb
71e90370fd Added button translation 2004-09-18 21:33:23 +00:00
alpeb
9e35b211ae Added some translations to import and export screens 2004-09-18 15:27:42 +00:00
alpeb
5ebf9280a5 Added some translations for import and export screens 2004-09-18 15:21:55 +00:00
alpeb
e0c6b35a25 Added some translations for import and export screens 2004-09-18 15:21:08 +00:00
Ralf Becker
1e9fbcc070 fixed encoding of blob columns for all DB's 2004-09-18 15:16:10 +00:00
Ralf Becker
0cbb4fdb71 fixed encoding of blob columns for all DB's 2004-09-18 14:59:54 +00:00
Ralf Becker
e4463d38a5 fix for 800x600 resolution from Alejandro 2004-09-18 09:44:00 +00:00
Lars Kneschke
32289d20b2 applied patch from Christian Mangold
[ 1022144 ] felamimail: fullname instead emailadress in sent FROM-header
2004-09-17 19:21:03 +00:00
Lars Kneschke
a4893b4b1d applied patch from Christian Mangold
[ 1021108 ] minor bugfix in mainscreen.tpl
2004-09-17 19:13:59 +00:00
Ralf Becker
0805bf61f8 fixed bug [ 1027668 ] $$Link$$ not using https 2004-09-16 22:01:38 +00:00
Ralf Becker
f9d6e727c0 removed the HtmlTidy plugin from the defaults, as it breaks the source edit mode (<>) if tidy is not installed 2004-09-16 21:38:14 +00:00
Ralf Becker
30a3609a65 fixed bug reported on the german mailinglist:
- Warning implode wrong arguments on line 120
- space after comma is not ignored
2004-09-15 18:12:51 +00:00
alpeb
c67748c1f8 Switch 'manage folders' and 'manage sieve' translations from felamimail to common so that they get translated in the preferences app that lists all preferences possibilities from all applications 2004-09-14 21:24:25 +00:00
Ralf Becker
5ef227c4d1 fix for bug [ 1026126 ] Changing group ACL broken 2004-09-13 07:58:35 +00:00
Ralf Becker
c1f1985564 killed warning of destroying an uninitialised session:
bug [ 1026623 ] Sitemanager site can't be viewed anonymously with PHP session:
- cant reproduce it on my system, but silencing it does no harm
2004-09-13 07:38:58 +00:00
alpeb
6bc9bfab11 Synced with head (Anonymous users must have a home) 2004-09-11 23:57:02 +00:00
alpeb
84aff72ae2 Put new password in ['phpgw_info']['user']['passwd'] in case any hook_changepassword uses it 2004-09-11 13:34:09 +00:00
alpeb
b5d0db1ebf Sync with changes in head 2004-09-11 05:51:10 +00:00
alpeb
8cc7c56b50 Changed preg_replace with faster strpos 2004-09-11 03:27:02 +00:00
alpeb
53aee21f17 Translate 'use emailadmin to create profiles' 2004-09-10 22:25:35 +00:00
alpeb
0eb977511b Translate 'use emailadmin to create profiles' 2004-09-10 22:24:43 +00:00
alpeb
238d326bac Translate 'use emailadmin to create profiles' 2004-09-10 22:21:26 +00:00
alpeb
45dc84cca3 Translate 'IMAP Server' 2004-09-10 21:41:38 +00:00
alpeb
019cf80f54 Translate 'IMAP Server' 2004-09-10 21:36:20 +00:00
alpeb
876368587b If user doesn't have site configuration access, then don't show the site configuration link for each app 2004-09-10 17:52:28 +00:00
reinerj
0b2ec0a91b update the build files 2004-09-09 09:31:49 +00:00
Ralf Becker
3bfb8696fc updating version to 1.0.0.005 for the bugfix release 2004-09-08 16:15:25 +00:00
Ralf Becker
7a6e1b807a fix for bug [ 1023559 ] Infolog does not search all entries while linking 2004-09-08 16:01:16 +00:00
Ralf Becker
032bef4012 fix for bug [ 1022807 ] users with some login names can't login 2004-09-08 13:16:01 +00:00
Ralf Becker
e73f98cc9f reverted Matthew's commit and fix for bug [ 1015533 ] Private entries prohibit response
If you are invited to a private event, you get full access to it, as you would if it were not private. Only restriction is: other people you gave access to your private events, still cant read the event, as long as they have no direct private grant from the owner of the event.
2004-09-08 12:14:13 +00:00
Ralf Becker
b775e8ca4c fix for bug [ 1022185 ] Last day of event shows 00:00:00 00:00:00 2004-09-08 09:42:21 +00:00
Lars Kneschke
4dbb0df8fa suppress the errormessage 2004-09-07 07:05:22 +00:00
reinerj
27f8a6da37 change charset setup it iso-8859-15 2004-09-06 22:26:14 +00:00
dawnlinux
0ff3231643 Fix the bug: Fail to create text files that contain multibyte
characters in filemanager, for exmaple, files that contain Chinese
characters.

Reason for producing the bug: One parameter of "fwrite"
is "strlen ($data['content'])". To multibyte character, "strlen" can
not return its actual length. So "fwrite" cannot write all characters
to the created file.
2004-09-06 03:53:00 +00:00
bgigon
b549272971 Better display in opera, IE (Win and Mac) 2004-09-03 16:01:32 +00:00
mgalgoci
d83ce9b3c5 Fix issue where people invited to a private event were unable view the event
let alone view the event details. invitees are now allowed to view the event
details as well as accept their invitation to the event.

NB:

- if an invitee has granted another user private access to the invitee's calendar, the user
to which private access has been granted is UNABLE to view the details of the event.

- if the person who created the event and marked the event private has granted another user
access to that person's private events, then the person granted private access WILL be able
to see the details of the event.

- at most, uninvited third parties will only see that a private event is taking place at some
time, but only if they have at least read access to the calendar of one of the people invited
to the event.

I hope this makes sense. I've tested this extensively to make sure I am not accidently granting
access to private events that should be kept private.
2004-09-02 21:37:25 +00:00
reinerj
73386c5d07 update lang file from Theytaz Antoine 2004-09-02 17:56:49 +00:00
reinerj
9c133a33b0 update lang file from Theytaz Antoine 2004-09-02 17:46:37 +00:00
alpeb
406775362e Added 'Check Now' translation for notify app 2004-09-02 17:46:16 +00:00
alpeb
20e1df0503 Added a couple of common translations for the notify window 2004-09-02 17:41:52 +00:00
mgalgoci
db2a6fc9f9 fix editing of group acls for current group. 2004-09-02 15:52:06 +00:00
Ralf Becker
f275265a7b allow to specify cats by there id again 2004-09-02 10:30:48 +00:00
Ralf Becker
b8e971b8e2 allow to specify cats by there id again 2004-09-02 10:16:30 +00:00
Ralf Becker
6c57211b88 allow to specify cats by there id again 2004-09-02 10:14:07 +00:00
Ralf Becker
1140f48c28 new french translations from Antoine Theytaz 2004-09-02 07:57:02 +00:00
reinerj
bf91b12c7a update lang file from Theytaz Antoine 2004-09-02 06:35:14 +00:00
Lars Kneschke
9f723a3520 update france translation by Antoine Theytaz - theytaz 2004-09-01 20:58:21 +00:00
Lars Kneschke
e64c9f8545 fixed creation of new folders with special chars
fixed renaming of folders
2004-09-01 20:52:36 +00:00
Ralf Becker
d9cb5ab88c fix for bug [ 1014883 ] Sidebox with Add New Entry even if now permissions to add 2004-09-01 12:58:09 +00:00
reinerj
b46a7b62e5 update lang file from Theytaz Antoine 2004-09-01 08:51:41 +00:00
dragob
22a121e672 New/updated Slovenian translations. 2004-08-31 21:04:25 +00:00
mgalgoci
fa5bfe4681 Fix this bug:
Date: Tue, 31 Aug 2004 16:16:35 +0200
From: Michael Schmidt <brokerjoker@gmx.de>
Reply-To: egroupware-developers@lists.sourceforge.net
To: egroupware-developers@lists.sourceforge.net
Subject: [eGroupWare-developers] Bug in Calendar?

Hi,

if I switch the calendar view to "week view", it displays three months
above the seven days of the week. These should be:

July - August - September

But today it shows:

July - August - October(!)


I guess it has sth. to do with today's date (31st of August).

Is this a known bug?

tnx,
Michael
2004-08-31 18:41:52 +00:00
mgalgoci
4ad866d89a fix the fix 2004-08-31 15:16:56 +00:00
reinerj
694b8e006a update lang file from Theytaz Antoine 2004-08-31 13:29:42 +00:00
reinerj
b542e49aeb update lang file from Theytaz Antoine 2004-08-31 12:55:16 +00:00
Ralf Becker
3192b4a027 fixed some new introduced and some still existing / old bugs 2004-08-31 09:32:11 +00:00
Lars Kneschke
bd8c48b412 Fix for Bug: [ 1016012 ] array_merge(): Argument #1 is not an array 2004-08-31 07:31:33 +00:00
dragob
97534ead6f New/updated Slovenian translations. 2004-08-30 18:54:18 +00:00
mgalgoci
dbf926a0a2 - re-write of the phpgwapi::accounts_ldap::auto_add function
- set a default account email address as well as a user preference email
address in the users' preferences
- actually check if the account creation succeeds before we commit the transaction to the database.
- remove some crap and make function readable
2004-08-30 15:11:32 +00:00
mgalgoci
f01caf6260 - re-write of the phpgwapi::accounts_sql::auto_add function
- set a default account email address as well as a user preference email
address in the users' preferences
- actually check if the account creation succeeds before we commit the transaction to the database.
- set default name to New User if we have no other data
- remove some crap and make function readable
2004-08-30 15:10:34 +00:00
Ralf Becker
570e481ddf changed currentapp to addressbook, to not allow access without run-rights for addressbook 2004-08-29 19:08:27 +00:00
Ralf Becker
137094385d the missing german translation for the htmlarea-plugins 2004-08-29 09:39:05 +00:00
reinerj
79743107b3 delete blank lines after htmlarea was included in translation system 2004-08-29 08:53:26 +00:00
reinerj
970c1b05f2 delete blank lines after htmlarea was included in translation system 2004-08-29 08:28:41 +00:00
reinerj
eb91b9dbb8 update japan langfile from Jun Kuriyama 2004-08-29 08:03:10 +00:00
reinerj
2230eaafa5 start translation for HTMLAREA plugins 2004-08-29 07:56:46 +00:00
reinerj
4b6c980880 langfile update 2004-08-29 07:28:39 +00:00
Ralf Becker
df6a5aa17e integrated the HTMLarea plugins into the eGW translation system 2004-08-29 01:27:22 +00:00
Ralf Becker
ec2e578754 integrated the HTMLarea plugins into the eGW translation system 2004-08-29 00:54:58 +00:00
Ralf Becker
06891f76ff integrated the HTMLarea plugins into the eGW translation system
fixed bug [ 1006205 ] wiki editing broken with Safari
2004-08-29 00:51:47 +00:00
Ralf Becker
4f7f232993 integrated the HTMLarea plugins into the eGW translation system 2004-08-29 00:49:27 +00:00
Ralf Becker
4a96e87d96 fix for bug [ 994760 ] Linking sub-project (job) to an infolog entry 2004-08-28 19:28:39 +00:00
Ralf Becker
c38e3d2ecc killed debug message 2004-08-28 19:01:39 +00:00
Ralf Becker
98344de8ec showing time for the startdate 2004-08-28 18:03:40 +00:00
Ralf Becker
2077cf3fc2 fix for bug [ 1007297 ] Time offsets incorrect
==> all tz-conversation is done now in the bo-class, as I handle it in the new calendar too
2004-08-28 17:59:21 +00:00
Ralf Becker
7af22613de added option to suppress time in the readonly display if it's 0h0 2004-08-28 17:55:29 +00:00
Ralf Becker
ff09d66a4b removed tz-converstation:
- to fix tz-probs in infolog
- in my belive tz-conversation should always be done in the bo-layer and not in ui (eTemplate)
2004-08-28 17:07:57 +00:00
Ralf Becker
fc866feeaa fixed double translation of extra options in selectboxes 2004-08-28 15:51:38 +00:00
Ralf Becker
8638a5df3c not longer needed 2004-08-28 14:59:26 +00:00
Ralf Becker
d2510c0f3f not longer needed => common sense in eGW 2004-08-28 14:46:47 +00:00
Ralf Becker
d4a2742a82 allow sorting after multiple criteria as in sql 2004-08-28 14:43:09 +00:00
Ralf Becker
1a70e1ce68 translation update 2004-08-28 14:37:32 +00:00
Ralf Becker
37e833f71b fixed bug [ 1018087 ] custom infolog type name only allow 10 bytes:
==> longer fields for multibyte charsets
2004-08-28 14:36:27 +00:00
Ralf Becker
da232d6773 enabled editing of user-ACL settings for admins 2004-08-28 13:47:43 +00:00
Ralf Becker
56c20f5a39 fixed problem with pagination and an other important issue 2004-08-28 13:40:39 +00:00
Ralf Becker
54ef997aac removed plugins, as they only work in selected languages 2004-08-28 13:34:15 +00:00
reinerj
4741500ca2 update lang file from Theytaz Antoine 2004-08-28 13:03:41 +00:00
reinerj
94798b3f78 update lang file from Theytaz Antoine 2004-08-28 12:27:23 +00:00
Ralf Becker
a3fdeee860 removed destroying of the crypto object if the session-verification fails, as it leads to problems in sitemgr creation of anonymous sessions and it get cleaned up anyway by the shutdown function 2004-08-27 18:20:31 +00:00
mgalgoci
7bf13dd570 Fix issue where some input text would be hidden by the cursor (eg: l, i, and 1)
causing some users to misread some fields they were typing.
2004-08-27 17:07:01 +00:00
Lars Kneschke
091cf67832 display quota usage under 5% correctly 2004-08-27 13:38:43 +00:00
Ralf Becker
ab18d7f251 fixed some of our sessions problems:
- [ 1015846 ] Registering session MySQL query error
- handlich of timed out sessions for php4 sessions was wrong
==> I can't reproduce any more sessions probs, either with db nor php4 sessions
2004-08-27 13:13:37 +00:00
Ralf Becker
cf49fb8384 Changes to update phpGW versions from after the fork up to 0.9.16.001, thought we dont import their new addressbook, we only create the original addressbook-tables if they are not there, because it's a newer install. The changed phpgw_log and phpgw_log_msg tables are just droped and recreated. 2004-08-27 10:46:06 +00:00
Ralf Becker
9b743a137d made the update strategy of setup_process a bit more flexible: update dont need to be in order in the tables_update file any more: if the next update is not the one we need, we search for the right one and start again from there. This is needed to be able to import phpGW versions from after the fork and it simplyfies the update-scripts a lot now. 2004-08-27 10:40:36 +00:00
Lars Kneschke
a166cfb742 updated Changelog 2004-08-27 07:04:42 +00:00
alpeb
9d39607f84 Tabs titles (message, attachment, and header lines) not get translated 2004-08-27 05:12:57 +00:00
alpeb
6a5d84e20f Tabs titles (message, attachment, and header lines) not get translated 2004-08-27 05:11:27 +00:00
alpeb
f86273b133 Tabs titles (message, attachment, and header lines) not get translated 2004-08-27 05:09:41 +00:00
alpeb
85905e0b82 Fixed file formating: was unix on some places, DOS on others; left all in unix 2004-08-27 05:04:51 +00:00
reinerj
dceb04c89b lang file update from Theytaz Antoine 2004-08-26 20:54:37 +00:00
Ralf Becker
fbdf70bcdb fixed "TranslationTools" italian langfile is written empty, it only happens if system-charset utf-8 is set and is cause by the wrong translation of charset to "set characteri" instead of the used charset iso-8859-1 2004-08-26 19:05:25 +00:00
mgalgoci
a2114e47a1 add support for Lastname, Firstname username account views 2004-08-26 18:40:37 +00:00
mgalgoci
cb17572648 - re-write display_fullname to be more readable and suck much less
- add support for Lastname, Firstname username account views
2004-08-26 18:38:43 +00:00
Ralf Becker
886b65bdaa fix for bug [ 1011713 ] new user email address gone 2004-08-26 11:56:41 +00:00
Lars Kneschke
a0911e593f fix for Bug: [ 1016531 ] felamimail: Warning Invalid argument for foreach() 2004-08-26 07:19:57 +00:00
Lars Kneschke
5f70299d28 fix for Bug: [ 1009099 ] Unable To Add Project 2004-08-25 20:58:15 +00:00
ak703
71ef369120 sync with head - fix for bug #914383: WE will only display this link, if LDAP is used for accounts and
defined in setup as such. Other users dont get confused then.
2004-08-25 20:53:39 +00:00
mgalgoci
a09332a13d More ical import fixes 2004-08-25 20:37:57 +00:00
Lars Kneschke
e42afdfd13 fix for bug [ 1007816 ] error message 2004-08-25 20:04:48 +00:00
Oscar Manuel Gómez Senovilla
d627eebc66 *** empty log message *** 2004-08-25 18:03:24 +00:00
mgalgoci
b356444f24 fix long standing issue in is_owner() - mailto is a subarray of organizer. 2004-08-25 15:27:25 +00:00
Ralf Becker
1b32fe33fd replaced all while-list-each with foreach, as requested in patch [ 1015863 ] Admin does not save ACL rights and Site Configuration 2004-08-25 11:20:04 +00:00
Ralf Becker
5c7335098e imapLoginType was not set on editing of an existing profile 2004-08-25 10:42:04 +00:00
Ralf Becker
eb2cf5f2a6 renamed html class in admin to html_tables, as the name clashes with the class html in the api 2004-08-24 19:52:10 +00:00
Ralf Becker
13eceac6a2 foreach instead of while-list-each 2004-08-24 19:50:13 +00:00
Ralf Becker
7a4633e383 fixing the fix, no even all sub-arrays get reset 2004-08-24 19:48:25 +00:00
alpeb
b41e47d762 Fixed wrong time when exporting to vcal. Also changed ical versi��n from 2.0 to 1.0 because outlook 2000 was rejecting icals with this version. Shouldn't I have changed this version number? 2004-08-24 19:41:43 +00:00
Ralf Becker
ec06d46997 fixed delete-problem of anglemail after security update 2004-08-24 10:28:34 +00:00
Ralf Becker
6bd9c2fd4d fixing the fix ;-) 2004-08-23 18:42:30 +00:00
Ralf Becker
287e0fc91c fixed probs pointed out by Joxean Koret 2004-08-23 18:18:56 +00:00
reinerj
1660dc3d2a updated build files 2004-08-23 17:32:52 +00:00
Ralf Becker
3b2158f2da merged lars folder-fixes to 1.0 2004-08-23 17:09:10 +00:00
dragob
5e023ce4bd New/updated Slovenian translations (by Matev� Bokal). 2004-08-23 14:36:00 +00:00
nobody
fd2aec1bf5 This commit was manufactured by cvs2svn to create branch
'Version-1_0_0-branch'.
2004-08-23 14:36:00 +00:00
Ralf Becker
1ad54cc033 fixed calltime-pass-reference 2004-08-23 08:50:36 +00:00
Ralf Becker
e6402c1d21 fixed planner again 2004-08-23 08:16:38 +00:00
Ralf Becker
1a825e8016 fixed probs pointed out by Joxean Koret 2004-08-22 23:14:55 +00:00
Ralf Becker
3bbe08b419 fixed probs pointed out by Joxean Koret 2004-08-22 23:03:07 +00:00
Lars Kneschke
e4aa934a45 encode the foldernames with the right charset 2004-08-22 21:22:06 +00:00
Ralf Becker
0f34f340ab using native adodb functions for quote and db_addslashes:
- qstr() save's one extra call compared to the PEAR function quote()
- dont need substr( ,1,-1) for db_addslashes
2004-08-22 20:27:11 +00:00
Ralf Becker
1f69400c71 fixed ACL for status offer, it respects now the regular read-access restrictions 2004-08-22 19:21:50 +00:00
Ralf Becker
19e5c50947 small fix 2004-08-22 18:34:53 +00:00
Ralf Becker
febb03c9f1 fixed probs pointed out by Joxean Koret 2004-08-22 17:56:26 +00:00
Ralf Becker
f5f35feb32 small fix 2004-08-22 14:09:11 +00:00
Ralf Becker
1233ab4f33 fixed old update, which messed up the 1.0.0.004 update for LDAP 2004-08-22 11:13:15 +00:00
Ralf Becker
d278fe4931 deleting all acl-entries of not (longer) existing accounts (users and groups), these entries have'nt got delete so far and cause a lot of mailfunctioning in the ACL class
==> update to version 1.0.0.004
2004-08-21 16:19:40 +00:00
Ralf Becker
46389291a7 also deleting the memberships of a group 2004-08-21 16:15:44 +00:00
Ralf Becker
ccb3e73f21 not used in etemplate (anymore) 2004-08-21 15:35:03 +00:00
Ralf Becker
36b80ed3ad fixed handling of @'s in user-names 2004-08-21 15:21:44 +00:00
Ralf Becker
73155ee9eb added configurable search-filter to auth_ldap 2004-08-21 12:18:07 +00:00
Ralf Becker
2854b5de0b added configurable search-filter to auth_ldap 2004-08-21 12:09:07 +00:00
Ralf Becker
1d5a9f0954 ability to specify plugins for htmlarea 2004-08-21 08:00:58 +00:00
mgalgoci
efdf383dc4 better handling of rogue newlines in ical files imported from other sources.
the legality of the presences of newlines inside an ical record is debatable, but
as we have seen, this can and will happen.

Fixes https://sourceforge.net/tracker/index.php?func=detail&aid=989070&group_id=78745&atid=554338
2004-08-19 18:36:33 +00:00
mgalgoci
338c962e71 account for importing meetings that end up having no participants. 2004-08-19 15:32:49 +00:00
Ralf Becker
ec20618965 fixed bug [ 1008512 ] Matrix view missing data (Name in first column of weekly MV) 2004-08-19 11:07:44 +00:00
Ralf Becker
f6aae94ec2 reverted the stupid tab to 8 space conversation
and fixed bug [ 1011704 ] Division by zero error
2004-08-19 10:27:12 +00:00
mgalgoci
59fa8a653f parse_user_host was never ever defined! Ever! I even checked phpgroupware! They have this
bug too!! It looks to me like switch_mailto give the functionality that parse_user_host
_should_ have provided.
2004-08-18 20:46:03 +00:00
mgalgoci
494a970e81 The issue that this fix addresses is the following:
When using the uiaccountsel widget to select accounts, when you accidently
select something and want to deselect it, when you delete the item, the item
is only unhighlighted, and not removed from the uiaccountsel_popup_selection
select box in the opener document. This patch simply deletes the child node
from the uiaccountsel_popup_selection select box instead of setting the
selected false.

I've tested this with some variant of msie6/xp, mozilla 1.6/win32, firefox 0.9.3/linux
and mozilla 1.4.3/linux.
2004-08-18 19:39:05 +00:00
Ralf Becker
acdd95e31e fixed file-size as suggested by Lian Liming's patch [ 1010170 ] Patch for Bug [ 950555 ] Filemanager - filesize 2004-08-18 08:57:31 +00:00
Ralf Becker
0b6e2a605a fix for palm-download as suggested by Peter Hrastnik's patch [ 1010631 ] patch for broken pdb file-download (headers already sent) 2004-08-18 08:30:26 +00:00
Carsten Wolff
05a91800b2 convert linebreaks to <br>'s in the description (view()) 2004-08-17 23:01:52 +00:00
Ralf Becker
2d4001a6f1 translation update from almarsa-at-users.sf.net 2004-08-17 20:05:12 +00:00
Ralf Becker
7bac819526 - added a check for mbstring.func_overload = 7
- fixed handling memory values with M or K
- corrected display of message "Please fix the above errors and warning"
- fixed some formating
2004-08-17 16:55:42 +00:00
Ralf Becker
49b3f025bd fixed creation of multi-column indexes 2004-08-17 14:06:28 +00:00
Ralf Becker
19548f2f91 fixed sqltoarray:
- showing multicolum-indexes correct
- showing table-names
- working for app's without title
- all-option working for db's other then mysql
2004-08-15 11:48:32 +00:00
Ralf Becker
6b91165c2b added max_icons=12 default pref and manual as app for the default group 2004-08-13 21:05:55 +00:00
Lars Kneschke
11758e6c41 call the right function name 2004-08-13 16:28:21 +00:00
Lars Kneschke
a70d55cc82 use emailaddress from accounts table 2004-08-13 15:47:46 +00:00
Lars Kneschke
db472fe7f3 wrong variable name
need to be checked for HEAD to
2004-08-13 15:22:49 +00:00
reinerj
6632e631fc italien translations from leonardo amadori 2004-08-12 20:34:26 +00:00
reinerj
04d222a2c1 italien translations from leonardo amadori 2004-08-12 19:24:48 +00:00
reinerj
6e18a49ab5 italien translations from leonardo amadori 2004-08-12 19:10:59 +00:00
reinerj
93473045e5 italien translations from leonardo amadori 2004-08-12 18:16:49 +00:00
reinerj
4573697e13 italien translations from leonardo amadori 2004-08-12 18:03:18 +00:00
Lars Kneschke
7b2f7a5c1c committed somehow a wrong file 2004-08-12 06:10:24 +00:00
mgalgoci
98c6d1bc3c quiet a warning when viewing the felaimail with no profile selected. 2004-08-11 23:36:12 +00:00
Lars Kneschke
f4c740db27 return -1 when no email profile is selected 2004-08-11 20:18:55 +00:00
reinerj
5e63776116 extensions and corrections from Kiang 2004-08-10 15:29:39 +00:00
reinerj
fc6384ad15 extensions and corrections from Kiang 2004-08-10 15:16:06 +00:00
reinerj
7f5da90ddd extensions and corrections from Kiang 2004-08-10 14:50:17 +00:00
reinerj
2bb0e32cac extensions and corrections from Kiang 2004-08-10 13:32:19 +00:00
reinerj
ff0fd6323f extensions and corrections from Kiang 2004-08-10 13:01:55 +00:00
alpeb
013a6c33d7 Added translation of 'Logout' 2004-08-09 21:14:45 +00:00
reinerj
c0d66f825c replace the crap 2004-08-09 11:45:30 +00:00
reinerj
796c0fd53e replace the crap 2004-08-09 10:07:33 +00:00
reinerj
8799d36097 update the build scripts 2004-08-09 09:53:30 +00:00
reinerj
1480271b4f replace the crap 2004-08-09 09:33:52 +00:00
reinerj
73624e76a1 replace the crap 2004-08-09 09:30:15 +00:00
Ralf Becker
680a89ffeb fixed offset for getHeaders, first message was not displayed, as a base of 1 is used, not 0 2004-08-09 07:29:39 +00:00
reinerj
f009ebc45e delete the crap 2004-08-08 20:53:47 +00:00
Ralf Becker
34f57b50ac backported the rework from HEAD, to fixe the postgres probs 2004-08-08 16:21:18 +00:00
Ralf Becker
d4477d501d fix for mbstring.func_overload 7: ereg_* where looping infinit, changed to preg_* 2004-08-08 09:19:06 +00:00
Ralf Becker
8a6114d506 updated api-version to 1.0.0.003 for the final 1.0
Yuhuuuu :-)
2004-08-07 18:34:32 +00:00
Ralf Becker
2327d941d2 fix for bug [ 1000255 ] Todo with progress screw formating in calender:
- partialy caused by a <div ... /> with no closing </div>
- a table around the icons and title, puts them in one line now
2004-08-07 18:29:23 +00:00
Ralf Becker
c4d8d7d167 fix for bug [ 998496 ] Session error on logout under https, session-id and loginid are unset, which leads to a pg_atoi: zero length string sql-error. I now dont save anything if there is no sessionid or no loginid 2004-08-07 17:53:21 +00:00
Ralf Becker
db8acbba02 fix for bug [ 997669 ] Session Error with db-sessions 2004-08-07 17:43:11 +00:00
Ralf Becker
f6027d6ed9 fix for bug [ 996391 ] Conflict warning although there is no conflict 2004-08-07 17:20:41 +00:00
Ralf Becker
04f4ccf8ac fix for bug [ 1004481 ] alarm management: you could not create alarms for other participants, even if you had the required write-grants from them 2004-08-07 14:53:56 +00:00
Ralf Becker
e29ca14960 fix for bug [ 1004555 ] Database error adding new calendar item:
- happend only if participants have been disabled via custom-fields
- was caused by the code entering participants from matrixview
2004-08-07 14:19:53 +00:00
Ralf Becker
298623b7cb fix for bug [ 1002325 ] Manual error:
if session.use_trans_sid was enabled, we created a wrong link for the manual
2004-08-07 13:13:59 +00:00
Ralf Becker
7f79ff3d66 removing all it's acl-rights if an account gets deleted, admin only removed the run-rights, but not the grants or other rights 2004-08-07 12:45:39 +00:00
reinerj
9ba1c6b641 update korea lang translation from Futurizer 2004-08-07 01:18:52 +00:00
nobody
48ebff3aa4 This commit was manufactured by cvs2svn to create branch
'Version-1_0_0-branch'.
2004-08-07 01:18:52 +00:00
reinerj
44e039b1b8 update korea lang translation from Futurizer 2004-08-07 01:13:20 +00:00
reinerj
5295362cc3 fix from Shain Tancheff 2004-08-06 15:17:16 +00:00
Ralf Becker
35de9c846b killed warnings if executables not found 2004-08-06 12:37:08 +00:00
Ralf Becker
e752c408c1 fixed wrong path for existence check of theme-file and the default 2004-08-06 12:23:21 +00:00
ak703
5417aae99f fixed bugs for layout in calendar for jerryr and added missing styles 2004-08-06 10:00:54 +00:00
Ralf Becker
46211ed373 merged some bugfixes and a change of a (so far not used) parameter from HEAD 2004-08-05 15:46:56 +00:00
mgalgoci
4a0037eec6 - fix the "Home" text missing in appTitles in edge-it, idots, and jerryt
templates.
- remove  noop if (foo) { continue; }
- remove obsolete commented out code that special cased the home app which
is no longer valid.
2004-08-04 17:14:01 +00:00
Ralf Becker
f54f56bc87 bulgarian translations from Iassen Pramatarov <turin-AT-fsa-bg.org> 2004-08-04 14:55:42 +00:00
Ralf Becker
ada4e51e23 typo 2004-08-04 14:08:54 +00:00
Ralf Becker
851ca75b4b added a missing phrase from idots 2004-08-04 14:02:27 +00:00
reinerj
916b8bd0bc update Korea translation futurizer 2004-08-04 09:57:29 +00:00
reinerj
823dece0d0 update Korea translation futurizer 2004-08-04 09:53:13 +00:00
reinerj
a9b91a4a0e update Korea translation futurizer 2004-08-04 09:40:40 +00:00
reinerj
b93ed1d31c update Korea translation futurizer 2004-08-04 09:33:58 +00:00
mgalgoci
7bfc4ac2cb Fix up a double tab
Application: emailadmin, File: phpgw_sl.lang, Line: "imap admin user\t\temailadmin\tsl\tIMAP upravljalec\n"
2004-08-03 21:21:41 +00:00
Carsten Wolff
a4ac481367 vbXMLRPC needs a slightly different date-format. 2004-08-03 16:02:41 +00:00
Ralf Becker
2f1f3369a6 fixed bug [ 1001387 ] Error Emailing Attachments - missing closedir prefents rmdir on win 2004-08-03 14:18:15 +00:00
reinerj
e9575eb8af fix typo 2004-08-03 14:05:35 +00:00
ak703
8deba7ce92 added corrected schema for use in Mandrake Linux 9.2/10, because many
items are already included in misc.schema (maybe works in other distros as well)
2004-08-03 09:12:12 +00:00
Ralf Becker
591bcbb5c7 added 1.0.1 dependency for the api 2004-08-03 08:04:20 +00:00
Ralf Becker
29f0a87803 fixed email-address 2004-08-02 14:05:26 +00:00
Ralf Becker
bd4b5a2242 always use the charset param for htmlspecialchars (via html::htmlspecialchars) 2004-08-02 07:25:59 +00:00
Ralf Becker
66b47c6c48 killed htmlentities warning 2004-08-01 19:28:54 +00:00
Ralf Becker
2fe830f811 1) fixed missing translation in validation messages
2) validation only loops now, if a button (not cancle) is pressed, selectboxes with onchange dont get stoped by validation errors ==> fix for bug [ 1001568 ] status is not updated
2004-08-01 19:27:28 +00:00
Ralf Becker
943e428e88 dont allow filemanger to go outside /home 2004-08-01 18:30:46 +00:00
Ralf Becker
5ba2db92de using new email address from the account 2004-08-01 17:09:39 +00:00
alpeb
5fe5cadf8a Fix incorrect number of infolog entries shown in home 2004-08-01 16:40:51 +00:00
reinerj
ee1fc5b88b change worng phrases 2004-08-01 08:06:08 +00:00
Ralf Becker
bb29a8e4d0 removed ereg_replace which causes problems with multibyte charsets and mbstring.function_overload=7 2004-08-01 08:02:53 +00:00
Ralf Becker
12fcf092c7 replaced unnecessary ereg_replace, which caused trouble with mbstring.function_overload=7 2004-08-01 07:58:26 +00:00
reinerj
fa28020e1a update the spec files and the build script 2004-07-31 19:53:12 +00:00
Ralf Becker
2ebf83a47c fixed asyncservices to run under the windows sheduler 2004-07-31 19:34:11 +00:00
reinerj
e37c10d2ac fix some wrong tabs in file which produce error messages 2004-07-31 18:02:33 +00:00
reinerj
7694cc66ed fix some wrong tabs in file which produce error messages 2004-07-31 17:59:52 +00:00
reinerj
a31aa3610a fix some wrong tabs in file which produce error messages 2004-07-31 17:59:03 +00:00
reinerj
596a6034f4 fix some wrong tabs in file which produce error messages 2004-07-31 17:52:29 +00:00
reinerj
6e2cc4746c fix some wrong tabs in file which produce error messages 2004-07-31 17:49:22 +00:00
reinerj
ea5805e21f fix some wrong tabs in file which produce error messages 2004-07-31 17:42:22 +00:00
reinerj
29e0094b1c fix some wrong tabs in file which produce error messages 2004-07-31 17:40:24 +00:00
reinerj
8d0d63712a fix some wrong tabs in file which produce error messages 2004-07-31 17:38:29 +00:00
reinerj
da3ec75063 fix some wrong tabs in file which produce error messages 2004-07-31 17:28:17 +00:00
reinerj
235edf9192 fix some wrong tabs in file which produce error messages 2004-07-31 17:26:42 +00:00
reinerj
8846c5168e fix some wrong tabs in file which produce error messages 2004-07-31 17:22:50 +00:00
reinerj
ba39bb3d72 fix some wrong tabs in file which produce error messages 2004-07-31 17:13:50 +00:00
reinerj
ae1945c3f3 fix some wrong tabs in file which produce error messages 2004-07-31 17:12:46 +00:00
reinerj
107f61a085 fix some wrong tabs in file which produce error messages 2004-07-31 17:11:45 +00:00
reinerj
c72c92f17a fix some wrong tabs in file which produce error messages 2004-07-31 17:10:10 +00:00
reinerj
1e776f9e3c fix some wrong tabs in file which produce error messages 2004-07-31 17:05:30 +00:00
reinerj
a326012446 fix some wrong tabs in file which produce error messages 2004-07-31 17:03:23 +00:00
reinerj
7ad935bf83 fix some wrong tabs in file which produce error messages 2004-07-31 16:58:35 +00:00
reinerj
12d184d19d fix some wrong tabs in file which produce error messages 2004-07-31 16:56:30 +00:00
Ralf Becker
266865b979 changed Benjamins rejected lines messages to only show up, if extra debug messages have been explicitly checked 2004-07-31 16:15:56 +00:00
reinerj
6c64273a7c fix some wrong tabs in file which produce error messages 2004-07-31 16:00:22 +00:00
Lars Kneschke
c60f976801 added @ before htmlspecialchars and co to hide error messages 2004-07-31 15:48:53 +00:00
Ralf Becker
55418a8dfc small change, as mozilla couldnt find / didnt show the stlyes defined in the API css file 2004-07-31 15:47:00 +00:00
reinerj
8aee3c9e8e fix some wrong tabs in file which produce error messages 2004-07-31 15:41:54 +00:00
reinerj
43ed22905d fix some wrong tabs in file which produce error messages 2004-07-31 15:39:04 +00:00
reinerj
746033d923 fix some wrong tabs in file which produce error messages 2004-07-31 15:33:42 +00:00
Ralf Becker
4036373dd2 fix for bug [ 999913 ] Events title/description misplaced in event export 2004-07-31 14:53:05 +00:00
reinerj
7571c9e6f7 fix some wrong tabs in file which produce error messages 2004-07-31 14:51:52 +00:00
reinerj
58a3b205c1 fix some wrong tabs in file which produce error messages 2004-07-31 14:27:04 +00:00
Ralf Becker
ff28193d36 new version number for the next RC - hopefully the last one ;-) 2004-07-31 14:13:12 +00:00
reinerj
6e6a092731 fix some wrong tabs in file which produce error messages 2004-07-31 14:08:26 +00:00
Ralf Becker
0d70830fc3 imported version 4.51 of ADOdb 2004-07-31 13:09:39 +00:00
Ralf Becker
3e3075e913 fixed disapearing holidays caused by the observance rule, see bug [ 996820 ] Calendar Control - Missing Holidays 2004-07-31 12:40:00 +00:00
Ralf Becker
62f11b8d78 fix for cookie domain, when using a proxy which rewrites the host-name 2004-07-31 10:10:32 +00:00
Ralf Becker
deb05b2ec1 removed manual acl-settings for auto-created accounts, as suggested by Matthew Galgoci 2004-07-31 09:26:18 +00:00
alpeb
39ebfaf753 Changed param comment of function input: funtion should expect time in server's timezone instead of users localtime; the conversion to user's localtime is taken care inside the function when calling common->show_date 2004-07-30 00:27:47 +00:00
ak703
30e2671368 fixed problem with layout in the rest of the setup, removed all styles
which are already defined elsewhere and just left the "new" styles from
bgigon.
2004-07-28 20:41:44 +00:00
bgigon
d3a97b6813 Reverse 2004-07-27 15:52:53 +00:00
bgigon
5c9203338b Fix Translation bug 2004-07-27 09:54:21 +00:00
bgigon
9d9f46f532 Fix display bug.
If this line replace all \n by <br />, Toolbox in calendar are too big (x2)
(and other is blank; for the display is very very bad)
2004-07-27 09:01:23 +00:00
Ralf Becker
46a292c882 fixed get_list, which was only returning groups if 'both' were requested, which caused eg. in calender only groups to be selectable 2004-07-25 15:25:18 +00:00
Ralf Becker
459a8bd101 fixed / added mssql support for egw and fixed some other Windows probs on the way ;-)
- knowledgebase is not working: select distinct is not possible with text-columns
- fudforum is not working: is does not use ADOdb and has no own db-layer for mssql
- other apps seem to work, everthing needs through testing - incl. our "old" db's
2004-07-25 01:34:59 +00:00
Ralf Becker
3acc7f3bbe fixed bug [ 996591 ] Error when creating an entry in the calendar
this happended only when email was not installed
2004-07-24 20:52:49 +00:00
Ralf Becker
79c56b1d8f fixed bug [ 991222 ] Error uploading file -
thought the whole class need to be reworked with the new db-functions
2004-07-24 20:30:33 +00:00
bgigon
ba0df8cea6 same message 2004-07-23 15:53:12 +00:00
bgigon
877f636407 last message repeated 495 times ;-) 2004-07-23 15:49:05 +00:00
bgigon
8bdd81c815 Fix display bug (again ;) 2004-07-23 15:43:06 +00:00
bgigon
6ef7ecde95 Fix display bug 2004-07-23 15:20:44 +00:00
bgigon
22a33be78f Re-commit ... :\ 2004-07-23 15:11:18 +00:00
bgigon
cb98cdcd32 Fix display bug 2004-07-23 14:26:17 +00:00
bgigon
95645b05c2 Add CSS's setup 2004-07-23 14:21:57 +00:00
bgigon
76e8bb85a3 Modification for the display (css) 2004-07-23 14:00:48 +00:00
bgigon
9103e8b7c7 New css tag for check_install.php 2004-07-23 14:00:04 +00:00
bgigon
e183a676f1 Fixbug 2004-07-23 08:06:44 +00:00
Ralf Becker
7e8430a769 update brasilian translations 2004-07-23 00:56:18 +00:00
Ralf Becker
3ed6b04443 added missing "enable extra debug-message" for updates 2004-07-23 00:51:52 +00:00
Ralf Becker
c5c9030104 fixed the code, which was not working after the right table-name was used ;-)
dont think that part is used anyhow
2004-07-22 18:38:42 +00:00
bgigon
21f7e4a304 Add more translation 2004-07-22 15:52:28 +00:00
bgigon
9e8f7ef3f6 Add translation 2004-07-22 15:01:01 +00:00
bgigon
d773cb2c59 Add translation 2004-07-22 14:46:43 +00:00
Ralf Becker
f8000f31c7 fix for bug [ 995944 ] Pass by reference in class.uicurrentsessions.inc.php 2004-07-22 14:37:58 +00:00
bgigon
b7e6425723 Add cosmetic display, and fixbug 2004-07-22 13:57:30 +00:00
bgigon
9296ca1e22 Add cosmetic display ;-) 2004-07-22 13:57:05 +00:00
alpeb
4341d217e0 added weekday abreviations translations 2004-07-22 12:17:11 +00:00
bgigon
0a57a7e794 Add "rejected lines" feature 2004-07-22 10:41:50 +00:00
bgigon
0b9e411491 Fixbug 2004-07-22 10:32:29 +00:00
Carsten Wolff
8fb8a24e09 now that the old db-classes are gone, we can put function name_quote to use. 2004-07-22 08:23:25 +00:00
Ralf Becker
75fc69c4e1 Czech translation of Calendar from Oldrich Dlouhy 2004-07-22 08:12:32 +00:00
alpeb
7ebc061ac0 fixed typo that wasn't allowing phpmailer to authenticate to smtp server when needed 2004-07-21 21:16:21 +00:00
Ralf Becker
cff2ee4a4b update brasilian translations 2004-07-21 21:15:13 +00:00
Ralf Becker
6944ebc376 patch from Erwan LE DISEZ 2004-07-21 17:00:44 +00:00
Ralf Becker
2a92f3841d patch from Erwan LE DISEZ 2004-07-21 16:42:34 +00:00
Ralf Becker
76d077b4fa patch from Erwan LE DISEZ 2004-07-21 16:39:09 +00:00
Ralf Becker
b0466e19b8 patch from Michael Robellard to fix "call time by reference" warning 2004-07-21 14:01:33 +00:00
Ralf Becker
9338b3a2af fixed wrong name of config-table 2004-07-21 13:55:05 +00:00
Ralf Becker
d9ae36c782 added checkbox for extra debug-messages for the first installtion and API updates 2004-07-21 13:28:31 +00:00
Ralf Becker
e6a2d51b8c fixing bug [ 992090 ] Could not log out
At that time, there is no account-id set which results in an empty string, what pgSql dont likes in integer fields. Casting it to int now.
2004-07-21 10:12:17 +00:00
bgigon
a428628f55 Fix little bug in display 2004-07-20 16:15:14 +00:00
bgigon
ab47aeb16d Add features "rejected lines"
This features warn admin if translation's lines isn't good
2004-07-20 16:12:18 +00:00
bgigon
e1cdcc5f96 Add translation 2004-07-20 16:09:34 +00:00
Ralf Becker
08e2fe58a5 removed str.replace with anonymous function, as suggested by benjamin 2004-07-20 13:43:07 +00:00
Ralf Becker
fa0886f6aa showing participant names for privat entries 2004-07-20 13:34:03 +00:00
bgigon
0932b203db Resolv the big problem with IE 5.2 under Mac and Safari.
Reduce pixel and calendar is correctly displayed in left box
2004-07-20 13:01:23 +00:00
bgigon
de5835af65 FixBug in link() function. 2004-07-20 09:42:08 +00:00
Ralf Becker
13fbccf507 changed quoting for wz_tooltips to allow linebreaks 2004-07-19 15:18:02 +00:00
Ralf Becker
16fad86115 one tooltip for all calendar view (including title, time, description, location and participants) 2004-07-19 15:17:02 +00:00
ak703
3539b02f59 removed brackets for location (ugly, if no location provided) 2004-07-16 15:09:05 +00:00
ak703
80727c374f downgraded js-tooltip for the moment. Other displayed info cause error sometimes and
will be implemented in future versions. This version should work correctly now as planned :-)
2004-07-16 12:10:46 +00:00
ak703
c4edaac71f fixed problem with last update. Due to an error,latest changes from Ralf and Matthew have been killed - sorry ;-)
merged the last changes with my one's here.
2004-07-16 09:12:10 +00:00
ak703
a9c95849aa oops, forgot s.th. for the tooltips 2004-07-15 13:45:08 +00:00
ak703
c89b8d56eb events show nice tooltips now - at least where browser supported ;-) 2004-07-15 12:50:20 +00:00
ak703
0e82b09dfa enable tooltips systemwide (wz_tooltip from Walter Zorn)
sample can be found in calendar-templates (link_pict.tpl) and use instructions
follow in "phpgwapi/js/wz_tooltip/README" later ;-)
2004-07-15 12:48:38 +00:00
Lars Kneschke
78f0b98bec Holidays in Taiwan
provided by Finjon Kiang
2004-07-15 07:15:56 +00:00
Ralf Becker
d765f99acd fixed problem with not created account_email column, thanks to a direction from Manfred Usselmann 2004-07-15 06:42:52 +00:00
reinerj
34b4339a17 updated lang file from Oldrich Dlouhy 2004-07-13 14:24:16 +00:00
reinerj
0c794cf34f updated lang file from Emil Varjasi 2004-07-13 13:18:43 +00:00
reinerj
0f090f70eb updated lang file from Emil Varjasi 2004-07-13 13:12:01 +00:00
reinerj
e580995eb9 updated lang file from Emil Varjasi 2004-07-13 12:20:15 +00:00
nobody
6575660a89 This commit was manufactured by cvs2svn to create branch
'Version-1_0_0-branch'.
2004-07-13 12:20:15 +00:00
3022 changed files with 29023 additions and 222821 deletions

View File

@ -1,9 +0,0 @@
#
# Set
#
# AllowOverride FileInfo
#
# to enable parsing off this file
# This is needed for UTF-8 support.
#
# AddDefaultCharset Off

143
about.php
View File

@ -1,143 +0,0 @@
<?php
/**************************************************************************\
* eGroupWare *
* http://www.egroupware.org *
* -------------------------------------------- *
* This program is free software; you can redistribute it and/or modify it *
* under the terms of the GNU General Public License as published by the *
* Free Software Foundation; either version 2 of the License, or (at your *
* option) any later version. *
\**************************************************************************/
/* $Id$ */
$GLOBALS['phpgw_info'] = array();
$GLOBALS['phpgw_info']['flags']['currentapp'] = 'about';
$GLOBALS['phpgw_info']['flags']['disable_Template_class'] = True;
$GLOBALS['phpgw_info']['flags']['noheader'] = True;
include('header.inc.php');
$app = $_GET['app'];
if ($app)
{
if (!($included = $GLOBALS['phpgw']->hooks->single('about',$app)))
{
function about_app()
{
global $app;
$icon = $GLOBALS['phpgw']->common->image($app,array('navbar','nonav'));
include (PHPGW_INCLUDE_ROOT . "/$app/setup/setup.inc.php");
$info = $setup_info[$app];
$info['title'] = $GLOBALS['phpgw_info']['apps'][$app]['title'];
$other_infos = array(
'author' => lang('Author'),
'maintainer' => lang('Maintainer'),
'version' => lang('Version'),
'license' => lang('License')
);
$applink=$GLOBALS['phpgw']->link('/'.$app);
$s = "<table width='70%' cellpadding='4'>\n<tr>
<td align='left'><a href=\"$applink\" title=\"".lang('Go back to the application %1',$info['title'])."\"><img src=\"$icon\" alt=\"$info[title]\" border=\"0\" /></a></td><td align=\"left\"><h2>$info[title]</h2></td></tr>";
if ($info['description'])
{
$info['description'] = lang($info['description']);
$s .= "<tr><td colspan='2' align='left'>$info[description]</td></tr>\n";
if ($info['note'])
{
$info['note'] = lang($info['note']);
$s .= "<tr><td colspan='2' align='left'><i>$info[note]</i></td></tr>\n";
}
}
foreach ($other_infos as $key => $val)
{
if (isset($info[$key]))
{
$s .= "<tr><td width='1%' align='left'>$val</td><td>";
$infos = $info[$key];
for ($n = 0; is_array($info[$key][$n]) && ($infos = $info[$key][$n]) || !$n; ++$n)
{
if (!is_array($infos) && isset($info[$key.'_email']))
{
$infos = array('email' => $info[$key.'_email'],'name' => $infos);
}
if (is_array($infos))
{
$names = explode('<br>',$infos['name']);
$emails = split('@|<br>',$infos['email']);
if (count($names) < count($emails)/2)
{
$names = '';
}
$infos = '';
while (list($user,$domain) = $emails)
{
if ($infos) $infos .= '<br>';
$name = $names ? array_shift($names) : $user;
$infos .= "<a href='mailto:$user at $domain'><span onClick=\"document.location='mailto:$user'+'@'+'$domain'; return false;\">$name</span></a>";
array_shift($emails); array_shift($emails);
}
}
$s .= ($n ? '<br>' : '') . $infos;
}
$s .= "</td></tr>\n";
}
}
if ($info['extra_untranslated'])
{
$s .= "<tr><td colspan='2' align='left'>$info[extra_untranslated]</td></tr>\n";
}
$s .= "</table>\n";
return $s;
}
$api_only = !($included = file_exists(PHPGW_INCLUDE_ROOT . "/$app/setup/setup.inc.php"));
}
}
else
{
$api_only = True;
}
$tpl = CreateObject('phpgwapi.Template',$GLOBALS['phpgw']->common->get_tpl_dir('phpgwapi'));
$tpl->set_file(array(
'phpgw_about' => 'about.tpl',
'phpgw_about_unknown' => 'about_unknown.tpl'
));
$tpl->set_var('phpgw_logo',$GLOBALS['phpgw']->common->image('phpgwapi','logo.gif'));
$tpl->set_var('phpgw_version',lang('eGroupWare API version %1',$GLOBALS['phpgw_info']['server']['versions']['phpgwapi']));
$tpl->set_var('phpgw_message',lang('%1eGroupWare%2 is a multi-user, web-based groupware suite written in %3PHP%4.',
'<a href="http://www.eGroupWare.org" target="_blank">','</a>','<a href="http://www.php.net" target="_blank">','</a>'));
if ($included)
{
$tpl->set_var('phpgw_app_about',about_app('',''));
//about_app($tpl,"phpgw_app_about");
}
else
{
if ($api_only)
{
$tpl->set_var('phpgw_app_about','');
}
else
{
$tpl->set_var('app_header',$app);
$tpl->parse('phpgw_app_about','phpgw_about_unknown');
}
}
$title = isset($GLOBALS['phpgw_info']['apps'][$app]) ? $GLOBALS['phpgw_info']['apps'][$app]['title'] : 'eGroupWare';
$GLOBALS['phpgw_info']['flags']['app_header'] = lang('About %1',$title);
$GLOBALS['phpgw']->common->phpgw_header();
$tpl->pparse('out','phpgw_about');
$GLOBALS['phpgw']->common->phpgw_footer();
?>

View File

@ -12,7 +12,7 @@
/* $Id$ */ /* $Id$ */
$GLOBALS['egw_info']['flags'] = array( $GLOBALS['phpgw_info']['flags'] = array(
'currentapp' => 'addressbook', 'currentapp' => 'addressbook',
'noheader' => True, 'noheader' => True,
'enable_contacts_class' => True, 'enable_contacts_class' => True,
@ -21,38 +21,38 @@
if (isset($_FILES['csvfile']['tmp_name'])) if (isset($_FILES['csvfile']['tmp_name']))
{ {
$csvfile = tempnam($GLOBALS['egw_info']['server']['temp_dir'],$GLOBALS['egw_info']['flags']['currentapp']."_"); $csvfile = tempnam($GLOBALS['phpgw_info']['server']['temp_dir'],$GLOBALS['phpgw_info']['flags']['currentapp']."_");
$GLOBALS['egw']->session->appsession('csvfile','',$csvfile); $GLOBALS['phpgw']->session->appsession('csvfile','',$csvfile);
$_POST['action'] = move_uploaded_file($_FILES['csvfile']['tmp_name'],$csvfile) ? $_POST['action'] = move_uploaded_file($_FILES['csvfile']['tmp_name'],$csvfile) ?
'download' : ''; 'download' : '';
} }
else else
{ {
$csvfile = $GLOBALS['egw']->session->appsession('csvfile'); $csvfile = $GLOBALS['phpgw']->session->appsession('csvfile');
} }
if ($_POST['cancel']) if ($_POST['cancel'])
{ {
@unlink($csvfile); @unlink($csvfile);
$GLOBALS['egw']->redirect_link('/addressbook/index.php'); $GLOBALS['phpgw']->redirect_link('/addressbook/index.php');
} }
$GLOBALS['egw_info']['flags']['app_header'] = lang('Import CSV-File into Addressbook'); $GLOBALS['phpgw_info']['flags']['app_header'] = lang('Import CSV-File into Addressbook');
$GLOBALS['egw']->common->phpgw_header(); $GLOBALS['phpgw']->common->phpgw_header();
$GLOBALS['egw']->contacts = createobject('phpgwapi.contacts'); $GLOBALS['phpgw']->contacts = createobject('phpgwapi.contacts');
//$GLOBALS['egw']->template->set_unknowns('keep'); //$GLOBALS['phpgw']->template->set_unknowns('keep');
$GLOBALS['egw']->template->set_file(array('import' => 'csv_import.tpl')); $GLOBALS['phpgw']->template->set_file(array('import' => 'csv_import.tpl'));
$GLOBALS['egw']->template->set_block('import','filename','filenamehandle'); $GLOBALS['phpgw']->template->set_block('import','filename','filenamehandle');
$GLOBALS['egw']->template->set_block('import','fheader','fheaderhandle'); $GLOBALS['phpgw']->template->set_block('import','fheader','fheaderhandle');
$GLOBALS['egw']->template->set_block('import','fields','fieldshandle'); $GLOBALS['phpgw']->template->set_block('import','fields','fieldshandle');
$GLOBALS['egw']->template->set_block('import','ffooter','ffooterhandle'); $GLOBALS['phpgw']->template->set_block('import','ffooter','ffooterhandle');
$GLOBALS['egw']->template->set_block('import','imported','importedhandle'); $GLOBALS['phpgw']->template->set_block('import','imported','importedhandle');
if(($_POST['action'] == 'download' || $_POST['action'] == 'continue') && (!$_POST['fieldsep'] || !$csvfile || !($fp=fopen($csvfile,'rb')))) if(($_POST['action'] == 'download' || $_POST['action'] == 'continue') && (!$_POST['fieldsep'] || !$csvfile || !($fp=fopen($csvfile,'rb'))))
{ {
$_POST['action'] = ''; $_POST['action'] = '';
} }
$GLOBALS['egw']->template->set_var('action_url',$GLOBALS['egw']->link('/addressbook/csv_import.php')); $GLOBALS['phpgw']->template->set_var('action_url',$GLOBALS['phpgw']->link('/addressbook/csv_import.php'));
$PSep = '||'; // Pattern-Separator, separats the pattern-replacement-pairs in trans $PSep = '||'; // Pattern-Separator, separats the pattern-replacement-pairs in trans
$ASep = '|>'; // Assignment-Separator, separats pattern and replacesment $ASep = '|>'; // Assignment-Separator, separats pattern and replacesment
@ -63,14 +63,14 @@
// find in Addressbook, at least n_family AND (n_given OR org_name) have to match // find in Addressbook, at least n_family AND (n_given OR org_name) have to match
function addr_id($n_family,$n_given,$org_name) function addr_id($n_family,$n_given,$org_name)
{ {
$addrs = $GLOBALS['egw']->contacts->read(0,0,array('id'),'',"n_family=$n_family,n_given=$n_given,org_name=$org_name"); $addrs = $GLOBALS['phpgw']->contacts->read(0,0,array('id'),'',"n_family=$n_family,n_given=$n_given,org_name=$org_name");
if(!count($addrs)) if(!count($addrs))
{ {
$addrs = $GLOBALS['egw']->contacts->read(0,0,array('id'),'',"n_family=$n_family,n_given=$n_given"); $addrs = $GLOBALS['phpgw']->contacts->read(0,0,array('id'),'',"n_family=$n_family,n_given=$n_given");
} }
if(!count($addrs)) if(!count($addrs))
{ {
$addrs = $GLOBALS['egw']->contacts->read(0,0,array('id'),'',"n_family=$n_family,org_name=$org_name"); $addrs = $GLOBALS['phpgw']->contacts->read(0,0,array('id'),'',"n_family=$n_family,org_name=$org_name");
} }
if(count($addrs)) if(count($addrs))
@ -99,22 +99,22 @@
} }
else else
{ {
if(!is_object($GLOBALS['egw']->categories)) if(!is_object($GLOBALS['phpgw']->categories))
{ {
$GLOBALS['egw']->categories = createobject('phpgwapi.categories'); $GLOBALS['phpgw']->categories = createobject('phpgwapi.categories');
} }
if (is_numeric($cat) && $GLOBALS['egw']->categories->id2name($cat) != '--') if (is_numeric($cat) && $GLOBALS['phpgw']->categories->id2name($cat) != '--')
{ {
$cat2id[$cat] = $ids[$cat] = $cat; $cat2id[$cat] = $ids[$cat] = $cat;
} }
elseif ($id = $GLOBALS['egw']->categories->name2id(addslashes($cat))) elseif ($id = $GLOBALS['phpgw']->categories->name2id(addslashes($cat)))
{ // cat exists { // cat exists
$cat2id[$cat] = $ids[$cat] = $id; $cat2id[$cat] = $ids[$cat] = $id;
} }
else else
{ // create new cat { // create new cat
$GLOBALS['egw']->categories->add(array('name' => $cat,'descr' => $cat)); $GLOBALS['phpgw']->categories->add(array('name' => $cat,'descr' => $cat));
$cat2id[$cat] = $ids[$cat] = $GLOBALS['egw']->categories->name2id(addslashes($cat)); $cat2id[$cat] = $ids[$cat] = $GLOBALS['phpgw']->categories->name2id(addslashes($cat));
} }
} }
} }
@ -124,11 +124,11 @@
{ {
$id_str = ",$id_str,"; $id_str = ",$id_str,";
} }
return $id_str; return $id_str;
} }
if (!is_object($GLOBALS['egw']->html)) if (!is_object($GLOBALS['phpgw']->html))
{ {
$GLOBALS['egw']->html = CreateObject('phpgwapi.html'); $GLOBALS['phpgw']->html = CreateObject('phpgwapi.html');
} }
if ($_POST['next']) $_POST['action'] = 'next'; if ($_POST['next']) $_POST['action'] = 'next';
@ -136,44 +136,44 @@
switch($_POST['action']) switch($_POST['action'])
{ {
case '': // Start, ask Filename case '': // Start, ask Filename
$GLOBALS['egw']->template->set_var('lang_csvfile',lang('CSV-Filename')); $GLOBALS['phpgw']->template->set_var('lang_csvfile',lang('CSV-Filename'));
$GLOBALS['egw']->template->set_var('lang_fieldsep',lang('Fieldseparator')); $GLOBALS['phpgw']->template->set_var('lang_fieldsep',lang('Fieldseparator'));
$GLOBALS['egw']->template->set_var('lang_charset',lang('Charset of file')); $GLOBALS['phpgw']->template->set_var('lang_charset',lang('Charset of file'));
$GLOBALS['egw']->template->set_var('select_charset', $GLOBALS['phpgw']->template->set_var('select_charset',
$GLOBALS['egw']->html->select('charset','', $GLOBALS['phpgw']->html->select('charset','',
$GLOBALS['egw']->translation->get_installed_charsets()+ $GLOBALS['phpgw']->translation->get_installed_charsets()+
array('utf-8' => 'utf-8 (Unicode)'),True)); array('utf-8' => 'utf-8 (Unicode)'),True));
$GLOBALS['egw']->template->set_var('fieldsep',$_POST['fieldsep'] ? $_POST['fieldsep'] : ','); $GLOBALS['phpgw']->template->set_var('fieldsep',$_POST['fieldsep'] ? $_POST['fieldsep'] : ',');
$GLOBALS['egw']->template->set_var('submit',lang('Import')); $GLOBALS['phpgw']->template->set_var('submit',lang('Import'));
$GLOBALS['egw']->template->set_var('csvfile',$csvfile); $GLOBALS['phpgw']->template->set_var('csvfile',$csvfile);
$GLOBALS['egw']->template->set_var('enctype','ENCTYPE="multipart/form-data"'); $GLOBALS['phpgw']->template->set_var('enctype','ENCTYPE="multipart/form-data"');
$GLOBALS['egw']->template->parse('filenamehandle','filename'); $GLOBALS['phpgw']->template->parse('filenamehandle','filename');
break; break;
case 'continue': case 'continue':
case 'download': case 'download':
$defaults = $GLOBALS['egw_info']['user']['preferences']['addressbook']['cvs_import']; $defaults = $GLOBALS['phpgw_info']['user']['preferences']['addressbook']['cvs_import'];
if(!is_array($defaults)) if(!is_array($defaults))
{ {
$defaults = array(); $defaults = array();
} }
$GLOBALS['egw']->template->set_var('lang_csv_fieldname',lang('CSV-Fieldname')); $GLOBALS['phpgw']->template->set_var('lang_csv_fieldname',lang('CSV-Fieldname'));
$GLOBALS['egw']->template->set_var('lang_addr_fieldname',lang('Addressbook-Fieldname')); $GLOBALS['phpgw']->template->set_var('lang_addr_fieldname',lang('Addressbook-Fieldname'));
$GLOBALS['egw']->template->set_var('lang_translation',lang("Translation").' <a href="#help">'.lang('help').'</a>'); $GLOBALS['phpgw']->template->set_var('lang_translation',lang("Translation").' <a href="#help">'.lang('help').'</a>');
$GLOBALS['egw']->template->set_var('submit', $GLOBALS['phpgw']->template->set_var('submit',
$GLOBALS['egw']->html->submit_button('convert','Import') . '&nbsp;'. $GLOBALS['phpgw']->html->submit_button('convert','Import') . '&nbsp;'.
$GLOBALS['egw']->html->submit_button('cancel','Cancel')); $GLOBALS['phpgw']->html->submit_button('cancel','Cancel'));
$GLOBALS['egw']->template->set_var('lang_debug',lang('Test Import (show importable records <u>only</u> in browser)')); $GLOBALS['phpgw']->template->set_var('lang_debug',lang('Test Import (show importable records <u>only</u> in browser)'));
$GLOBALS['egw']->template->parse('fheaderhandle','fheader'); $GLOBALS['phpgw']->template->parse('fheaderhandle','fheader');
$addr_names = $GLOBALS['egw']->contacts->stock_contact_fields + array( $addr_names = $GLOBALS['phpgw']->contacts->stock_contact_fields + array(
'cat_id' => 'Categories: id\'s or names, comma separated list', 'cat_id' => 'Categories: id\'s or names, comma separated list',
'access' => 'Access: public, private', 'access' => 'Access: public, private',
'owner' => 'Owner: user-id/-name, defaults to user', 'owner' => 'Owner: user-id/-name, defaults to user',
'address2' => 'address line 2', 'address2' => 'address line 2',
'address3' => 'address line 3', 'address3' => 'address line 3',
'ophone' => 'Other Phone' 'ophone' => 'Other Phone'
); );
$config = CreateObject('phpgwapi.config','addressbook'); $config = CreateObject('phpgwapi.config','addressbook');
$config->read_repository(); $config->read_repository();
@ -193,41 +193,41 @@
$addr_name_options = "<option value=\"\">none\n"; $addr_name_options = "<option value=\"\">none\n";
foreach($addr_names as $field => $name) foreach($addr_names as $field => $name)
{ {
$addr_name_options .= "<option value=\"$field\">".$GLOBALS['egw']->strip_html($name)."\n"; $addr_name_options .= "<option value=\"$field\">".$GLOBALS['phpgw']->strip_html($name)."\n";
} }
$csv_fields = fgetcsv($fp,8000,$_POST['fieldsep']); $csv_fields = fgetcsv($fp,8000,$_POST['fieldsep']);
$csv_fields = $GLOBALS['egw']->translation->convert($csv_fields,$_POST['charset']); $csv_fields = $GLOBALS['phpgw']->translation->convert($csv_fields,$_POST['charset']);
$csv_fields[] = 'no CSV 1'; // eg. for static assignments $csv_fields[] = 'no CSV 1'; // eg. for static assignments
$csv_fields[] = 'no CSV 2'; $csv_fields[] = 'no CSV 2';
$csv_fields[] = 'no CSV 3'; $csv_fields[] = 'no CSV 3';
foreach($csv_fields as $csv_idx => $csv_field) foreach($csv_fields as $csv_idx => $csv_field)
{ {
$GLOBALS['egw']->template->set_var('csv_field',$csv_field); $GLOBALS['phpgw']->template->set_var('csv_field',$csv_field);
$GLOBALS['egw']->template->set_var('csv_idx',$csv_idx); $GLOBALS['phpgw']->template->set_var('csv_idx',$csv_idx);
if($def = $defaults[$csv_field]) if($def = $defaults[$csv_field])
{ {
list($addr,$_POST['trans']) = explode($PSep,$def,2); list($addr,$_POST['trans']) = explode($PSep,$def,2);
$GLOBALS['egw']->template->set_var('trans',$_POST['trans']); $GLOBALS['phpgw']->template->set_var('trans',$_POST['trans']);
$GLOBALS['egw']->template->set_var('addr_fields',str_replace('="'.$addr.'">','="'.$addr.'" selected>',$addr_name_options)); $GLOBALS['phpgw']->template->set_var('addr_fields',str_replace('="'.$addr.'">','="'.$addr.'" selected>',$addr_name_options));
} }
else else
{ {
$GLOBALS['egw']->template->set_var('trans',''); $GLOBALS['phpgw']->template->set_var('trans','');
$GLOBALS['egw']->template->set_var('addr_fields',$addr_name_options); $GLOBALS['phpgw']->template->set_var('addr_fields',$addr_name_options);
} }
$GLOBALS['egw']->template->parse('fieldshandle','fields',True); $GLOBALS['phpgw']->template->parse('fieldshandle','fields',True);
} }
$GLOBALS['egw']->template->set_var('lang_start',lang('Startrecord')); $GLOBALS['phpgw']->template->set_var('lang_start',lang('Startrecord'));
$GLOBALS['egw']->template->set_var('start',get_var('start',array('POST'),1)); $GLOBALS['phpgw']->template->set_var('start',get_var('start',array('POST'),1));
$msg = ($safe_mode = ini_get('safe_mode') == 'On') ? lang('to many might exceed your execution-time-limit'): $msg = ($safe_mode = ini_get('safe_mode') == 'On') ? lang('to many might exceed your execution-time-limit'):
lang('empty for all'); lang('empty for all');
$GLOBALS['egw']->template->set_var('lang_max',lang('Number of records to read (%1)',$msg)); $GLOBALS['phpgw']->template->set_var('lang_max',lang('Number of records to read (%1)',$msg));
$GLOBALS['egw']->template->set_var('max',get_var('max',array('POST'),$safe_mode ? 200 : '')); $GLOBALS['phpgw']->template->set_var('max',get_var('max',array('POST'),$safe_mode ? 200 : ''));
$GLOBALS['egw']->template->set_var('debug',get_var('debug',array('POST'),True)?' checked':''); $GLOBALS['phpgw']->template->set_var('debug',get_var('debug',array('POST'),True)?' checked':'');
$GLOBALS['egw']->template->parse('ffooterhandle','ffooter'); $GLOBALS['phpgw']->template->parse('ffooterhandle','ffooter');
fclose($fp); fclose($fp);
$hiddenvars = $GLOBALS['egw']->html->input_hidden(array( $hiddenvars = $GLOBALS['phpgw']->html->input_hidden(array(
'action' => 'import', 'action' => 'import',
'fieldsep'=> $_POST['fieldsep'], 'fieldsep'=> $_POST['fieldsep'],
'charset' => $_POST['charset'] 'charset' => $_POST['charset']
@ -262,7 +262,7 @@
"will be automaticaly added.<p>". "will be automaticaly added.<p>".
"I hope that helped to understand the features, if not <a href='mailto:RalfBecker@outdoor-training.de'>ask</a>."; "I hope that helped to understand the features, if not <a href='mailto:RalfBecker@outdoor-training.de'>ask</a>.";
$GLOBALS['egw']->template->set_var('help_on_trans',lang($help_on_trans)); // I don't think anyone will translate this $GLOBALS['phpgw']->template->set_var('help_on_trans',lang($help_on_trans)); // I don't think anyone will translate this
break; break;
case 'next': case 'next':
@ -270,7 +270,7 @@
$_POST['trans'] = unserialize(stripslashes($_POST['trans'])); $_POST['trans'] = unserialize(stripslashes($_POST['trans']));
// fall-through // fall-through
case 'import': case 'import':
$hiddenvars = $GLOBALS['egw']->html->input_hidden(array( $hiddenvars = $GLOBALS['phpgw']->html->input_hidden(array(
'action' => 'continue', 'action' => 'continue',
'fieldsep'=> $_POST['fieldsep'], 'fieldsep'=> $_POST['fieldsep'],
'charset' => $_POST['charset'], 'charset' => $_POST['charset'],
@ -283,7 +283,7 @@
@set_time_limit(0); @set_time_limit(0);
$fp=fopen($csvfile,'rb'); $fp=fopen($csvfile,'rb');
$csv_fields = fgetcsv($fp,8000,$_POST['fieldsep']); $csv_fields = fgetcsv($fp,8000,$_POST['fieldsep']);
$csv_fields = $GLOBALS['egw']->translation->convert($csv_fields,$_POST['charset']); $csv_fields = $GLOBALS['phpgw']->translation->convert($csv_fields,$_POST['charset']);
$csv_fields[] = 'no CSV 1'; // eg. for static assignments $csv_fields[] = 'no CSV 1'; // eg. for static assignments
$csv_fields[] = 'no CSV 2'; $csv_fields[] = 'no CSV 2';
$csv_fields[] = 'no CSV 3'; $csv_fields[] = 'no CSV 3';
@ -299,9 +299,9 @@
$defaults[$csv_fields[$csv_idx]] .= $PSep.$_POST['trans'][$csv_idx]; $defaults[$csv_fields[$csv_idx]] .= $PSep.$_POST['trans'][$csv_idx];
} }
} }
$GLOBALS['egw']->preferences->read_repository(); $GLOBALS['phpgw']->preferences->read_repository();
$GLOBALS['egw']->preferences->add('addressbook','cvs_import',$defaults); $GLOBALS['phpgw']->preferences->add('addressbook','cvs_import',$defaults);
$GLOBALS['egw']->preferences->save_repository(True); $GLOBALS['phpgw']->preferences->save_repository(True);
$log = "<table border=1>\n\t<tr><td>#</td>\n"; $log = "<table border=1>\n\t<tr><td>#</td>\n";
@ -354,7 +354,7 @@
{ {
break; // EOF break; // EOF
} }
$fields = $GLOBALS['egw']->translation->convert($fields,$_POST['charset']); $fields = $GLOBALS['phpgw']->translation->convert($fields,$_POST['charset']);
$log .= "\t</tr><tr><td>".($start+$anz)."</td>\n"; $log .= "\t</tr><tr><td>".($start+$anz)."</td>\n";
@ -383,7 +383,7 @@
} }
if($val[0] == '@') if($val[0] == '@')
{ {
if (!$GLOBALS['egw_info']['user']['apps']['admin']) if (!$GLOBALS['phpgw_info']['user']['apps']['admin'])
{ {
echo lang('@-eval() is only availible to admins!!!'); echo lang('@-eval() is only availible to admins!!!');
} }
@ -420,7 +420,7 @@
{ {
if (isset($values[$user]) && !is_numeric($user)) if (isset($values[$user]) && !is_numeric($user))
{ {
$values[$user] = $GLOBALS['egw']->accounts->name2id($values[$user]); $values[$user] = $GLOBALS['phpgw']->accounts->name2id($values[$user]);
} }
} }
if (is_array($auto_fn)) // autocreate full name if (is_array($auto_fn)) // autocreate full name
@ -438,26 +438,26 @@
} }
if(!$_POST['debug'] && !$empty) // dont import empty contacts if(!$_POST['debug'] && !$empty) // dont import empty contacts
{ {
$GLOBALS['egw']->contacts->add( $values['owner'] ? $values['owner'] : $GLOBALS['egw_info']['user']['account_id'], $GLOBALS['phpgw']->contacts->add( $values['owner'] ? $values['owner'] : $GLOBALS['phpgw_info']['user']['account_id'],
$values); $values);
// echo "<p>adding: ".print_r($values)."</p>\n"; // echo "<p>adding: ".print_r($values)."</p>\n";
} }
} }
$log .= "\t</tr>\n</table>\n"; $log .= "\t</tr>\n</table>\n";
$GLOBALS['egw']->template->set_var('anz_imported',($_POST['debug'] ? $GLOBALS['phpgw']->template->set_var('anz_imported',($_POST['debug'] ?
lang('%1 records read (not yet imported, you may go %2back%3 and uncheck Test Import)', lang('%1 records read (not yet imported, you may go %2back%3 and uncheck Test Import)',
$anz,'','') : $anz,'','') :
lang('%1 records imported',$anz)). '&nbsp;'. lang('%1 records imported',$anz)). '&nbsp;'.
(!$_POST['debug'] && $fields ? $GLOBALS['egw']->html->submit_button('next','Import next set') . '&nbsp;':''). (!$_POST['debug'] && $fields ? $GLOBALS['phpgw']->html->submit_button('next','Import next set') . '&nbsp;':'').
$GLOBALS['egw']->html->submit_button('continue','Back') . '&nbsp;'. $GLOBALS['phpgw']->html->submit_button('continue','Back') . '&nbsp;'.
$GLOBALS['egw']->html->submit_button('cancel','Cancel')); $GLOBALS['phpgw']->html->submit_button('cancel','Cancel'));
$GLOBALS['egw']->template->set_var('log',$log); $GLOBALS['phpgw']->template->set_var('log',$log);
$GLOBALS['egw']->template->parse('importedhandle','imported'); $GLOBALS['phpgw']->template->parse('importedhandle','imported');
break; break;
} }
$GLOBALS['egw']->template->set_var('hiddenvars',str_replace('{','&#x7B;',$hiddenvars)); $GLOBALS['phpgw']->template->set_var('hiddenvars',str_replace('{','&#x7B;',$hiddenvars));
$GLOBALS['egw']->template->pfp('out','import',True); $GLOBALS['phpgw']->template->pfp('out','import',True);
$GLOBALS['egw']->common->phpgw_footer(); $GLOBALS['phpgw']->common->phpgw_footer();
?> ?>

View File

@ -1,399 +0,0 @@
<?php
/**************************************************************************\
* eGroupWare - Addressbook *
* http://www.egroupware.org *
* Written by Miles Lott <milos@groupwhere.org> *
* ------------------------------------------------------------------------ *
* This program is free software; you can redistribute it and/or modify it *
* under the terms of the GNU General Public License as published by the *
* Free Software Foundation; either version 2 of the License, or (at your *
* option) any later version. *
\**************************************************************************/
/* $Id$ */
class boXport
{
var $public_functions = array(
'import' => True,
'export' => True
);
var $so;
var $contacts;
var $start;
var $limit;
var $query;
var $sort;
var $order;
var $filter;
var $cat_id;
var $use_session = False;
var $debug = False;
function boXport($session=False)
{
$this->contacts = &$GLOBALS['egw']->contacts;
$this->so = CreateObject('addressbook.soaddressbook');
if($session)
{
$this->read_sessiondata();
$this->use_session = True;
}
$_start = get_var('_start',array('POST','GET'));
$_query = get_var('_query',array('POST','GET'));
$_sort = get_var('_sort',array('POST','GET'));
$_order = get_var('_order',array('POST','GET'));
$_filter = get_var('_filter',array('POST','GET'));
$_cat_id = get_var('_cat_id',array('POST','GET'));
$_fcat_id = get_var('_fcat_id',array('POST','GET'));
if(!empty($_start) || ($_start == '0') || ($_start == 0))
{
if($this->debug) { echo '<br>overriding $start: "' . $this->start . '" now "' . $_start . '"'; }
$this->start = $_start;
}
if($_limit)
{
$this->limit = $_limit;
}
if((empty($_query) && !empty($this->query)) || !empty($_query))
{
$this->query = $_query;
}
if(isset($_POST['fcat_id']) || isset($_POST['fcat_id']))
{
$this->cat_id = $_fcat_id;
}
else
{
$this->cat_id = -1;
}
if(isset($_sort) && !empty($_sort))
{
if($this->debug) { echo '<br>overriding $sort: "' . $this->sort . '" now "' . $_sort . '"'; }
$this->sort = $_sort;
}
if(isset($_order) && !empty($_order))
{
if($this->debug) { echo '<br>overriding $order: "' . $this->order . '" now "' . $_order . '"'; }
$this->order = $_order;
}
if(isset($_filter) && !empty($_filter))
{
if($this->debug) { echo '<br>overriding $filter: "' . $this->filter . '" now "' . $_filter . '"'; }
$this->filter = $_filter;
}
}
function save_sessiondata($data)
{
if($this->use_session)
{
if($this->debug) { echo '<br>Save:'; _debug_array($data); }
$GLOBALS['egw']->session->appsession('session_data','addressbook',$data);
}
}
function read_sessiondata()
{
$data = $GLOBALS['egw']->session->appsession('session_data','addressbook');
if($this->debug) { echo '<br>Read:'; _debug_array($data); }
$this->start = $data['start'];
$this->limit = $data['limit'];
$this->query = $data['query'];
$this->sort = $data['sort'];
$this->order = $data['order'];
$this->filter = $data['filter'];
$this->cat_id = $data['cat_id'];
if($this->debug) { echo '<br>read_sessiondata();'; $this->_debug_sqsof(); }
}
function import($tsvfile,$conv_type,$private,$fcat_id)
{
if($conv_type == 'none')
{
return False;
}
include(PHPGW_APP_INC . '/import/' . $conv_type);
if($private == '')
{
$private = 'public';
}
$row = 0;
$buffer = array();
$contacts = new import_conv;
$buffer = $contacts->import_start_file($buffer);
if($tsvfile['type'] == 'application/zip')
{
if(!@function_exists('zip_open'))
{
return False;
}
$fp = $this->unzip($tsvfile['tmp_name'],$contacts->type);
}
else
{
$fp = fopen($tsvfile['tmp_name'],'r');
}
if($contacts->type == 'csv')
{
while($data = fgetcsv($fp,8000,','))
{
$num = count($data);
$row++;
if($row == 1)
{
$header = $data;
/* Changed here to ignore the header, set to our array
while(list($lhs,$rhs) = each($contacts->import))
{
$header[] = $lhs;
}
*/
}
else
{
$buffer = $contacts->import_start_record($buffer);
for($c=0; $c<$num; $c++ )
{
//Send name/value pairs along with the buffer
if($contacts->import[$header[$c]] != '' && $data[$c] != '')
{
$buffer = $contacts->import_new_attrib($buffer, $contacts->import[$header[$c]],$data[$c]);
}
}
$buffer = $contacts->import_end_record($buffer,$private);
}
}
}
elseif($contacts->type == 'ldif')
{
while($data = fgets($fp,8000))
{
$url = '';
list($name,$value,$extra) = split(':', $data);
$name = strtolower($name);
if(substr($name,0,2) == 'dn')
{
$buffer = $contacts->import_start_record($buffer);
}
$test = trim($value);
if($name && !empty($test) && $extra)
{
// Probable url string
$url = $test;
$value = $extra;
}
elseif($name && empty($test) && $extra)
{
// Probable multiline encoding
$newval = base64_decode(trim($extra));
$value = $newval;
//echo $name.':'.$value;
}
if($name && $value)
{
$test = split(',mail=',$value);
if($test[1])
{
$name = 'mail';
$value = $test[1];
}
if($url)
{
$name = 'homeurl';
$value = $url. ':' . $value;
}
//echo '<br>'.$j.': '.$name.' => '.$value;
if($contacts->import[$name] != '' && $value != '')
{
$buffer = $contacts->import_new_attrib($buffer, $contacts->import[$name],$value);
}
}
else
{
$buffer = $contacts->import_end_record($buffer,$private);
}
}
}
else
{
$needToCallEndRecord = 0;
while($data = fgets($fp,8000))
{
$data = trim($data);
// RB 2001/05/07 added for Lotus Organizer
while(substr($data,-1) == '=')
{
// '=' at end-of-line --> line to be continued with next line
$data = substr($data,0,-1) . trim(fgets($fp,8000));
}
if(strstr($data,';ENCODING=QUOTED-PRINTABLE'))
{
// RB 2001/05/07 added for Lotus Organizer
$data = quoted_printable_decode(str_replace(';ENCODING=QUOTED-PRINTABLE','',$data));
}
list($name,$value) = explode(':', $data,2); // RB 2001/05/09 to allow ':' in Values (not only in URL's)
if(strtolower(substr($name,0,5)) == 'begin')
{
$buffer = $contacts->import_start_record($buffer);
$needToCallEndRecord = 1;
}
if($name && $value)
{
reset($contacts->import);
while(list($fname,$fvalue) = each($contacts->import))
{
if(strstr(strtolower($name), $contacts->import[$fname]))
{
$buffer = $contacts->import_new_attrib($buffer,$name,$value);
}
}
}
else
{
$buffer = $contacts->import_end_record($buffer);
$needToCallEndRecord = 0;
}
}
if($needToCallEndRecord)
{
$buffer = $contacts->import_end_record($buffer);
}
}
fclose($fp);
$buffer = $contacts->import_end_file($buffer,$private,$fcat_id);
return $buffer;
}
/* Use the Zip extension to open a zip file, hopefully containing multiple .vcf files
* Return a pointer to a temporary file that will then contain all files concatenated.
*/
function unzip($filename,$type)
{
$ext = '';
switch($type)
{
case 'vcard':
$ext = '.vcf';
break;
case 'csv':
$ext = '.csv';
break;
case 'ldif':
$ext = '.ldif';
break;
default:
return False;
}
/* Open the (uploaded) zip file */
$zip = zip_open($filename);
$temp = tempnam('/tmp','zip2contact');
/* Open a temp file for read/write */
$fp = fopen($temp, 'w+');
$out = '';
/* Now read each entry in the zip file */
while($dirent = zip_read($zip))
{
if(zip_entry_open($zip,$dirent,'r'))
{
//echo '<br>zip_entry_name==' . zip_entry_name($dirent);
/* If an allowed extenstion based on conversion type */
if(strstr(zip_entry_name($dirent),$ext))
{
/* Write the data to our temp file */
$data = zip_entry_read($dirent,zip_entry_filesize($dirent));
//echo $data;
fwrite($fp,$data);
}
zip_entry_close($dirent);
}
}
/* Close the zip file resource handle */
zip_close($zip);
/* Set the file pointer of our new file to the beginning for use by the import routines */
rewind($fp);
return $fp;
}
function export($conv_type,$cat_id='')
{
if($conv_type == 'none')
{
return False;
}
include(PHPGW_APP_INC . '/export/' . $conv_type);
$buffer = array();
$contacts = new export_conv;
// Read in user custom fields, if any
$customfields = array();
while(list($col,$descr) = @each($GLOBALS['egw_info']['user']['preferences']['addressbook']))
{
if(substr($col,0,6) == 'extra_')
{
$field = str_replace('extra_','',$col);
$field = str_replace(' ','_',$field);
$customfields[$field] = ucfirst($field);
}
}
$extrafields = array(
'ophone' => 'ophone',
'address2' => 'address2',
'address3' => 'address3'
);
if($contacts->type != 'vcard')
{
$contacts->qfields = $contacts->stock_contact_fields;# + $extrafields;# + $customfields;
}
if(!empty($cat_id))
{
$buffer = $contacts->export_start_file($buffer,$cat_id);
}
else
{
$buffer = $contacts->export_start_file($buffer);
}
for($i=0;$i<count($contacts->ids);$i++)
{
$buffer = $contacts->export_start_record($buffer);
while(list($name,$value) = each($contacts->currentrecord))
{
$buffer = $contacts->export_new_attrib($buffer,$name,$value);
}
$buffer = $contacts->export_end_record($buffer);
}
// Here, buffer becomes a string suitable for printing
$buffer = $contacts->export_end_file($buffer);
$tsvfilename = $GLOBALS['egw_info']['server']['temp_dir'] . SEP . $tsvfilename;
return $buffer;
}
}
?>

View File

@ -194,13 +194,13 @@
if($this->use_session) if($this->use_session)
{ {
if($this->debug) { echo '<br>Save:'; _debug_array($data); } if($this->debug) { echo '<br>Save:'; _debug_array($data); }
$GLOBALS['egw']->session->appsession('session_data','addressbook',$data); $GLOBALS['phpgw']->session->appsession('session_data','addressbook',$data);
} }
} }
function read_sessiondata() function read_sessiondata()
{ {
$data = $GLOBALS['egw']->session->appsession('session_data','addressbook'); $data = $GLOBALS['phpgw']->session->appsession('session_data','addressbook');
if($this->debug) { echo '<br>Read:'; _debug_array($data); } if($this->debug) { echo '<br>Read:'; _debug_array($data); }
$this->start = $data['start']; $this->start = $data['start'];
@ -227,12 +227,12 @@
{ {
foreach($dirty[$i] as $name => $value) foreach($dirty[$i] as $name => $value)
{ {
$cleaned[$i][$name] = $GLOBALS['egw']->strip_html($dirty[$i][$name]); $cleaned[$i][$name] = $GLOBALS['phpgw']->strip_html($dirty[$i][$name]);
} }
} }
else else
{ {
$cleaned[$i] == $GLOBALS['egw']->strip_html($dirty[$i]); $cleaned[$i] == $GLOBALS['phpgw']->strip_html($dirty[$i]);
} }
} }
return $cleaned; return $cleaned;
@ -249,9 +249,9 @@
{ {
$fields = CreateObject('addressbook.uifields',True); // no extra bo-class $fields = CreateObject('addressbook.uifields',True); // no extra bo-class
if(is_array($new_fields) && count($new_fields)) if (is_array($new_fields) && count($new_fields))
{ {
if(!$GLOBALS['egw_info']['user']['apps']['admin']) if (!$GLOBALS['phpgw_info']['user']['apps']['admin'])
{ {
$GLOBALS['server']->xmlrpc_error($GLOBALS['xmlrpcerr']['no_access'],$GLOBALS['xmlrpcstr']['no_access']); $GLOBALS['server']->xmlrpc_error($GLOBALS['xmlrpcerr']['no_access'],$GLOBALS['xmlrpcstr']['no_access']);
} }
@ -265,7 +265,7 @@
{ {
$customfields[$data['name']] = $data['title']; $customfields[$data['name']] = $data['title'];
} }
if($this->xmlrpc && !isset($customfields['freebusy_url'])) if ($this->xmlrpc && !isset($customfields['freebusy_url']))
{ {
$fields->save_custom_field('','freebusy URL'); $fields->save_custom_field('','freebusy URL');
$customfields['freebusy_url'] = 'freebusy URL'; $customfields['freebusy_url'] = 'freebusy URL';
@ -276,14 +276,14 @@
// translate array of internal datas to xmlrpc, eg. format bday as iso8601 // translate array of internal datas to xmlrpc, eg. format bday as iso8601
function data2xmlrpc($datas) function data2xmlrpc($datas)
{ {
if(is_array($datas)) if (is_array($datas))
{ {
foreach($datas as $n => $data) foreach($datas as $n => $data)
{ {
// translate birthday to a iso8601 date // translate birthday to a iso8601 date
if(isset($data['bday'])) if (isset($data['bday']))
{ {
if(strlen($data['bday']) > 2) if (strlen($data['bday']) > 2)
{ {
list($m,$d,$y) = explode('/',$data['bday']); list($m,$d,$y) = explode('/',$data['bday']);
} }
@ -294,12 +294,12 @@
$datas[$n]['bday'] = $GLOBALS['server']->date2iso8601(array('year'=>$y,'month'=>$m,'mday'=>$d)); $datas[$n]['bday'] = $GLOBALS['server']->date2iso8601(array('year'=>$y,'month'=>$m,'mday'=>$d));
} }
// translate modification time // translate modification time
if(isset($data['last_mod'])) if (isset($data['last_mod']))
{ {
$datas[$n]['last_mod'] = $GLOBALS['server']->date2iso8601($data['last_mod']); $datas[$n]['last_mod'] = $GLOBALS['server']->date2iso8601($data['last_mod']);
} }
// translate categories-id-list to array with id-name pairs // translate categories-id-list to array with id-name pairs
if(isset($data['cat_id'])) if (isset($data['cat_id']))
{ {
$datas[$n]['cat_id'] = $GLOBALS['server']->cats2xmlrpc(explode(',',$data['cat_id'])); $datas[$n]['cat_id'] = $GLOBALS['server']->cats2xmlrpc(explode(',',$data['cat_id']));
} }
@ -311,16 +311,16 @@
// retranslate from xmlrpc / iso8601 to internal format // retranslate from xmlrpc / iso8601 to internal format
function xmlrpc2data($data) function xmlrpc2data($data)
{ {
if(isset($data['bday'])) if (isset($data['bday']))
{ {
$arr = $GLOBALS['server']->iso86012date($data['bday']); $arr = $GLOBALS['server']->iso86012date($data['bday']);
$data['bday'] = $arr['year'] && $arr['month'] && $arr['mday'] ? sprintf('%d/%02d/%04d',$arr['month'],$arr['mday'],$arr['year']) : ''; $data['bday'] = $arr['year'] && $arr['month'] && $arr['mday'] ? sprintf('%d/%02d/%04d',$arr['month'],$arr['mday'],$arr['year']) : '';
} }
if(isset($data['last_mod'])) if (isset($data['last_mod']))
{ {
$data['last_mod'] = $GLOBALS['server']->iso86012date($data['last_mod'],True); $data['last_mod'] = $GLOBALS['server']->iso86012date($data['last_mod'],True);
} }
if(isset($data['cat_id'])) if (isset($data['cat_id']))
{ {
$cats = $GLOBALS['server']->xmlrpc2cats($data['cat_id']); $cats = $GLOBALS['server']->xmlrpc2cats($data['cat_id']);
$data['cat_id'] = count($cats) > 1 ? ','.implode(',',$cats).',' : (int)$cats[0]; $data['cat_id'] = count($cats) > 1 ? ','.implode(',',$cats).',' : (int)$cats[0];
@ -332,19 +332,19 @@
function user_pseudo_entry($account) function user_pseudo_entry($account)
{ {
static $prefs=False; static $prefs=False;
if(!is_object($prefs)) if (!is_object($prefs))
{ {
$prefs = CreateObject('phpgwapi.preferences'); // wie need a new copy, as wie change the user $prefs = CreateObject('phpgwapi.preferences'); // wie need a new copy, as wie change the user
} }
if(!is_array($account)) if (!is_array($account))
{ {
$GLOBALS['egw']->accounts->account_id = $account; $GLOBALS['phpgw']->accounts->account_id = $account;
$account = $GLOBALS['egw']->accounts->read_repository(); $account = $GLOBALS['phpgw']->accounts->read_repository();
} }
$prefs->account_id = $account['account_id']; $prefs->account_id = $account['account_id'];
$prefs->read_repository(); $prefs->read_repository();
$freebusy_url = $GLOBALS['egw_info']['server']['webserver_url'].'/calendar/freebusy.php?user='.$account['account_lid']; $freebusy_url = $GLOBALS['phpgw_info']['server']['webserver_url'].'/calendar/freebusy.php?user='.$account['account_lid'];
if($freebusy_url[0] == '/') if ($freebusy_url[0] == '/')
{ {
$freebusy_url = ($_SERVER['HTTPS'] ? 'https://' : 'http://').$_SERVER['HTTP_HOST'].$freebusy_url; $freebusy_url = ($_SERVER['HTTPS'] ? 'https://' : 'http://').$_SERVER['HTTP_HOST'].$freebusy_url;
} }
@ -353,7 +353,7 @@
$ret = array( $ret = array(
'n_family' => $lastname, 'n_family' => $lastname,
'n_given' => $firstname, 'n_given' => $firstname,
'fn' => $GLOBALS['egw']->common->display_fullname($account['account_lid'],$firstname,$lastname), 'fn' => $GLOBALS['phpgw']->common->display_fullname($account['account_lid'],$firstname,$lastname),
'email' => $prefs->email_address($account['account_id']), 'email' => $prefs->email_address($account['account_id']),
'freebusy_url' => $freebusy_url, 'freebusy_url' => $freebusy_url,
'rights' => PHPGW_ACL_READ, // readonly access 'rights' => PHPGW_ACL_READ, // readonly access
@ -367,17 +367,17 @@
function get_users($type='all') function get_users($type='all')
{ {
$users = array(); $users = array();
switch($type) switch ($type)
{ {
case 'all': // all case 'all': // all
$accounts = $GLOBALS['egw']->accounts->get_list('accounts'); $accounts = $GLOBALS['phpgw']->accounts->get_list('accounts');
break; break;
case 'calendar': // Calendar users case 'calendar': // Calendar users
$accounts = $GLOBALS['egw']->acl->get_ids_for_location('run',1,'calendar'); $accounts = $GLOBALS['phpgw']->acl->get_ids_for_location('run',1,'calendar');
break; break;
case 'groupmates': // Groupmates case 'groupmates': // Groupmates
$accounts = array(); $accounts = array();
foreach($GLOBALS['egw']->accounts->membership() as $group) foreach($GLOBALS['phpgw']->accounts->membership() as $group)
{ {
$accounts[] = $group['account_id']; $accounts[] = $group['account_id'];
} }
@ -385,12 +385,12 @@
} }
foreach($accounts as $key => $account) foreach($accounts as $key => $account)
{ {
if($type == 'calendar' && $GLOBALS['egw']->accounts->get_type($account) == 'g' || $type == 'groupmates') if ($type == 'calendar' && $GLOBALS['phpgw']->accounts->get_type($account) == 'g' || $type == 'groupmates')
{ {
// $account is a group // $account is a group
unset($accounts[$key]); unset($accounts[$key]);
$members = $GLOBALS['egw']->accounts->member($account); $members = $GLOBALS['phpgw']->accounts->member($account);
if(is_array($members)) if (is_array($members))
{ {
foreach($members as $member) foreach($members as $member)
{ {
@ -399,7 +399,7 @@
} }
} }
} }
if($type != 'all') if ($type != 'all')
{ {
$accounts = array_unique($accounts); // remove doubles $accounts = array_unique($accounts); // remove doubles
} }
@ -413,24 +413,24 @@
function read_entries($data) function read_entries($data)
{ {
if($this->xmlrpc && !isset($data['fields'])) if ($this->xmlrpc && !isset($data['fields']))
{ {
$data['fields'] = array_keys(array_merge($this->so->contacts->non_contact_fields,$this->so->contacts->stock_contact_fields,$this->customfields())); $data['fields'] = array_keys(array_merge($this->so->contacts->non_contact_fields,$this->so->contacts->stock_contact_fields,$this->customfields()));
} }
$entries = $this->so->read_entries($data); $entries = $this->so->read_entries($data);
$this->total = $this->so->contacts->total_records; $this->total = $this->so->contacts->total_records;
if(!is_array($entries)) if (!is_array($entries))
{ {
$entries = array(); $entries = array();
} }
$entries = $this->strip_html($entries); $entries = $this->strip_html($entries);
// evtl. get uses as read-only addressbook entries, just with Name, Firstname, Email // evtl. get uses as read-only addressbook entries, just with Name, Firstname, Email
if(@$data['include_users']) if (@$data['include_users'])
{ {
$entries = array_merge($entries,$this->get_users($data['include_users'])); $entries = array_merge($entries,$this->get_users($data['include_users']));
} }
if($this->xmlrpc) if ($this->xmlrpc)
{ {
$entries = $this->data2xmlrpc($entries); $entries = $this->data2xmlrpc($entries);
} }
@ -440,14 +440,14 @@
function read_entry($data) function read_entry($data)
{ {
if($this->xmlrpc && !isset($data['fields'])) if ($this->xmlrpc && !isset($data['fields']))
{ {
$data['fields'] = array_keys(array_merge($this->so->contacts->non_contact_fields,$this->so->contacts->stock_contact_fields,$this->customfields())); $data['fields'] = array_keys(array_merge($this->so->contacts->non_contact_fields,$this->so->contacts->stock_contact_fields,$this->customfields()));
} }
if($data['id'] < 0) if ($data['id'] < 0)
{ {
$entry = array($this->user_pseudo_entry(-$data['id'])); $entry = array($this->user_pseudo_entry(-$data['id']));
if($this->xmlrpc) if ($this->xmlrpc)
{ {
$entry = $this->data2xmlrpc($entry); $entry = $this->data2xmlrpc($entry);
} }
@ -457,13 +457,13 @@
{ {
$entry = $this->so->read_entry($data['id'],$data['fields']); $entry = $this->so->read_entry($data['id'],$data['fields']);
$entry = $this->strip_html($entry); $entry = $this->strip_html($entry);
if($this->xmlrpc) if ($this->xmlrpc)
{ {
$entry = $this->data2xmlrpc($entry); $entry = $this->data2xmlrpc($entry);
} }
return $entry; return $entry;
} }
if($this->xmlrpc) if ($this->xmlrpc)
{ {
$GLOBALS['server']->xmlrpc_error($GLOBALS['xmlrpcerr']['no_access'],$GLOBALS['xmlrpcstr']['no_access']); $GLOBALS['server']->xmlrpc_error($GLOBALS['xmlrpcerr']['no_access'],$GLOBALS['xmlrpcstr']['no_access']);
} }
@ -476,13 +476,13 @@
{ {
$entry = $this->so->read_last_entry($fields); $entry = $this->so->read_last_entry($fields);
$entry = $this->strip_html($entry); $entry = $this->strip_html($entry);
if($this->xmlrpc) if ($this->xmlrpc)
{ {
$entry = $this->data2xmlrpc($entry); $entry = $this->data2xmlrpc($entry);
} }
return $entry; return $entry;
} }
if($this->xmlrpc) if ($this->xmlrpc)
{ {
$GLOBALS['server']->xmlrpc_error($GLOBALS['xmlrpcerr']['no_access'],$GLOBALS['xmlrpcstr']['no_access']); $GLOBALS['server']->xmlrpc_error($GLOBALS['xmlrpcerr']['no_access'],$GLOBALS['xmlrpcstr']['no_access']);
} }
@ -502,7 +502,7 @@
$vcard = CreateObject('phpgwapi.vcard'); $vcard = CreateObject('phpgwapi.vcard');
$entry = $vcard->in_file($filename); $entry = $vcard->in_file($filename);
/* _debug_array($entry);exit; */ /* _debug_array($entry);exit; */
$entry['owner'] = (int)$GLOBALS['egw_info']['user']['account_id']; $entry['owner'] = (int)$GLOBALS['phpgw_info']['user']['account_id'];
$entry['access'] = 'private'; $entry['access'] = 'private';
$entry['tid'] = 'n'; $entry['tid'] = 'n';
/* _debug_array($entry);exit; */ /* _debug_array($entry);exit; */
@ -534,11 +534,11 @@
$fields['email'] = $add_email; $fields['email'] = $add_email;
$referer = urlencode($referer); $referer = urlencode($referer);
$this->so->add_entry($GLOBALS['egw_info']['user']['account_id'],$fields,'private','','n'); $this->so->add_entry($GLOBALS['phpgw_info']['user']['account_id'],$fields,'private','','n');
$ab_id = $this->get_lastid(); $ab_id = $this->get_lastid();
Header('Location: ' Header('Location: '
. $GLOBALS['egw']->link('/index.php',"menuaction=addressbook.uiaddressbook.view&ab_id=$ab_id&referer=$referer")); . $GLOBALS['phpgw']->link('/index.php',"menuaction=addressbook.uiaddressbook.view&ab_id=$ab_id&referer=$referer"));
} }
function add_entry($fields) function add_entry($fields)
@ -551,24 +551,19 @@
} }
if(!@$fields['owner']) if(!@$fields['owner'])
{ {
$fields['owner'] = (int)$GLOBALS['egw_info']['user']['account_id']; $fields['owner'] = (int)$GLOBALS['phpgw_info']['user']['account_id'];
} }
if(empty($fields['access'])) if(empty($fields['access']))
{ {
$fields['access'] = 'public'; $fields['access'] = 'public';
} }
if($this->xmlrpc) if ($this->xmlrpc)
{ {
$fields = $this->xmlrpc2data($fields); $fields = $this->xmlrpc2data($fields);
} }
$id = $this->so->add_entry($fields); $id = $this->so->add_entry($fields);
if($id) if ($this->xmlrpc && !$id)
{
$GLOBALS['egw']->contenthistory->updateTimeStamp('contacts', $id, 'add', time());
}
if($this->xmlrpc && !$id)
{ {
$GLOBALS['server']->xmlrpc_error($GLOBALS['xmlrpcerr']['no_access'],$GLOBALS['xmlrpcstr']['no_access']); $GLOBALS['server']->xmlrpc_error($GLOBALS['xmlrpcerr']['no_access'],$GLOBALS['xmlrpcstr']['no_access']);
} }
@ -582,24 +577,20 @@
function update_entry($fields) function update_entry($fields)
{ {
if(!$fields['id'] && !$fields['ab_id']) if (!$fields['id'] && !$fields['ab_id'])
{ {
return $this->add_entry($fields); return $this->add_entry($fields);
} }
$ok = False; $ok = False;
if($this->check_perms($fields,PHPGW_ACL_EDIT)) if($this->check_perms($fields,PHPGW_ACL_EDIT))
{ {
if($this->xmlrpc) if ($this->xmlrpc)
{ {
$fields = $this->xmlrpc2data($fields); $fields = $this->xmlrpc2data($fields);
} }
$ok = $this->so->update_entry($fields); $ok = $this->so->update_entry($fields);
if($ok)
{
$GLOBALS['egw']->contenthistory->updateTimeStamp('contacts', $fields['ab_id'], 'modify', time());
}
} }
if($this->xmlrpc && !$ok) if ($this->xmlrpc && !$ok)
{ {
$GLOBALS['server']->xmlrpc_error($GLOBALS['xmlrpcerr']['no_access'],$GLOBALS['xmlrpcstr']['no_access']); $GLOBALS['server']->xmlrpc_error($GLOBALS['xmlrpcerr']['no_access'],$GLOBALS['xmlrpcstr']['no_access']);
} }
@ -626,9 +617,8 @@
if($this->check_perms($id,PHPGW_ACL_DELETE)) if($this->check_perms($id,PHPGW_ACL_DELETE))
{ {
$this->so->delete_entry($id); $this->so->delete_entry($id);
$GLOBALS['egw']->contenthistory->updateTimeStamp('contacts', $id, 'delete', time());
} }
elseif($this->xmlrpc) elseif ($this->xmlrpc)
{ {
$GLOBALS['server']->xmlrpc_error($GLOBALS['xmlrpcerr']['no_access'],$GLOBALS['xmlrpcstr']['no_access']); $GLOBALS['server']->xmlrpc_error($GLOBALS['xmlrpcerr']['no_access'],$GLOBALS['xmlrpcstr']['no_access']);
} }
@ -646,14 +636,14 @@
{ {
$id = (int) (!is_array($addr) ? $addr : (isset($addr['id']) ? $addr['id'] : $addr['ab_id'])); $id = (int) (!is_array($addr) ? $addr : (isset($addr['id']) ? $addr['id'] : $addr['ab_id']));
if($id < 0) if ($id < 0)
{ {
return $rights == PHPGW_ACL_READ; return $rights == PHPGW_ACL_READ;
} }
if(!is_array($addr) || !isset($addr['rights']) && !isset($addr['owner'])) if (!is_array($addr) || !isset($addr['rights']) && !isset($addr['owner']))
{ {
$addr = $this->so->read_entry($id,array('owner')); $addr = $this->so->read_entry($id,array('owner'));
if(!$addr && $this->xmlrpc) if (!$addr && $this->xmlrpc)
{ {
$GLOBALS['server']->xmlrpc_error($GLOBALS['xmlrpcerr']['not_exist'],$GLOBALS['xmlrpcstr']['not_exist']); $GLOBALS['server']->xmlrpc_error($GLOBALS['xmlrpcerr']['not_exist'],$GLOBALS['xmlrpcstr']['not_exist']);
} }
@ -666,7 +656,7 @@
function save_preferences($prefs,$other,$qfields,$fcat_id) function save_preferences($prefs,$other,$qfields,$fcat_id)
{ {
$GLOBALS['egw']->preferences->read_repository(); $GLOBALS['phpgw']->preferences->read_repository();
if(is_array($prefs)) if(is_array($prefs))
{ {
/* _debug_array($prefs);exit; */ /* _debug_array($prefs);exit; */
@ -675,39 +665,39 @@
/* echo '<br>checking: ' . $pref . '=' . $prefs[$pref]; */ /* echo '<br>checking: ' . $pref . '=' . $prefs[$pref]; */
if($prefs[$pref] == 'on') if($prefs[$pref] == 'on')
{ {
$GLOBALS['egw']->preferences->add('addressbook',$pref,'addressbook_on'); $GLOBALS['phpgw']->preferences->add('addressbook',$pref,'addressbook_on');
} }
else else
{ {
$GLOBALS['egw']->preferences->delete('addressbook',$pref); $GLOBALS['phpgw']->preferences->delete('addressbook',$pref);
} }
} }
} }
if(is_array($other)) if(is_array($other))
{ {
$GLOBALS['egw']->preferences->delete('addressbook','mainscreen_showbirthdays'); $GLOBALS['phpgw']->preferences->delete('addressbook','mainscreen_showbirthdays');
if($other['mainscreen_showbirthdays']) if($other['mainscreen_showbirthdays'])
{ {
$GLOBALS['egw']->preferences->add('addressbook','mainscreen_showbirthdays',True); $GLOBALS['phpgw']->preferences->add('addressbook','mainscreen_showbirthdays',True);
} }
$GLOBALS['egw']->preferences->delete('addressbook','default_filter'); $GLOBALS['phpgw']->preferences->delete('addressbook','default_filter');
if($other['default_filter']) if($other['default_filter'])
{ {
$GLOBALS['egw']->preferences->add('addressbook','default_filter',$other['default_filter']); $GLOBALS['phpgw']->preferences->add('addressbook','default_filter',$other['default_filter']);
} }
$GLOBALS['egw']->preferences->delete('addressbook','autosave_category'); $GLOBALS['phpgw']->preferences->delete('addressbook','autosave_category');
if($other['autosave_category']) if($other['autosave_category'])
{ {
$GLOBALS['egw']->preferences->add('addressbook','autosave_category',True); $GLOBALS['phpgw']->preferences->add('addressbook','autosave_category',True);
} }
} }
$GLOBALS['egw']->preferences->delete('addressbook','default_category'); $GLOBALS['phpgw']->preferences->delete('addressbook','default_category');
$GLOBALS['egw']->preferences->add('addressbook','default_category',$fcat_id); $GLOBALS['phpgw']->preferences->add('addressbook','default_category',$fcat_id);
$GLOBALS['egw']->preferences->save_repository(True); $GLOBALS['phpgw']->preferences->save_repository(True);
} }
function list_methods($_type='xmlrpc') function list_methods($_type='xmlrpc')
@ -786,5 +776,6 @@
break; break;
} }
} }
} }
?> ?>

View File

@ -1,100 +0,0 @@
<?php
/**************************************************************************\
* eGroupWare - Addressbook *
* http://www.egroupware.org *
* Written by Joseph Engo <jengo@phpgroupware.org *
* and Miles Lott <milos@groupwhere.org> *
* -------------------------------------------- *
* This program is free software; you can redistribute it and/or modify it *
* under the terms of the GNU General Public License as published by the *
* Free Software Foundation; either version 2 of the License, or (at your *
* option) any later version. *
\**************************************************************************/
/* $Id$ */
class soaddressbook
{
var $contacts;
var $rights;
var $grants;
var $owner;
function soaddressbook()
{
if(!is_object($GLOBALS['egw']->contacts))
{
$GLOBALS['egw']->contacts = CreateObject('phpgwapi.contacts');
}
$this->contacts = &$GLOBALS['egw']->contacts;
$this->grants = &$this->contacts->grants;
/* _debug_array($GLOBALS['egw_info']); */
/* _debug_array($grants); */
}
function read_entries($data)
{
// echo 'OK!';
// _debug_array($data);exit;
return $this->contacts->read(
$data['start'],
$data['limit'],
$data['fields'],
$data['query'],
$data['filter'],
$data['sort'],
$data['order'],
-1,
$data['cquery']
);
}
function read_entry($id,$fields)
{
return $this->contacts->read_single_entry($id,$fields);
}
function read_last_entry($fields)
{
return $this->contacts->read_last_entry($fields);
}
function add_entry($fields)
{
$owner = $fields['owner'];
$access = $fields['access'];
$cat_id = $fields['cat_id'];
$tid = $fields['tid'];
unset($fields['owner']);
unset($fields['access']);
unset($fields['cat_id']);
unset($fields['ab_id']);
unset($fields['tid']);
return $this->contacts->add($owner,$fields,$access,$cat_id,$tid);
}
function get_lastid()
{
$entry = $this->contacts->read_last_entry();
return $entry[0]['id'];
}
function update_entry($fields)
{
$ab_id = isset($fields['ab_id']) ? $fields['ab_id'] : $fields['id'];
$owner = $fields['owner'];
unset($fields['owner']);
unset($fields['ab_id']);
unset($fields['id']);
return $this->contacts->update($ab_id,$owner,$fields);
}
function delete_entry($id)
{
return $this->contacts->delete($id);
}
}
?>

View File

@ -32,7 +32,7 @@
function uiXport() function uiXport()
{ {
$this->template = $GLOBALS['egw']->template; $this->template = $GLOBALS['phpgw']->template;
$this->cat = CreateObject('phpgwapi.categories'); $this->cat = CreateObject('phpgwapi.categories');
$this->bo = CreateObject('addressbook.boXport',True); $this->bo = CreateObject('addressbook.boXport',True);
$this->browser = CreateObject('phpgwapi.browser'); $this->browser = CreateObject('phpgwapi.browser');
@ -106,14 +106,14 @@
{ {
if($conv_type == 'none') if($conv_type == 'none')
{ {
$GLOBALS['egw_info']['flags']['noheader'] = False; $GLOBALS['phpgw_info']['flags']['noheader'] = False;
$GLOBALS['egw_info']['flags']['noheader'] = True; $GLOBALS['phpgw_info']['flags']['noheader'] = True;
$GLOBALS['egw']->common->phpgw_header(); $GLOBALS['phpgw']->common->phpgw_header();
echo parse_navbar(); echo parse_navbar();
echo lang('<b>No conversion type &lt;none&gt; could be located.</b> Please choose a conversion type from the list'); echo lang('<b>No conversion type &lt;none&gt; could be located.</b> Please choose a conversion type from the list');
echo '&nbsp<a href="'.$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiXport.import') . '">' . lang('OK') . '</a>'; echo '&nbsp<a href="'.$GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uiXport.import') . '">' . lang('OK') . '</a>';
$GLOBALS['egw']->common->phpgw_footer(); $GLOBALS['phpgw']->common->phpgw_footer();
$GLOBALS['egw']->common->phpgw_exit(); $GLOBALS['phpgw']->common->phpgw_exit();
} }
$buffer = $this->bo->import($tsvfile,$conv_type,$private,$fcat_id); $buffer = $this->bo->import($tsvfile,$conv_type,$private,$fcat_id);
@ -122,30 +122,30 @@
if($conv_type == 'Debug LDAP' || $conv_type == 'Debug SQL') if($conv_type == 'Debug LDAP' || $conv_type == 'Debug SQL')
{ {
// filename, default application/octet-stream, length of file, default nocache True // filename, default application/octet-stream, length of file, default nocache True
$GLOBALS['egw']->browser->content_header($tsvfilename,'',strlen($buffer)); $GLOBALS['phpgw']->browser->content_header($tsvfilename,'',strlen($buffer));
echo $buffer; echo $buffer;
} }
else else
{ {
$GLOBALS['egw']->common->phpgw_header(); $GLOBALS['phpgw']->common->phpgw_header();
echo parse_navbar(); echo parse_navbar();
echo "<pre>$buffer</pre>"; echo "<pre>$buffer</pre>";
echo '<a href="'.$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.index') . '">'.lang('OK').'</a>'; echo '<a href="'.$GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uiaddressbook.index') . '">'.lang('OK').'</a>';
$GLOBALS['egw']->common->phpgw_footer(); $GLOBALS['phpgw']->common->phpgw_footer();
} }
} }
else else
{ {
$GLOBALS['egw']->common->phpgw_header(); $GLOBALS['phpgw']->common->phpgw_header();
echo parse_navbar(); echo parse_navbar();
echo "<pre>$buffer</pre>"; echo "<pre>$buffer</pre>";
echo '<a href="'.$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.index'). '">'.lang('OK').'</a>'; echo '<a href="'.$GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uiaddressbook.index'). '">'.lang('OK').'</a>';
$GLOBALS['egw']->common->phpgw_footer(); $GLOBALS['phpgw']->common->phpgw_footer();
} }
} }
else else
{ {
$GLOBALS['egw']->common->phpgw_header(); $GLOBALS['phpgw']->common->phpgw_header();
echo parse_navbar(); echo parse_navbar();
set_time_limit(0); set_time_limit(0);
@ -181,11 +181,11 @@
$this->template->set_var('lang_none', lang('none')); $this->template->set_var('lang_none', lang('none'));
$this->template->set_var('lang_cancel',lang('Cancel')); $this->template->set_var('lang_cancel',lang('Cancel'));
$this->template->set_var('lang_cat',lang('Select Category')); $this->template->set_var('lang_cat',lang('Select Category'));
$this->template->set_var('cancel_url',$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.index')); $this->template->set_var('cancel_url',$GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uiaddressbook.index'));
$this->template->set_var('navbar_bg',$GLOBALS['egw_info']['theme']['navbar_bg']); $this->template->set_var('navbar_bg',$GLOBALS['phpgw_info']['theme']['navbar_bg']);
$this->template->set_var('navbar_text',$GLOBALS['egw_info']['theme']['navbar_text']); $this->template->set_var('navbar_text',$GLOBALS['phpgw_info']['theme']['navbar_text']);
$this->template->set_var('import_text',lang('Import from LDIF, CSV, or VCard')); $this->template->set_var('import_text',lang('Import from LDIF, CSV, or VCard'));
$this->template->set_var('action_url',$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiXport.import')); $this->template->set_var('action_url',$GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uiXport.import'));
$this->template->set_var('cat_link',$this->cat_option($this->cat_id,True,False)); $this->template->set_var('cat_link',$this->cat_option($this->cat_id,True,False));
$this->template->set_var('tsvfilename',''); $this->template->set_var('tsvfilename','');
$this->template->set_var('conv',$conv); $this->template->set_var('conv',$conv);
@ -211,7 +211,7 @@
$this->template->set_var('lang_debug',lang('Debug output in browser')); $this->template->set_var('lang_debug',lang('Debug output in browser'));
$this->template->pparse('out','import'); $this->template->pparse('out','import');
} }
// $GLOBALS['egw']->common->phpgw_footer(); // $GLOBALS['phpgw']->common->phpgw_footer();
} }
function export() function export()
@ -226,24 +226,19 @@
{ {
if($conv_type == 'none') if($conv_type == 'none')
{ {
$GLOBALS['egw_info']['flags']['noheader'] = False; $GLOBALS['phpgw_info']['flags']['noheader'] = False;
$GLOBALS['egw_info']['flags']['noheader'] = True; $GLOBALS['phpgw_info']['flags']['noheader'] = True;
$GLOBALS['egw']->common->phpgw_header(); $GLOBALS['phpgw']->common->phpgw_header();
echo parse_navbar(); echo parse_navbar();
echo lang('<b>No conversion type &lt;none&gt; could be located.</b> Please choose a conversion type from the list'); echo lang('<b>No conversion type &lt;none&gt; could be located.</b> Please choose a conversion type from the list');
echo '&nbsp<a href="'.$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiXport.export') . '">' . lang('OK') . '</a>'; echo '&nbsp<a href="'.$GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uiXport.export') . '">' . lang('OK') . '</a>';
$GLOBALS['egw']->common->phpgw_footer(); $GLOBALS['phpgw']->common->phpgw_footer();
$GLOBALS['egw']->common->phpgw_exit(); $GLOBALS['phpgw']->common->phpgw_exit();
} }
$buffer = $this->bo->export($conv_type,$fcat_id); $buffer = $this->bo->export($conv_type,$fcat_id);
if($conv_type == 'Palm_PDB') if(($download == 'on') || ($conv_type == 'Palm_PDB'))
{
$pdb = CreateObject('addressbook.pdb');
$pdb->fetch($buffer, 'phpgw Contacts', $tsvfilename);
}
elseif($download == 'on')
{ {
// filename, default application/octet-stream, length of file, default nocache True // filename, default application/octet-stream, length of file, default nocache True
$this->browser->content_header($tsvfilename,'application/x-octet-stream',strlen($buffer)); $this->browser->content_header($tsvfilename,'application/x-octet-stream',strlen($buffer));
@ -251,18 +246,18 @@
} }
else else
{ {
$GLOBALS['egw']->common->phpgw_header(); $GLOBALS['phpgw']->common->phpgw_header();
echo parse_navbar(); echo parse_navbar();
echo "<pre>\n"; echo "<pre>\n";
echo $buffer; echo $buffer;
echo "\n</pre>\n"; echo "\n</pre>\n";
echo '<a href="'.$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiXport.export') . '">' . lang('OK') . '</a>'; echo '<a href="'.$GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uiXport.export') . '">' . lang('OK') . '</a>';
$GLOBALS['egw']->common->phpgw_footer(); $GLOBALS['phpgw']->common->phpgw_footer();
} }
} }
else else
{ {
$GLOBALS['egw']->common->phpgw_header(); $GLOBALS['phpgw']->common->phpgw_header();
echo parse_navbar(); echo parse_navbar();
set_time_limit(0); set_time_limit(0);
@ -300,11 +295,11 @@
$this->template->set_var('lang_export_instructions',lang('Download export file (Uncheck to debug output in browser)')); $this->template->set_var('lang_export_instructions',lang('Download export file (Uncheck to debug output in browser)'));
$this->template->set_var('lang_select',lang('Select the type of conversion:')); $this->template->set_var('lang_select',lang('Select the type of conversion:'));
$this->template->set_var('cat_link',$this->cat_option($this->cat_id,False,False)); $this->template->set_var('cat_link',$this->cat_option($this->cat_id,False,False));
$this->template->set_var('cancel_url',$GLOBALS['egw']->link('/addressbook/index.php')); $this->template->set_var('cancel_url',$GLOBALS['phpgw']->link('/addressbook/index.php'));
$this->template->set_var('navbar_bg',$GLOBALS['egw_info']['theme']['navbar_bg']); $this->template->set_var('navbar_bg',$GLOBALS['phpgw_info']['theme']['navbar_bg']);
$this->template->set_var('navbar_text',$GLOBALS['egw_info']['theme']['navbar_text']); $this->template->set_var('navbar_text',$GLOBALS['phpgw_info']['theme']['navbar_text']);
$this->template->set_var('export_text',lang('Export from Addressbook')); $this->template->set_var('export_text',lang('Export from Addressbook'));
$this->template->set_var('action_url',$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiXport.export')); $this->template->set_var('action_url',$GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uiXport.export'));
$this->template->set_var('filename',lang('Export file name')); $this->template->set_var('filename',lang('Export file name'));
$this->template->set_var('conv',$conv); $this->template->set_var('conv',$conv);
$this->template->set_var('debug',lang('')); $this->template->set_var('debug',lang(''));
@ -317,7 +312,7 @@
$this->template->set_var('cat_id',$this->cat_id); $this->template->set_var('cat_id',$this->cat_id);
$this->template->pparse('out','export'); $this->template->pparse('out','export');
$GLOBALS['egw']->common->phpgw_footer(); $GLOBALS['phpgw']->common->phpgw_footer();
} }
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -26,27 +26,27 @@
{ {
if (!$only_bo) if (!$only_bo)
{ {
$GLOBALS['egw']->template = CreateObject('phpgwapi.Template',PHPGW_APP_TPL); $GLOBALS['phpgw']->template = CreateObject('phpgwapi.Template',PHPGW_APP_TPL);
$GLOBALS['egw']->nextmatchs = CreateObject('phpgwapi.nextmatchs'); $GLOBALS['phpgw']->nextmatchs = CreateObject('phpgwapi.nextmatchs');
} }
$this->config = CreateObject('phpgwapi.config','addressbook'); $this->config = CreateObject('phpgwapi.config','addressbook');
} }
function index() function index()
{ {
if(!$GLOBALS['egw']->acl->check('run',1,'admin')) if(!$GLOBALS['phpgw']->acl->check('run',1,'admin'))
{ {
$GLOBALS['egw']->common->phpgw_header(); $GLOBALS['phpgw']->common->phpgw_header();
echo parse_navbar(); echo parse_navbar();
echo lang('access not permitted'); echo lang('access not permitted');
$GLOBALS['egw']->common->phpgw_exit(); $GLOBALS['phpgw']->common->phpgw_exit();
} }
$GLOBALS['egw']->template->set_file(array( $GLOBALS['phpgw']->template->set_file(array(
'field_list_t' => 'listfields.tpl', 'field_list_t' => 'listfields.tpl',
'field_list' => 'listfields.tpl' 'field_list' => 'listfields.tpl'
)); ));
$GLOBALS['egw']->template->set_block('field_list_t','field_list','list'); $GLOBALS['phpgw']->template->set_block('field_list_t','field_list','list');
$field = $_POST['field']; $field = $_POST['field'];
$start = $_POST['start'] ? $_POST['start'] : $_GET['start']; $start = $_POST['start'] ? $_POST['start'] : $_GET['start'];
@ -60,14 +60,14 @@
. '<input type="hidden" name="start" value="' . $start . '">' . "\n" . '<input type="hidden" name="start" value="' . $start . '">' . "\n"
. '<input type="hidden" name="filter" value="' . $filter . '">' . "\n"; . '<input type="hidden" name="filter" value="' . $filter . '">' . "\n";
$GLOBALS['egw']->template->set_var('lang_action',lang('Custom Fields')); $GLOBALS['phpgw']->template->set_var('lang_action',lang('Custom Fields'));
$GLOBALS['egw']->template->set_var('add_action',$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uifields.add')); $GLOBALS['phpgw']->template->set_var('add_action',$GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uifields.add'));
$GLOBALS['egw']->template->set_var('lang_add',lang('Add')); $GLOBALS['phpgw']->template->set_var('lang_add',lang('Add'));
$GLOBALS['egw']->template->set_var('title_fields',lang('addressbook').' - '.lang('Custom Fields')); $GLOBALS['phpgw']->template->set_var('title_fields',lang('addressbook').' - '.lang('Custom Fields'));
$GLOBALS['egw']->template->set_var('lang_search',lang('Search')); $GLOBALS['phpgw']->template->set_var('lang_search',lang('Search'));
$GLOBALS['egw']->template->set_var('actionurl',$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uifields.index')); $GLOBALS['phpgw']->template->set_var('actionurl',$GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uifields.index'));
$GLOBALS['egw']->template->set_var('lang_done',lang('Done')); $GLOBALS['phpgw']->template->set_var('lang_done',lang('Done'));
$GLOBALS['egw']->template->set_var('doneurl',$GLOBALS['egw']->link('/admin/index.php')); $GLOBALS['phpgw']->template->set_var('doneurl',$GLOBALS['phpgw']->link('/admin/index.php'));
if(!$start) if(!$start)
{ {
@ -82,28 +82,28 @@
$fields = $this->read_custom_fields($start,$limit,$query,$sort); $fields = $this->read_custom_fields($start,$limit,$query,$sort);
$total_records = count($fields); $total_records = count($fields);
$GLOBALS['egw']->common->phpgw_header(); $GLOBALS['phpgw']->common->phpgw_header();
echo parse_navbar(); echo parse_navbar();
$GLOBALS['egw']->template->set_var('left',$GLOBALS['egw']->nextmatchs->left('/index.php',$start,$total_records,'menuaction=addressbook.uifields.index')); $GLOBALS['phpgw']->template->set_var('left',$GLOBALS['phpgw']->nextmatchs->left('/index.php',$start,$total_records,'menuaction=addressbook.uifields.index'));
$GLOBALS['egw']->template->set_var('right',$GLOBALS['egw']->nextmatchs->right('/index.php',$start,$total_records,'menuaction=addressbook.uifields.index')); $GLOBALS['phpgw']->template->set_var('right',$GLOBALS['phpgw']->nextmatchs->right('/index.php',$start,$total_records,'menuaction=addressbook.uifields.index'));
$GLOBALS['egw']->template->set_var('lang_showing',$GLOBALS['egw']->nextmatchs->show_hits($total_records,$start)); $GLOBALS['phpgw']->template->set_var('lang_showing',$GLOBALS['phpgw']->nextmatchs->show_hits($total_records,$start));
$GLOBALS['egw']->template->set_var('th_bg',$GLOBALS['egw_info']['theme']['th_bg']); $GLOBALS['phpgw']->template->set_var('th_bg',$GLOBALS['phpgw_info']['theme']['th_bg']);
$GLOBALS['egw']->template->set_var('sort_field',$GLOBALS['egw']->nextmatchs->show_sort_order($sort,'name',$order,'/index.php',lang('Name')),'menuaction=addressbook.uifields.index'); $GLOBALS['phpgw']->template->set_var('sort_field',$GLOBALS['phpgw']->nextmatchs->show_sort_order($sort,'name',$order,'/index.php',lang('Name')),'menuaction=addressbook.uifields.index');
$GLOBALS['egw']->template->set_var('lang_edit',lang('Edit')); $GLOBALS['phpgw']->template->set_var('lang_edit',lang('Edit'));
$GLOBALS['egw']->template->set_var('lang_delete',lang('Delete')); $GLOBALS['phpgw']->template->set_var('lang_delete',lang('Delete'));
for($i=0;$i<count($fields);$i++) for($i=0;$i<count($fields);$i++)
{ {
$tr_color = $GLOBALS['egw']->nextmatchs->alternate_row_color($tr_color); $tr_color = $GLOBALS['phpgw']->nextmatchs->alternate_row_color($tr_color);
$GLOBALS['egw']->template->set_var(tr_color,$tr_color); $GLOBALS['phpgw']->template->set_var(tr_color,$tr_color);
$field = $fields[$i]['name']; $field = $fields[$i]['name'];
$title = $fields[$i]['title']; $title = $fields[$i]['title'];
$GLOBALS['egw']->template->set_var('cfield',$title); $GLOBALS['phpgw']->template->set_var('cfield',$title);
$params = array( $params = array(
'menuaction' => 'addressbook.uifields.edit', 'menuaction' => 'addressbook.uifields.edit',
@ -114,27 +114,27 @@
'order' => $order, 'order' => $order,
'filter' => $filter 'filter' => $filter
); );
$GLOBALS['egw']->template->set_var('edit',$GLOBALS['egw']->link('/index.php',$params)); $GLOBALS['phpgw']->template->set_var('edit',$GLOBALS['phpgw']->link('/index.php',$params));
$GLOBALS['egw']->template->set_var('lang_edit_entry',lang('Edit')); $GLOBALS['phpgw']->template->set_var('lang_edit_entry',lang('Edit'));
$params['menuaction'] = 'addressbook.uifields.delete'; $params['menuaction'] = 'addressbook.uifields.delete';
$GLOBALS['egw']->template->set_var('delete',$GLOBALS['egw']->link('/index.php',$params)); $GLOBALS['phpgw']->template->set_var('delete',$GLOBALS['phpgw']->link('/index.php',$params));
$GLOBALS['egw']->template->set_var('lang_delete_entry',lang('Delete')); $GLOBALS['phpgw']->template->set_var('lang_delete_entry',lang('Delete'));
$GLOBALS['egw']->template->parse('list','field_list',True); $GLOBALS['phpgw']->template->parse('list','field_list',True);
} }
$GLOBALS['egw']->template->parse('out','field_list_t',True); $GLOBALS['phpgw']->template->parse('out','field_list_t',True);
$GLOBALS['egw']->template->p('out'); $GLOBALS['phpgw']->template->p('out');
} }
function add() function add()
{ {
if(!$GLOBALS['egw']->acl->check('run',1,'admin')) if(!$GLOBALS['phpgw']->acl->check('run',1,'admin'))
{ {
$GLOBALS['egw']->common->phpgw_header(); $GLOBALS['phpgw']->common->phpgw_header();
echo parse_navbar(); echo parse_navbar();
echo lang('access not permitted'); echo lang('access not permitted');
$GLOBALS['egw']->common->phpgw_exit(); $GLOBALS['phpgw']->common->phpgw_exit();
} }
$field = stripslashes($_POST['field']); $field = stripslashes($_POST['field']);
@ -144,9 +144,9 @@
$sort = $_POST['sort']; $sort = $_POST['sort'];
$submit = $_POST['submit']; $submit = $_POST['submit'];
$GLOBALS['egw']->template->set_file(array('form' => 'field_form.tpl')); $GLOBALS['phpgw']->template->set_file(array('form' => 'field_form.tpl'));
$GLOBALS['egw']->template->set_block('form','add','addhandle'); $GLOBALS['phpgw']->template->set_block('form','add','addhandle');
$GLOBALS['egw']->template->set_block('form','edit','edithandle'); $GLOBALS['phpgw']->template->set_block('form','edit','edithandle');
if($submit) if($submit)
{ {
@ -169,49 +169,49 @@
} }
} }
$GLOBALS['egw']->common->phpgw_header(); $GLOBALS['phpgw']->common->phpgw_header();
echo parse_navbar(); echo parse_navbar();
if($errorcount) if($errorcount)
{ {
$GLOBALS['egw']->template->set_var('message',$GLOBALS['egw']->common->error_list($error)); $GLOBALS['phpgw']->template->set_var('message',$GLOBALS['phpgw']->common->error_list($error));
} }
if(($submit) && (!$error) && (!$errorcount)) if(($submit) && (!$error) && (!$errorcount))
{ {
$GLOBALS['egw']->template->set_var('message',lang('Field %1 has been added !', $field_name)); $GLOBALS['phpgw']->template->set_var('message',lang('Field %1 has been added !', $field_name));
} }
if((!$submit) && (!$error) && (!$errorcount)) if((!$submit) && (!$error) && (!$errorcount))
{ {
$GLOBALS['egw']->template->set_var('message',''); $GLOBALS['phpgw']->template->set_var('message','');
} }
$GLOBALS['egw']->template->set_var('title_fields',lang('Add Custom Field')); $GLOBALS['phpgw']->template->set_var('title_fields',lang('Add Custom Field'));
$GLOBALS['egw']->template->set_var('actionurl',$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uifields.add')); $GLOBALS['phpgw']->template->set_var('actionurl',$GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uifields.add'));
$GLOBALS['egw']->template->set_var('doneurl',$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uifields.index')); $GLOBALS['phpgw']->template->set_var('doneurl',$GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uifields.index'));
$GLOBALS['egw']->template->set_var('hidden_vars','<input type="hidden" name="field" value="' . $field . '">'); $GLOBALS['phpgw']->template->set_var('hidden_vars','<input type="hidden" name="field" value="' . $field . '">');
$GLOBALS['egw']->template->set_var('lang_name',lang('Field name')); $GLOBALS['phpgw']->template->set_var('lang_name',lang('Field name'));
$GLOBALS['egw']->template->set_var('lang_add',lang('Add')); $GLOBALS['phpgw']->template->set_var('lang_add',lang('Add'));
$GLOBALS['egw']->template->set_var('lang_reset',lang('Clear Form')); $GLOBALS['phpgw']->template->set_var('lang_reset',lang('Clear Form'));
$GLOBALS['egw']->template->set_var('lang_done',lang('Done')); $GLOBALS['phpgw']->template->set_var('lang_done',lang('Done'));
$GLOBALS['egw']->template->set_var('field_name',$field_name); $GLOBALS['phpgw']->template->set_var('field_name',$field_name);
$GLOBALS['egw']->template->set_var('edithandle',''); $GLOBALS['phpgw']->template->set_var('edithandle','');
$GLOBALS['egw']->template->set_var('addhandle',''); $GLOBALS['phpgw']->template->set_var('addhandle','');
$GLOBALS['egw']->template->pparse('out','form'); $GLOBALS['phpgw']->template->pparse('out','form');
$GLOBALS['egw']->template->pparse('addhandle','add'); $GLOBALS['phpgw']->template->pparse('addhandle','add');
} }
function edit() function edit()
{ {
if(!$GLOBALS['egw']->acl->check('run',1,'admin')) if(!$GLOBALS['phpgw']->acl->check('run',1,'admin'))
{ {
$GLOBALS['egw']->common->phpgw_header(); $GLOBALS['phpgw']->common->phpgw_header();
echo parse_navbar(); echo parse_navbar();
echo lang('access not permitted'); echo lang('access not permitted');
$GLOBALS['egw']->common->phpgw_exit(); $GLOBALS['phpgw']->common->phpgw_exit();
} }
$field = stripslashes($_POST['field'] ? $_POST['field'] : $_GET['field']); $field = stripslashes($_POST['field'] ? $_POST['field'] : $_GET['field']);
@ -223,12 +223,12 @@
if(!$field) if(!$field)
{ {
Header('Location: ' . $GLOBALS['egw']->link('/index.php',"menuaction=addressbook.uifields.index&sort=$sort&query=$query&start=$start")); Header('Location: ' . $GLOBALS['phpgw']->link('/index.php',"menuaction=addressbook.uifields.index&sort=$sort&query=$query&start=$start"));
} }
$GLOBALS['egw']->template->set_file(array('form' => 'field_form.tpl')); $GLOBALS['phpgw']->template->set_file(array('form' => 'field_form.tpl'));
$GLOBALS['egw']->template->set_block('form','add','addhandle'); $GLOBALS['phpgw']->template->set_block('form','add','addhandle');
$GLOBALS['egw']->template->set_block('form','edit','edithandle'); $GLOBALS['phpgw']->template->set_block('form','edit','edithandle');
$hidden_vars = '<input type="hidden" name="sort" value="' . $sort . '">' . "\n" $hidden_vars = '<input type="hidden" name="sort" value="' . $sort . '">' . "\n"
. '<input type="hidden" name="query" value="' . $query . '">' . "\n" . '<input type="hidden" name="query" value="' . $query . '">' . "\n"
@ -249,20 +249,20 @@
} }
} }
$GLOBALS['egw']->common->phpgw_header(); $GLOBALS['phpgw']->common->phpgw_header();
echo parse_navbar(); echo parse_navbar();
if($errorcount) if($errorcount)
{ {
$GLOBALS['egw']->template->set_var('message',$GLOBALS['egw']->common->error_list($error)); $GLOBALS['phpgw']->template->set_var('message',$GLOBALS['phpgw']->common->error_list($error));
} }
if(($submit) && (!$error) && (!$errorcount)) if(($submit) && (!$error) && (!$errorcount))
{ {
$GLOBALS['egw']->template->set_var('message',lang('Field %1 has been updated !', $field_name)); $GLOBALS['phpgw']->template->set_var('message',lang('Field %1 has been updated !', $field_name));
} }
if((!$submit) && (!$error) && (!$errorcount)) if((!$submit) && (!$error) && (!$errorcount))
{ {
$GLOBALS['egw']->template->set_var('message',''); $GLOBALS['phpgw']->template->set_var('message','');
} }
if($submit) if($submit)
@ -272,39 +272,39 @@
else else
{ {
$fields = $this->read_custom_fields($start,$limit,$field); $fields = $this->read_custom_fields($start,$limit,$field);
$field = $GLOBALS['egw']->strip_html($fields[0]['title']); $field = $GLOBALS['phpgw']->strip_html($fields[0]['title']);
$fn = $fields[0]['name']; $fn = $fields[0]['name'];
} }
$GLOBALS['egw']->template->set_var('title_fields',lang('Edit Custom Field')); $GLOBALS['phpgw']->template->set_var('title_fields',lang('Edit Custom Field'));
$GLOBALS['egw']->template->set_var('actionurl',$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uifields.edit')); $GLOBALS['phpgw']->template->set_var('actionurl',$GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uifields.edit'));
$GLOBALS['egw']->template->set_var('deleteurl',$GLOBALS['egw']->link('/index.php',"menuaction=addressbook.uifields.delete&field=$fn&start=$start&query=$query&sort=$sort")); $GLOBALS['phpgw']->template->set_var('deleteurl',$GLOBALS['phpgw']->link('/index.php',"menuaction=addressbook.uifields.delete&field=$fn&start=$start&query=$query&sort=$sort"));
$GLOBALS['egw']->template->set_var('doneurl',$GLOBALS['egw']->link('/index.php',"menuaction=addressbook.uifields.index&start=$start&query=$query&sort=$sort")); $GLOBALS['phpgw']->template->set_var('doneurl',$GLOBALS['phpgw']->link('/index.php',"menuaction=addressbook.uifields.index&start=$start&query=$query&sort=$sort"));
$GLOBALS['egw']->template->set_var('hidden_vars',$hidden_vars); $GLOBALS['phpgw']->template->set_var('hidden_vars',$hidden_vars);
$GLOBALS['egw']->template->set_var('lang_name',lang('Field name')); $GLOBALS['phpgw']->template->set_var('lang_name',lang('Field name'));
$GLOBALS['egw']->template->set_var('lang_done',lang('Done')); $GLOBALS['phpgw']->template->set_var('lang_done',lang('Done'));
$GLOBALS['egw']->template->set_var('lang_edit',lang('Edit')); $GLOBALS['phpgw']->template->set_var('lang_edit',lang('Edit'));
$GLOBALS['egw']->template->set_var('lang_delete',lang('Delete')); $GLOBALS['phpgw']->template->set_var('lang_delete',lang('Delete'));
$GLOBALS['egw']->template->set_var('field_name',$field); $GLOBALS['phpgw']->template->set_var('field_name',$field);
$GLOBALS['egw']->template->set_var('edithandle',''); $GLOBALS['phpgw']->template->set_var('edithandle','');
$GLOBALS['egw']->template->set_var('addhandle',''); $GLOBALS['phpgw']->template->set_var('addhandle','');
$GLOBALS['egw']->template->pparse('out','form'); $GLOBALS['phpgw']->template->pparse('out','form');
$GLOBALS['egw']->template->pparse('edithandle','edit'); $GLOBALS['phpgw']->template->pparse('edithandle','edit');
} }
function delete() function delete()
{ {
if(!$GLOBALS['egw']->acl->check('run',1,'admin')) if(!$GLOBALS['phpgw']->acl->check('run',1,'admin'))
{ {
$GLOBALS['egw']->common->phpgw_header(); $GLOBALS['phpgw']->common->phpgw_header();
echo parse_navbar(); echo parse_navbar();
echo lang('access not permitted'); echo lang('access not permitted');
$GLOBALS['egw']->common->phpgw_exit(); $GLOBALS['phpgw']->common->phpgw_exit();
} }
$field = urldecode($_POST['field'] ? $_POST['field'] : $_GET['field']); $field = urldecode($_POST['field'] ? $_POST['field'] : $_GET['field']);
@ -315,17 +315,17 @@
if(!$field) if(!$field)
{ {
Header('Location: ' . $GLOBALS['egw']->link('/index.php','menuaction=addressbook.uifields.index')); Header('Location: ' . $GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uifields.index'));
} }
if($_POST['confirm']) if($_POST['confirm'])
{ {
$this->save_custom_field($field); $this->save_custom_field($field);
Header('Location: ' . $GLOBALS['egw']->link('/index.php',"menuaction=addressbook.uifields.index&start=$start&query=$query&sort=$sort")); Header('Location: ' . $GLOBALS['phpgw']->link('/index.php',"menuaction=addressbook.uifields.index&start=$start&query=$query&sort=$sort"));
} }
else else
{ {
$GLOBALS['egw']->common->phpgw_header(); $GLOBALS['phpgw']->common->phpgw_header();
echo parse_navbar(); echo parse_navbar();
$hidden_vars = '<input type="hidden" name="sort" value="' . $sort . '">' . "\n" $hidden_vars = '<input type="hidden" name="sort" value="' . $sort . '">' . "\n"
@ -334,15 +334,15 @@
. '<input type="hidden" name="start" value="' . $start .'">' . "\n" . '<input type="hidden" name="start" value="' . $start .'">' . "\n"
. '<input type="hidden" name="field" value="' . $field .'">' . "\n"; . '<input type="hidden" name="field" value="' . $field .'">' . "\n";
$GLOBALS['egw']->template->set_file(array('field_delete' => 'delete_common.tpl')); $GLOBALS['phpgw']->template->set_file(array('field_delete' => 'delete_common.tpl'));
$GLOBALS['egw']->template->set_var('messages',lang('Are you sure you want to delete this field?')); $GLOBALS['phpgw']->template->set_var('messages',lang('Are you sure you want to delete this field?'));
$nolinkf = $GLOBALS['egw']->link('/index.php',"menuaction=addressbook.uifields.index&field_id=$field_id&start=$start&query=$query&sort=$sort"); $nolinkf = $GLOBALS['phpgw']->link('/index.php',"menuaction=addressbook.uifields.index&field_id=$field_id&start=$start&query=$query&sort=$sort");
$nolink = '<a href="' . $nolinkf . '">' . lang('No') . '</a>'; $nolink = '<a href="' . $nolinkf . '">' . lang('No') . '</a>';
$GLOBALS['egw']->template->set_var('no',$nolink); $GLOBALS['phpgw']->template->set_var('no',$nolink);
$yeslinkf = $GLOBALS['egw']->link('/index.php','menuaction=addressbook.uifieldsdelete&field_id=' . $field_id . '&confirm=True'); $yeslinkf = $GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uifieldsdelete&field_id=' . $field_id . '&confirm=True');
$yeslinkf = '<form method="POST" name="yesbutton" action="' . $GLOBALS['egw']->link('/index.php','menuaction=addressbook.uifields.delete') . '">' $yeslinkf = '<form method="POST" name="yesbutton" action="' . $GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uifields.delete') . '">'
. $hidden_vars . $hidden_vars
. '<input type="hidden" name="field_id" value="' . $field_id . '">' . '<input type="hidden" name="field_id" value="' . $field_id . '">'
. '<input type="hidden" name="confirm" value="True">' . '<input type="hidden" name="confirm" value="True">'
@ -351,9 +351,9 @@
$yeslink = '<a href="' . $yeslinkf . '">' . lang('Yes') . '</a>'; $yeslink = '<a href="' . $yeslinkf . '">' . lang('Yes') . '</a>';
$yeslink = $yeslinkf; $yeslink = $yeslinkf;
$GLOBALS['egw']->template->set_var('yes',$yeslink); $GLOBALS['phpgw']->template->set_var('yes',$yeslink);
$GLOBALS['egw']->template->pparse('out','field_delete'); $GLOBALS['phpgw']->template->pparse('out','field_delete');
} }
} }

View File

@ -34,7 +34,7 @@
function uivcard() function uivcard()
{ {
$this->template = &$GLOBALS['egw']->template; $this->template = &$GLOBALS['phpgw']->template;
$this->contacts = CreateObject('phpgwapi.contacts'); $this->contacts = CreateObject('phpgwapi.contacts');
$this->browser = CreateObject('phpgwapi.browser'); $this->browser = CreateObject('phpgwapi.browser');
$this->vcard = CreateObject('phpgwapi.vcard'); $this->vcard = CreateObject('phpgwapi.vcard');
@ -51,13 +51,13 @@
$ab_id = $this->bo->add_vcard($uploadedfile); $ab_id = $this->bo->add_vcard($uploadedfile);
if($ab_id) if($ab_id)
{ {
Header('Location: ' . $GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.view&ab_id=' . $ab_id)); Header('Location: ' . $GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uiaddressbook.view&ab_id=' . $ab_id));
} }
} }
$GLOBALS['egw']->common->phpgw_header(); $GLOBALS['phpgw']->common->phpgw_header();
echo parse_navbar(); echo parse_navbar();
echo '<body bgcolor="' . $GLOBALS['egw_info']['theme']['bg_color'] . '">'; echo '<body bgcolor="' . $GLOBALS['phpgw_info']['theme']['bg_color'] . '">';
if($action == 'GetFile') if($action == 'GetFile')
{ {
@ -68,7 +68,7 @@
$this->template->set_var('lang_load_vcard', lang('load vcard')); $this->template->set_var('lang_load_vcard', lang('load vcard'));
$this->template->set_var('vcard_header','<p>&nbsp;<b>' . lang('Address book - VCard in') . '</b><hr><p>'); $this->template->set_var('vcard_header','<p>&nbsp;<b>' . lang('Address book - VCard in') . '</b><hr><p>');
$this->template->set_var('action_url',$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uivcard.in')); $this->template->set_var('action_url',$GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uivcard.in'));
$this->template->set_var('lang_access',lang('Access')); $this->template->set_var('lang_access',lang('Access'));
$this->template->set_var('lang_groups',lang('Which groups')); $this->template->set_var('lang_groups',lang('Which groups'));
$this->template->set_var('access_option',$access_option); $this->template->set_var('access_option',$access_option);
@ -76,7 +76,7 @@
$this->template->pparse('out','vcardin'); $this->template->pparse('out','vcardin');
$GLOBALS['egw']->common->phpgw_footer(); $GLOBALS['phpgw']->common->phpgw_footer();
} }
function out() function out()
@ -87,24 +87,24 @@
if($nolname || $nofname) if($nolname || $nofname)
{ {
$GLOBALS['egw']->common->phpgw_header(); $GLOBALS['phpgw']->common->phpgw_header();
echo parse_navbar(); echo parse_navbar();
} }
if(!$ab_id) if(!$ab_id)
{ {
Header('Location: ' . $GLOBALS['egw']->link('/addressbook/index.php')); Header('Location: ' . $GLOBALS['phpgw']->link('/addressbook/index.php'));
$GLOBALS['egw']->common->phpgw_exit(); $GLOBALS['phpgw']->common->phpgw_exit();
} }
// First, make sure they have permission to this entry // First, make sure they have permission to this entry
$check = $this->bo->read_entry(array('id' => $ab_id, 'fields' => array('owner' => 'owner'))); $check = $this->bo->read_entry(array('id' => $ab_id, 'fields' => array('owner' => 'owner')));
$perms = $this->contacts->check_perms($this->contacts->grants[$check[0]['owner']],PHPGW_ACL_READ); $perms = $this->contacts->check_perms($this->contacts->grants[$check[0]['owner']],PHPGW_ACL_READ);
if((!$perms) && ($check[0]['owner'] != $GLOBALS['egw_info']['user']['account_id'])) if((!$perms) && ($check[0]['owner'] != $GLOBALS['phpgw_info']['user']['account_id']))
{ {
Header("Location: " . $GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.get_list')); Header("Location: " . $GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uiaddressbook.get_list'));
$GLOBALS['egw']->common->phpgw_exit(); $GLOBALS['phpgw']->common->phpgw_exit();
} }
$extrafields = array('address2' => 'address2'); $extrafields = array('address2' => 'address2');
@ -134,11 +134,11 @@
if($lastname == '') if($lastname == '')
{ {
/* Run away here. */ /* Run away here. */
Header('Location: ' . $GLOBALS['egw']->link('/index.php',"menuaction=addressbook.uivcard.out&nolname=1&ab_id=$ab_id")); Header('Location: ' . $GLOBALS['phpgw']->link('/index.php',"menuaction=addressbook.uivcard.out&nolname=1&ab_id=$ab_id"));
} }
if($firstname == '') if($firstname == '')
{ {
Header('Location: ' . $GLOBALS['egw']->link('/index.php',"menuaction=addressbook.uivcard.out&nofname=1&ab_id=$ab_id")); Header('Location: ' . $GLOBALS['phpgw']->link('/index.php',"menuaction=addressbook.uivcard.out&nofname=1&ab_id=$ab_id"));
} }
if($email) if($email)
@ -177,7 +177,7 @@
$this->browser->content_header($filename,'text/x-vcard'); $this->browser->content_header($filename,'text/x-vcard');
echo $entry; echo $entry;
exit; exit;
//$GLOBALS['egw']->common->exit; //$GLOBALS['phpgw']->common->exit;
} /* !nolname && !nofname */ } /* !nolname && !nofname */
if($nofname) if($nofname)
@ -185,7 +185,7 @@
echo '<br><br><center>'; echo '<br><br><center>';
echo lang("This person's first name was not in the address book.") .'<br>'; echo lang("This person's first name was not in the address book.") .'<br>';
echo lang('Vcards require a first name entry.') . '<br><br>'; echo lang('Vcards require a first name entry.') . '<br><br>';
echo '<a href="' . $GLOBALS['egw']->link('/addressbook/index.php', echo '<a href="' . $GLOBALS['phpgw']->link('/addressbook/index.php',
"order=$order&start=$start&filter=$filter&query=$query&sort=$sort&cat_id=$cat_id") . '">' . lang('OK') . '</a>'; "order=$order&start=$start&filter=$filter&query=$query&sort=$sort&cat_id=$cat_id") . '">' . lang('OK') . '</a>';
echo '</center>'; echo '</center>';
} }
@ -195,14 +195,14 @@
echo '<br><br><center>'; echo '<br><br><center>';
echo lang("This person's last name was not in the address book.") . '<br>'; echo lang("This person's last name was not in the address book.") . '<br>';
echo lang('Vcards require a last name entry.') . '<br><br>'; echo lang('Vcards require a last name entry.') . '<br><br>';
echo '<a href="' . $GLOBALS['egw']->link('/addressbook/index.php', echo '<a href="' . $GLOBALS['phpgw']->link('/addressbook/index.php',
"order=$order&start=$start&filter=$filter&query=$query&sort=$sort&cat_id=$cat_id") . '">' . lang('OK') . '</a>'; "order=$order&start=$start&filter=$filter&query=$query&sort=$sort&cat_id=$cat_id") . '">' . lang('OK') . '</a>';
echo '</center>'; echo '</center>';
} }
if($nolname || $nofname) if($nolname || $nofname)
{ {
//$GLOBALS['egw']->common->phpgw_footer(); //$GLOBALS['phpgw']->common->phpgw_footer();
} }
} }
} }

View File

@ -1,160 +0,0 @@
<?php
// This file defines a set of functions and an associative array.
// The key of the array corresponds to a header in the source
// export file and the value of the array item will be used in
// the creation of the output file.
//
// The array need not be in any order and any fields not defined will
// not be transferred. If the val='+', the value will be appended to
// the previous field and any text after the '+' will be appended
// before the value. For example, the following would add a comma and
// a space between LastName and FirstName and store it in FullName:
//
// array("LastName" => "FullName","FirstName" => "+, ");
//
// Also start with a '#' symbol and a comma separated list will be
// turned into a number of the same entries.
class export_conv
{
var $currentrecord = array(); //used for buffering to allow uid lines to go first
var $id;
//list of all id's
var $ids = array();
var $type = 'ldif';
var $export = array(
'title' => 'title',
'n_given' => 'givenname',
'n_family' => 'sn',
'fn' => 'cn',
'org_name' => 'o',
'org_unit' => 'ou',
'adr_one_street' => 'postaladdress',
'address2' => 'mozillaPostalAddress2',
'adr_one_locality' => 'l',
'adr_one_region' => 'st',
'adr_one_postalcode' => 'postalcode',
'adr_one_countryname' => 'c',
'adr_two_street' => 'homepostaladdress',
'adr_two_locality' => 'mozillahomelocalityname',
'adr_two_region' => 'mozillahomestate',
'adr_two_postalcode' => 'mozillahomepostalcode',
'adr_two_countryname' => 'mozillahomecountryname',
'tel_work' => 'telephonenumber',
'tel_home' => 'homephone',
'tel_fax' => 'facsimiletelephonenumber',
'ophone' => 'custom1',
'tel_cell' => 'mobile',
'note' => 'description',
'tel_pager' => 'pagerp',
'email' => 'mail',
'url' => 'workurl'
);
// This will store the contacts object
var $contacts = '';
// Read full list of user's contacts only to get id's for each
function export_start_file($buffer,$ncat_id='')
{
$this->id = -1;
if($ncat_id)
{
$filter = 'tid=n,cat_id=' . $ncat_id;
}
else
{
$filter = 'tid=n';
}
$this->contacts = CreateObject('phpgwapi.contacts');
$tmp = $this->contacts->read('','',array('id'=>'id'),'',$filter);
for($i=0;$i<count($tmp);$i++)
{
$this->ids[$i] = $tmp[$i]['id'];
}
// $ids is now an array of all id's for this user, e.g. $ids[0] = 21, etc...
// $buffer is still empty
return $buffer;
}
// Read each entry
function export_start_record($buffer)
{
$this->id++;
$top = $this->contacts->read_single_entry($this->ids[$this->id],$this->qfields);
$this->currentrecord = $top[0];
return $buffer;
}
// Read each attribute, populate buffer
// name/value are the fields from the export array above
function export_new_attrib($buffer,$name,$value)
{
if($this->export[$name])
{
if(strstr($value,"\n"))
{
$value = ': '.base64_encode($value);
}
else
{
$value = ' '.$value;
}
$buffer[$this->id][$this->export[$name]] = $value;
//echo '<br>'.$this->id.' - '.$this->export[$name].': '.$buffer[$this->id][$this->export[$name]];
}
return $buffer;
}
// Tack on some extra values
function export_end_record($buffer)
{
$buffer[$this->id]['dn'] = 'cn='.$buffer[$this->id]['cn'].',mail='.$buffer[$this->id]['mail'];
$buffer[$this->id]['xmozillauseconferenceserver'] = '0';
$buffer[$this->id]['xmozillanickname'] = '';
$buffer[$this->id]['xmozillausehtmlmail'] = 'False';
if($buffer[$this->id]['ophone'])
{
$buffer[$this->id]['xmozillaanyphone'] = $buffer[$this->id]['ophone'];
}
else
{
$buffer[$this->id]['xmozillaanyphone'] = $buffer[$this->id]['telephonenumber'];
}
//echo '<br>'.$this->id.' - '.$buffer[$this->id]['dn'];
return $buffer;
}
function export_end_file($buffer)
{
reset($this->ids);
for($i=0;$i<count($this->ids);$i++)
{
$entries .= 'dn: ' . $buffer[$i]['dn'] . "\n";
reset($this->export);
while(list($name,$value)=each($this->export))
{
if($value != 'dn')
{
$entries .= $value . ":" . $buffer[$i][$value] . "\n";
}
}
$entries .= 'xmozillauseconferenceserver: ' . $buffer[$i]['xmozillauseconferenceserver'] . "\n";
$entries .= 'xmozillanickname: ' . $buffer[$i]['xmozillanickname'] . "\n";
$entries .= 'xmozillausehtmlmail: ' . $buffer[$i]['xmozillausehtmlmail'] . "\n";
$entries .= 'xmozillaanyphone: ' . $buffer[$i]['xmozillaanyphone'] . "\n";
$entries .= 'objectClass: person' . "\n";
$entries .= 'objectClass: account' . "\n";
$entries .= 'objectClass: organizationalPerson' . "\n";
$entries .= 'objectClass: posixAccount' . "\n";
$entries .= 'objectClass: inetOrgPerson' . "\n";
$entries .= 'objectClass: shadowAccount' . "\n";
$entries .= "\n";
}
$buffer = $entries;
return $buffer;
}
}
?>

View File

@ -84,10 +84,6 @@
'email_home' => 'email_home' 'email_home' => 'email_home'
); );
/* This will store the contacts and vcard objects */
var $contacts = '';
var $vcard = '';
/* Read full list of user's contacts only to get id's for each */ /* Read full list of user's contacts only to get id's for each */
function export_start_file($buffer,$ncat_id='') function export_start_file($buffer,$ncat_id='')
{ {

View File

@ -1,155 +0,0 @@
<?php
// This file defines a set of functions and an associative array.
// The key of the array corresponds to a header in the source
// export file and the value of the array item will be used in
// the creation of the output file.
//
// The array need not be in any order and any fields not defined will
// not be transferred. If the val='+', the value will be appended to
// the previous field and any text after the '+' will be appended
// before the value. For example, the following would add a comma and
// a space between LastName and FirstName and store it in FullName:
//
// array("LastName" => "FullName","FirstName" => "+, ");
//
// Also start with a '#' symbol and a comma separated list will be
// turned into a number of the same entries.
class export_conv
{
var $currentrecord = array(); //used for buffering to allow uid lines to go first
var $id;
//list of all id's
var $ids = array();
var $type = 'ldif';
var $export= array(
'title' => 'title',
'n_given' => 'givenname',
'n_family' => 'sn',
'fn' => 'cn',
'org_name' => 'o',
'org_unit' => 'ou',
'adr_one_street' => 'streetaddress',
'adr_one_locality' => 'locality',
'adr_one_region' => 'st',
'adr_one_postalcode' => 'postalcode',
'adr_one_countryname' => 'countryname',
'tel_work' => 'telephonenumber',
'tel_home' => 'homephone',
'tel_fax' => 'facsimiletelephonenumber',
'ophone' => 'xmozillaanyphone',
'tel_cell' => 'cellphone',
'note' => 'description',
'ophone' => 'ophone',
'tel_pager' => 'pagerphone',
'email' => 'mail',
'url' => 'homeurl',
);
// This will store the contacts object
var $contacts = '';
// Read full list of user's contacts only to get id's for each
function export_start_file($buffer,$ncat_id='')
{
$this->id=-1;
if ($ncat_id)
{
$filter = 'tid=n,cat_id=' . $ncat_id;
}
else
{
$filter = 'tid=n';
}
$this->contacts = CreateObject('phpgwapi.contacts');
$tmp = $this->contacts->read('','',array('id'=>'id'),'',$filter);
for ($i=0;$i<count($tmp);$i++)
{
$this->ids[$i] = $tmp[$i]['id'];
}
// $ids is now an array of all id's for this user, e.g. $ids[0] = 21, etc...
// $buffer is still empty
return $buffer;
}
// Read each entry
function export_start_record($buffer)
{
$this->id++;
$top = $this->contacts->read_single_entry($this->ids[$this->id],$this->qfields);
$this->currentrecord = $top[0];
return $buffer;
}
// Read each attribute, populate buffer
// name/value are the fields from the export array above
function export_new_attrib($buffer,$name,$value)
{
if ($this->export[$name])
{
if (strstr($value,"\n"))
{
$value = ': '.base64_encode($value);
}
else
{
$value = ' '.$value;
}
$buffer[$this->id][$this->export[$name]] = $value;
//echo '<br>'.$this->id.' - '.$this->export[$name].': '.$buffer[$this->id][$this->export[$name]];
}
return $buffer;
}
// Tack on some extra values
function export_end_record($buffer)
{
$buffer[$this->id]['dn'] = 'cn='.$buffer[$this->id]['cn'].',mail='.$buffer[$this->id]['mail'];
$buffer[$this->id]['xmozillauseconferenceserver'] = '0';
$buffer[$this->id]['xmozillanickname'] = '';
$buffer[$this->id]['xmozillausehtmlmail'] = 'False';
if ($buffer[$this->id]['ophone'])
{
$buffer[$this->id]['xmozillaanyphone'] = $buffer[$this->id]['ophone'];
}
else
{
$buffer[$this->id]['xmozillaanyphone'] = $buffer[$this->id]['telephonenumber'];
}
//echo '<br>'.$this->id.' - '.$buffer[$this->id]['dn'];
return $buffer;
}
function export_end_file($buffer)
{
reset($this->ids);
for ($i=0;$i<count($this->ids);$i++)
{
$entries .= 'dn: ' . $buffer[$i]['dn'] . "\n";
reset($this->export);
while (list($name,$value)=each($this->export))
{
if ($value != 'dn')
{
$entries .= $value . ":" . $buffer[$i][$value] . "\n";
}
}
$entries .= 'xmozillauseconferenceserver: ' . $buffer[$i]['xmozillauseconferenceserver'] . "\n";
$entries .= 'xmozillanickname: ' . $buffer[$i]['xmozillanickname'] . "\n";
$entries .= 'xmozillausehtmlmail: ' . $buffer[$i]['xmozillausehtmlmail'] . "\n";
$entries .= 'xmozillaanyphone: ' . $buffer[$i]['xmozillaanyphone'] . "\n";
$entries .= 'objectClass: person' . "\n";
$entries .= 'objectClass: account' . "\n";
$entries .= 'objectClass: organizationalPerson' . "\n";
$entries .= 'objectClass: posixAccount' . "\n";
$entries .= 'objectClass: inetOrgPerson' . "\n";
$entries .= 'objectClass: shadowAccount' . "\n";
$entries .= "\n";
}
$buffer = $entries;
return $buffer;
}
}
?>

View File

@ -1,148 +0,0 @@
<?php
// This file defines a set of functions and an associative array.
// The key of the array corresponds to a header in the source
// export file and the value of the array item will be used in
// the creation of the output file.
//
// An exported Outlook file looks like this:
//
// Title<tab>First Name<tab>Middle Name<tab>Last Name<tab>...
// <tab>Patrick<tab><tab>Walsh<tab>...
//
// Where the first line explains each optional field. This is what
// will be looked up in the key.
//
// The array need not be in any order and any fields not defined will
// not be transferred. If the val='+', the value will be appended to
// the previous field and any text after the '+' will be appended
// before the value. For example, the following would add a comma and
// a space between LastName and FirstName and store it in FullName:
//
// array("LastName" => "FullName","FirstName" => "+, ");
//
// Also start with a '#' symbol and a comma separated list will be
// turned into a number of the same entries.
class export_conv
{
var $currentrecord = array(); //used for buffering to allow uid lines to go first
var $id;
var $type = 'csv';
var $export = array(
'title' => 'Anrede',
'n_given' => 'Vorname',
'n_middle' => 'Weitere Vornamen',
'n_family' => 'Nachname',
'n_suffix' => 'Suffix',
'org_name' => 'Firma',
'org_unit' => 'Abteilung',
'adr_one_street' => 'Straße geschäftlich',
'address2' => 'Straße geschäftlich 2',
'address3' => 'Straße geschäftlich 3',
'adr_one_locality' => 'Ort geschäftlich',
'adr_one_region' => 'Region geschäftlich',
'adr_one_postalcode' => 'Postleitzahl geschäftlich',
'adr_one_countryname' => 'Land geschäftlich',
'adr_two_street' => 'Straße privat',
'adr_two_locality' => 'Ort privat',
'adr_two_region' => 'Region privat',
'adr_two_postalcode' => 'Postleitzahl privat',
'adr_two_countryname' => 'Land privat',
'tel_fax' => 'Fax geschäftlich',
'tel_work' => 'Telefon geschäftlich',
'tel_msg' => 'Telefon Assistent',
'tel_car' => 'Autotelefon',
'tel_isdn' => 'ISDN',
'tel_home' => 'Telefon privat',
'tel_cell' => 'Mobiltelefon',
'tel_pager' => 'Pager',
'ophone' => 'Telefon geschäftlich 2',
'bday' => 'Geburtstag',
'email' => 'E-Mail-Adresse',
'email_home' => 'E-Mail 2: Adresse',
'url' => 'Webseite',
'note' => 'Notizen'
);
// This will store the contacts object
var $contacts = '';
function export_start_file($buffer,$ncat_id='')
{
$this->id=-1;
if ($ncat_id)
{
$filter = 'tid=n,cat_id='.$ncat_id;
}
else
{
$filter = 'tid=n';
}
$this->contacts = CreateObject('phpgwapi.contacts');
$tmp = $this->contacts->read('','',array('id'=>'id'),'',$filter);
for ($i=0;$i<count($tmp);$i++)
{
$this->ids[$i] = $tmp[$i]['id'];
}
// $ids is now an array of all id's for this user, e.g. $ids[0] = 21, etc...
// $buffer is still empty
return $buffer;
}
// Read each entry
function export_start_record($buffer)
{
$this->id++;
$top = $this->contacts->read_single_entry($this->ids[$this->id],$this->qfields);
$this->currentrecord = $top[0];
return $buffer;
}
// Read each attribute, populate buffer
// name/value are the fields from the export array above
function export_new_attrib($buffer,$name,$value)
{
if ($this->export[$name])
{
$buffer[$this->id][$this->export[$name]] = $value;
//echo '<br>'.$this->id.' - '.$this->export[$name].': '.$buffer[$this->id][$this->export[$name]];
}
return $buffer;
}
// Tack on some extra values
function export_end_record($buffer)
{
return $buffer;
}
function export_end_file($buffer)
{
// Build the header for the file (field list)
reset($this->export);
while (list($name,$value)=each($this->export))
{
$entries .= $value . ',';
}
$entries = substr($entries,0,-1);
$entries .= "\r\n";
// Now add all the data
reset($this->ids);
for ($i=0;$i<count($this->ids);$i++)
{
reset($this->export);
while (list($name,$value)=each($this->export))
{
$entries .= $buffer[$i][$value] . ',';
}
$entries = substr($entries,0,-1);
$entries .= "\r\n";
}
$buffer = $entries;
return $buffer;
}
}
?>

View File

@ -1,148 +0,0 @@
<?php
// This file defines a set of functions and an associative array.
// The key of the array corresponds to a header in the source
// export file and the value of the array item will be used in
// the creation of the output file.
//
// An exported Outlook file looks like this:
//
// Title<tab>First Name<tab>Middle Name<tab>Last Name<tab>...
// <tab>Patrick<tab><tab>Walsh<tab>...
//
// Where the first line explains each optional field. This is what
// will be looked up in the key.
//
// The array need not be in any order and any fields not defined will
// not be transferred. If the val='+', the value will be appended to
// the previous field and any text after the '+' will be appended
// before the value. For example, the following would add a comma and
// a space between LastName and FirstName and store it in FullName:
//
// array("LastName" => "FullName","FirstName" => "+, ");
//
// Also start with a '#' symbol and a comma separated list will be
// turned into a number of the same entries.
class export_conv
{
var $currentrecord = array(); //used for buffering to allow uid lines to go first
var $id;
var $type = 'csv';
var $export = array(
'title' => 'Title',
'n_given' => 'First Name',
'n_middle' => 'Middle Name',
'n_family' => 'Last Name',
'n_suffix' => 'Suffix',
'org_name' => 'Company',
'org_unit' => 'Department',
'adr_one_street' => 'Business Street',
'address2' => 'Business Street 2',
'address3' => 'Business Street 3',
'adr_one_locality' => 'Business City',
'adr_one_region' => 'Business State',
'adr_one_postalcode' => 'Business Postal Code',
'adr_one_countryname' => 'Business Country',
'adr_two_street' => 'Home Street',
'adr_two_locality' => 'Home City',
'adr_two_region' => 'Home State',
'adr_two_postalcode' => 'Home Postal Code',
'adr_two_countryname' => 'Home Country',
'tel_fax' => 'Business Fax',
'tel_work' => 'Business Phone',
'tel_msg' => "Assistant's Phone",
'tel_car' => 'Car Phone',
'tel_isdn' => 'ISDN',
'tel_home' => 'Home Phone',
'tel_cell' => 'Mobile Phone',
'tel_pager' => 'Pager',
'ophone' => 'Business Phone 2',
'bday' => 'Birthday',
'email' => 'E-mail Address',
'email_home' => 'E-mail Address 2',
'url' => 'Web Page',
'note' => 'Notes'
);
// This will store the contacts object
var $contacts = '';
function export_start_file($buffer,$ncat_id='')
{
$this->id=-1;
if ($ncat_id)
{
$filter = 'tid=n,cat_id='.$ncat_id;
}
else
{
$filter = 'tid=n';
}
$this->contacts = CreateObject('phpgwapi.contacts');
$tmp = $this->contacts->read('','',array('id'=>'id'),'',$filter);
for ($i=0;$i<count($tmp);$i++)
{
$this->ids[$i] = $tmp[$i]['id'];
}
// $ids is now an array of all id's for this user, e.g. $ids[0] = 21, etc...
// $buffer is still empty
return $buffer;
}
// Read each entry
function export_start_record($buffer)
{
$this->id++;
$top = $this->contacts->read_single_entry($this->ids[$this->id],$this->qfields);
$this->currentrecord = $top[0];
return $buffer;
}
// Read each attribute, populate buffer
// name/value are the fields from the export array above
function export_new_attrib($buffer,$name,$value)
{
if ($this->export[$name])
{
$buffer[$this->id][$this->export[$name]] = $value;
//echo '<br>'.$this->id.' - '.$this->export[$name].': '.$buffer[$this->id][$this->export[$name]];
}
return $buffer;
}
// Tack on some extra values
function export_end_record($buffer)
{
return $buffer;
}
function export_end_file($buffer)
{
// Build the header for the file (field list)
reset($this->export);
while (list($name,$value)=each($this->export))
{
$entries .= $value . ',';
}
$entries = substr($entries,0,-1);
$entries .= "\r\n";
// Now add all the data
reset($this->ids);
for ($i=0;$i<count($this->ids);$i++)
{
reset($this->export);
while (list($name,$value)=each($this->export))
{
$entries .= $buffer[$i][$value] . ',';
}
$entries = substr($entries,0,-1);
$entries .= "\r\n";
}
$buffer = $entries;
return $buffer;
}
}
?>

View File

@ -1,136 +0,0 @@
<?php
// This file defines a set of functions and an associative array.
// The key of the array corresponds to a header in the source
// export file and the value of the array item will be used in
// the creation of the output file.
//
// The array need not be in any order and any fields not defined will
// not be transferred. If the val='+', the value will be appended to
// the previous field and any text after the '+' will be appended
// before the value. For example, the following would add a comma and
// a space between LastName and FirstName and store it in FullName:
//
// array("LastName" => "FullName","FirstName" => "+, ");
//
// Also start with a '#' symbol and a comma separated list will be
// turned into a number of the same entries.
class export_conv
{
var $currentrecord = array(); //used for buffering to allow uid lines to go first
var $id;
//list of all id's
var $ids = array();
var $type = 'pdb';
var $export = array(
'title' => 'Title',
'n_given' => 'First',
'n_middle' => 'Middle',
'n_family' => 'Last',
'n_suffix' => 'Suffix',
'org_name' => 'Company',
'org_unit' => 'Dept',
'adr_one_street' => 'Bus. Street',
'address2' => 'Bus. St. 2',
'address3' => 'Bus. St. 3',
'adr_one_locality' => 'Bus. City',
'adr_one_region' => 'Bus. State',
'adr_one_postalcode' => 'Bus. Postal Code',
'adr_one_countryname' => 'Bus. Country',
'adr_two_street' => 'Home Street',
'adr_two_locality' => 'Home City',
'adr_two_region' => 'Home State',
'adr_two_postalcode' => 'Home Postal Code',
'adr_two_countryname' => 'Home Country',
'tel_fax' => 'Bus. Fax',
'tel_work' => 'Bus. Phone',
'tel_msg' => "Assistant's Phone",
'tel_car' => 'Car Phone',
'tel_isdn' => 'ISDN',
'tel_home' => 'Home Phone',
'tel_cell' => 'Mobile Phone',
'tel_pager' => 'Pager',
'ophone' => 'Bus. Phone2',
'bday' => 'Birthday',
'email' => 'Email Addr',
'email_home' => 'Email Addr2',
'url' => 'URL',
'note' => 'Notes'
);
// This will store the contacts object
var $contacts = '';
// Read full list of user's contacts only to get id's for each
function export_start_file($buffer,$ncat_id='')
{
$this->id=-1;
if ($ncat_id)
{
$filter = 'tid=n,cat_id='.$ncat_id;
}
else
{
$filter = 'tid=n';
}
$this->contacts = CreateObject('phpgwapi.contacts');
$tmp = $this->contacts->read('','',array('id'=>'id'),'',$filter);
for ($i=0;$i<count($tmp);$i++)
{
$this->ids[$i] = $tmp[$i]['id'];
}
// $ids is now an array of all id's for this user, e.g. $ids[0] = 21, etc...
// $buffer is still empty
return $buffer;
}
// Read each entry
function export_start_record($buffer)
{
$this->id++;
$top = $this->contacts->read_single_entry($this->ids[$this->id],$this->qfields);
$this->currentrecord = $top[0];
return $buffer;
}
// Read each attribute, populate buffer array
// name/value are the fields from the export array above
function export_new_attrib($buffer,$name,$value)
{
if ($this->export[$name])
{
$buffer[$this->id][$this->export[$name]] = $value;
//echo '<br>'.$this->id.' - '.$this->export[$name].': '.$buffer[$this->id][$this->export[$name]];
}
return $buffer;
}
// Tack on some extra values - none for this file
function export_end_record($buffer)
{
return $buffer;
}
// Parse it all into a string
function export_end_file($buffer)
{
reset($this->ids);
for($i=0;$i<count($this->ids);$i++)
{
$j = $i + 1;
reset($this->export);
$entries .= "#" . $j . ":" . $buffer[$i]['n_given'] . $buffer[$i]['n_family'] . "\r\n";
while (list($name,$value)=each($this->export))
{
$entries .= $value . ":\t" . $buffer[$i][$value] . "\n";
}
$entries .= "\r\n";
}
return $entries;
}
}
?>

View File

@ -1,178 +0,0 @@
<?php
// This file defines a set of functions and an associative array.
// The key of the array corresponds to a header in the source
// export file and the value of the array item will be used in
// the creation of the output file.
//
// The array need not be in any order and any fields not defined will
// not be transferred. If the val='+', the value will be appended to
// the previous field and any text after the '+' will be appended
// before the value. For example, the following would add a comma and
// a space between LastName and FirstName and store it in FullName:
//
// array("LastName" => "FullName","FirstName" => "+, ");
//
// Also start with a '#' symbol and a comma separated list will be
// turned into a number of the same entries.
class export_conv
{
var $currentrecord = array(); //used for buffering to allow uid lines to go first
var $id;
//list of all id's
var $ids = array();
var $type = 'ldif';
var $export = array(
'id' => 'uidnumber',
'lid' => 'uid',
'tid' => 'phpgwcontacttypeid',
'owner' => 'phpgwcontactowner',
'access' => 'phpgwcontactaccess',
'fn' => 'cn', // 'prefix given middle family suffix'
'n_given' => 'givenname', // firstname
'n_family' => 'sn', // lastname
'n_middle' => 'phpgwmiddlename',
'n_prefix' => 'phpgwprefix',
'n_suffix' => 'phpgwsuffix',
'sound' => 'phpgwaudio',
'bday' => 'phpgwbirthday',
'note' => 'description',
'tz' => 'phpgwtz',
'geo' => 'phpgwgeo',
'url' => 'phpgwurl',
'pubkey' => 'phpgwpublickey',
'org_name' => 'o', // company
'org_unit' => 'ou', // division
'title' => 'title',
'adr_one_street' => 'streetaddress',
'adr_one_locality' => 'localityname',
'adr_one_region' => 'st',
'adr_one_postalcode' => 'postalcode',
'adr_one_countryname' => 'co',
'adr_one_type' => 'phpgwadronetype', // address is domestic/intl/postal/parcel/work/home
'label' => 'phpgwaddresslabel', // address label
'adr_two_street' => 'phpgwadrtwostreet',
'adr_two_locality' => 'phpgwadrtwolocality',
'adr_two_region' => 'phpgwadrtworegion',
'adr_two_postalcode' => 'phpgwadrtwopostalcode',
'adr_two_countryname' => 'phpgwadrtwocountryname',
'adr_two_type' => 'phpgwadrtwotype', // address is domestic/intl/postal/parcel/work/home
'tel_work' => 'telephonenumber',
'tel_home' => 'homephone',
'tel_voice' => 'phpgwvoicetelephonenumber',
'tel_fax' => 'facsimiletelephonenumber',
'tel_msg' => 'phpgwmsgtelephonenumber',
'tel_cell' => 'phpgwcelltelephonenumber',
'tel_pager' => 'phpgwpagertelephonenumber',
'tel_bbs' => 'phpgwbbstelephonenumber',
'tel_modem' => 'phpgwmodemtelephonenumber',
'tel_car' => 'phpgwmobiletelephonenumber',
'tel_isdn' => 'phpgwisdnphonenumber',
'tel_video' => 'phpgwvideophonenumber',
'tel_prefer' => 'phpgwpreferphone', // home, work, voice, etc
'email' => 'mail',
'email_type' => 'phpgwmailtype', //'INTERNET','CompuServe',etc...
'email_home' => 'phpgwmailhome',
'email_home_type' => 'phpgwmailhometype' //'INTERNET','CompuServe',etc...
);
// This will store the contacts object
var $contacts = '';
// Read full list of user's contacts only to get id's for each
function export_start_file($buffer,$ncat_id='')
{
$this->id=-1;
if ($ncat_id)
{
$filter = 'tid=n,cat_id='.$ncat_id;
}
else
{
$filter = 'tid=n';
}
$this->contacts = CreateObject('phpgwapi.contacts');
$tmp = $this->contacts->read('','',array('id'=>'id'),'',$filter);
for ($i=0;$i<count($tmp);$i++)
{
$this->ids[$i] = $tmp[$i]['id'];
}
// $ids is now an array of all id's for this user, e.g. $ids[0] = 21, etc...
// $buffer is still empty
return $buffer;
}
// Read each entry
function export_start_record($buffer)
{
$this->id++;
$top = $this->contacts->read_single_entry($this->ids[$this->id],$this->qfields);
$this->currentrecord = $top[0];
return $buffer;
}
// Read each attribute, populate buffer
// name/value are the fields from the export array above
function export_new_attrib($buffer,$name,$value)
{
if ($this->export[$name] && ($value != '') )
{
$buffer[$this->id][$this->export[$name]] = $value;
//echo '<br>'.$this->id.' - '.$this->export[$name].': '.$buffer[$this->id][$this->export[$name]];
}
return $buffer;
}
// Tack on some extra values
function export_end_record($buffer)
{
if ($GLOBALS['phpgw_info']['server']['ldap_contact_context'])
{
$context = $GLOBALS['phpgw_info']['server']['ldap_contact_context'];
}
$time = gettimeofday();
$cn = str_replace(',','',$buffer[$this->id]['cn']);
$buffer[$this->id]['dn'] = 'uid='.time().$time['usec'].':'.$cn.','.$context;
$buffer[$this->id]['uid'] = time().$time['usec'];
if ($buffer[$this->id]['cn'])
{
$buffer[$this->id]['uid'] .= ':'.$buffer[$this->id]['cn'];
}
$buffer[$this->id]['description'] = ereg_replace("\r\n",';',$buffer[$this->id]['description']);
//echo '<br>'.$this->id.' - '.$buffer[$this->id]['dn'];
return $buffer;
}
function export_end_file($buffer)
{
reset($this->ids);
for ($i=0;$i<count($this->ids);$i++)
{
$entries .= 'dn: '.$buffer[$i]['dn'] . "\n";
reset($this->export);
while (list($name,$value)=each($this->export))
{
if (($value != 'dn') && !empty($buffer[$i][$value]))
{
$tmp = str_replace(',','',$buffer[$i][$value]);
$entries .= $value . ': ' . $tmp . "\n";
}
}
$entries .= 'objectClass: person' . "\n";
$entries .= 'objectClass: organizationalPerson' . "\n";
# not needed for openldap > 2.1 anymore
#$entries .= 'objectClass: inetOrgPerson' . "\n";
$entries .= 'objectClass: phpgwContact' . "\n";
$entries .= "\n";
}
$buffer = $entries;
return $buffer;
}
}
?>

View File

@ -1,159 +0,0 @@
<?php
// This file defines a set of functions and an associative array.
// The key of the array corresponds to a header in the source
// export file and the value of the array item will be used in
// the creation of the output file.
//
// The array need not be in any order and any fields not defined will
// not be transferred. If the val='+', the value will be appended to
// the previous field and any text after the '+' will be appended
// before the value. For example, the following would add a comma and
// a space between LastName and FirstName and store it in FullName:
//
// array("LastName" => "FullName","FirstName" => "+, ");
//
// Also start with a '#' symbol and a comma separated list will be
// turned into a number of the same entries.
class export_conv
{
var $currentrecord = array(); //used for buffering to allow uid lines to go first
var $id;
//list of all id's
var $ids = array();
var $type = 'sql';
var $export= array(
'id' => 'id',
'lid' => 'lid',
'tid' => 'tid',
'owner' => 'owner',
'fn' => 'fn',
'n_given' => 'n_given',
'n_family' => 'n_family',
'n_middle' => 'n_middle',
'n_prefix' => 'n_prefix',
'n_suffix' => 'n_suffix',
'sound' => 'sound',
'bday' => 'bday',
'note' => 'note',
'tz' => 'tz',
'geo' => 'geo',
'url' => 'url',
'pubkey' => 'pubkey',
'org_name' => 'org_name',
'org_unit' => 'org_unit',
'title' => 'title',
'adr_one_street' => 'adr_one_street',
'adr_one_locality' => 'adr_one_locality',
'adr_one_region' => 'adr_one_region',
'adr_one_postalcode' => 'adr_one_postalcode',
'adr_one_countryname' => 'adr_one_countryname',
'adr_one_type' => 'adr_one_type',
'label' => 'label',
'adr_two_street' => 'adr_two_street',
'adr_two_locality' => 'adr_two_locality',
'adr_two_region' => 'adr_two_region',
'adr_two_postalcode' => 'adr_two_postalcode',
'adr_two_countryname' => 'adr_two_countryname',
'adr_two_type' => 'adr_two_type',
'tel_work' => 'tel_work',
'tel_home' => 'tel_home',
'tel_voice' => 'tel_voice',
'tel_fax' => 'tel_fax',
'tel_msg' => 'tel_msg',
'tel_cell' => 'tel_cell',
'tel_pager' => 'tel_pager',
'tel_bbs' => 'tel_bbs',
'tel_modem' => 'tel_modem',
'tel_car' => 'tel_car',
'tel_isdn' => 'tel_isdn',
'tel_video' => 'tel_video',
'tel_prefer' => 'tel_prefer',
'email' => 'email',
'email_type' => 'email_type',
'email_home' => 'email_home',
'email_home_type' => 'email_home_type'
);
// This will store the contacts object
var $contacts = '';
// Read full list of user's contacts only to get id's for each
function export_start_file($buffer,$ncat_id='')
{
$this->id=-1;
if ($ncat_id)
{
$filter = 'tid=n,cat_id=' . $ncat_id;
}
else
{
$filter = 'tid=n';
}
$this->contacts = CreateObject('phpgwapi.contacts');
$tmp = $this->contacts->read('','',array('id'=>'id'),'',$filter);
for ($i=0;$i<count($tmp);$i++)
{
$this->ids[$i] = $tmp[$i]['id'];
}
// $ids is now an array of all id's for this user, e.g. $ids[0] = 21, etc...
// $buffer is still empty
return $buffer;
}
// Read each entry
function export_start_record($buffer)
{
$this->id++;
$top = $this->contacts->read_single_entry($this->ids[$this->id],$this->qfields);
$this->currentrecord = $top[0];
return $buffer;
}
// Read each attribute, populate buffer array
// name/value are the fields from the export array above
function export_new_attrib($buffer,$name,$value)
{
if ($this->export[$name])
{
$buffer[$this->id][$this->export[$name]] = $value;
//echo '<br>'.$this->id.' - '.$this->export[$name].': '.$buffer[$this->id][$this->export[$name]];
}
return $buffer;
}
// Tack on some extra values - none for this file
function export_end_record($buffer)
{
return $buffer;
}
// Parse it all into a string
function export_end_file($buffer)
{
$top = 'INSERT INTO phpgw_addressbook(';
reset($this->ids);
for ($i=0;$i<count($this->ids);$i++)
{
reset($this->export);
$fields = $values = "";
while (list($name,$value) = each($this->export))
{
$fields .= $value . ",";
$values .= "'" . $buffer[$i][$value] . "',";
}
$fields = substr($fields,0,-1) . ")\n VALUES(";
$values = substr($values,0,-1) . ");\n";
$entries .= $top . $fields . $values;
}
$buffer = $entries;
return $buffer;
}
}
?>

View File

@ -1,176 +0,0 @@
<?php
/**************************************************************************\
* eGroupWare - addressbook *
* http://www.egroupware.org *
* Written by Joseph Engo <jengo@mail.com> *
* -------------------------------------------- *
* This program is free software; you can redistribute it and/or modify it *
* under the terms of the GNU General Public License as published by the *
* Free Software Foundation; either version 2 of the License, or (at your *
* option) any later version. *
\**************************************************************************/
/* $Id$ */
function formatted_list($name,$list,$id='',$default=False,$java=False)
{
if($java)
{
$jselect = ' onChange="this.form.submit();"';
}
$select = "\n" .'<select name="' . $name . '"' . $jselect . ">\n";
if($default)
{
$select .= '<option value="">' . lang('Please Select') . '</option>'."\n";
}
while(list($key,$val) = each($list))
{
$select .= '<option value="' . $key . '"';
if($key == $id && $id != '')
{
$select .= ' selected';
}
$select .= '>' . $val . '</option>'."\n";
}
$select .= '</select>'."\n";
$select .= '<noscript><input type="submit" name="' . $name . '_select" value="True"></noscript>' . "\n";
return $select;
}
/* Return a select form element with the categories option dialog in it */
function cat_option($cat_id='',$notall=False,$java=True,$multiple=False)
{
if($java)
{
$jselect = ' onChange="this.form.submit();"';
}
/* Setup all and none first */
$cats_link = "\n" .'<select name="cat_id'.($multiple?'[]':'').'"' .$jselect . ($multiple ? 'multiple size="3"' : '') . ">\n";
if(!$notall)
{
$cats_link .= '<option value=""';
if($cat_id == 'all')
{
$cats_link .= ' selected';
}
$cats_link .= '>'.lang("all").'</option>'."\n";
}
/* Get global and app-specific category listings */
$cats_link .= $GLOBALS['egw']->categories->formated_list('select','all',$cat_id,True);
$cats_link .= '</select>'."\n";
return $cats_link;
}
/* this cleans up the fieldnames for preferences */
function display_name($column)
{
$abc = array(
'fn' => 'full name',
'sound' => 'Sound',
'org_name' => 'company name',
'org_unit' => 'department',
'title' => 'title',
'n_prefix' => 'prefix',
'n_given' => 'first name',
'n_middle' => 'middle name',
'n_family' => 'last name',
'n_suffix' => 'suffix',
'label' => 'label',
'adr_one_street' => 'business street',
'adr_one_locality' => 'business city',
'adr_one_region' => 'business state',
'adr_one_postalcode' => 'business zip code',
'adr_one_countryname' => 'business country',
'adr_one_type' => 'business address type',
'adr_two_street' => 'home street',
'adr_two_locality' => 'home city',
'adr_two_region' => 'home state',
'adr_two_postalcode' => 'home zip code',
'adr_two_countryname' => 'home country',
'adr_two_type' => 'home address type',
'tz' => 'time zone',
'geo' => 'geo',
'tel_work' => 'business phone',
'tel_home' => 'home phone',
'tel_voice' => 'voice phone',
'tel_msg' => 'message phone',
'tel_fax' => 'fax',
'tel_pager' => 'pager',
'tel_cell' => 'mobile phone',
'tel_bbs' => 'bbs phone',
'tel_modem' => 'modem phone',
'tel_isdn' => 'isdn phone',
'tel_car' => 'car phone',
'tel_video' => 'video phone',
'tel_prefer' => 'preferred phone',
'email' => 'business email',
'email_type' => 'business email type',
'email_home' => 'home email',
'email_home_type' => 'home email type',
'address2' => 'address line 2',
'address3' => 'address line 3',
'ophone' => 'Other Phone',
'bday' => 'birthday',
'url' => 'url',
'pubkey' => 'public key',
'note' => 'notes'
);
if($abc[$column])
{
return lang($abc[$column]);
}
else
{
return;
}
}
function read_custom_fields()
{
$i = 0; $j = 0;
$fields = array();
@reset($GLOBALS['egw_info']['user']['preferences']['addressbook']);
while(list($col,$descr) = @each($GLOBALS['egw_info']['user']['preferences']['addressbook']))
{
if( substr($col,0,6) == 'extra_' )
{
$fields[$j]['name'] = str_replace('extra_','',$col);
$fields[$j]['name'] = str_replace(' ','_',$fields[$j]['name']);
$fields[$j]['id'] = $i;
if($query && ($fields[$j]['name'] != $query))
{
unset($fields[$j]['name']);
unset($fields[$j]['id']);
}
else
{
/* echo "<br>".$j.": '".$fields[$j]['name']."'"; */
$j++;
}
}
$i++;
}
@reset($fields);
return $fields;
}
function save_custom_field($old='',$new='')
{
$GLOBALS['egw']->preferences->read_repository($GLOBALS['egw_info']['user']['account_id']);
if($old)
{
$GLOBALS['egw']->preferences->delete('addressbook','extra_'.$old);
}
if($new)
{
$GLOBALS['egw']->preferences->add('addressbook','extra_'.$new);
}
$GLOBALS['egw']->preferences->save_repository(1);
}
?>

View File

@ -1,19 +0,0 @@
<?php
/**************************************************************************\
* eGroupWare *
* http://www.egroupware.org *
* Written by Joseph Engo <jengo@phpgroupware.org> *
* -------------------------------------------- *
* This program is free software; you can redistribute it and/or modify it *
* under the terms of the GNU General Public License as published by the *
* Free Software Foundation; either version 2 of the License, or (at your *
* option) any later version. *
\**************************************************************************/
// $Id$
$GLOBALS['pref']->change('addressbook','company','addressbook_True');
$GLOBALS['pref']->change('addressbook','lastname','addressbook_True');
$GLOBALS['pref']->change('addressbook','firstname','addressbook_True');
$GLOBALS['pref']->change('addressbook','default_category','');
?>

View File

@ -1,7 +0,0 @@
<?php
global $acl,$account_id;
// Add default acl to allow the new user to access their
// addressbook
// This file is not really needed or used at this time
$acl->add('addressbook','u_'.$account_id,1);
?>

View File

@ -1,25 +0,0 @@
<?php
/**************************************************************************\
* eGroupWare *
* http://www.egroupware.org *
* Written by Joseph Engo <jengo@phpgroupware.org> *
* -------------------------------------------- *
* This program is free software; you can redistribute it and/or modify it *
* under the terms of the GNU General Public License as published by the *
* Free Software Foundation; either version 2 of the License, or (at your *
* option) any later version. *
\**************************************************************************/
// $Id$
// $Source$
// Only Modify the $file and $title variables.....
$title = $appname;
$file = Array(
'Site Configuration' => $GLOBALS['egw']->link('/index.php','menuaction=admin.uiconfig.index&appname=' . $appname),
'Edit custom fields' => $GLOBALS['egw']->link('/index.php','menuaction=addressbook.uifields.index'),
'Global Categories' => $GLOBALS['egw']->link('/index.php','menuaction=admin.uicategories.index&appname=addressbook')
);
//Do not modify below this line
display_section($appname,$title,$file);
?>

View File

@ -1,54 +0,0 @@
<?php
/**************************************************************************\
* eGroupWare *
* http://www.egroupware.org *
* Written by Miles Lott <milos@groupwhere.org> *
* -------------------------------------------- *
* This program is free software; you can redistribute it and/or modify it *
* under the terms of the GNU General Public License as published by the *
* Free Software Foundation; either version 2 of the License, or (at your *
* option) any later version. *
\**************************************************************************/
/* $Id$ */
/*
Set a global flag to indicate this file was found by admin/config.php.
config.php will unset it after parsing the form values.
*/
$GLOBALS['egw_info']['server']['found_validation_hook'] = True;
/* Check a specific setting. Name must match the setting. */
function ldap_contact_context($value='')
{
if($value == $GLOBALS['egw_info']['server']['ldap_context'])
{
$GLOBALS['config_error'] = 'Contact context for ldap must be different from the context used for accounts';
}
elseif($value == $GLOBALS['egw_info']['server']['ldap_group_context'])
{
$GLOBALS['config_error'] = 'Contact context for ldap must be different from the context used for groups';
}
else
{
$GLOBALS['config_error'] = '';
}
}
/* Check all settings to validate input. Name must be 'final_validation' */
function final_validation($value='')
{
if($value['contact_repository'] == 'ldap' && !$value['ldap_contact_dn'])
{
$GLOBALS['config_error'] = 'Contact dn must be set';
}
elseif($value['contact_repository'] == 'ldap' && !$value['ldap_contact_context'])
{
$GLOBALS['config_error'] = 'Contact context must be set';
}
else
{
$GLOBALS['config_error'] = '';
}
}
?>

View File

@ -1,25 +0,0 @@
<?php
/**************************************************************************\
* eGroupWare *
* http://www.egroupware.org *
* Written by Joseph Engo <jengo@phpgroupware.org> *
* -------------------------------------------- *
* This program is free software; you can redistribute it and/or modify it *
* under the terms of the GNU General Public License as published by the *
* Free Software Foundation; either version 2 of the License, or (at your *
* option) any later version. *
\**************************************************************************/
/* $Id$ */
$contacts = CreateObject('phpgwapi.contacts');
if((int)$_POST['new_owner'] == 0)
{
$contacts->delete_all((int)$_POST['account_id']);
}
else
{
$contacts->change_owner((int)$_POST['account_id'],(int)$_POST['new_owner']);
}
?>

View File

@ -1,108 +0,0 @@
<?php
/**************************************************************************\
* eGroupWare - E-Mail *
* http://www.egroupware.org *
* -------------------------------------------- *
* This program is free software; you can redistribute it and/or modify it *
* under the terms of the GNU General Public License as published by the *
* Free Software Foundation; either version 2 of the License, or(at your *
* option) any later version. *
\**************************************************************************/
/* $Id$ */
$d1 = strtolower(substr(PHPGW_APP_INC,0,3));
if($d1 == 'htt' || $d1 == 'ftp' )
{
echo "Failed attempt to break in via an old Security Hole!<br>\n";
$GLOBALS['phpgw']->common->phpgw_exit();
}
unset($d1);
if($GLOBALS['phpgw_info']['user']['apps']['addressbook']
&& $GLOBALS['phpgw_info']['user']['preferences']['addressbook']['mainscreen_showbirthdays'])
{
echo "\n<!-- Birthday info -->\n";
$c = CreateObject('phpgwapi.contacts');
$qfields = array(
'n_given' => 'n_given',
'n_family' => 'n_family',
'bday' => 'bday'
);
$now = time() - ((60 * 60) * (int)$GLOBALS['phpgw_info']['user']['preferences']['common']['tz_offset']);
$today = $GLOBALS['phpgw']->common->show_date($now,'n/d/');
$bdays = $c->read(0,15,$qfields,$today,'tid=n','','',$GLOBALS['phpgw_info']['user']['account_id']);
$title = '<center><font color="#FFFFFF">'.lang('Birthdays').'</font></center>';
$portalbox = CreateObject('phpgwapi.listbox',
Array(
'title' => $title,
'primary' => $GLOBALS['phpgw_info']['theme']['navbar_bg'],
'secondary' => $GLOBALS['phpgw_info']['theme']['navbar_bg'],
'tertiary' => $GLOBALS['phpgw_info']['theme']['navbar_bg'],
'width' => '100%',
'outerborderwidth' => '0',
'header_background_image' => $GLOBALS['phpgw']->common->image($GLOBALS['phpgw']->common->get_tpl_dir('phpgwapi'),'bg_filler')
)
);
$app_id = $GLOBALS['phpgw']->applications->name2id('addressbook');
$GLOBALS['portal_order'][] = $app_id;
$var = Array(
'up' => Array('url' => '/set_box.php', 'app' => $app_id),
'down' => Array('url' => '/set_box.php', 'app' => $app_id),
'close' => Array('url' => '/set_box.php', 'app' => $app_id),
'question' => Array('url' => '/set_box.php', 'app' => $app_id),
'edit' => Array('url' => '/set_box.php', 'app' => $app_id)
);
while(list($key,$value) = each($var))
{
$portalbox->set_controls($key,$value);
}
$portalbox->data = Array();
while(list($key,$val) = @each($bdays))
{
if(substr($val['bday'],0,strlen($today)) == $today)
{
$portalbox->data[] = array(
'text' => lang("Today is %1's birthday!", $val['n_given'] . ' ' . $val['n_family']),
'link' => $GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uiaddressbook.view&ab_id=' . $val['id'])
);
}
// $tmp = '<a href="'
// . $GLOBALS['phpgw']->link('/addressbook/view.php','ab_id=' . $val['id']) . '">'
// . $val['n_given'] . ' ' . $val['n_family'] . '</a>';
// echo '<tr><td align="left">' . lang("Today is %1's birthday!", $tmp) . '</td></tr>' . "\n";
}
$tomorrow = $GLOBALS['phpgw']->common->show_date($now + 86400,'n/d/');
$bdays = $c->read(0,15,$qfields,$tomorrow,'tid=n','','',$GLOBALS['phpgw_info']['user']['account_id']);
while(list($key,$val) = @each($bdays))
{
if(substr($val['bday'],0,strlen($tomorrow)) == $tomorrow)
{
$portalbox->data[] = array(
'text' => lang("Tomorrow is %1's birthday.",$val['n_given'] . ' ' . $val['n_family']),
'link' => $GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uiaddressbook.view&ab_id='.$val['id'])
);
}
// $tmp = '<a href="'
// . $GLOBALS['phpgw']->link('/addressbook/view.php','ab_id=' . $val['id']) . '">'
// . $val['n_given'] . ' ' . $val["n_family"] . '</a>';
// echo '<tr><td align="left">' . lang("Tomorrow is %1's birthday.", $tmp) . '</td></tr>' . "\n";
}
if(count($portalbox->data))
{
echo $portalbox->draw();
}
unset($portalbox);
echo "\n<!-- Birthday info -->\n";
}
?>

View File

@ -1,66 +0,0 @@
<?php
/**************************************************************************\
* eGroupWare - Addressbook *
* http://www.egroupware.org *
* -------------------------------------------- *
* This program is free software; you can redistribute it and/or modify it *
* under the terms of the GNU General Public License as published by the *
* Free Software Foundation; either version 2 of the License, or (at your *
* option) any later version. *
\**************************************************************************/
/* $Id$ */
$d1 = strtolower(substr(PHPGW_APP_INC,0,3));
if($d1 == 'htt' || $d1 == 'ftp')
{
echo "Failed attempt to break in via an old Security Hole!<br>\n";
$GLOBALS['egw']->common->phpgw_exit();
}
unset($d1);
$tmp_app_inc = PHPGW_APP_INC;
define('PHPGW_APP_INC',$GLOBALS['egw']->common->get_inc_dir('addressbook'));
if($GLOBALS['egw_info']['user']['apps']['addressbook']
&& $GLOBALS['egw_info']['user']['preferences']['addressbook']['mainscreen_showbirthdays'])
{
echo "\n<!-- Birthday info -->\n";
$c = CreateObject('phpgwapi.contacts');
$qfields = array(
'n_given' => 'n_given',
'n_family' => 'n_family',
'bday' => 'bday'
);
$now = time() - ((60 * 60) * (int)$GLOBALS['egw_info']['user']['preferences']['common']['tz_offset']);
$today = $GLOBALS['egw']->common->show_date($now,'n/d/');
// echo $today."\n";
$bdays = $c->read(0,15,$qfields,$today,'tid=n','','',$GLOBALS['egw_info']['user']['account_id']);
while(list($key,$val) = @each($bdays))
{
$tmp = '<a href="'
. $GLOBALS['egw']->link('/.php','menuaction=addressbook.uiaddressbook.view&ab_id=' . $val['id']) . '">'
. $val['n_given'] . ' ' . $val['n_family'] . '</a>';
echo '<tr><td align="left">' . lang("Today is %1's birthday!", $tmp) . "</td></tr>\n";
}
$tomorrow = $GLOBALS['egw']->common->show_date($now + 86400,'n/d/');
// echo $tomorrow."\n";
$bdays = $c->read(0,15,$qfields,$tomorrow,'tid=n','','',$GLOBALS['egw_info']['user']['account_id']);
while(list($key,$val) = @each($bdays))
{
$tmp = '<a href="'
. $GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.view&ab_id=' . $val['id']) . '">'
. $val['n_given'] . ' ' . $val['n_family'] . '</a>';
echo '<tr><td align="left">' . lang("Tomorrow is %1's birthday.", $tmp) . "</td></tr>\n";
}
echo "\n<!-- Birthday info -->\n";
}
define('PHPGW_APP_INC',$tmp_app_inc);
?>

View File

@ -12,14 +12,15 @@
/* $Id$ */ /* $Id$ */
{ {
// Only Modify the $file and $title variables..... // Only Modify the $file and $title variables.....
$title = $appname; $title = $appname;
$file = Array( $file = array();
'Preferences' => $GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.preferences'), $file['Preferences'] = $GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uiaddressbook.preferences');
'Grant Access' => $GLOBALS['egw']->link('/index.php','menuaction=preferences.uiaclprefs.index&acl_app='.$appname), if(!$GLOBALS['phpgw_info']['server']['deny_user_grants_access'])
'Edit Categories' => $GLOBALS['egw']->link('/index.php','menuaction=preferences.uicategories.index&cats_app='.$appname . '&cats_level=True&global_cats=True') $file['Grant Access'] = $GLOBALS['phpgw']->link('/index.php','menuaction=preferences.uiaclprefs.index&acl_app='.$appname);
); $file['Edit Categories'] = $GLOBALS['phpgw']->link('/index.php','menuaction=preferences.uicategories.index&cats_app='.$appname . '&cats_level=True&global_cats=True');
//Do not modify below this line
//Do not modify below this line
display_section($appname,$title,$file); display_section($appname,$title,$file);
} }
?> ?>

View File

@ -23,33 +23,34 @@
display_sidebox can be called as much as you like display_sidebox can be called as much as you like
*/ */
$menu_title = $GLOBALS['egw_info']['apps'][$appname]['title'] . ' '. lang('Menu'); $menu_title = $GLOBALS['phpgw_info']['apps'][$appname]['title'] . ' '. lang('Menu');
$file = Array( $file = Array(
'Add'=>$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.add'), 'Add'=>$GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uiaddressbook.add'),
'_NewLine_', // give a newline '_NewLine_', // give a newline
'import contacts' => $GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiXport.import'), 'import contacts' => $GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uiXport.import'),
'export contacts' => $GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiXport.export') 'export contacts' => $GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uiXport.export')
); );
display_sidebox($appname,$menu_title,$file); display_sidebox($appname,$menu_title,$file);
if($GLOBALS['egw_info']['user']['apps']['preferences']) if($GLOBALS['phpgw_info']['user']['apps']['preferences'])
{ {
$menu_title = lang('Preferences'); $menu_title = lang('Preferences');
$file = Array( $file = array();
'Addressbook preferences'=>$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.preferences'), $file['Addressbook preferences'] = $GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uiaddressbook.preferences');
'Grant Access'=>$GLOBALS['egw']->link('/index.php','menuaction=preferences.uiaclprefs.index&acl_app=addressbook'), if(!$GLOBALS['phpgw_info']['server']['deny_user_grants_access'])
'Edit Categories' =>$GLOBALS['egw']->link('/index.php','menuaction=preferences.uicategories.index&cats_app=addressbook&cats_level=True&global_cats=True') $file['Grant Access'] = $GLOBALS['phpgw']->link('/index.php','menuaction=preferences.uiaclprefs.index&acl_app=addressbook');
); $file['Edit Categories'] = $GLOBALS['phpgw']->link('/index.php','menuaction=preferences.uicategories.index&cats_app=addressbook&cats_level=True&global_cats=True');
display_sidebox($appname,$menu_title,$file); display_sidebox($appname,$menu_title,$file);
} }
if ($GLOBALS['egw_info']['user']['apps']['admin']) if ($GLOBALS['phpgw_info']['user']['apps']['admin'])
{ {
$menu_title = lang('Administration'); $menu_title = lang('Administration');
$file = Array( $file = Array(
'Configuration'=>$GLOBALS['egw']->link('/index.php','menuaction=admin.uiconfig.index&appname=addressbook'), 'Configuration'=>$GLOBALS['phpgw']->link('/index.php','menuaction=admin.uiconfig.index&appname=addressbook'),
'Custom Fields'=>$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uifields.index'), 'Custom Fields'=>$GLOBALS['phpgw']->link('/index.php','menuaction=addressbook.uifields.index'),
'Global Categories' =>$GLOBALS['egw']->link('/index.php','menuaction=admin.uicategories.index&appname=addressbook') 'Global Categories' =>$GLOBALS['phpgw']->link('/index.php','menuaction=admin.uicategories.index&appname=addressbook')
); );
display_sidebox($appname,$menu_title,$file); display_sidebox($appname,$menu_title,$file);
} }

View File

@ -1,90 +0,0 @@
<?php
/*
This file defines a set of functions and an associative array.
The key of the array corresponds to a header in the source
import file and the value of the array item will be used in
the creation of the output file.
The array need not be in any order and any fields not defined will
not be transferred. If the val='+', the value will be appended to
the previous field and any text after the '+' will be appended
before the value. For example, the following would add a comma and
a space between LastName and FirstName and store it in FullName:
array('LastName' => 'FullName','FirstName' => '+, ');
Also start with a '#' symbol and a comma separated list will be
turned into a number of the same entries.
*/
/* $Id$ */
class import_conv
{
var $currentrecord = array(); /* used for buffering to allow uid lines to go first */
var $id;
var $type = 'vcard';
/* These will hold the class objects */
var $contacts = '';
var $vcard = '';
/* This will be populated via the vcard->import var */
var $import = array();
function import_start_file($buffer)
{
$this->id = 0;
$this->contacts = CreateObject('phpgwapi.contacts');
$this->vcard = CreateObject('phpgwapi.vcard');
$this->import = $this->vcard->import;
return $buffer;
}
function import_start_record($buffer)
{
++$this->id;
$this->currentrecord = array();
return $buffer;
}
function import_new_attrib($buffer,$name,$value)
{
$value = trim($value);
$value = str_replace('=0D=0A',"\n",$value);
/* echo '<br>'.$this->id.': '.$name.' => '.$value; */
$this->currentrecord += array($name => $value);
return $buffer;
}
function import_end_record($buffer)
{
$buffer[$this->id]='';
while ( list($name, $value) = each($this->currentrecord))
{
$buffer[$this->id][$name] = $value;
/* $buffer[$this->id]['private'] = $private; */
/* echo '<br>'.$name.' => '.$value; */
}
return $buffer;
}
function import_end_file($buffer,$access='private',$cat_id=0)
{
for ($i=1;$i<=count($buffer);$i++)
{
/*
Send the entire array to the vcard class in function.
It will parse the vcard fields and clean the array of extra
bogus values that get stuffed in.
*/
$entry = $this->vcard->in($buffer[$i]);
/* Now actually add the new entry */
$this->contacts->add($GLOBALS['phpgw_info']['user']['account_id'],$entry,$access,$cat_id);
}
$num = $i - 1;
return lang('Successfully imported %1 records into your addressbook.',$num);
}
}
?>

View File

@ -1,118 +0,0 @@
<?php
/*
This file defines a set of functions and an associative array.
The key of the array corresponds to a header in the source
import file and the value of the array item will be used in
the creation of the output file.
The array need not be in any order and any fields not defined will
not be transferred. If the val='+', the value will be appended to
the previous field and any text after the '+' will be appended
before the value. For example, the following would add a comma and
a space between LastName and FirstName and store it in FullName:
array('LastName' => 'FullName','FirstName' => '+, ');
Also start with a '#' symbol and a comma separated list will be
turned into a number of the same entries.
*/
/* $Id$ */
class import_conv
{
var $currentrecord = array(); /* used for buffering to allow uid lines to go first */
var $id;
var $type = 'ldif';
var $import = array(
'title' => 'title',
'givenname' => 'n_given',
'sn' => 'n_family',
'cn' => 'fn',
'o' => 'org_name',
'ou' => 'org_unit',
'streetaddress' => 'adr_one_street',
'postaladdress' => 'adr_one_street',
'mozillaPostalAddress2' => 'address2',
'locality' => 'adr_one_locality',
'l' => 'adr_one_locality',
'st' => 'adr_one_region',
'postalcode' => 'adr_one_postalcode',
'countryname' => 'adr_one_countryname',
'c' => 'adr_one_countryname',
'homepostaladdress' => 'adr_two_street',
'mozillahomelocalityname' => 'adr_two_locality',
'mozillahomestate' => 'adr_two_region',
'mozillahomepostalcode' => 'adr_two_postalcode',
'mozillahomecountryname' => 'adr_two_countryname',
'telephonenumber' => 'tel_work',
'homephone' => 'tel_home',
'facsimiletelephonenumber' => 'tel_fax',
'xmozillaanyphone' => 'ophone',
'mobile' => 'tel_cell',
'description' => 'note',
'pager' => 'tel_pager',
'mail' => 'email',
'homeurl' => 'url',
'workurl' => 'url'
);
function import_start_file($buffer)
{
return $buffer;
}
function import_start_record($buffer)
{
$top = array();
++$this->id;
$this->currentrecord = $top;
return $buffer;
}
function import_new_attrib($buffer,$name,$value)
{
/* chop leading space from value */
$value = trim($value);
$value = str_replace('\r','',$value);
/* echo '<br>'.$name.' => '.$value; */
$this->currentrecord += array($name => $value);
return $buffer;
}
function import_end_record($buffer)
{
$buffer[$this->id] = '';
while(list($name, $value) = each($this->currentrecord))
{
$buffer[$this->id][$name] = $value;
/* echo '<br>'.$this->id.': '.$name.' => '.$value; */
}
return $buffer;
}
function import_end_file($buffer,$access='private',$cat_id=0)
{
$contacts = CreateObject('phpgwapi.contacts');
/* echo '<br>'; */
for($i=1;$i<=count($buffer);$i++)
{
while(list($name,$value) = @each($buffer[$i]))
{
/* echo '<br>'.$i.': '.$name.' => '.$value; */
$entry[$i][$name] = $value;
}
$entry[$i]['email_type'] = 'INTERNET';
$entry[$i]['email_home_type'] = 'INTERNET';
$entry[$i]['adr_one_type'] = 'intl';
$entry[$i]['adr_two_type'] = 'intl';
/* echo '<br>'; */
$contacts->add($GLOBALS['phpgw_info']['user']['account_id'],$entry[$i],$access,$cat_id);
}
$num = $i - 1;
return lang('Successfully imported %1 records into your addressbook.',$num);
}
}
?>

View File

@ -1,113 +0,0 @@
<?php
/*
This file defines a set of functions and an associative array.
The key of the array corresponds to a header in the source
import file and the value of the array item will be used in
the creation of the output file.
The array need not be in any order and any fields not defined will
not be transferred. If the val='+', the value will be appended to
the previous field and any text after the '+' will be appended
before the value. For example, the following would add a comma and
a space between LastName and FirstName and store it in FullName:
array('LastName' => 'FullName','FirstName' => '+, ');
Also start with a '#' symbol and a comma separated list will be
turned into a number of the same entries.
*/
/* $Id$ */
class import_conv
{
var $currentrecord = array(); /* used for buffering to allow uid lines to go first */
var $id;
var $type = 'ldif';
var $import = array(
'title' => 'title',
'givenname' => 'n_given',
'sn' => 'n_family',
'cn' => 'fn',
'o' => 'org_name',
'ou' => 'org_unit',
'streetaddress' => 'adr_one_street',
'locality' => 'adr_one_locality',
'st' => 'adr_one_region',
'postalcode' => 'adr_one_postalcode',
'countryname' => 'adr_one_countryname',
'telephonenumber' => 'tel_work',
'homephone' => 'tel_home',
'facsimiletelephonenumber' => 'tel_fax',
'xmozillaanyphone' => 'ophone',
'cellphone' => 'tel_cell',
'description' => 'note',
'pagerphone' => 'tel_pager',
'mail' => 'email',
'homeurl' => 'url',
'xmozillauseconferenceserver' => '',
'xmozillanickname' => '',
'xmozillausehtmlmail' => '',
'modifytimestamp' => '',
'objectclass' => ''
);
function import_start_file($buffer)
{
return $buffer;
}
function import_start_record($buffer)
{
$top = array();
++$this->id;
$this->currentrecord = $top;
return $buffer;
}
function import_new_attrib($buffer,$name,$value)
{
/* chop leading space from value */
$value = trim($value);
$value = str_replace('\r','',$value);
/* echo '<br>'.$name.' => '.$value; */
$this->currentrecord += array($name => $value);
return $buffer;
}
function import_end_record($buffer)
{
$buffer[$this->id] = '';
while(list($name, $value) = each($this->currentrecord))
{
$buffer[$this->id][$name] = $value;
/* echo '<br>'.$this->id.': '.$name.' => '.$value; */
}
return $buffer;
}
function import_end_file($buffer,$access='private',$cat_id=0)
{
$contacts = CreateObject('phpgwapi.contacts');
/* echo '<br>'; */
for($i=1;$i<=count($buffer);$i++)
{
while(list($name,$value) = @each($buffer[$i]))
{
/* echo '<br>'.$i.': '.$name.' => '.$value; */
$entry[$i][$name] = $value;
}
$entry[$i]['email_type'] = 'INTERNET';
$entry[$i]['email_home_type'] = 'INTERNET';
$entry[$i]['adr_one_type'] = 'intl';
$entry[$i]['adr_two_type'] = 'intl';
/* echo '<br>'; */
$contacts->add($GLOBALS['phpgw_info']['user']['account_id'],$entry[$i],$access,$cat_id);
}
$num = $i - 1;
return lang('Successfully imported %1 records into your addressbook.',$num);
}
}
?>

View File

@ -1,182 +0,0 @@
<?php
// This file defines a set of functions and an associative array.
// The key of the array corresponds to a header in the source
// import file and the value of the array item will be used in
// the creation of the output file.
//
// An exported Outlook file looks like this:
//
// Title<tab>First Name<tab>Middle Name<tab>Last Name<tab>...
// <tab>Patrick<tab><tab>Walsh<tab>...
//
// Where the first line explains each optional field. This is what
// will be looked up in the key.
//
// The array need not be in any order and any fields not defined will
// not be transferred. If the val='+', the value will be appended to
// the previous field and any text after the '+' will be appended
// before the value. For example, the following would add a comma and
// a space between LastName and FirstName and store it in FullName:
//
// array('LastName' => 'FullName','FirstName' => '+, ');
//
// Also start with a '#' symbol and a comma separated list will be
// turned into a number of the same entries.
/* $Id$ */
class import_conv
{
var $currentrecord = array(); //used for buffering to allow uid lines to go first
var $id;
var $type = 'csv';
/* Thanks to knecke for the Outlook fields */
var $import = array(
'Anrede' => 'n_prefix',
'Vorname' => 'n_given',
'Weitere Vornamen' => 'n_middle',
'Nachname' => 'n_family',
'Suffix' => 'n_suffix',
'Firma' => 'org_name',
'Abteilung' => 'org_unit',
'Position' => 'title',
'Straße geschäftlich' => 'adr_one_street',
'Straße geschäftlich 2' => 'address2',
'Straße geschäftlich 3' => 'address3',
'Ort geschäftlich' => 'adr_one_locality',
'Region geschäftlich' => 'adr_one_region',
'Postleitzahl geschäftlich' => 'adr_one_postalcode',
'Land geschäftlich' => 'adr_one_countryname',
'Straße privat' => 'adr_two_street',
'Straße privat 2' => '',
'Straße privat 3' => '',
'Ort privat' => 'adr_two_locality',
'Region privat' => 'adr_two_region',
'Postleitzahl privat' => 'adr_two_postalcode',
'Land privat' => 'adr_two_countryname',
'Weitere Straße' => '',
'Weitere Straße 2' => '',
'Weitere Straße 3' => '',
'Weiterer Ort' => '',
'Weitere Region' => '',
'Weitere Postleitzahl' => '',
'Weiteres Land' => '',
'Telefon Assistent' => 'tel_msg',
'Fax geschäftlich' => 'tel_fax',
'Telefon geschäftlich' => 'tel_work',
'Telefon geschäftlich 2' => 'ophone',
'Rückmeldung' => '',
'Autotelefon' => 'tel_car',
'Telefon Firma' => '',
'Fax privat' => '',
'Telefon privat' => 'tel_home',
'Telefon privat 2' => '',
'ISDN' => 'tel_isdn',
'Mobiltelefon' => 'tel_cell',
'Weiteres Fax' => '',
'Weiteres Telefon' => '',
'Pager' => 'tel_pager',
'Haupttelefon' => '',
'Mobiltelefon 2' => '',
'Telefon für Hörbehinderte' => '',
'Telex' => '',
'Abrechnungsinformation' => '',
'Benutzer 1' => '',
'Benutzer 2' => '',
'Benutzer 3' => '',
'Benutzer 4' => '',
'Beruf' => '',
'Büro' => '',
'E-Mail-Adresse' => 'email',
'E-Mail: Angezeigter Name' => '',
'E-Mail 2: Adresse' => 'email_home',
'E-Mail 2: Angezeigter Name' => '',
'E-Mail 3: Adresse' => '',
'E-Mail 3: Angezeigter Name' => '',
'Empfohlen von' => '',
'Geburtstag' => 'bday',
'Geschlecht' => '',
'Hobby' => '',
'Initialen' => '',
'Internet-Frei/Gebucht' => '',
'Jahrestag' => '',
'Kategorien' => '',
'Kinder' => '',
'Konto' => '',
'Name Assistent' => '',
'Name des/der Vorgesetzten' => '',
'Notizen' => 'note',
'Organisations-Nr.' => '',
'Ort' => '',
'Partner' => '',
'Postfach' => '',
'Priorität' => '',
'Privat' => '',
'Regierungs-Nr.' => '',
'Reisekilometer' => '',
'Sprache' => '',
'Stichwörter' => '',
'Vertraulichkeit' => '',
'Verzeichnisserver' => '',
'Webseite' => 'url'
);
function import_start_file($buffer)
{
return $buffer;
}
function import_start_record($buffer)
{
$top = array();
++$this->id;
$this->currentrecord = $top;
return $buffer;
}
function import_new_attrib($buffer,$name,$value)
{
$value = trim($value);
$value = str_replace('\n','<BR>',$value);
$value = str_replace('\r','',$value);
$this->currentrecord += array($name => $value);
return $buffer;
}
function import_end_record($buffer)
{
$buffer[$this->id] = '';
while(list($name, $value) = each($this->currentrecord))
{
$buffer[$this->id][$name] = $value;
//echo '<br>'.$name.' => '.$value;
}
return $buffer;
}
function import_end_file($buffer,$access='private',$cat_id=0)
{
$contacts = CreateObject('phpgwapi.contacts');
//echo '<br>';
for($i=1;$i<=count($buffer);$i++)
{
while(list($name,$value) = @each($buffer[$i]))
{
//echo '<br>'.$i.': '.$name.' => '.$value;
$entry[$i][$name] = $value;
}
$entry[$i]['email_type'] = 'INTERNET';
$entry[$i]['email_home_type'] = 'INTERNET';
$entry[$i]['adr_one_type'] = 'intl';
$entry[$i]['adr_two_type'] = 'intl';
$entry[$i]['fn'] = $entry[$i]['n_given'] . ' ' . $entry[$i]['n_family'];
//echo '<br>';
$contacts->add($GLOBALS['phpgw_info']['user']['account_id'],$entry[$i],$access,$cat_id);
}
$num = $i - 1;
return lang('Successfully imported %1 records into your addressbook.',$num);
}
}
?>

View File

@ -1,178 +0,0 @@
<?php
// This file defines a set of functions and an associative array.
// The key of the array corresponds to a header in the source
// import file and the value of the array item will be used in
// the creation of the output file.
//
// An exported Outlook file looks like this:
//
// Title<tab>First Name<tab>Middle Name<tab>Last Name<tab>...
// <tab>Patrick<tab><tab>Walsh<tab>...
//
// Where the first line explains each optional field. This is what
// will be looked up in the key.
//
// The array need not be in any order and any fields not defined will
// not be transferred. If the val='+', the value will be appended to
// the previous field and any text after the '+' will be appended
// before the value. For example, the following would add a comma and
// a space between LastName and FirstName and store it in FullName:
//
// array('LastName' => 'FullName','FirstName' => '+, ');
//
// Also start with a '#' symbol and a comma separated list will be
// turned into a number of the same entries.
/* $Id$ */
class import_conv
{
var $currentrecord = array(); //used for buffering to allow uid lines to go first
var $id;
var $type = 'csv';
var $import = array(
'Title' => 'n_prefix',
'First Name' => 'n_given',
'Middle Name' => 'n_middle',
'Last Name' => 'n_family',
'Suffix' => 'n_suffix',
'Company' => 'org_name', //objectclass: organization
'Department' => 'org_unit', //objectclass: organizationalPerson
'Job Title' => 'title', //objectclass: organizationalPerson
'Business Street' => 'adr_one_street',
'Business Street 2' => 'address2',
'Business Street 3' => 'address3',
'Business City' => 'adr_one_locality',
'Business State' => 'adr_one_region',
'Business Postal Code' => 'adr_one_postalcode',
'Business Country' => 'adr_one_countryname',
'Home Street' => 'adr_two_street',
'Home City' => 'adr_two_locality',
'Home State' => 'adr_two_region',
'Home Postal Code' => 'adr_two_postalcode',
'Home Country' => 'adr_two_countryname',
'Home Street 2' => '',
'Home Street 3' => '',
'Other Street' => '',
'Other City' => '',
'Other State' => '',
'Other Postal Code' => '',
'Other Country' => '',
"Assistant's Phone" => 'tel_msg',
'Business Fax' => 'tel_fax',
'Business Phone' => 'tel_work',
'Business Phone 2' => 'ophone',
'Callback' => '',
'Car Phone' => 'tel_car',
'Company Main Phone' => '',
'Home Fax' => '',
'Home Phone' => 'tel_home',
'Home Phone 2' => '', //This will make another homePhone entry
'ISDN' => 'tel_isdn',
'Mobile Phone' => 'tel_cell', //newPilotPerson
'Other Fax' => '',
'Other Phone' => '',
'Pager' => 'tel_pager',
'Primary Phone' => '',
'Radio Phone' => '',
'TTY/TDD Phone' => '',
'Telex' => '', //organization
'Account' => '',
'Anniversary' => '',
"Assistant's Name" => '', //newPilotPerson
'Billing Information' => '',
'Birthday' => 'bday',
'Categories' => '',
'Children' => '',
'Directory Server' => '',
'E-mail Address' => 'email',
'E-mail Display Name' => '',
'E-mail 2 Address' => 'email_home',
'E-mail 2 Display Name' => '',
'E-mail 3 Address' => '', //add another...
'E-mail 3 Display Name' => '',
'Gender' => '',
'Government ID Number' => '',
'Hobby' => '',
'Initials' => '',
'Internet Free Busy' => '',
'Keywords' => '',
'Language' => '',
'Location' => '',
"Manager's Name" => '',
'Mileage' => '',
'Notes' => 'note',
'Office Location' => '',
'Organizational ID Number' => '',
'PO Box' => '',
'Priority' => '',
'Private Profession' => '',
'Referred By' => '',
'Sensitivity' => '',
'Spouse' => '',
'User 1' => '',
'User 2' => '',
'User 3' => '',
'User 4' => '',
'Web Page' => 'url'
);
function import_start_file($buffer)
{
return $buffer;
}
function import_start_record($buffer)
{
$top = array();
++$this->id;
$this->currentrecord = $top;
return $buffer;
}
function import_new_attrib($buffer,$name,$value)
{
$value = trim($value);
$value = str_replace('\n','<BR>',$value);
$value = str_replace('\r','',$value);
$this->currentrecord += array($name => $value);
return $buffer;
}
function import_end_record($buffer)
{
$buffer[$this->id] = '';
while(list($name, $value) = each($this->currentrecord))
{
$buffer[$this->id][$name] = $value;
//echo '<br>'.$name.' => '.$value;
}
return $buffer;
}
function import_end_file($buffer,$access='private',$cat_id=0)
{
$contacts = CreateObject('phpgwapi.contacts');
//echo '<br>';
for($i=1;$i<=count($buffer);$i++)
{
while(list($name,$value) = @each($buffer[$i]))
{
//echo '<br>'.$i.': '.$name.' => '.$value;
$entry[$i][$name] = $value;
}
$entry[$i]['email_type'] = 'INTERNET';
$entry[$i]['email_home_type'] = 'INTERNET';
$entry[$i]['adr_one_type'] = 'intl';
$entry[$i]['adr_two_type'] = 'intl';
$entry[$i]['fn'] = $entry[$i]['n_given'] . ' ' . $entry[$i]['n_family'];
//echo '<br>';
$contacts->add($GLOBALS['phpgw_info']['user']['account_id'],$entry[$i],$access,$cat_id);
}
$num = $i - 1;
return lang('Successfully imported %1 records into your addressbook.',$num);
}
}
?>

View File

@ -1,180 +0,0 @@
<?php
// This file defines a set of functions and an associative array.
// The key of the array corresponds to a header in the source
// import file and the value of the array item will be used in
// the creation of the output file.
//
// An exported Outlook file looks like this:
//
// Title<tab>First Name<tab>Middle Name<tab>Last Name<tab>...
// <tab>Patrick<tab><tab>Walsh<tab>...
//
// Where the first line explains each optional field. This is what
// will be looked up in the key.
//
// The array need not be in any order and any fields not defined will
// not be transferred. If the val='+', the value will be appended to
// the previous field and any text after the '+' will be appended
// before the value. For example, the following would add a comma and
// a space between LastName and FirstName and store it in FullName:
//
// array('LastName' => 'FullName','FirstName' => '+, ');
//
// Also start with a '#' symbol and a comma separated list will be
// turned into a number of the same entries.
/* $Id$ */
/* File submitted by Alejandro Pedraza - alpeb@sourceforge.net */
class import_conv
{
var $currentrecord = array(); //used for buffering to allow uid lines to go first
var $id;
var $type = 'csv';
var $import = array(
'Tratamiento' => 'n_prefix',
'Nombre' => 'n_given',
'Segundo Nombre' => 'n_middle',
'Apellidos' => 'n_family',
'Sufijo' => 'n_suffix',
'Organización' => 'org_name', //objectclass: organization
'Departmento' => 'org_unit', //objectclass: organizationalPerson
'Puesto' => 'title', //objectclass: organizationalPerson
'Calle del trabajo' => 'adr_one_street',
'Calle del trabajo 2' => 'address2',
'Calle del trabajo 3' => 'address3',
'Ciudad de trabajo' => 'adr_one_locality',
'Provincia o estado de trabajo' => 'adr_one_region',
'Código postal del trabajo' => 'adr_one_postalcode',
'País de trabajo' => 'adr_one_countryname',
'Calle del domicilio' => 'adr_two_street',
'Ciudad de residencia' => 'adr_two_locality',
'Provincia o estado de residencia' => 'adr_two_region',
'Código postal de residencia' => 'adr_two_postalcode',
'País de residencia' => 'adr_two_countryname',
'Calle del domicilio 2' => '',
'Calle del domicilio 3' => '',
'Otra calle' => '',
'Otra ciudad' => '',
'Otra provincia o estado' => '',
'Otro código postal' => '',
'Otro país' => '',
"Teléfono del ayudante" => 'tel_msg',
'Fax del trabajo' => 'tel_fax',
'Teléfono del trabajo' => 'tel_work',
'Teléfono del trabajo 2' => 'ophone',
'Devolución de llamada' => '',
'Teléfono del automóvil' => 'tel_car',
'Número de centralita de la organización' => '',
'Fax particular' => '',
'Particular' => 'tel_home',
'Número de teléfono particular 2' => '', //This will make another homePhone entry
'RDSI' => 'tel_isdn',
'Móvil' => 'tel_cell', //newPilotPerson
'Otro fax' => '',
'Otro teléfono' => '',
'Localizador' => 'tel_pager',
'Teléfono principal' => '',
'Radioteléfono' => '',
'Número de teletipo' => '',
'Télex' => '', //organization
'Cuenta' => '',
'Aniversario' => '',
"Nombre del ayudante" => '', //newPilotPerson
'Facturación' => '',
'Cumpleaños' => 'bday',
'Categorías' => '',
'Hijos' => '',
'Servidor de directorio' => '',
'Dirección de correo electrónico' => 'email',
'Nombre de pantalla de correo electrónico' => '',
'Dirección de correo electrónico 2' => 'email_home',
'Nombre de pantalla de correo electrónico 2' => '',
'Dirección del correo electrónico 3' => '', //add another...
'Nombre de pantalla de correo electrónico 3' => '',
'Género' => '',
'Número de id. oficial' => '',
'Aficiones' => '',
'Iniciales' => '',
'Internet Free Busy' => '',
'Palabras clave' => '',
'Idioma' => '',
'Ubicación' => '',
"Nombre del director" => '',
'Kilometraje' => '',
'Notas' => 'note',
'Ubicación de la oficina' => '',
'Número de id. de la organización' => '',
'Apartado postal' => '',
'Importancia' => '',
'Privado'=>'',
'Profesión' => '',
'Remitido por' => '',
'Confidencialidad' => '',
'Cónyuge' => '',
'Usuario 1' => '',
'Usuario 2' => '',
'Usuario 3' => '',
'Usuario 4' => '',
'Página Web' => 'url'
);
function import_start_file($buffer)
{
return $buffer;
}
function import_start_record($buffer)
{
$top=array();
++$this->id;
$this->currentrecord = $top;
return $buffer;
}
function import_new_attrib($buffer,$name,$value)
{
$value = trim($value);
$value = str_replace('\n','<BR>',$value);
$value = str_replace('\r','',$value);
$this->currentrecord += array($name => $value);
return $buffer;
}
function import_end_record($buffer)
{
$buffer[$this->id]='';
while ( list($name, $value) = each($this->currentrecord))
{
$buffer[$this->id][$name] = $value;
//echo '<br>'.$name.' => '.$value;
}
return $buffer;
}
function import_end_file($buffer,$access='private',$cat_id=0)
{
$contacts = CreateObject('phpgwapi.contacts');
//echo '<br>';
for ($i=1;$i<=count($buffer);$i++)
{
while ( list($name,$value) = @each($buffer[$i]) )
{
//echo '<br>'.$i.': '.$name.' => '.$value;
$entry[$i][$name] = $value;
}
$entry[$i]['email_type'] = 'INTERNET';
$entry[$i]['email_home_type'] = 'INTERNET';
$entry[$i]['adr_one_type'] = 'intl';
$entry[$i]['adr_two_type'] = 'intl';
$entry[$i]['fn'] = $entry[$i]['n_given'] . ' ' . $entry[$i]['n_family'];
//echo '<br>';
$contacts->add($GLOBALS['phpgw_info']['user']['account_id'],$entry[$i],$access,$cat_id);
}
$num = $i - 1;
return lang('Successfully imported %1 records into your addressbook.',$num);
}
}
?>

View File

@ -1,176 +0,0 @@
<?php
// This file defines a set of functions and an associative array.
// The key of the array corresponds to a header in the source
// import file and the value of the array item will be used in
// the creation of the output file.
//
// An exported Outlook file looks like this:
//
// Title<tab>First Name<tab>Middle Name<tab>Last Name<tab>...
// <tab>Patrick<tab><tab>Walsh<tab>...
//
// Where the first line explains each optional field. This is what
// will be looked up in the key.
//
// The array need not be in any order and any fields not defined will
// not be transferred. If the val='+', the value will be appended to
// the previous field and any text after the '+' will be appended
// before the value. For example, the following would add a comma and
// a space between LastName and FirstName and store it in FullName:
//
// array('LastName' => 'FullName','FirstName' => '+, ');
//
// Also start with a '#' symbol and a comma separated list will be
// turned into a number of the same entries.
/* $Id$ */
class import_conv
{
var $currentrecord = array(); //used for buffering to allow uid lines to go first
var $id;
var $type = 'csv';
/* Thanks to ledruide for the Outlook fields */
var $import = array(
'Fonction' => 'title',
'Prénom' => 'n_given',
'Deuxième prénom' => 'n_middle',
'Nom' => 'n_family',
'Suffixe' => 'n_suffix',
'Société' => 'org_name',
'Service' => 'org_unit',
'Rue (bureau)' => 'adr_one_street',
'Rue (bureau) 2' => 'address2',
'Rue (bureau) 3' => 'address3',
'Ville (bureau)' => 'adr_one_locality',
'État/Prov (bureau)' => 'adr_one_region',
'Code postal (bureau)' => 'adr_one_postalcode',
'Pays (bureau)' => 'adr_one_countryname',
'Rue (domicile)' => 'adr_two_street',
'Rue (domicile) 3' => '',
'Rue (domicile) 3' => '',
'Ville (domicile)' => 'adr_two_locality',
'État/Prov (domicile)' => 'adr_two_region',
'Code postal (domicile)' => 'adr_two_postalcode',
'Pays (domicile)' => 'adr_two_countryname',
'Rue (autre)' => '',
'Rue (autre) 2' => '',
'Rue (autre) 3' => '',
'Ville (autre)' => '',
'État/Prov (autre)' => '',
'Code postal (autre)' => '',
'Pays (autre)' => '',
"Téléphone de l'assistant(e)" => 'tel_msg',
'Télécopie (bureau)' => 'tel_fax',
'Téléphone (bureau)' => 'tel_work',
'Téléphone 2 (bureau)' => 'ophone',
'Rappel' => '',
'Téléphone (voiture)' => 'tel_car',
'Téléphone société' => '',
'Télécopie (domicile)' => '',
'Téléphone (domicile)' => 'tel_home',
'Téléphone 2 (domicile)' => '',
'RNIS' => 'tel_isdn',
'Tél. mobile' => 'tel_cell',
'Télécopie (autre)' => '',
'Téléphone (autre)' => '',
'Récepteur de radiomessagerie' => 'tel_pager',
'Téléphone principal' => '',
'Radio téléphone' => '',
'Téléphone TDD/TTY' => '',
'Télex' => '',
'Compte' => '',
'Anniversaire de mariage ou fête' => '',
"Nom de l'assistant(e)" => '',
'Informations facturation' => '',
'Anniversaire' => 'bday',
'Catégories' => '',
'Enfants' => '',
'Adresse e-mail' => 'email',
"Nom complet de l'adresse e-mail" => '',
'Adresse e-mail 2' => 'email_home',
"Nom complet de l'adresse e-mail 2" => '',
'Adresse e-mail 3' => '',
"Nom complet de l'adresse e-mail 3" => '',
'Sexe' => '',
'Code gouvernement' => '',
'Passe-temps' => '',
'Initiales' => '',
'Mots clés' => '',
'Langue' => '',
'Lieu' => '',
'Kilométrage' => '',
'Notes' => 'note',
'Bureau' => '',
"Numéro d'identification de l'organisation" => '',
'B.P.' => '',
'Privé' => '',
'Profession' => '',
'Recommandé par' => '',
'Conjoint(e)' => '',
'Utilisateur 1' => '',
'Utilisateur 2' => '',
'Utilisateur 3' => '',
'Utilisateur 4' => '',
'Page Web' => 'url'
);
function import_start_file($buffer)
{
return $buffer;
}
function import_start_record($buffer)
{
$top = array();
++$this->id;
$this->currentrecord = $top;
return $buffer;
}
function import_new_attrib($buffer,$name,$value)
{
$value = trim($value);
$value = str_replace('\n','<BR>',$value);
$value = str_replace('\r','',$value);
$this->currentrecord += array($name => $value);
return $buffer;
}
function import_end_record($buffer)
{
$buffer[$this->id] = '';
while(list($name, $value) = each($this->currentrecord))
{
$buffer[$this->id][$name] = $value;
//echo '<br>'.$name.' => '.$value;
}
return $buffer;
}
function import_end_file($buffer,$access='private',$cat_id=0)
{
$contacts = CreateObject('phpgwapi.contacts');
//echo '<br>';
for($i=1;$i<=count($buffer);$i++)
{
while(list($name,$value) = @each($buffer[$i]))
{
//echo '<br>'.$i.': '.$name.' => '.$value;
$entry[$i][$name] = $value;
}
$entry[$i]['email_type'] = 'INTERNET';
$entry[$i]['email_home_type'] = 'INTERNET';
$entry[$i]['adr_one_type'] = 'intl';
$entry[$i]['adr_two_type'] = 'intl';
$entry[$i]['fn'] = $entry[$i]['n_given'] . ' ' . $entry[$i]['n_family'];
//echo '<br>';
$contacts->add($GLOBALS['phpgw_info']['user']['account_id'],$entry[$i],$access,$cat_id);
}
$num = $i - 1;
return lang('Successfully imported %1 records into your addressbook.',$num);
}
}
?>

View File

@ -1,187 +0,0 @@
<?php
// This file defines a set of functions and an associative array.
// The key of the array corresponds to a header in the source
// import file and the value of the array item will be used in
// the creation of the output file.
//
// An exported Outlook file looks like this:
//
// Title<tab>First Name<tab>Middle Name<tab>Last Name<tab>...
// <tab>Patrick<tab><tab>Walsh<tab>...
//
// Where the first line explains each optional field. This is what
// will be looked up in the key.
//
// The array need not be in any order and any fields not defined will
// not be transferred. If the val='+', the value will be appended to
// the previous field and any text after the '+' will be appended
// before the value. For example, the following would add a comma and
// a space between LastName and FirstName and store it in FullName:
//
// array('LastName' => 'FullName','FirstName' => '+, ');
//
// Also start with a '#' symbol and a comma separated list will be
// turned into a number of the same entries.
/* $Id$ */
class import_conv
{
var $currentrecord = array(); //used for buffering to allow uid lines to go first
var $id;
var $type = 'csv';
var $import = array(
'Titolo' => 'n_prefix',
'Nome' => 'n_given',
'Secondo nome' => 'n_middle',
'Cognome' => 'n_family',
'Titolo straniero' => 'n_suffix',
'Società' => 'org_name', //objectclass: organization
'Reparto' => 'org_unit', //objectclass: organizationalPerson
'Posizione' => 'title', //objectclass: organizationalPerson
'Via (uff.)' => 'adr_one_street',
'Via (uff.) 2' => 'address2',
'Via (uff.) 3' => 'address3',
'Città (uff.)' => 'adr_one_locality',
'Provincia (uff.)' => 'adr_one_region',
'CAP (uff.)' => 'adr_one_postalcode',
'Paese (uff.)' => 'adr_one_countryname',
'Via (ab.)' => 'adr_two_street',
'Città (ab.)' => 'adr_two_locality',
'Provincia (ab.)' => 'adr_two_region',
'CAP (ab.)' => 'adr_two_postalcode',
'Paese (ab.)' => 'adr_two_countryname',
'Via (ab.) 2' => '',
'Via (ab.) 3' => '',
'Altra via' => '',
'Altra via 2' => '',
'Altra via 3' => '',
'Altra città' => '',
'Altra provincia' => '',
'Altro CAP' => '',
'Altro paese' => '',
"Telefono assistente" => 'tel_msg',
'Fax (uff.)' => 'tel_fax',
'Ufficio' => 'tel_work',
'Ufficio 2' => 'ophone',
'Richiamata automatica' => '',
'Telefono auto' => 'tel_car',
'Telefono principale società' => '',
'Fax (ab.)' => '',
'Abitazione' => 'tel_home',
'Abitazione 2' => '', //This will make another homePhone entry
'ISDN' => 'tel_isdn',
'Cellulare' => 'tel_cell', //newPilotPerson
'Altro fax' => '',
'Altro telefono' => '',
'Cercapersone' => 'tel_pager',
'Telefono principale' => '',
'Radiotelefono' => '',
'Telefono TTY/TDD' => '',
'Telex' => '', //organization
'Account' => '',
'Anniversario' => '',
'Nome assistente' => '', //newPilotPerson
'Dati fatturazione' => '',
'Compleanno' => 'bday',
'Categorie' => '',
'Figli' => '',
'Server di elenchi in linea' => '',
'Indirizzo posta elettronica' => 'email',
'Nome visualizzato posta elettronica' => '',
'Indirizzo posta elettronica 2' => 'email_home',
'Nome visualizzato posta elettronica 2' => '',
'Indirizzo posta elettronica 3' => '', //add another...
'Nome visualizzato posta elettronica 3' => '',
'Sesso' => '',
'Cod. Fisc./P. IVA' => '',
'Hobby' => '',
'Iniziali' => '',
'Disponibilità Internet' => '',
'Parole chiave' => '',
'Lingua' => '',
'Luogo' => '',
'Tipo posta elettronica' => '',
'Tipo posta elettronica 2' => '',
'Tipo posta elettronica 3' => '',
'Privato' => '',
'Sesso' => '',
'Ubicazione ufficio' => '',
'Indirizzo (ab.) - Casella postale' => '',
'Nome manager' => '',
'Indennità trasferta' => '',
'Notes' => 'note',
'Indirizzo (uff.) - Casella postale' => '',
'Numero ID organizzativo' => '',
'Altro indirizzo - Casella postale' => '',
'Priorità' => '',
'Professione' => '',
'Presentato da' => '',
'Riservatezza' => '',
'Nome coniuge' => '',
'Utente 1' => '',
'Utente 2' => '',
'Utente 3' => '',
'Utente 4' => '',
'Pagina Web' => 'url'
);
function import_start_file($buffer)
{
return $buffer;
}
function import_start_record($buffer)
{
$top = array();
++$this->id;
$this->currentrecord = $top;
return $buffer;
}
function import_new_attrib($buffer,$name,$value)
{
$value = trim($value);
$value = str_replace('\n','<BR>',$value);
$value = str_replace('\r','',$value);
$this->currentrecord += array($name => $value);
return $buffer;
}
function import_end_record($buffer)
{
$buffer[$this->id] = '';
while(list($name, $value) = each($this->currentrecord))
{
$buffer[$this->id][$name] = $value;
//echo '<br>'.$name.' => '.$value;
}
return $buffer;
}
function import_end_file($buffer,$access='private',$cat_id=0)
{
$contacts = CreateObject('phpgwapi.contacts');
//echo '<br>';
for($i=1;$i<=count($buffer);$i++)
{
while(list($name,$value) = @each($buffer[$i]))
{
//echo '<br>'.$i.': '.$name.' => '.$value;
$entry[$i][$name] = $value;
}
$entry[$i]['email_type'] = 'INTERNET';
$entry[$i]['email_home_type'] = 'INTERNET';
$entry[$i]['adr_one_type'] = 'intl';
$entry[$i]['adr_two_type'] = 'intl';
$entry[$i]['fn'] = $entry[$i]['n_given'] . ' ' . $entry[$i]['n_family'];
//echo '<br>';
$contacts->add($GLOBALS['phpgw_info']['user']['account_id'],$entry[$i],$access,$cat_id);
}
$num = $i - 1;
return lang('Successfully imported %1 records into your addressbook.',$num);
}
}
?>

View File

@ -1,26 +0,0 @@
<?php
/**************************************************************************\
* eGroupWare - Addressbook *
* http://www.egroupware.org *
* -------------------------------------------- *
* This program is free software; you can redistribute it and/or modify it *
* under the terms of the GNU General Public License as published by the *
* Free Software Foundation; either version 2 of the License, or (at your *
* option) any later version. *
\**************************************************************************/
/* $Id$ */
$GLOBALS['egw_info'] = array();
$GLOBALS['egw_info']['flags'] = array(
'currentapp' => 'addressbook',
'noheader' => True,
'nonavbar' => True
);
include('../header.inc.php');
$obj = CreateObject('addressbook.uiaddressbook');
$obj->index();
$GLOBALS['phpgw']->common->phpgw_footer();
?>

View File

@ -1,6 +1,5 @@
%1 records imported addressbook bg Âíåñåíè ñà %1 çàïèñà %1 records imported addressbook bg Âíåñåíè ñà %1 çàïèñà
(e.g. 1969) addressbook bg (íàïðèìåð 1969ã.) (e.g. 1969) addressbook bg (íàïðèìåð 1969ã.)
actions addressbook bg Äåéñòâèÿ
address book common bg Àäðåñíèê address book common bg Àäðåñíèê
addressbook common bg Àäðåñíèê addressbook common bg Àäðåñíèê
addressbook preferences addressbook bg Íàñòðîéêè íà àäðåñíèêà addressbook preferences addressbook bg Íàñòðîéêè íà àäðåñíèêà
@ -11,7 +10,6 @@ business email addressbook bg
business email type addressbook bg Âèä íà ñëóæåáíàòà ÅÏîùà business email type addressbook bg Âèä íà ñëóæåáíàòà ÅÏîùà
business fax addressbook bg Ñëóæåáåí ôàêñ business fax addressbook bg Ñëóæåáåí ôàêñ
business phone addressbook bg Ñëóæåáåí òåëåôîí business phone addressbook bg Ñëóæåáåí òåëåôîí
business zip code addressbook bg Ñëóæåáåí ïîùåíñêè êîä
car phone addressbook bg Òåëåôîí â àâòîìîáèë car phone addressbook bg Òåëåôîí â àâòîìîáèë
cell phone addressbook bg êëåòú÷åí òåëåôîí cell phone addressbook bg êëåòú÷åí òåëåôîí
city common bg Ãðàä city common bg Ãðàä
@ -19,8 +17,6 @@ company common bg
company name common bg Èìå íà ôèðìàòà company name common bg Èìå íà ôèðìàòà
configuration common bg Íàñòðîéêà configuration common bg Íàñòðîéêà
department common bg Îòäåë department common bg Îòäåë
download addressbook bg Èçòåãëÿíå
download export file (uncheck to debug output in browser) addressbook bg Èçòåãëÿíå íà åêñïîðò-ôàéëà (ìàõíåòå îòìåòêàòà çà ïîêàçâàíå â ïðîçîðåöà)
extra addressbook bg Äîïúëíèòåëíî extra addressbook bg Äîïúëíèòåëíî
fax addressbook bg Ôàêñ fax addressbook bg Ôàêñ
fax number common bg Íîìåð íà ôàêñ fax number common bg Íîìåð íà ôàêñ
@ -32,12 +28,8 @@ fieldseparator addressbook bg
home email addressbook bg Äîìàøíà ÅÏîùà home email addressbook bg Äîìàøíà ÅÏîùà
home email type addressbook bg Âèä íà äîìàøíàòà ÅÏîùà home email type addressbook bg Âèä íà äîìàøíàòà ÅÏîùà
home phone addressbook bg Äîìàøåí òåëåôîí home phone addressbook bg Äîìàøåí òåëåôîí
import addressbook bg Âíàñÿíå
import contacts addressbook bg Âíàñÿíå íà êîíòàêòè
import from outlook addressbook bg Âíàñÿíå îò Outlook
isdn phone addressbook bg ISDN òåëåôîí isdn phone addressbook bg ISDN òåëåôîí
label addressbook bg Åòèêåò label addressbook bg Åòèêåò
ldap host for contacts admin bg LDAP ñúðâúð çà êîíòàêòèòå
ldif addressbook bg LDIF ldif addressbook bg LDIF
line 2 addressbook bg Ðåä 2 line 2 addressbook bg Ðåä 2
mobile addressbook bg Ìîáèëåí mobile addressbook bg Ìîáèëåí
@ -47,11 +39,9 @@ other phone addressbook bg
pager common bg Ïåéäæúð pager common bg Ïåéäæúð
phone number common bg Òåëåôîíåí íîìåð phone number common bg Òåëåôîíåí íîìåð
phone numbers common bg Òåëåôîííè íîìåðà phone numbers common bg Òåëåôîííè íîìåðà
please enter a name for that field ! addressbook bg Ìîëÿ âúâåäåòå èìå çà òîâà ïîëå!
public key addressbook bg Ïóáëè÷åí êëþ÷ public key addressbook bg Ïóáëè÷åí êëþ÷
record access addressbook bg Äîñòúï äî çàïèñà record access addressbook bg Äîñòúï äî çàïèñà
record owner addressbook bg Ñîáñòâåíèê íà çàïèñà record owner addressbook bg Ñîáñòâåíèê íà çàïèñà
select all addressbook bg Èçáèðàíå íà âñè÷êî
street common bg Óëèöà street common bg Óëèöà
successfully imported %1 records into your addressbook. addressbook bg Óñïåøíî ñà âíåñåíè %1 çàïèñ(à) â àäðåñíèêà âè. successfully imported %1 records into your addressbook. addressbook bg Óñïåøíî ñà âíåñåíè %1 çàïèñ(à) â àäðåñíèêà âè.
that field name has been used already ! addressbook bg Òîâà èìå íà ïîëå âå÷å å èçïîëçâàíî! that field name has been used already ! addressbook bg Òîâà èìå íà ïîëå âå÷å å èçïîëçâàíî!
@ -60,6 +50,5 @@ this person's last name was not in the address book. addressbook bg
today is %1's birthday! common bg Äíåñ å ðîæäåíèÿò äåí íà %1! today is %1's birthday! common bg Äíåñ å ðîæäåíèÿò äåí íà %1!
tomorrow is %1's birthday. common bg Óòðå å ðîæäåíèÿò äåí íà %1! tomorrow is %1's birthday. common bg Óòðå å ðîæäåíèÿò äåí íà %1!
video phone addressbook bg Âèäåîòåëåôîí video phone addressbook bg Âèäåîòåëåôîí
warning!! ldap is valid only if you are not using contacts for accounts storage! admin bg ÂÍÈÌÀÍÈÅ! LDAP å âàëèäåí èçáîð ñàìî àêî ÍÅ èçïîëçâàòå êîíòàêòèòå çà ñúõðàíåíèå è íà ïîòðåáèòåëñêèòå àêàóíòè!
work phone addressbook bg Ñëóæåáåí òåëåôîí work phone addressbook bg Ñëóæåáåí òåëåôîí
you must select at least 1 column to display addressbook bg Òðÿáâà äà èçáåðåòå ïîíå åäíà êîëîíà çà ïîêàçâàíå you must select at least 1 column to display addressbook bg Òðÿáâà äà èçáåðåòå ïîíå åäíà êîëîíà çà ïîêàçâàíå

View File

@ -1,166 +0,0 @@
%1 records imported addressbook da %1 posteringer importeret
%1 records read (not yet imported, you may go %2back%3 and uncheck test import) addressbook da %1 posteringer læst (ikke implamenteret endnu, du skalgå %2tilbage%3 og fravælge Test import
(e.g. 1969) addressbook da (f.eks 1969)
<b>no conversion type &lt;none&gt; could be located.</b> please choose a conversion type from the list addressbook da <b>Ingen konverteringstype &lt;none&gt; blev fundet.</b> Vælg venligst en konverteringstype fra listen
<b>no conversion type <none> could be located.</b> please choose a conversion type from the list addressbook da <b>Ingen konverteringstype &lt;none&gt; blev fundet.</b> Vælg venligst en konverteringstype fra listen
@-eval() is only availible to admins!!! addressbook da @-eval() er kun tilgængelig for administratorer!!!
actions addressbook da Handling
add a single entry by passing the fields. addressbook da
add custom field addressbook da Tilføj valgfrit felt
address book common da Adressebog
address book - vcard in addressbook da Adressebog - importer VCard
address book - view addressbook da Adressebog - kig
address line 2 addressbook da Adresse Linie 2
address line 3 addressbook da Adresse Linie 3
address type addressbook da Adresse Type
addressbook common da Adressebog
addressbook preferences addressbook da Adressebog preferencer
addressbook-fieldname addressbook da Adressebog feltnavn
addvcard addressbook da Tilføj VCard
alt. csv import addressbook da Alt. CSV Importering
are you sure you want to delete this field? addressbook da Er du sikker på at du vil slette dette felt?
bbs phone addressbook da BBS Telefonnummer
birthday common da Fødselsdag
birthdays common da Fødselsdage
blank addressbook da Blank
business common da Firma
business address type addressbook da Firma Adresse Type
business city addressbook da Firma By
business country addressbook da Firma Land
business email addressbook da Firma EMail
business email type addressbook da Firma EMail Type
business fax addressbook da Firma Fax
business phone addressbook da Firma Telefonnummer
business state addressbook da Firma Stat
business street addressbook da Firma Adresse
business zip code addressbook da Firma Postnummer
car phone addressbook da Bil telefonnummer
cell phone addressbook da Mobil telefonnummer
charset of file addressbook da Karakterset for fil
city common da By
company common da Firma
company name common da Firma navn
configuration common da Konfiguration
contact common da Kontakt
contact application admin da Kontakt applikation
contact settings admin da Kontakt Indstillinger
copied by %1, from record #%2. addressbook da Kopieret af %1, fra postering #%2.
country common da Land
csv-fieldname addressbook da CSV-Feltnavn
csv-filename addressbook da CVS-Filnavn
custom addressbook da Valgfri
custom fields addressbook da Valgfri Felter
debug output in browser addressbook da Vis fejlmeddelser i browser vinduet
default filter addressbook da Standard Filter
delete a single entry by passing the id. addressbook da
department common da Afdeling
domestic addressbook da Indlands
download addressbook da Download
download export file (uncheck to debug output in browser) addressbook da Hent eksporteret fil (fjern flag for fejlmeddelser i browser vinduet)
e-mail addressbook da E-mail
edit custom field addressbook da Ret Valgfrit Felt
edit custom fields admin da Ret Valgfrie Felter
empty for all addressbook da tøm for alt
enter the path to the exported file here addressbook da Indtast stien til den eksporteret fil her
export contacts addressbook da Eksporter Kontakter
export file name addressbook da Eksporter filnavn
export from addressbook addressbook da Eksporter fra adressebogen
extra addressbook da Ekstra
fax addressbook da Fax
fax number common da Faxnummer
field %1 has been added ! addressbook da Felt %1 er tilføjet!
field %1 has been updated ! addressbook da Felt %1 er opdateret!
field name addressbook da Feltnavn
field x has been added ! addressbook da Feltet $1 er blevet tilføjet!
fields to show in address list addressbook da Felter der skal vises på adresselisten
fieldseparator addressbook da Feltseperator
first name addressbook da Fornavn
full name addressbook da Fulde Navn
geo addressbook da GEO
global categories addressbook da Globale Kategorier
grant addressbook access common da Tildel adgang til adressbogen
home address type addressbook da Hjem Adresse Type
home city addressbook da Hjem By
home country addressbook da Hjem Land
home email addressbook da Hjem EMail
home email type addressbook da Hjem EMail Type
home phone addressbook da Hjem telefon
home state addressbook da Hjem Stat
home street addressbook da Hjem Adresse
home zip code addressbook da Hjem Postnummer
import addressbook da Importer
import contacts addressbook da Importer Kontakter
import csv-file into addressbook addressbook da Importer CVS-fil til adressebogen
import file addressbook da Importer Fil
import from ldif, csv, or vcard addressbook da Importer fra LDIF, CVS eller VCard
import from outlook addressbook da Importer fra Outlook
import next set addressbook da Impoter næste
import_instructions addressbook da I Netscape, åben Adressebogen og vælg <b>Export</b> fra <b>File</b> menuen. Den eksporteret fil vil være i LDIF formatet.<p>Eller i Outlook, vælg din kontakt mappe, vælg <b>Import and Export...</b> fra b>File</b> menuen og eksporter dine kontakt personer til en komma separeret fil (CSV). <p>Eller, i Palm Desktop 4.0 eller nyere, brug adressebogen og vælg <b>Export</b> fra <b>File</b> menuen. Den eksporteret fil vil være i VCard formatet
international addressbook da International
isdn phone addressbook da ISDN Telefonnummer
label addressbook da Mærkat
last name addressbook da Efternavn
ldap context for contacts admin da LDAP context til kontakter
ldap host for contacts admin da LDAP vært for kontakter
ldap root dn for contacts admin da LDAP root dn til kontakter
ldap root pw for contacts admin da LDAP root pw til kontakter
ldif addressbook da LDIF
line 2 addressbook da Linie 2
mark records as private addressbook da Markere posteringer som private
message phone addressbook da Meddellelses Telefonnummer
middle name addressbook da Mellemnavn(e)
mobile addressbook da Mobil
mobile phone addressbook da Mobiltelefonnummer
modem phone addressbook da Modem telefonnummer
no vcard addressbook da Ingen VCard
number of records to read (%1) addressbook da Antal posteringer at læse (%1)
other number addressbook da Andet nummer
other phone addressbook da Andet Telefonnummer
pager common da Pager
parcel addressbook da Pakke
phone number common da Telefonnummer
phone numbers common da Telefonnumre
please enter a name for that field ! addressbook da Skriv venligst et navn for det felt!
postal common da Post
pref addressbook da foretrukket
prefix addressbook da Prefix
public key addressbook da Offentlig Nøgle
read a list of entries. addressbook da Læs en liste af indtastninger
read a single entry by passing the id and fieldlist. addressbook da
record access addressbook da Posterings adgang
record owner addressbook da Posterings ejer
retrieve contacts admin da hent kontakter
select all addressbook da Vælg alle
select the type of conversion addressbook da Vælg type af konvertering
select the type of conversion: addressbook da Vælg type af konvertering:
select where you want to store admin da Vælg hvor du vil gemme
show birthday reminders on main screen addressbook da Påmind om fødselsdage på forsiden
startrecord addressbook da Start postering
state common da Land
street common da Vej navn
successfully imported %1 records into your addressbook. addressbook da Importerede %1 posteringer til din adressebog.
suffix addressbook da Suffix
test import (show importable records <u>only</u> in browser) addressbook da Test Import (viser <u>kun</u> importeret posteringer i browser vinduet)
that field name has been used already ! addressbook da Det felt navn er allerede blevet brugt!
this person's first name was not in the address book. addressbook da Denne persons fornavn var ikke i adressebogen.
this person's last name was not in the address book. addressbook da Denne persons efternavn var ikke i adressebogen.
time zone offset addressbook da tidszone forskel
title addressbook da Titel
to many might exceed your execution-time-limit addressbook da
today is %1's birthday! common da I dag er det %1's fødselsdag!
tomorrow is %1's birthday. common da I morgen er det %1's fødselsdag.
translation addressbook da Oversættelse
update a single entry by passing the fields. addressbook da
url addressbook da URL
use country list addressbook da Brug Lande Liste
vcard common da VCard
vcards require a first name entry. addressbook da VCards kræver et fornavn indtastet.
vcards require a last name entry. addressbook da VCards kræver et efternavn indtastet.
video phone addressbook da Video telefonnummer
voice phone addressbook da Voice telefonnummer
warning!! ldap is valid only if you are not using contacts for accounts storage! admin da ADVARSEL!! LDAP er kun tilgængeligt hvis du ikke bruger kontakter til at gemme kontoer!
work phone addressbook da Arbejds telefon
you must select a vcard. (*.vcf) addressbook da Du skal vælge et vcard. (*.vcf)
you must select at least 1 column to display addressbook da Du skal mindst vælge en kolonne
zip code common da Postnummer
zip_note addressbook da <p><b>Note:</b>Filen kan være en zip file med komprimeret .csv, .vcf eller .ldif filer. Men, importer kun en type ad gangen.

View File

@ -1,167 +0,0 @@
%1 records imported addressbook es-ca %1 registres importats
%1 records read (not yet imported, you may go %2back%3 and uncheck test import) addressbook es-ca %1 registres llegits (no importats encara, podeu tornar %2enrere%3 i desmarcar Prova d'Importació)
(e.g. 1969) addressbook es-ca (p. ex. 1969)
<b>no conversion type &lt;none&gt; could be located.</b> please choose a conversion type from the list addressbook es-ca <b>No s'ha trobat el tipus de conversió &lt;cap&gt;.</b> Seleccioneu un tipus de la llista
@-eval() is only availible to admins!!! addressbook es-ca @-eval() només és disponible per als administradors!!!
actions addressbook es-ca Accions
add a single entry by passing the fields. addressbook es-ca Afegir una entrada simple passant els camps
add custom field addressbook es-ca Afegir camp personalitzat
address book common es-ca Llibreta d'adreces
address book - vcard in addressbook es-ca Llibreta d'adreces - Entrada de targeta VCard
address book - view addressbook es-ca Llibreta d'adreces - veure
address line 2 addressbook es-ca Adreça línia 2
address line 3 addressbook es-ca Adreça línia 3
address type addressbook es-ca Tipus d'adreça
addressbook common es-ca Llibreta d'adreces
addressbook preferences addressbook es-ca Preferències de la llibreta d'adreces
addressbook-fieldname addressbook es-ca Camp - Llibreta d'adreces
addvcard addressbook es-ca Afegir VCard
alt. csv import addressbook es-ca Importar CSV (avançat)
are you sure you want to delete this field? addressbook es-ca Esteu segurs d'esborrar aquest camp?
bbs phone addressbook es-ca Telèfon BBS
birthday common es-ca Aniversari
birthdays common es-ca Aniversaris
blank addressbook es-ca Blanc
business common es-ca Treball
business address type addressbook es-ca Tipus d'adreça del treball
business city addressbook es-ca Ciutat del treball
business country addressbook es-ca País del treball
business email addressbook es-ca Correu electrònic del treball
business email type addressbook es-ca Tipus de correu electrònic del treball
business fax addressbook es-ca Fax del treball
business phone addressbook es-ca Telèfon del treball
business state addressbook es-ca Província del treball
business street addressbook es-ca Adreça del treball
business zip code addressbook es-ca Codi postal del treball
car phone addressbook es-ca Telèfon del cotxe
cell phone addressbook es-ca Telèfon móvil
charset of file addressbook es-ca Joc de caràcters de l'arxiu
city common es-ca Ciutat
company common es-ca Empresa
company name common es-ca Nom de l'empresa
configuration common es-ca Configuració
contact common es-ca Contacte
contact application admin es-ca Aplicació del contacte
contact settings admin es-ca Configuració dels contactes
copied by %1, from record #%2. addressbook es-ca Copiat per %1, del registre %2
country common es-ca País
csv-fieldname addressbook es-ca Camp CSV
csv-filename addressbook es-ca Arxiu CSV
custom addressbook es-ca Personalitzat
custom fields addressbook es-ca Camps personalitzats
debug output in browser addressbook es-ca Depurar sortida al navegador
default filter addressbook es-ca Filtre predeterminat
delete a single entry by passing the id. addressbook es-ca Esborrar una entrada senzilla passant l'id
department common es-ca Departament
domestic addressbook es-ca Domèstic
download addressbook es-ca Descarregar
download export file (uncheck to debug output in browser) addressbook es-ca Descarregar arxiu exportat (desmarcar per a depurar la sortida al navegador)
edit custom field addressbook es-ca Editar camp personalitzat
edit custom fields admin es-ca Editar camps personalitzats
empty for all addressbook es-ca buit per a tot
enter the path to the exported file here addressbook es-ca Introduïu el camí als arxius exportats aquí
export contacts addressbook es-ca Exportar contactes
export file name addressbook es-ca Nom de l'arxiu a exportar
export from addressbook addressbook es-ca Exportar des de la llibreta d'adreces
extra addressbook es-ca Extra
fax addressbook es-ca Fax
fax number common es-ca Número de Fax
field %1 has been added ! addressbook es-ca Camp %1 afegit !
field %1 has been updated ! addressbook es-ca Camp %1 actualitzat !
field name addressbook es-ca Nom del camp
fields to show in address list addressbook es-ca Camps a mostrar a la llista d'adreces
fieldseparator addressbook es-ca Separador de camps
full name addressbook es-ca Nom complet
geo addressbook es-ca GEO
global categories addressbook es-ca Categories globals
grant addressbook access common es-ca Atorgar accés a la llibreta
home address type addressbook es-ca Tipus d'adreça particular
home city addressbook es-ca Ciutat de residència
home country addressbook es-ca País de residència
home email addressbook es-ca Correu electrònic personal
home email type addressbook es-ca Tipus de correu electrònic personal
home phone addressbook es-ca Telèfon particular
home state addressbook es-ca Provincia de residència
home street addressbook es-ca Adreça particular
home zip code addressbook es-ca Codi postal
import addressbook es-ca Importar
import contacts addressbook es-ca Importar contactes
import csv-file into addressbook addressbook es-ca Importar arxiu CSV a la Llibreta d'adreces
import file addressbook es-ca Importar arxiu
import from addressbook es-ca Importa de
import from ldif, csv, or vcard addressbook es-ca Importar des de LDIF, CSV o VCard
import from outlook addressbook es-ca Importar des d'Outlook
import multiple vcard addressbook es-ca Importa VCard Múltiple
import next set addressbook es-ca Importar següent registre
import_instructions addressbook es-ca Si useu Mozilla o Netscape, obriu la llibreta d'adreces i seleccioneu <b>Exportar</b> des del menú <b>Arxiu</b>. L'arxiu exportat estarà en format LDIF.<p>O bé, en Outlook, seleccioneu la vostra carpeta de contactes, després, al menú <b>Arxiu</b>, <b>Importar i Exportar...</b> per desar-los en un arxiu separat per comes (CSV).<p>O també, en Palm Desktop 4.0 o superior, visiteu la vostra llibreta d'adreces i seleccioneu <b>Exportar</b> al menú <b>Arxiu</b>. L'arxiu exportat estarà en format VCard.
international addressbook es-ca Internacional
isdn phone addressbook es-ca Telèfon XDSI
label addressbook es-ca Etiqueta
ldap context for contacts admin es-ca Context LDAP per contactes
ldap host for contacts admin es-ca Servidor LDAP per contactes
ldap root dn for contacts admin es-ca Arrel LDAP dn per contactes
ldap root pw for contacts admin es-ca Arrel LDAP pw per contactes
ldif addressbook es-ca LDIF
line 2 addressbook es-ca Línia 2
list all categories addressbook es-ca Llista totes les categories
list all customfields addressbook es-ca Llista tots els camps personalitzats
load vcard addressbook es-ca Carrega VCard
mark records as private addressbook es-ca Marcar registres com a privats
message phone addressbook es-ca Telèfon de missatges
middle name addressbook es-ca Segon nom
mobile addressbook es-ca Mòbil
mobile phone addressbook es-ca Telèfon mòbil
modem phone addressbook es-ca Telèfon de módem
multiple vcard addressbook es-ca VCard Múltiple
no vcard addressbook es-ca Sense VCard
number of records to read (%1) addressbook es-ca Número de registres a llegir (%1)
other number addressbook es-ca Un altre número
other phone addressbook es-ca Un altre telèfon
pager common es-ca Buscapersones
parcel addressbook es-ca Paquet
phone number common es-ca Número de telèfon
phone numbers common es-ca Números de telèfon
please enter a name for that field ! addressbook es-ca Si us plau, entreu un nom per aquest camp !
postal common es-ca Postal
pref addressbook es-ca pref
prefix addressbook es-ca Prefix
public key addressbook es-ca Clau pública
read a list / search for entries. addressbook es-ca Llegiu una llista / cercau entrades
read a list of entries. addressbook es-ca Llegir una llista d'entrades
read a single entry by passing the id and fieldlist. addressbook es-ca Llegir una sola entrada passant l'identificador i la llista de camps
record access addressbook es-ca Accés al registre
record owner addressbook es-ca Propietari del registre
retrieve contacts admin es-ca Recuperar contactes
select all addressbook es-ca Seleccionar tot
select the type of conversion addressbook es-ca Seleccioneu el tipus de conversió
select the type of conversion: addressbook es-ca Seleccioneu el tipus de conversió:
select where you want to store admin es-ca Seleccioneu on voleu desar
show addressbook es-ca Mostra
show birthday reminders on main screen addressbook es-ca Mostrar recordatoris d'aniversaris a la pantalla principal
startrecord addressbook es-ca Registre inicial
state common es-ca Província
street common es-ca Carrer
successfully imported %1 records into your addressbook. addressbook es-ca Importats correctament %1 registres a la llibreta d'adreces.
suffix addressbook es-ca Sufix
test import (show importable records <u>only</u> in browser) addressbook es-ca Prova d'Importació - (mostrar els registres que es poden importar <b>només</b> al navegador)
that field name has been used already ! addressbook es-ca Aquest nom de camp ja s'ha usat !
this person's first name was not in the address book. addressbook es-ca El nom de pila d'aquesta persona no hi era a la llibreta d'adreces.
this person's last name was not in the address book. addressbook es-ca El cognom d'aquesta persona no hi era a la llibreta d'adreces.
to many might exceed your execution-time-limit addressbook es-ca quant pot excedir el temps límit d'execució
today is %1's birthday! common es-ca Avui és l'aniversari de %1!
tomorrow is %1's birthday. common es-ca Demà és l'aniversari de %1.
translation addressbook es-ca Traducció
update a single entry by passing the fields. addressbook es-ca Actualitzar una sola entrada passant els camps
use country list addressbook es-ca Utilitzar llista de països
vcard common es-ca Targeta de visita (VCard)
vcards require a first name entry. addressbook es-ca VCard necessita el nom.
vcards require a last name entry. addressbook es-ca VCard necessita el cognom.
video phone addressbook es-ca Telèfon de videoconferència
voice phone addressbook es-ca Telèfon de veu
warning!! ldap is valid only if you are not using contacts for accounts storage! admin es-ca ATENCIÓ!! LDAP és vàlid només si NO feu servir contactes per enmagatzemar comptes!
work phone addressbook es-ca Telèfon del treball
write (update or add) a single entry by passing the fields. addressbook es-ca Escriu (actualitza o afegeix) una entrada simple donant els camps.
you must select a vcard. (*.vcf) addressbook es-ca Heu de seleccionar una targeta vcard (*.vcf)
you must select at least 1 column to display addressbook es-ca Heu de seleccionar al menys una columna per mostrar
zip code common es-ca Codi postal
zip_note addressbook es-ca <p><b>Nota:</b> L'arxiu pot ser un arxiu comprimit zip que tingui arxius .csv, .vcf o .ldif. Tanmateix, no barregeu els tipus en cada importació.

View File

@ -94,7 +94,7 @@ import from addressbook es-es Importar desde
import from ldif, csv, or vcard addressbook es-es Importar desde LDIF, CSV o VCard import from ldif, csv, or vcard addressbook es-es Importar desde LDIF, CSV o VCard
import from netscape addressbook es-es Importar desde Netscape import from netscape addressbook es-es Importar desde Netscape
import from outlook addressbook es-es Importar desde Outlook import from outlook addressbook es-es Importar desde Outlook
import multiple vcard addressbook es-es Importar múltiples VCards import multiple vcard addressbook es-es Importar tarjetas de visita múltiples
import next set addressbook es-es Importar siguiente registro import next set addressbook es-es Importar siguiente registro
import_instructions addressbook es-es Si usa Mozilla o Netscape, abra la libreta de direcciones y seleccione <b>Exportar</b> desde el menú <b>Archivo</b>. El fichero exportado estará en formato LDIF.<p>O, en Outlook, seleccione su carpeta de contactos, luego, en el menú<b>Fichero</b>, <b>Importar y Exportar</b> para guardarlos en un fichero separado por comas (CSV).<p>O, en Palm Desktop 4.0 o superior, visite la libreta de direcciones y selecciones <b>Exportar</b> desde el menú <b>Archivo</b>. El fichero exportado estará en formato VCard. import_instructions addressbook es-es Si usa Mozilla o Netscape, abra la libreta de direcciones y seleccione <b>Exportar</b> desde el menú <b>Archivo</b>. El fichero exportado estará en formato LDIF.<p>O, en Outlook, seleccione su carpeta de contactos, luego, en el menú<b>Fichero</b>, <b>Importar y Exportar</b> para guardarlos en un fichero separado por comas (CSV).<p>O, en Palm Desktop 4.0 o superior, visite la libreta de direcciones y selecciones <b>Exportar</b> desde el menú <b>Archivo</b>. El fichero exportado estará en formato VCard.
international addressbook es-es Internacional international addressbook es-es Internacional
@ -109,14 +109,14 @@ ldif addressbook es-es LDIF
line 2 addressbook es-es Línea 2 line 2 addressbook es-es Línea 2
list all categories addressbook es-es Lista de todas las categorías list all categories addressbook es-es Lista de todas las categorías
list all customfields addressbook es-es Lista de todos los campos personalizados list all customfields addressbook es-es Lista de todos los campos personalizados
load vcard addressbook es-es Cargar VCard load vcard addressbook es-es Cargar tarjeta de visita
mark records as private addressbook es-es Marcar registros como privados mark records as private addressbook es-es Marcar registros como privados
message phone addressbook es-es Teléfono de mensajes message phone addressbook es-es Teléfono de mensajes
middle name addressbook es-es Segundo nombre middle name addressbook es-es Segundo nombre
mobile addressbook es-es Tel.móvil mobile addressbook es-es Tel.móvil
mobile phone addressbook es-es Teléfono móvil mobile phone addressbook es-es Teléfono móvil
modem phone addressbook es-es Teléfono módem modem phone addressbook es-es Teléfono módem
multiple vcard addressbook es-es VCard múltiple multiple vcard addressbook es-es Tarjeta de visita múltiple
no vcard addressbook es-es Sin VCard no vcard addressbook es-es Sin VCard
number of records to read (%1) addressbook es-es Número de registros a leer (%1) number of records to read (%1) addressbook es-es Número de registros a leer (%1)
number of records to read (<=200) addressbook es-es Registros a leer (menos de 200) number of records to read (<=200) addressbook es-es Registros a leer (menos de 200)

View File

@ -1,166 +0,0 @@
%1 records imported addressbook fi %1 tietuetta tuotu
%1 records read (not yet imported, you may go %2back%3 and uncheck test import) addressbook fi %1 tietuetta luettu (ei vielä tuotu, voit %2palata%3 takaisin ja poistaa valinnan Testaa tuontia)
(e.g. 1969) addressbook fi (esim. 1969)
<b>no conversion type &lt;none&gt; could be located.</b> please choose a conversion type from the list addressbook fi <b>Muunnostyyppiä &lt;none&gt; ei löydy.</b> Valitse muunnostyyppi
@-eval() is only availible to admins!!! addressbook fi @-eval() on vain ylläpitäjien käytettävissä!
actions addressbook fi Toimenpiteet
add a single entry by passing the fields. addressbook fi Lisää yksittäinen tietue antamalla kentät.
add custom field addressbook fi Lisää oma kenttä
address book common fi Osoitekirja
address book - vcard in addressbook fi Osoitekirja - VCard kohteessa
address book - view addressbook fi Osoitekirja - näytä
address line 2 addressbook fi Osoite rivi 1
address line 3 addressbook fi Osoite rivi 2
address type addressbook fi Osoitteen laji
addressbook common fi Osoitekirja
addressbook preferences addressbook fi Osoitekirjan asetukset
addressbook-fieldname addressbook fi Osoitekirja - kentän nimi
addvcard addressbook fi Lisää VCard
alt. csv import addressbook fi Alt. CSV Tuonti
are you sure you want to delete this field? addressbook fi Haluatko poistaa kentän?
bbs phone addressbook fi BBS-numero
birthday common fi Syntymäpäivä
birthdays common fi Syntymäpäivät
blank addressbook fi Tyhjä
business common fi Työ
business address type addressbook fi Business Address Type
business city addressbook fi Kaupunki
business country addressbook fi Maa
business email addressbook fi E-mail
business email type addressbook fi E-mail -tyyppi
business fax addressbook fi Fax
business phone addressbook fi Puhelin
business state addressbook fi Osavaltio
business street addressbook fi Katuosoite
business zip code addressbook fi Postinumero
car phone addressbook fi Autopuhelin
cell phone addressbook fi Matkapuhelin
charset of file addressbook fi Tiedoston merkistö
city common fi Kaupunki
company common fi Yritys
company name common fi Yrityksen nimi
configuration common fi Konfiguraatio
contact common fi Yhteystiedot
contact application admin fi Yhteystietojen hallinta
contact settings admin fi Yhteystiedot - asetukset
copied by %1, from record #%2. addressbook fi Kopioinut %1 tietueesta #%2.
country common fi Maa
csv-fieldname addressbook fi CSV-kentän nimi
csv-filename addressbook fi CSV-tiedoston nimi
custom addressbook fi Oma
custom fields addressbook fi Omat kentät
debug output in browser addressbook fi Virheenselvitys selaimessa
default filter addressbook fi Oletusrajaus
delete a single entry by passing the id. addressbook fi Poista tietue antamalla sen tunniste
department common fi Osasto
domestic addressbook fi Kotimainen
download addressbook fi Lataa
download export file (uncheck to debug output in browser) addressbook fi Lataa vientitiedosto (Ei kun virheenselvitys selaimessa)
edit custom field addressbook fi Muokkaa oma kenttä
edit custom fields admin fi Muokka omia kenttiä
empty for all addressbook fi tyhjä kaikille
enter the path to the exported file here addressbook fi Anna viedyn tiedoston polku
export contacts addressbook fi Vie yhteystiedot
export file name addressbook fi Vie tiedostoon
export from addressbook addressbook fi Vie osoitekirjasta
extra addressbook fi Lisätiedot
fax addressbook fi Faksi
fax number common fi Faksi
field %1 has been added ! addressbook fi Kenttä %1 on lisätty!
field %1 has been updated ! addressbook fi Kenttä %1 on päivitetty!
field name addressbook fi Kentän nimi
fields to show in address list addressbook fi Osoitelistan kentät
fieldseparator addressbook fi Kenttäerotin
full name addressbook fi Koko nimi
geo addressbook fi GEO
global categories addressbook fi Yleiset luokat
grant addressbook access common fi Anna pääsy osoitekirjaan
home address type addressbook fi Kotiosoitteen tyyppi
home city addressbook fi Kaupunki
home country addressbook fi Maa
home email addressbook fi E-mail
home email type addressbook fi E-mail -tyyppi
home phone addressbook fi Puhelin
home state addressbook fi Osavaltio
home street addressbook fi Katuosoite
home zip code addressbook fi Postinumero
import addressbook fi Tuonti
import contacts addressbook fi Tuo yhteystiedot
import csv-file into addressbook addressbook fi Tuo CSV-tiedosto osoitekirjaan
import file addressbook fi Tuo tiedostosta
import from ldif, csv, or vcard addressbook fi Tuo LDIF-, CSV- tai VCard-muodosta
import from outlook addressbook fi Tuo Outlookista
import next set addressbook fi Tuo seuraava ryhmä
import_instructions addressbook fi Netscapessa: Avaa Addressbook ja valitse <b>File</b> -valikosta <b>Export</b> .<br>Syntyvä tiedosto on LDIF -muodoss.<P>Outlookissa: valitse Yhteystiedot -kansio, valitse <b>Tiedosto</b> -valikosta
international addressbook fi Kansainvälinen
isdn phone addressbook fi ISDN-numero
label addressbook fi Label
ldap context for contacts admin fi LDAP-konteksti
ldap host for contacts admin fi LDAP-palvelin
ldap root dn for contacts admin fi LDAP root dn
ldap root pw for contacts admin fi LDAP root pw
ldif addressbook fi LDIF
line 2 addressbook fi Rivi 2
mark records as private addressbook fi Mark records as private
message phone addressbook fi Vastaajapalvelu
middle name addressbook fi Toimen nimi
mobile addressbook fi GSM
mobile phone addressbook fi Matkapuhelin
modem phone addressbook fi Modem Phone
no vcard addressbook fi Ei VCard
number of records to read (%1) addressbook fi Luettavien tietueiden määrä (%1)
other number addressbook fi Muu numero
other phone addressbook fi Muu puhelin
pager common fi Hakulaite
parcel addressbook fi Paketti
phone number common fi Puhelinnumero
phone numbers common fi Puhelinnumerot
please enter a name for that field ! addressbook fi Anna kentän nimi!
postal common fi Postal
pref addressbook fi etuliite
prefix addressbook fi Etuliite
public key addressbook fi Julkinen avain
read a list of entries. addressbook fi Lue tietueiden luettelo
read a single entry by passing the id and fieldlist. addressbook fi Lue yksittäinen tietue antamalla tunniste ja kenttäluettelo.
record access addressbook fi Lukuoikeus
record owner addressbook fi Omistaja
retrieve contacts admin fi nouda kontaktit
select all addressbook fi Valitse kaikki
select the type of conversion addressbook fi Valitse muunnoksen tyyppi
select the type of conversion: addressbook fi Valitse muunnoksen tyyppi:
select where you want to store admin fi Minne haluat tallentaa
show birthday reminders on main screen addressbook fi Näytä syntymäpäivämuistutukset päänäytöllä
startrecord addressbook fi Aloitustietue
state common fi Osavaltio
street common fi Katuosoite
successfully imported %1 records into your addressbook. addressbook fi Tuotiin %1 tietuetta osoitekirjaan.
suffix addressbook fi Jälkiliite
test import (show importable records <u>only</u> in browser) addressbook fi Testaa tuontia (näytä tuotavat tieuteet <u>vain</u> selaimessa)
that field name has been used already ! addressbook fi Kentän nimi on jo käytössä!
this person's first name was not in the address book. addressbook fi Etunimeä ei ole osoitekirjassa.
this person's last name was not in the address book. addressbook fi Sukunimeä ei ole osoitekirjassa.
this person\'s first name was not in the address book. addressbook fi Etunimeä ei ole osoitekirjassa.
this person\'s last name was not in the address book. addressbook fi Sukunimeä ei ole osoitekirjassa.
this person\\\'s first name was not in the address book. addressbook fi Etunimeä ei ole osoitekirjassa.
this person\\\'s last name was not in the address book. addressbook fi Sukunimeä ei ole osoitekirjassa.
to many might exceed your execution-time-limit addressbook fi liian moni saattaa ylittää suoritusajan
today is %1's birthday! common fi Tänään syntymäpäiväänsä viettää %1!
today is %1\'s birthday! common fi Tänään syntymäpäiväänsä viettää %1!
today is %1\\\'s birthday! common fi Tänään syntymäpäiväänsä viettää %1!
tomorrow is %1's birthday. common fi Huomenna syntymäpäiväänsä viettää %1.
tomorrow is %1\'s birthday. common fi Huomenna syntymäpäiväänsä viettää %1.
tomorrow is %1\\\'s birthday. common fi Huomenna syntymäpäiväänsä viettää %1.
translation addressbook fi Käännös
update a single entry by passing the fields. addressbook fi Päivitä yksittäistä tietuetta antamalla kentät.
use country list addressbook fi Käytä maaluetteloa
vcard common fi VCard
vcards require a first name entry. addressbook fi VCard vaatii etunimen.
vcards require a last name entry. addressbook fi VCard vaatii sukunimen.
video phone addressbook fi Videopuhelin
voice phone addressbook fi Puhelin
warning!! ldap is valid only if you are not using contacts for accounts storage! admin fi VAROITUS!! LDAP soveltuu vain jos sitä ei käytetä käyttäjätunnusten tallentamiseen!
work phone addressbook fi Työpuhelin
you must select a vcard. (*.vcf) addressbook fi Valitse vcard -tiedosto. (*.vcf)
you must select at least 1 column to display addressbook fi Valitse ainakin yksi näytettävä sarake
zip code common fi Postinumero
zip_note addressbook fi <p><b>Huom:</b> Tiedosto voi olla usean .csv-, .vcf- tai .ldif- tiedoston zip-paketti. Älä kuitenkaan tuo useampaa tiedostotyyppiä kerralla.

View File

@ -1,158 +0,0 @@
%1 records imported addressbook it %1 record importati
%1 records read (not yet imported, you may go %2back%3 and uncheck test import) addressbook it %1 record letti (non ancora importati, è possibiletornare %2indietro%3 e deselezionare Test Importazione)
(e.g. 1969) addressbook it (e.s. 1969)
<b>no conversion type &lt;none&gt; could be located.</b> please choose a conversion type from the list addressbook it <b>Il tipo di conversione &lt;nessuno&gt; non è stato trovato.</b> Per favore scegliere un tipo di conversione dalla lista
@-eval() is only availible to admins!!! addressbook it @-eval() è disponibile solo agli amministratori!!!
actions addressbook it Azioni
add a single entry by passing the fields. addressbook it Aggiungi un solo elemento passando i campi.
add custom field addressbook it Aggiungi campo personalizzato
address book common it Rubrica
address book - vcard in addressbook it Rubrica - VCard in
address book - view addressbook it Rubrica - visualizza
address line 2 addressbook it Indirizzo linea 2
address line 3 addressbook it Indirizzo linea 3
address type addressbook it Tipo di indirizzo
addressbook common it Rubrica
addressbook preferences addressbook it Preferenze della Rubrica
addressbook-fieldname addressbook it Rubrica - Nome del Campo
addvcard addressbook it Aggiungi Vcard
alt. csv import addressbook it Importazione CSV Alternativa
are you sure you want to delete this field? addressbook it Sei sicuro di voler eliminare questo campo?
bbs phone addressbook it Telefono BBS
birthday common it Data di nascita
birthdays common it Compleanni
blank addressbook it In bianco
business common it Ufficio
business address type addressbook it Tipo di indirizzo dell'ufficio
business city addressbook it Città Ufficio
business country addressbook it Nazione Ufficio
business email addressbook it Email Ufficio
business email type addressbook it Tipo email ufficio
business fax addressbook it Fax ufficio
business phone addressbook it Telefono ufficio
business state addressbook it Provincia ufficio
business street addressbook it Via ufficio
business zip code addressbook it CAP ufficio
car phone addressbook it Telefono veicolare
cell phone addressbook it Telefono cellulare
charset of file addressbook it Set di Caratteri del file
city common it Città
company common it Società
company name common it Nome società
configuration common it Configurazione
contact common it Contatto
contact application admin it Applicativo Contatti
contact settings admin it Impostazioni Contatto
copied by %1, from record #%2. addressbook it Copiato %1, dal record #%2.
country common it Nazione
csv-fieldname addressbook it CSV Nome del Campo
csv-filename addressbook it CSV Nome del File
custom addressbook it Personalizzato
custom fields addressbook it Campi Personalizzati
debug output in browser addressbook it
default filter addressbook it Filtro predefinito
delete a single entry by passing the id. addressbook it
department common it Divisione
domestic addressbook it Interno
download addressbook it Download
download export file (uncheck to debug output in browser) addressbook it Download del file export (Deseleziona per visualizzarlo nel browser)
edit custom field addressbook it Modifica campo personalizzato
edit custom fields admin it Modifica campi personalizzati
empty for all addressbook it per tutti vuoto
enter the path to the exported file here addressbook it Inserisci qui il path del file esportato
export contacts addressbook it Esporta Contatti
export file name addressbook it Esporta nome file
export from addressbook addressbook it Esporta dalla Rubrica
extra addressbook it Extra
fax addressbook it Fax
fax number common it Numero Fax
field %1 has been added ! addressbook it Il campo %1 è stato aggiunto!
field %1 has been updated ! addressbook it Il campo %1 è stato aggiornato!
field name addressbook it Nome Campo
fields to show in address list addressbook it Campi da visualizzare nella lista degli indirizzi
fieldseparator addressbook it Separatore dei campi
full name addressbook it Nome completo
geo addressbook it GEO
global categories addressbook it Categorie Globali
grant addressbook access common it Permetti accesso alla Rubrica
home address type addressbook it Tipo indirizzo Abitazione
home city addressbook it Città Abitazione
home country addressbook it Nazione Abitazione
home email addressbook it Email Abitazione
home email type addressbook it Tipo di email Abitazione
home phone addressbook it Telefono Abitazione
home state addressbook it Provincia Abitazione
home street addressbook it Via Abitazione
home zip code addressbook it CAP Abitazione
import addressbook it Importa
import contacts addressbook it Importa Contatti
import csv-file into addressbook addressbook it Importa file CSV nella Rubrica
import file addressbook it Importa File
import from ldif, csv, or vcard addressbook it Importa da LDIF, CSV, or VCard
import from outlook addressbook it Importa da Outlook
import next set addressbook it Import il prossimo set
import_instructions addressbook it In Netscape, apri la rubrica e seleziona <b>Esporta</b> dal menu <b>File</b>. Il file verrà esportato in formato LDIF.<p>O, in Outlook, seleziona la cartella Contatti , seleziona <b>Importa ed esporta...</b> dal menu <b>File</b> ed esporta i contatti nel formato testo separato da virgola (CSV). <p>O, in Palm Desktop 4.0 o superiore, apri l'agenda e seleziona <b>Esporta</b> dal menu <b>File</b>. Il file verrà esportato in formato VCard.
international addressbook it Internazionale
isdn phone addressbook it Telefono ISDN
label addressbook it Etichetta
ldap context for contacts admin it Contesto LDAP per i contatti
ldap host for contacts admin it Server LDAP per i contatti
ldap root dn for contacts admin it root dn LDAP per i contatti
ldap root pw for contacts admin it password di root LDAP per i contatti
ldif addressbook it LDIF
line 2 addressbook it Linea 2
mark records as private addressbook it Marca i record come privati
message phone addressbook it Telefono per Messaggi
middle name addressbook it Secondo Nome
mobile addressbook it Mobile
mobile phone addressbook it Telefono Mobile
modem phone addressbook it Telefono Modem
no vcard addressbook it Nessuna VCard
number of records to read (<=200) addressbook it Numero di record da leggere (<200)
other number addressbook it Altro Numero
other phone addressbook it Altro Telefono
pager common it Teledrin
parcel addressbook it Parcel
phone number common it Numero di Telefono
phone numbers common it Numeri di telefono
please enter a name for that field ! addressbook it Per favore inserire un nome per qesto campo
postal common it Postal
pref addressbook it pref
prefix addressbook it Prefisso
public key addressbook it Chiave Pubblica
read a list of entries. addressbook it Leggi una lista di inserimenti
read a single entry by passing the id and fieldlist. addressbook it
record access addressbook it Accesso alla scheda
record owner addressbook it Proprietario della scheda
retrieve contacts admin it recupera i contatti
select all addressbook it Seleziona tutto
select the type of conversion addressbook it Seleziona il tipo di conversione
select the type of conversion: addressbook it Seleziona il tipo di conversione:
select where you want to store admin it Seleziona dove vuoi memorizzare
show birthday reminders on main screen addressbook it Visualizza i promemoria dei compleanni nella schermata principale
startrecord addressbook it Record Iniziale
state common it Provincia
street common it Via
successfully imported %1 records into your addressbook. addressbook it Nella tua rubrica sono state importate con successo %1 schede.
suffix addressbook it Suffisso
test import (show importable records <u>only</u> in browser) addressbook it Test importazione (mostra <u>solo</u> record importabili nel browser)
that field name has been used already ! addressbook it Il nome di campo è già stato utilizzato
this person's first name was not in the address book. addressbook it Il nome di questa persona non era nella rubrica.
this person's last name was not in the address book. addressbook it Il cognome di questa persona non è nella rubrica
to many might exceed your execution-time-limit addressbook it troppi potrebbero superare il limite del tempo di esecuzione
today is %1's birthday! common it Oggi è il compleanno di %1!
tomorrow is %1's birthday. common it Domani è il compleanno di %1.
translation addressbook it Traduzione
update a single entry by passing the fields. addressbook it
use country list addressbook it Usa la lista delle nazioni
vcard common it VCard
vcards require a first name entry. addressbook it Le VCard richiedono un valore per il nome.
vcards require a last name entry. addressbook it Le Vcards richiedono un valore per il cognome
video phone addressbook it Videotelefono
voice phone addressbook it Telefono Vocale
warning!! ldap is valid only if you are not using contacts for accounts storage! admin it ATTENZIONE!! LDAP è utilizzabile solo se NON stai usando i contatti per la memorizzazione dei dati sugli account!
work phone addressbook it Telefono Ufficio
you must select a vcard. (*.vcf) addressbook it Bisogna selezionare una vcard (*.vcf)
you must select at least 1 column to display addressbook it Bisogna selezionare almeno una colonna da visualizzare
zip code common it CAP
zip_note addressbook it <p><b>Note:</b> Il file deve essere uno zip contentente file .csv, .vcf, o .ldif. Tuttavia, non mischiare i tipi di file da importare

View File

@ -1,99 +0,0 @@
address book common ja アドレス帳
address book - vcard in addressbook ja アドレス帳 - VCard追加
addressbook common ja アドレス帳
addressbook preferences addressbook ja アドレス帳ユーザ設定
addresses common ja アドレス帳
addvcard addressbook ja VCard追加
add a field addressbook ja 項目追加
address book - view addressbook ja アドレス帳 - 表示
address line 2 addressbook ja 町域2
address line 3 addressbook ja 町域3
address type addressbook ja アドレスタイプ
alt. csv import addressbook ja CSVインポート
are you sure you want to delete this field? addressbook ja この項目を削除してもよろしいですか。
bbs phone addressbook ja BBS電話
birthday common ja 誕生日
blank addressbook ja 空白
business address type addressbook ja アドレスタイプ
business common ja ビジネス
business city addressbook ja 市区町村
business country addressbook ja 国
business email addressbook ja 電子メール
business email type addressbook ja 電子メールタイプ
business fax addressbook ja FAX
business phone addressbook ja 電話
business state addressbook ja 都道府県
business street addressbook ja 町域
business zip code addressbook ja 郵便番号
car phone addressbook ja 自動車電話
cell phone addressbook ja cell 電話
city common ja 市区町村
company common ja 会社
company name common ja 会社名
contact common ja 連絡先
country common ja 国
csv-filename addressbook ja CSVファイル名
custom fields addressbook ja カスタム項目
custom field addressbook ja カスタム項目
default filter addressbook ja 既定のフィルタ
department common ja 部署
edit field addressbook ja カスタム項目訂正
export contacts addressbook ja エクスポート
export file name addressbook ja エクスポートファイル名
export from addressbook addressbook ja エクスポート(アドレス帳)
fax common ja Fax
field list addressbook ja 項目一覧
field name addressbook ja 項目名
field %1 has been added ! addressbook ja 項目 %1 を追加しました。
field %1 has been updated ! addressbook ja 項目 %1 を訂正しました。
fields to show in address list addressbook ja アドレスリストに表示する項目
fieldseparator addressbook ja 項目の区切り
geo addressbook ja Geo
grant addressbook access common ja 利用許可設定
home address type addressbook ja 住所
home city addressbook ja 市区町村
home country addressbook ja 国
home email addressbook ja 電子メール
home email type addressbook ja 電子メールタイプ
home phone addressbook ja 自宅TEL
home state addressbook ja 都道府県
home street addressbook ja 町域
home zip code addressbook ja 郵便番号
import contacts addressbook ja インポート
import csv-file into addressbook addressbook ja CSVファイルからのインポート
import file addressbook ja インポート
import from ldif, csv, or vcard addressbook ja インポートLDIF, CSV, VCard
import from outlook addressbook ja インポートOutlook
isdn phone addressbook ja ISDN
label addressbook ja ラベル
line 2 addressbook ja 町域(2行目)
message phone addressbook ja メッセージ
middle name addressbook ja ミドルネーム
mobile addressbook ja 携帯電話
other number addressbook ja その他番号
pager common ja ページャー
parcel addressbook ja 区画
phone numbers common ja 電話番号
Please enter a name for that field! addressbook ja 項目名を入力して下さい。
please set your preferences for this app addressbook ja ユーザ設定を行って下さい。
postal common ja 郵便
prefix addressbook ja プレフィックス
public key addressbook ja パブリックキー
record access addressbook ja アクセス権
record owner addressbook ja 所有者
show birthday reminders on main screen addressbook ja メイン画面に誕生日情報を表示
state common ja 都道府県
street common ja 町域
suffix addressbook ja 敬称
that field name has been used already ! addressbook ja 項目名は既に存在しています。
this person's first name was not in the address book. addressbook ja アドレス帳に名前がありません。
today is %1's birthday! common ja 今日は %1 さんの誕生日です。
tommorow is %1's birthday. common ja 明日は %1 さんの誕生日です。
url addressbook ja URL
vcard common ja VCard
vcards require a first name entry. addressbook ja VCard には、名前が必要です。
video phone addressbook ja ビデオ電話
voice phone addressbook ja 電話
work phone addressbook ja 勤務先TEL
you must select at least 1 column to display addressbook ja 表示する項目を選択してください。
zip code common ja 郵便番号

View File

@ -1,165 +0,0 @@
%1 records imported addressbook nl %1 adressen geïmporteerd
%1 records read (not yet imported, you may go %2back%3 and uncheck test import) addressbook nl %1 adressen gelezen (nog niet geïmporteerd, U kunt %2terug%3 gaan en "Test Import" uitzetten)
(e.g. 1969) addressbook nl (bijv. 1969)
<b>no conversion type &lt;none&gt; could be located.</b> please choose a conversion type from the list addressbook nl <b>Geen conversietype &lt;none&g; gevonden </b> Selecteer a.u.b. een conversietype uit de lijst.
@-eval() is only availible to admins!!! addressbook nl @-eval() is alleen beschikbaar voor beheerders
actions addressbook nl Acties
add a single entry by passing the fields. addressbook nl Een enkele invoeren door de velden te geven
add custom field addressbook nl Aangepast veld toevoegen
address book common nl Adresboek
address book - vcard in addressbook nl Adresboek - VCard in
address book - view addressbook nl Adresboek - weergave
address line 2 addressbook nl Adres Lijn 1
address line 3 addressbook nl Adres Lijn 2
address type addressbook nl Type adres
addressbook common nl Adresboek
addressbook preferences addressbook nl Adresboek voorkeuren
addressbook-fieldname addressbook nl Adresboek veldnaam
addvcard addressbook nl VCard toevoegen
alt. csv import addressbook nl Alternatief CSV-bestand importeren
are you sure you want to delete this field? addressbook nl Weet u zeker dat u dit veld wilt verwijderen?
bbs phone addressbook nl BBS Telefoon
birthday common nl Verjaardag
birthdays common nl Verjaardagen?
blank addressbook nl Blanco
business common nl Bedrijf
business address type addressbook nl Bedrijf Adrestype
business city addressbook nl Bedrijf Plaats
business country addressbook nl Bedrijf Land
business email addressbook nl Bedrijf Email
business email type addressbook nl Bedrijf Type Email
business fax addressbook nl Bedrijf Fax
business phone addressbook nl Bedrijf Telefoon
business state addressbook nl Bedrijf Provincie / Staat / District
business street addressbook nl Bedrijf Straat
business zip code addressbook nl Bedrijf Postcode
car phone addressbook nl Autotelefoon
cell phone addressbook nl Mobiele telefoon
charset of file addressbook nl Karakterset van bestand
city common nl Stad
company common nl Bedrijf
company name common nl Bedrijfsnaam
configuration common nl Instellingen
contact common nl Contact
contact application admin nl Contact applicatie
contact settings admin nl Contactinstellingen
copied by %1, from record #%2. addressbook nl Gekopiëerd door %1, van record #%2.
country common nl Land
csv-fieldname addressbook nl CSV-Veldnaam
csv-filename addressbook nl CSV-Bestandsnaam
custom addressbook nl Aangepast
custom fields addressbook nl Aangepast velden
debug output in browser addressbook nl Debug resultaat in browser
default filter addressbook nl Standaard filter
delete a single entry by passing the id. addressbook nl Verwijder een enkel record door het ID. te geven
department common nl Afdeling
domestic addressbook nl Huisadres
download addressbook nl Download
download export file (uncheck to debug output in browser) addressbook nl Download export bestand (uitzetten om in verkenner te tonen)
e-mail addressbook nl E-mail
edit custom field addressbook nl Aangepast veld wijzigen
edit custom fields admin nl Aangepaste velden wijzigen
empty for all addressbook nl leeg voor alle
enter the path to the exported file here addressbook nl Geef folder voor het te exporteren bestand hier aan
export contacts addressbook nl Exporteer contacten
export file name addressbook nl Naam export
export from addressbook addressbook nl Exporteer vanuit adresboek
extra addressbook nl Extra
fax addressbook nl Fax
fax number common nl Faxnummer
field %1 has been added ! addressbook nl Veld 1% is toegevoegd !
field %1 has been updated ! addressbook nl Veld 1% bijgewerkt !
field name addressbook nl Veldnaam
fields to show in address list addressbook nl Velden die zichtbaar zijn in adreslijst
fieldseparator addressbook nl Scheidingssymbool velden
first name addressbook nl Voornaam
full name addressbook nl Volledige naam
geo addressbook nl GEO
global categories addressbook nl Globale categoriën
grant addressbook access common nl Geen toegang adresboek
home address type addressbook nl Privé adrestype
home city addressbook nl Privé Plaats
home country addressbook nl Privé Land
home email addressbook nl Privé Email
home email type addressbook nl Privé Type Email
home phone addressbook nl Privé telefoon
home state addressbook nl Privé Provincie / Staat / District
home street addressbook nl Privé Straat
home zip code addressbook nl Privé Postcode
import addressbook nl Importeren
import contacts addressbook nl Contacten Importeren
import csv-file into addressbook addressbook nl CSV-bestand importeren naar adresboek
import file addressbook nl Bestand importeren
import from ldif, csv, or vcard addressbook nl Importeren vanuit LDIF, CSV or VCard
import from outlook addressbook nl Importeren vuit Outlook
import next set addressbook nl Importeren volgende serie
import_instructions addressbook nl In Netscape, open het adressenboek en selecteer <b>Exporteren</b> in het menu <b>Bestand</b>. Het bestand wordt geëxporteerd in het LDIF formaat.<p>Of, in Outlook, selecteer de contacten-folder, kies <b>Importeren en Exporteren...</b> in het menu <b>Bestand</b> en exportoor als komma gescheiden tekst bestand (CSV).<p>Of, in Palm Desktop 4.0 of nieuwer, kies het adresboek en selecteer <b>Exporteren</b> in het menu <b>Bestand</b>, het bestand wordt geëxporteerd in het VCard formaat.
international addressbook nl Internationaal
isdn phone addressbook nl ISDN
label addressbook nl Label
last name addressbook nl Achternaam
ldap context for contacts admin nl LDAP-context voor contacten
ldap host for contacts admin nl LDAP-host voor contacten
ldap root dn for contacts admin nl LDAP-root dn voor contacten
ldap root pw for contacts admin nl LDAP-root pw voor contacten
ldif addressbook nl LDIF
line 2 addressbook nl Regel 2
mark records as private addressbook nl Markeer records als privé
message phone addressbook nl Bericht Telefoon
middle name addressbook nl Tweede naam
mobile addressbook nl Mobiel
mobile phone addressbook nl Mobiel telefoon
modem phone addressbook nl Modem telefoon
no vcard addressbook nl Geen VCard
notes addressbook nl Opmerkingen
number of records to read (%1) addressbook nl Aantal adressen om te importen (%1)
other number addressbook nl Ander nummer
other phone addressbook nl Andere telefoon
pager common nl Buzzer
parcel addressbook nl Pakket
phone number common nl Telefoonnummer
phone numbers common nl Telefoonnummers
please enter a name for that field ! addressbook nl Vul voor dat veld au.b. een naam in !
postal common nl Postadres
pref addressbook nl voorkeur
prefix addressbook nl Voorvoegsel
public key addressbook nl Public Key
read a list of entries. addressbook nl Lees een lijst met records
read a single entry by passing the id and fieldlist. addressbook nl Lees een record door een ID. in te voeren en een veldenlijst
record access addressbook nl Toegang adres
record owner addressbook nl Eigenaar adres
retrieve contacts admin nl Contacten ontvangen
rl addressbook nl URL
select all addressbook nl Alles selecteren
select the type of conversion addressbook nl Kies type conversie
select the type of conversion: addressbook nl Kies type conversie:
select where you want to store admin nl Selecteer waar u wilt opslaan
show addressbook nl Toon
show birthday reminders on main screen addressbook nl Verjaardagsherinneringen weergeven op hoofdscherm
startrecord addressbook nl Startrecord
state common nl Provincie / Staat / District
street common nl Straatnaam
successfully imported %1 records into your addressbook. addressbook nl Met succes %1 reocrd geïmporteerd naar uw adresboek
suffix addressbook nl Achtervoegsel
test import (show importable records <u>only</u> in browser) addressbook nl Test Import (te importeren adressen ALLEEN WEERGEVEN in uw browser)
that field name has been used already ! addressbook nl Het veldnaam is al in gebruik !
this person's first name was not in the address book. addressbook nl De voornaam van deze persoon staat niet het adresboek.
this person's last name was not in the address book. addressbook nl De achternaam van deze persoon staat niet het adresboek.
title addressbook nl Titel
to many might exceed your execution-time-limit addressbook nl Te veel kan mogelijk uw uitvoertijd van dit programme overschrijden
today is %1's birthday! common nl Vandaag is %1 jarig !
tomorrow is %1's birthday. common nl Morgen is %1 jarig
translation addressbook nl Vertaling / Script
update a single entry by passing the fields. addressbook nl Een record bijwerken door de velden te geven
use country list addressbook nl Gebruik Landenlijst
vcard common nl VCard
vcards require a first name entry. addressbook nl VCard vereist dat de voornaam ingevoerd is.
vcards require a last name entry. addressbook nl VCard vereist dat de achternaam ingevoerd is.
video phone addressbook nl Beeld telefoon
voice phone addressbook nl Telefoon
warning!! ldap is valid only if you are not using contacts for accounts storage! admin nl WAARSCHUWING!! Alleen LDAP gebruiken als het adresboek niet wordt gebruikt om de accounts op te slaan!
work phone addressbook nl Telefoon werk
you must select a vcard. (*.vcf) addressbook nl U moet een VCard selecteren (*.vcf)
you must select at least 1 column to display addressbook nl U moet een op z'n minst 1 kolom selecteren om weer te geven
zip code common nl Postcode
zip_note addressbook nl <p><b>Opmerking:</b> Het bestand mag een zip file zijn bestaande uit .csv, .vcf, of .ldif bestanden. Echter, geen meerdere types per import.

View File

@ -1,187 +0,0 @@
%1 records imported addressbook no %1 rekker importert
%1 records read (not yet imported, you may go %2back%3 and uncheck test import) addressbook no %1 rekker lest (ikke importert enda, du kan gå %2tilbake%3 og fjerne haken på Test Import.
(e.g. 1969) addressbook no (eks. 1969)
<b>no conversion type &lt;none&gt; could be located.</b> please choose a conversion type from the list addressbook no <b>Ingen oversettingstype &lt;none&gt; ble funnet.</b>Vennligst velg oversettingstype fra listen.
@-eval() is only availible to admins!!! addressbook no @-eval() er kun tilgjengelig for admins!!!
actions addressbook no Funksjoner
add a single entry by passing the fields. addressbook no Legg til ett enkelt innslag ved å fylle inn feltene.
add custom field addressbook no Legg til egendefinert felt
address book common no Addresse Liste
address book - vcard in addressbook no Adresseliste - VCard inn
address book - view addressbook no Adresseliste - vis
address line 2 addressbook no Adresse Linje 2
address line 3 addressbook no Adresse Linke 3
address type addressbook no Adresse type
addressbook common no Addresseliste
addressbook preferences addressbook no Adresseliste preferanser
addressbook-fieldname addressbook no Adresseliste-Feltnavn
addvcard addressbook no Legg til VCard
alt. csv import addressbook no Alt. CSV Import
are you sure you want to delete this field? addressbook no Er du sikker du vil slette dette feltet?
bbs phone addressbook no BBS Telefon
birthday common no Fødselsdag
birthdays common no Fødselsdager
blank addressbook no Tom
business common no Arbeid
business address type addressbook no Adresse Type, Arbeid
business city addressbook no By, Arbeid
business country addressbook no Land, Arbeid
business email addressbook no Epost, Arbeid
business email type addressbook no Epost Type, Arbeid
business fax addressbook no Telefaks, Arbeid
business phone addressbook no Telefon, Arbeid
business state addressbook no Fylke, Arbeid
business street addressbook no Gate, Arbeid
business zip code addressbook no Postkode, Arbeid
car phone addressbook no Bil Telefon
cell phone addressbook no Mobiltelefon
charset of file addressbook no Karaktersett for filen
city common no By
company common no Firma
company name common no Firmanavn
configuration common no Konfigurasjon
contact common no Kontakt
contact application admin no Kontakt program
contact settings admin no Kontakt Innstillinger
copied by %1, from record #%2. addressbook no Kopiert av %1, fra rekke #%2.
country common no Land
csv-fieldname addressbook no CSV-Feltnavn
csv-filename addressbook no CSV-FIlnavn
custom addressbook no Egendefinert
custom fields addressbook no Egendefinerte Felter
debug output in browser addressbook no Feilsøkingsmeldinger i webleser
default filter addressbook no Standard Filter
delete a single entry by passing the id. addressbook no Oppgi id for å slette ett enkelt innslag.
department common no Avdeling
domestic addressbook no Innenlands
download addressbook no Last ned
download export file (uncheck to debug output in browser) addressbook no Last ned eksport fil (fjern hake for å se feilsøkingsinformasjon i webleser)
e-mail addressbook no E-Post
edit custom field addressbook no Endre egendefinert felt
edit custom fields admin no Endre egendefinerte felter
empty for all addressbook no tom for alle
enter the path to the exported file here addressbook no Skriv inn sti til den eksporterte filen her
export contacts addressbook no Eksporter Kontakter
export file name addressbook no Eksport filnavn
export from addressbook addressbook no Eksport fra Adresseliste
extra addressbook no Ekstra
fax addressbook no Telefaks
fax number common no Telefaks Nummer
field %1 has been added ! addressbook no Felt %1 ble lagt til !
field %1 has been updated ! addressbook no Felt %1 ble oppdatert!
field name addressbook no Felt Navn
fields to show in address list addressbook no Felt som skal vises i adresseliste
fieldseparator addressbook no Feltskiller
first name addressbook no Fornavn
full name addressbook no Fullt Navn
global categories addressbook no Globale Kategorier
grant addressbook access common no Gi adressebok tilgang
home address type addressbook no Adresse type, Hjemme
home city addressbook no By, Hjemme
home country addressbook no Land, Hjemme
home email addressbook no Epost, Hjemme
home email type addressbook no Epost type, Hjemme
home phone addressbook no Telefon, Hjemme
home state addressbook no Fylke, Hjemme
home street addressbook no Gate, Hjemme
home zip code addressbook no Postkode, Hjemme
import addressbook no Importer
import contacts addressbook no Importer Kontakter
import csv-file into addressbook addressbook no Importer CSV-fil i Adresselisten
import file addressbook no Importer Fil
import from ldif, csv, or vcard addressbook no Importer fra LDIF, CSV eller VCard
import from outlook addressbook no Importer fra Outlook
import next set addressbook no Importer neste sett
import_instructions addressbook no I Netscape, åpne adresselisten og velg <b>Eksporter</b> fra <b>Fil</b> menyen. Den eksporterte filen vil være i LDIF format. I Outlook velger du Kontakter mappen, så <b>Import og eksport...</b> fra <b>Fil</b> menyen, og eksporterer kontaktene til en kommaseparert (CSV) fil.<p>For Palm Desktop 4.0 og høyere, gå til adresseliste og velg <b>Eksport</b> fra <b>Fil</b> menyen. Den eksporterte filen vil være på VCard format.
international addressbook no Internasjonal
isdn phone addressbook no ISDN Telefon
label addressbook no Etikett
last name addressbook no Etternavn
ldap context for contacts admin no LDAP område for kontakter
ldap host for contacts admin no LDAP tjener for kontakter
ldap root dn for contacts admin no LDAP root dn for kontakter
ldap root pw for contacts admin no LDAP root passord for kontakter
ldif addressbook no LDIF
line 2 addressbook no Linje 2
mark records as private addressbook no Merk rekkene som private
message phone addressbook no Meldings Telefon?
middle name addressbook no Mellomnavn
mobile addressbook no Mobil
mobile phone addressbook no Mobiltelefon
modem phone addressbook no Modem Telefon
no vcard addressbook no Ingen VCard
notes addressbook no Annet
number of records to read (%1) addressbook no Antall rekker som leses (%1)
other number addressbook no Annet Nummer
other phone addressbook no Annen Telefon
pager common no Personsøker
phone number common no Telefon Nummer
phone numbers common no Telefon Numre
please enter a name for that field ! addressbook no Vennligst skriv inn feltnavn !
prefix addressbook no Forstavelse
public key addressbook no Offentlig Nøkkel
read a list of entries. addressbook no Lese liste
read a single entry by passing the id and fieldlist. addressbook no Les ett enkelt innslag ved å gi id og feltliste.
record access addressbook no Rekketilgang
record owner addressbook no Rekkeeier
retrieve contacts admin no Hent kontakter
select all addressbook no Velg alle
select the type of conversion addressbook no Velg konverteringstype
select the type of conversion: addressbook no Velg konverterings type:
select where you want to store admin no Velg området du vil lagre
show birthday reminders on main screen addressbook no Vis fødselsdags-påminnelse på hovedskjerm
startrecord addressbook no Startrekke
state common no Fylke
street common no Gate
successfully imported %1 records into your addressbook. addressbook no Vellykket import av %1 rekker til adresseboken.
suffix addressbook no Endelse
test import (show importable records <u>only</u> in browser) addressbook no Test Import (vis <u>kun</u> importerbare rekker i webleser)
that field name has been used already ! addressbook no Feltnavnet er allerede i bruk !
this person\'s first name was not in the address book. addressbook no Personens fornavn ble ikke funnet i adresselisten.
this person\'s last name was not in the address book. addressbook no Personens etternavn ble ikke funnet i adresselisten
this person\\\'s first name was not in the address book. addressbook no Personens fornavn ble ikke funnet i adresselisten.
this person\\\'s last name was not in the address book. addressbook no Personens etternavn ble ikke funnet i adresselisten
this person\\\\\\\'s first name was not in the address book. addressbook no Personens fornavn ble ikke funnet i adresselisten.
this person\\\\\\\'s last name was not in the address book. addressbook no Personens etternavn ble ikke funnet i adresselisten
this person\\\\\\\\\\\\\\\'s first name was not in the address book. addressbook no Personens fornavn ble ikke funnet i adresselisten.
this person\\\\\\\\\\\\\\\'s last name was not in the address book. addressbook no Personens etternavn ble ikke funnet i adresselisten
this person\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'s first name was not in the address book. addressbook no Personens fornavn ble ikke funnet i adresselisten.
this person\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'s last name was not in the address book. addressbook no Personens etternavn ble ikke funnet i adresselisten
this person\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'s first name was not in the address book. addressbook no Personens fornavn ble ikke funnet i adresselisten.
this person\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'s last name was not in the address book. addressbook no Personens etternavn ble ikke funnet i adresselisten
this person\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'s first name was not in the address book. addressbook no Personens fornavn ble ikke funnet i adresselisten.
this person\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'s last name was not in the address book. addressbook no Personens etternavn ble ikke funnet i adresselisten
this person\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'s first name was not in the address book. addressbook no Personens fornavn ble ikke funnet i adresselisten.
this person\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'s last name was not in the address book. addressbook no Personens etternavn ble ikke funnet i adresselisten
today is %1's birthday! common no I dag har %1 fødselsdag!
today is %1\'s birthday! common no I dag har %1 fødselsdag!
today is %1\\\'s birthday! common no I dag har %1 fødselsdag!
today is %1\\\\\\\'s birthday! common no I dag har %1 fødselsdag!
today is %1\\\\\\\\\\\\\\\'s birthday! common no I dag har %1 fødselsdag!
today is %1\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'s birthday! common no I dag har %1 fødselsdag!
today is %1\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'s birthday! common no I dag har %1 fødselsdag!
today is %1\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'s birthday! common no I dag har %1 fødselsdag!
today is %1\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'s birthday! common no I dag har %1 fødselsdag!
tomorrow is %1's birthday. common no I morgen er det %1's fødselsdag.
tomorrow is %1\'s birthday. common no I morgen er det %1's fødselsdag.
tomorrow is %1\\\'s birthday. common no I morgen er det %1's fødselsdag.
tomorrow is %1\\\\\\\'s birthday. common no I morgen er det %1's fødselsdag.
tomorrow is %1\\\\\\\\\\\\\\\'s birthday. common no I morgen er det %1's fødselsdag.
tomorrow is %1\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'s birthday. common no I morgen er det %1's fødselsdag.
tomorrow is %1\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'s birthday. common no I morgen er det %1's fødselsdag.
tomorrow is %1\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'s birthday. common no I morgen er det %1's fødselsdag.
tomorrow is %1\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'s birthday. common no I morgen er det %1's fødselsdag.
translation addressbook no Oversetting
update a single entry by passing the fields. addressbook no Oppdater ett enkelt innslag ved å legge inn felter.
use country list addressbook no Bruk Land Liste
vcard common no VCard
vcards require a first name entry. addressbook no VCard krever fornavn.
vcards require a last name entry. addressbook no VCard kever etternavn.
video phone addressbook no Video Telefon
voice phone addressbook no Vanlig Telefon
warning!! ldap is valid only if you are not using contacts for accounts storage! admin no ADVARSEL!! LDAP er kun aktuellt dersom du IKKE bruker kontakter til konto lagring!
work phone addressbook no Arbeids telefon
you must select a vcard. (*.vcf) addressbook no Du må velge et vcard. (*.vcf)
you must select at least 1 column to display addressbook no Du må velge minst en kolonne for visning
zip code common no Postnummer
zip_note addressbook no <p><b>Merk:</b>Denne filen kan være en pakket samling av .csv, .vcf eller .ldif filer. Du må ikke blande filtyper under import.

View File

@ -1,171 +0,0 @@
%1 records imported addressbook pl Zaimportowano %1 rekordów
%1 records read (not yet imported, you may go %2back%3 and uncheck test import) addressbook pl Wczytano %1 rekordów (ale jeszcze nie zaimportowano, mo¿esz %2wróciæ%3 i skasowaæ zaznaczenie próbnego importu)
(e.g. 1969) addressbook pl (np. 1969)
<b>no conversion type &lt;none&gt; could be located.</b> please choose a conversion type from the list addressbook pl <b>Nie wybrano trybu konwersji typu &lt;¿aden&gt;.</b> Proszê wybraæ typ trybu konwersji z listy
<b>no conversion type <none> could be located.</b> please choose a conversion type from the list addressbook pl <b>typ konwersji <none> nie zosta znaleziony.</b> Prosz wybra typ konwersji z listy
@-eval() is only availible to admins!!! addressbook pl @-eval() jest dostêpne wy³±cznie dla administratorów !!!
actions addressbook pl Polecenia
add a single entry by passing the fields. addressbook pl Dodaj pojedyczy wpis za pomoc± przekazania pól
add custom field addressbook pl Dodaj pole u¿ytkownika
address book common pl Kontakty, adresy
address book - vcard in addressbook pl Wczytanie kartek elektronicznych do ksi±¿ki adresowej
address book - view addressbook pl Przegl±d ksi±¿ki adresowej
address line 2 addressbook pl Wiersz adresu nr 2
address line 3 addressbook pl Wiersz adresu nr 3
address type addressbook pl Typ adresu
addressbook common pl Ksi±¿ka adresowa
addressbook preferences addressbook pl Ustawienia ksi±¿ki adresowej
addressbook-fieldname addressbook pl Nazwa pola adresowego
addvcard addressbook pl Dodaj kartkê elektroniczn±
alt. csv import addressbook pl Alt. CSV Import
are you sure you want to delete this field? addressbook pl Czy na pewno skasowaæ to pole?
bbs phone addressbook pl Telefon BBS
birthday common pl Urodziny
birthdays common pl Urodziny
blank addressbook pl Puste
business common pl Firma
business address type addressbook pl Typ adresu firmowego
business city addressbook pl Miasto firmy
business country addressbook pl Kraj firmy
business email addressbook pl E-mail firmy
business email type addressbook pl Typ e-maila firmy
business fax addressbook pl Faks firmy
business phone addressbook pl Telefon firmy
business state addressbook pl Województwo
business street addressbook pl Ulica firmy
business zip code addressbook pl Kod pocztowy firmy
car phone addressbook pl Telefon w samochodzie
cell phone addressbook pl Telefon komórkowy
city common pl Miasto
company common pl Firma
company name common pl Nazwa firmy
configuration common pl Konfiguracja
contact common pl Kontakt
contact application admin pl Aplikacja kontaktowa
contact settings admin pl Ustawienia kontaktu
copied by %1, from record #%2. addressbook pl Skopiowane przez %1, z rekordu # %2
country common pl Kraj
csv-fieldname addressbook pl Nazwa pola CSV
csv-filename addressbook pl Nazwa pliku CSV
custom addressbook pl U¿ytkownika
custom field addressbook pl Pole uytkownika
custom fields addressbook pl Pola u¿ytkownika
default filter addressbook pl Filtr domy¶lny
department common pl Departament
domestic addressbook pl Domowy
download addressbook pl Pobierz
download export file (uncheck to debug output in browser) addressbook pl Zapisz plik na dysku (je¿eli nie zaznaczysz, wynik bedzie pokazany wy³±cznie w oknie przegl±darki)
edit custom field addressbook pl Edytuj pole u¿ytkownika
edit custom fields admin pl Edytuj pola u¿ytkownika
empty for all addressbook pl puste dla wszystkich
enter the path to the exported file here addressbook pl Podaj ¶cie¿kê do wyexportowanego pliku tutaj
export contacts addressbook pl Eksportuj kontakty
export file name addressbook pl Nazwa pliku
export from addressbook addressbook pl Eksport z ksi±¿ki adresowej
extra addressbook pl Dodatkowe
fax addressbook pl Faks
fax number common pl Numer faksu
field %1 has been added ! addressbook pl Pole %1 zosta³o dodane !
field %1 has been updated ! addressbook pl Pole %1 zosta³o zaktualizowane !
field name addressbook pl Nazwa pola
fields to show in address list addressbook pl Pola pokazywane na li¶cie adresów
fieldseparator addressbook pl Separator pól
full name addressbook pl Pe³na nazwa
geo addressbook pl GEO
global categories addressbook pl Kategorie globalne
grant addressbook access common pl Nadaj prawa dostêpu do ksi±¿ki adresowej
home addressbook pl Dom
home address type addressbook pl Typ adresu
home city addressbook pl Miasto zamieszkania
home country addressbook pl Kraj zamieszkania
home email addressbook pl E-mail domowy
home email type addressbook pl Typ domowego e-mail
home phone addressbook pl Telefon domowy
home state addressbook pl Wojewdztwo
home street addressbook pl Ulica
home zip code addressbook pl Kod pocztowy
import addressbook pl Importuj
import contacts addressbook pl Importuj kontakty
import csv-file into addressbook addressbook pl Importuj plik CSV do ksi±¿ki adresowej
import file addressbook pl Plik importu
import from ldif, csv, or vcard addressbook pl Import z LDIF, CSV lub VCard
import from outlook addressbook pl Importuj z programu Outlook
import next set addressbook pl Importuj nastêpny set
import_instructions addressbook pl W Netscape, otwórz Ksi±¿kê Adresow± (Addressbook) i wybierz z menu <b>Plik</b> (File) pozycjê <b>Eksport</b>. Plik zostanie wyeksportowany w formacie LDIF.<p> W Outlooku, wybierz folder Kontakty, wybierz z menu <b>Plik</b> pozycjê <b>Import i eksport</b> i wyeksportuj swoje kontakty do pliku tekstowego oddzielanego kropk± (CSV).<p>W Palm Desktop 4.0 (lub wy¿szym), wejd¼ do ksi±¿ki adresowej i wybierz <b>Export</b> z menu <b>Plik</b>. Zostanie on wyeksportowany w formacie VCard.
international addressbook pl Miêdzynarodowy
isdn phone addressbook pl Telefon ISDN
label addressbook pl Etykieta
ldap context for contacts admin pl Kontekst LDAP dla kontaktów
ldap host for contacts admin pl Serwer LDAP dla kontaktów
ldap root dn for contacts admin pl LDAP root dn dla kontaktów
ldap root pw for contacts admin pl LDAP root pw dla kontaktów
ldif addressbook pl LDIF
line 2 addressbook pl Wiersz 2
list all categories addressbook pl Wywietl wszystkie kategorie
mark records as private addressbook pl Zaznacz rekordy jako prywatne
message phone addressbook pl Automatyczna sekretarka
middle name addressbook pl Drugie imiê
mobile addressbook pl Komórka
mobile phone addressbook pl Komórka
modem phone addressbook pl Numer modemu
no vcard addressbook pl Bez VCard
number of records to read (%1) addressbook pl Liczba rekordów do wczytania (%1)
other number addressbook pl Inny numer
other phone addressbook pl Inny telefon
pager common pl Pager
parcel addressbook pl Paczka
phone number common pl Numer telefonu
phone numbers common pl Numery telefonów
please enter a name for that field ! addressbook pl Proszê podaæ nazwê tego pola !
postal common pl Kod pocztowy
pref addressbook pl pref
prefix addressbook pl Prefiks (Pan/Pani)
public key addressbook pl Klucz publiczny
read a list of entries. addressbook pl Wczytaj listê wpisów
record access addressbook pl Dostêp do rekordu
record owner addressbook pl W³a¶ciciel rekordu
retrieve contacts admin pl Znajd¼ kontakty
select all addressbook pl Zaznacz wszystkie
select the type of conversion addressbook pl Wybierz typ konwersji
select the type of conversion: addressbook pl Wybierz typ konwersji
select where you want to store admin pl Wybierz gdzie zapamiêtaæ
show addressbook pl Poka
show birthday reminders on main screen addressbook pl Pokazuj przypomnienia o urodzinach na g³ównym ekranie
startrecord addressbook pl Rekord pocz±tkowy
state common pl Województwo
street common pl Ulica
successfully imported %1 records into your addressbook. addressbook pl Zaimportowano %1 rekordów do ksi±¿ki adresowej.
suffix addressbook pl Sufiks
test import (show importable records <u>only</u> in browser) addressbook pl Import testowy (poka¿ importowane rekordy <u>tylko</u> w przegl±darce)
that field name has been used already ! addressbook pl Taka nazwa pola jest ju¿ u¿ywana!
this person's first name was not in the address book. addressbook pl Ksika adresowa nie zawiera imienia tej osoby
this person's last name was not in the address book. addressbook pl Ksika adresowa nie zawiera nazwiska tej osoby
this person\'s first name was not in the address book. addressbook pl Ksika adresowa nie zawiera imienia tej osoby
this person\'s last name was not in the address book. addressbook pl Ksika adresowa nie zawiera nazwiska tej osoby
this person\\\'s first name was not in the address book. addressbook pl Ksika adresowa nie zawiera imienia tej osoby
this person\\\'s last name was not in the address book. addressbook pl Ksika adresowa nie zawiera nazwiska tej osoby
this person\\\\\\\'s first name was not in the address book. addressbook pl Ksi±¿ka adresowa nie zawiera imienia tej osoby
this person\\\\\\\'s last name was not in the address book. addressbook pl Ksi±¿ka adresowa nie zawiera nazwiska tej osoby
to many might exceed your execution-time-limit addressbook pl zbyt wiele mo¿e spowodowaæ przekroczenie czasu wykonywania
today is %1's birthday! common pl Dzi s urodziny %1
today is %1\'s birthday! common pl Dzi s urodziny %1
today is %1\\\'s birthday! common pl Dzi s urodziny %1
today is %1\\\\\\\'s birthday! common pl Dzi¶ s± urodziny %1!
tomorrow is %1's birthday. common pl Jutro s urodziny %1
tomorrow is %1\'s birthday. common pl Jutro s urodziny %1
tomorrow is %1\\\'s birthday. common pl Jutro s urodziny %1
tomorrow is %1\\\\\\\'s birthday. common pl Jutro s± urodziny %1.
translation addressbook pl T³umaczenie
url addressbook pl URL
use country list addressbook pl U¿yj listy krajów
vcard common pl Kartka elektroniczna (VCard)
vcards require a first name entry. addressbook pl Kartki elektroniczne (VCard) wymagaj± podania imienia.
vcards require a last name entry. addressbook pl Kartki elektroniczne (VCard) wymagaj± podania nazwiska
video phone addressbook pl Wideo telefon
voice phone addressbook pl Telefon g³osowy
warning!! ldap is valid only if you are not using contacts for accounts storage! admin pl UWAGA!! Mo¿na uzywaæ LDAP tylko kiedy NIE u¿ywa siê kontaktów do przechowywania kont!
work phone addressbook pl Telefon do pracy
you must select a vcard. (*.vcf) addressbook pl Musisz wybraæ kartke adresow± VCard (*.vcf)
you must select at least 1 column to display addressbook pl Musisz wybraæ przynajmniej jedn± kolumnê do wy¶wietlenia
zip code common pl Kod pocztowy
zip_note addressbook pl <p><b>Uwaga:</b>Plik mo¿e byæ typu zip i zawieraæ zbiór plików typu .csv, .vcf lub .ldif. Mimo to proszê nie mieszaæ plików ró¿nego typu w jednym archiwum.

View File

@ -1,158 +0,0 @@
%1 records imported addressbook pt-br %1 registros importados
%1 records read (not yet imported, you may go %2back%3 and uncheck test import) addressbook pt-br %1 registro lido (não importado ainda. Você deve voltar e desmarcar o campo Testar Importação)
(e.g. 1969) addressbook pt-br (ex. 1969)
<b>no conversion type &lt;none&gt; could be located.</b> please choose a conversion type from the list addressbook pt-br <b>O tipo de conversão &lt;Nenhum&gt; não foi encontrado.</b> Escolha um tipo de conversão da lista
@-eval() is only availible to admins!!! addressbook pt-br @-eval() está disponível somente para administradores !!!
actions addressbook pt-br Ações
add a single entry by passing the fields. addressbook pt-br Adicionar uma única entrada informando os campos.
add custom field addressbook pt-br Adicionar campo personalizado
address book common pt-br Contatos
address book - vcard in addressbook pt-br Contatos - VCard
address book - view addressbook pt-br Contatos - Exibir
address line 2 addressbook pt-br Endereço Linha 2
address line 3 addressbook pt-br Endereço Linha 3
address type addressbook pt-br Tipo de endereço
addressbook common pt-br Contatos
addressbook preferences addressbook pt-br Preferências do Catálogo de Endereços
addressbook-fieldname addressbook pt-br Contatos - Nome do Campo
addvcard addressbook pt-br Adicionar VCard
alt. csv import addressbook pt-br Importar CSV
are you sure you want to delete this field? addressbook pt-br Tem certeza que deseja remover este campo?
bbs phone addressbook pt-br Telefone BBS
birthday common pt-br Aniversário
birthdays common pt-br Aniversários
blank addressbook pt-br Vazio
business common pt-br Comercial
business address type addressbook pt-br Endereço
business city addressbook pt-br Cidade
business country addressbook pt-br País
business email addressbook pt-br Email
business email type addressbook pt-br Tipo de Email
business fax addressbook pt-br Fax
business phone addressbook pt-br Telefone coml.
business state addressbook pt-br Estado
business street addressbook pt-br Rua
business zip code addressbook pt-br CEP
car phone addressbook pt-br Telefone no veículo
cell phone addressbook pt-br Telefone celular
charset of file addressbook pt-br Charset do arquivo
city common pt-br Cidade
company common pt-br Empresa
company name common pt-br Nome da empresa
configuration common pt-br Configuração
contact common pt-br Contato
contact application admin pt-br Aplicação de Contatos
contact settings admin pt-br Preferências de Contatos
copied by %1, from record #%2. addressbook pt-br Copiado por %1, do registro #%2.
country common pt-br País
csv-fieldname addressbook pt-br CSV-Nome do Campo
csv-filename addressbook pt-br CSV-Nome do Arquivo
custom addressbook pt-br Personalizado
custom fields addressbook pt-br Campos pessoais
debug output in browser addressbook pt-br Depurar saída no navegador
default filter addressbook pt-br Filtro padrão
delete a single entry by passing the id. addressbook pt-br apagar um única entrada informando o ID.
department common pt-br Departamento
domestic addressbook pt-br Doméstico
download addressbook pt-br Baixar
download export file (uncheck to debug output in browser) addressbook pt-br Baixar arquivo exportado (Desmarque Depurar no navegador)
edit custom field addressbook pt-br Editar campo personalizado
edit custom fields admin pt-br Editar campos personalizados
empty for all addressbook pt-br vazio para todos
enter the path to the exported file here addressbook pt-br Entre aqui com o caminho do arquivo exportado
export contacts addressbook pt-br Exportar contatos
export file name addressbook pt-br Exportar arquivo
export from addressbook addressbook pt-br Exportar dos Catálogo de Endereços
extra addressbook pt-br Extra
fax addressbook pt-br Fax
fax number common pt-br Número do Fax
field %1 has been added ! addressbook pt-br Campo %1 foi adicionado !
field %1 has been updated ! addressbook pt-br Campo %1 foi atualizado !
field name addressbook pt-br Nome do campo
fields to show in address list addressbook pt-br Campos a serem exibidos na lista de endereços
fieldseparator addressbook pt-br Separador de campos
full name addressbook pt-br Nome Completo
geo addressbook pt-br GEO
global categories addressbook pt-br Categorias Globais
grant addressbook access common pt-br Permitir acesso aos Contatos
home address type addressbook pt-br Endereço residencial
home city addressbook pt-br Cidade
home country addressbook pt-br País
home email addressbook pt-br E-mail
home email type addressbook pt-br Tipo de E-mail
home phone addressbook pt-br Telefone res.
home state addressbook pt-br Estado
home street addressbook pt-br Rua, Av, Trav., etc.
home zip code addressbook pt-br CEP
import addressbook pt-br Importar
import contacts addressbook pt-br Importar contatos
import csv-file into addressbook addressbook pt-br Importar arquivo CSV para Catálogo de Endereços
import file addressbook pt-br Importar arquivo
import from ldif, csv, or vcard addressbook pt-br Importar de LDIF, CSV ou VCard
import from outlook addressbook pt-br Importar do Outlook
import next set addressbook pt-br Importar próximo conjunto
import_instructions addressbook pt-br No Netscape, abra o Catálogo de Endereços e selecione <b>Exportar</b> do menu <b>Arquivo</b>. O arquivo exportado será do format LDIF.<p> Ou, no Outlook, selecione a sua pastas de contatos, selecione <b>Importar e Exportar...</b> do menu <b>Arquivo</b> e exporte seus contatos para um arquivo separado por vírgulas (CSV). Ou no Palmdesktop 4.0 ou superior, vá para seu catálogo de endereços e selecione <b>Exportar</b> do menu <b>Arquivo</b>. O arquivo exportado será do tipo VCard.
international addressbook pt-br Internacional
isdn phone addressbook pt-br Teleone ISDN
label addressbook pt-br Comentário
ldap context for contacts admin pt-br contexto LDAP para contatos
ldap host for contacts admin pt-br servidor LDAP para contatos
ldap root dn for contacts admin pt-br super usuário LDAP para contatos
ldap root pw for contacts admin pt-br senha do super usuário LDAP para contatos
ldif addressbook pt-br LDIF
line 2 addressbook pt-br Linha 2
mark records as private addressbook pt-br Marcar registos como particulares
message phone addressbook pt-br Telefone para recado
middle name addressbook pt-br Nome do meio
mobile addressbook pt-br Celular
mobile phone addressbook pt-br Telefone celular
modem phone addressbook pt-br Telefone de Dados (Modem)
no vcard addressbook pt-br Nenhum VCard
number of records to read (%1) addressbook pt-br Número de registros a ler (%1)
other number addressbook pt-br Outro número
other phone addressbook pt-br Outro telefone
pager common pt-br Pager
parcel addressbook pt-br Parcial
phone number common pt-br Número de telefone
phone numbers common pt-br Números de telefone
please enter a name for that field ! addressbook pt-br Por favor digite o nome para esse campo!
postal common pt-br Cx Postal
pref addressbook pt-br pref
prefix addressbook pt-br Prefixo
public key addressbook pt-br Chave pública
read a list of entries. addressbook pt-br Ler lista de entradas
read a single entry by passing the id and fieldlist. addressbook pt-br Ler uma única entrada informando o ID e o nome do campo.
record access addressbook pt-br Acesso ao registro
record owner addressbook pt-br Dono do registro
retrieve contacts admin pt-br receber contatos
select all addressbook pt-br Selecionar todos
select the type of conversion addressbook pt-br Selecione o tipo de conversão
select the type of conversion: addressbook pt-br Selecione o tipo de conversão:
select where you want to store admin pt-br Selecione onde você deseja guardar
show birthday reminders on main screen addressbook pt-br Exibir lembrete de aniversários na tela principal
startrecord addressbook pt-br Registro inicial
state common pt-br Estado
street common pt-br Rua
successfully imported %1 records into your addressbook. addressbook pt-br %1 Registros importados para o seu catálogo de endereços.
suffix addressbook pt-br Sufixo
test import (show importable records <u>only</u> in browser) addressbook pt-br Testar Importação (mostrar no navegador <u>somente</u> os registros que serão importados)
that field name has been used already ! addressbook pt-br Este nome de campo já está em uso !
this person's first name was not in the address book. addressbook pt-br O primeiro nome desta pessoa não estava no Catálogo de Endereços.
this person's last name was not in the address book. addressbook pt-br O último nome dessa pessoa não está no Catálogo de Endereços.
to many might exceed your execution-time-limit addressbook pt-br muitos poderá exceder seu tempo limite de execução
today is %1's birthday! common pt-br Hoje é o aniversário de %1.
tomorrow is %1's birthday. common pt-br Amanhã é o aniversário de %1.
translation addressbook pt-br Tradução
update a single entry by passing the fields. addressbook pt-br Atualizar uma única entrada informando os campos
use country list addressbook pt-br Usar lista de países
vcard common pt-br VCard
vcards require a first name entry. addressbook pt-br VCards requer um primeiro nome.
vcards require a last name entry. addressbook pt-br VCards requerem que o último nome esteja preenchido
video phone addressbook pt-br Videofone
voice phone addressbook pt-br Telefone voz
warning!! ldap is valid only if you are not using contacts for accounts storage! admin pt-br AVISO!! LDAP é válido somente se você não estiver usando contatos para guardar as contas!
work phone addressbook pt-br Telefone de trabalho
you must select a vcard. (*.vcf) addressbook pt-br Você deve selecionar um vcard. (*.vcf)
you must select at least 1 column to display addressbook pt-br Você deve selecionar pelo menos uma coluna para ser exibida.
zip code common pt-br CEP
zip_note addressbook pt-br <p><b> Nota:</b> O arquivo pode conter um conjunto de arquivos .csv, .vcf, or .ldif. Entretanto não misture tipos de arquivo durante a exportação.

View File

@ -1,107 +0,0 @@
add custom field addressbook pt Adicionar campo personalizado
address book common pt Contatos
addressbook common pt Contatos
addressbook preferences addressbook pt Preferências do Catálogo de Endereços
address book - view addressbook pt Contatos - Exibir
address line 2 addressbook pt Endereço Linha 2
address line 3 addressbook pt Endereço Linha 3
address type addressbook pt Tipo de endereço
addvcard addressbook pt Adicionar VCard
alt. csv import addressbook pt Importar CSV
are you sure you want to delete this field? addressbook pt Tem certeza que deseja remover este campo ?
bbs phone addressbook pt Telefone BBS
birthday common pt Aniversário
blank addressbook pt Vazio
<b>No conversion type &lt;none&gt; could be located.</b> Please choose a conversion type from the list addressbook pt <b>O tipo de conversão &lt;Nenhum&gt; não foi encontrado.</b> Escolha um tipo de conversão da lista
business address type addressbook pt Endereço
business city addressbook pt Cidade
business common pt Comercial
business country addressbook pt País
business email addressbook pt Email
business email type addressbook pt Tipo de Email
business fax addressbook pt Fax
business phone addressbook pt Telefone
business state addressbook pt Estado
business street addressbook pt Rua
business zip code addressbook pt CEP
car phone addressbook pt Telefone veicular
cell phone addressbook pt Telefone celular
city common pt Cidade
company common pt Empresa
company name common pt Nome da empresa
contact application admin pt Aplicação de Contatos
contact common pt Contato
contact settings admin pt Preferências de Contatos
country common pt País
custom addressbook pt Personalizado
custom fields addressbook pt Campos pessoais
default filter addressbook pt Filtro padrão
department common pt Departamento
domestic addressbook pt Doméstico
edit custom field addressbook pt Editar campo personalizado
edit custom fields admin pt Editar campos personalizados
export contacts addressbook pt Exportar contatos
export file name addressbook pt Exportar arquivo
extra addressbook pt Extra
fax addressbook pt Fax
fax number common pt Fax
field name addressbook pt Nome do campo
fields to show in address list addressbook pt Campos a serem exibidos na lista de endereços
field %1 has been added ! addressbook pt Campo %1 foi adicionado !
full name addressbook pt Nome Completo
geo addressbook pt GEO
grant addressbook access common pt Permitir acesso aos Contatos
home address type addressbook pt Endereço residencial
home city addressbook pt Cidade
home country addressbook pt País
home email addressbook pt Email
home email type addressbook pt Email
home phone addressbook pt Telefone
home state addressbook pt Estado
home street addressbook pt Rua
home zip code addressbook pt CEP
import contacts addressbook pt Importar contatos
import file addressbook pt Importar arquivo
import from outlook addressbook pt Importar do Outlook
international addressbook pt Internacional
isdn phone addressbook pt Teleone ISDN
label addressbook pt Comentário
ldap context for contacts admin pt contexto LDAP para contatos
ldap host for contacts admin pt servidor LDAP para contatos
ldap root dn for contacts admin pt super usuário LDAP para contatos
ldap root pw for contacts admin pt senha do super usuário LDAP para contatos
line 2 addressbook pt Linha 2
message phone addressbook pt Telefone de mensagens
middle name addressbook pt Nome do meio
mobile addressbook pt Celular
mobile phone addressbook pt Telefone móvel
modem phone addressbook pt Telefone de Dados (Modem)
no vcard addressbook pt Nenhum VCard
other number addressbook pt Outro número
other phone addressbook pt Outro telefone
pager common pt Pager
parcel addressbook pt Parcel
phone number common pt Número de telefone
phone numbers common pt Números de telefone
postal common pt Postal
prefix addressbook pt Prefixo
public key addressbook pt Chave pública
record access addressbook pt Acesso ao registro
record owner addressbook pt Dono do registro
retrieve contacts admin pt receber contatos
select where you want to store admin pt Selecione onde você deseja guardar
show birthday reminders on main screen addressbook pt Exibir lembrete de aniversários na tela principal
state common pt Estado
street common pt Rua
successfully imported %1 records into your addressbook. addressbook pt %1 Registros importados para o seu catálogo de endereços.
suffix addressbook pt Sufixo
this person's first name was not in the address book. addressbook pt O primeiro nome desta pessoa não estava no Catálogo de Endereços
today is %1's birthday! common pt Hoje é o aniversário de %1.
tomorrow is %1's birthday. common pt Amanhã é o aniversário de %1.
vcard common pt VCard
vcards require a first name entry. addressbook pt VCards requer um primeiro nome.
video phone addressbook pt Videofone
voice phone addressbook pt Telefone voz
warning!! ldap is valid only if you are not using contacts for accounts storage! admin pt AVISO!! LDAP é válido somente se você não estiver usando contatos para guardar as contas!
work phone addressbook pt Telefone de trabalho
zip code common pt CEP

View File

@ -1,143 +1,133 @@
%1 records imported addressbook sl %1 zapisov uvoženih %1 records imported addressbook sl %1 zapisov prenesenih
%1 records read (not yet imported, you may go %2back%3 and uncheck test import) addressbook sl 1% zapisov prebranih (niso še uvoženi, lahko greste %2nazaj%3 in odznačite preizkus uvoza) %1 records read (not yet imported, you may go %2back%3 and uncheck test import) addressbook sl 1% zapisov prebranih (niso še uvoženi, lahko greš %2nazaj%3 in odznačiš preizkus uvoza)
(e.g. 1969) addressbook sl (npr. 1969) (e.g. 1969) addressbook sl (npr. 1969)
<b>no conversion type &lt;none&gt; could be located.</b> please choose a conversion type from the list addressbook sl <b>Ni tipa prevoda &lt;noben&gt; lahko je zaklenjen.</b> Izberite tip prevoda s seznama. <b>no conversion type &lt;none&gt; could be located.</b> please choose a conversion type from the list addressbook sl <b>Ni tipa prevoda &lt;noben&gt; lahko je zaklenjen.</b> Prosim izberite tip prevoda iz seznama
@-eval() is only availible to admins!!! addressbook sl Funkcija @-eval() je na voljo samo za oskrbniku! @-eval() is only availible to admins!!! addressbook sl @-eval() je veljaven samo za administratorje!
actions addressbook sl Dejanja actions addressbook sl Ukrepi
add a single entry by passing the fields. addressbook sl Dodaj zapis z vnosom polj. add a single entry by passing the fields. addressbook sl Dodaj en zapis z vnosom polj.
add custom field addressbook sl Dodaj polje add custom field addressbook sl Dodaj polje
address book common sl Adresar address book common sl Telefonski imenik
address book - vcard in addressbook sl Adresar - VCard address book - vcard in addressbook sl Telefonski imenik - VCard in
address book - view addressbook sl Adresar - pogled address book - view addressbook sl Telefonski imenik -ogled
address line 2 addressbook sl Naslov - 2. vrstica address line 2 addressbook sl Naslov - 2. vrstica
address line 3 addressbook sl Naslov - 3. vrstica address line 3 addressbook sl Naslov - 3. vrstica
address type addressbook sl Tip naslova address type addressbook sl Tip naslova
addressbook common sl Adresar addressbook common sl Imenik
addressbook preferences addressbook sl Lastnosti adresarja addressbook preferences addressbook sl Lastnosti imenika
addressbook-fieldname addressbook sl Adresar-Ime polja addressbook-fieldname addressbook sl Imenik-Ime polja
addvcard addressbook sl Dodaj VCard addvcard addressbook sl Dodaj VCard
alt. csv import addressbook sl Uvoz CSV datoteke alt. csv import addressbook sl Alt. CSV uvoz
are you sure you want to delete this field? addressbook sl Ste prepričani, da želite izbrisati to polje? are you sure you want to delete this field? addressbook sl Si prepričan, da želiš izbrisati to polje?
bbs phone addressbook sl BBS Telefon bbs phone addressbook sl BBS Telefon
birthday common sl Rojstni dan birthday common sl Rojstni dan
birthdays common sl Rojstni dnevi birthdays common sl Rojstni dnevi
blank addressbook sl Prazen blank addressbook sl Prazen
business common sl Služba business common sl Zaposlitev/Služba
business address type addressbook sl Tip naslova business address type addressbook sl Tip naslova službe
business city addressbook sl Kraj business city addressbook sl Kraj zaposlitve
business country addressbook sl Dežela business country addressbook sl Država zaposlitve
business email addressbook sl E-pošta business email addressbook sl Službeni enaslov
business email type addressbook sl Tip E-pošte business email type addressbook sl Tip službenega enaslova-a
business fax addressbook sl Faks business fax addressbook sl Službeni faks
business phone addressbook sl Telefon business phone addressbook sl Službeni telefon
business state addressbook sl Država business state addressbook sl Država zaposlitve
business street addressbook sl Naslov business street addressbook sl Ulica zaposlitve
business zip code addressbook sl Poštna št. business zip code addressbook sl Službena poštna številka
car phone addressbook sl Telefon v avtu car phone addressbook sl Telefon v avtu
cell phone addressbook sl GSM cell phone addressbook sl telefonska celica
charset of file addressbook sl Kodna tabela datoteke charset of file addressbook sl Nabor znakov v datoteki
city common sl Mesto city common sl Mesto
company common sl Podjetje company common sl Podjetja
company name common sl Ime podjetja company name common sl Ime podjetja
configuration common sl Nastavitve configuration common sl Nastavitve
contact common sl Stik contact common sl Kontakt
contact application admin sl Kontaktna aplikacija contact application admin sl Kontaktna prijavnica
contact settings admin sl Nastavitve stikov contact settings admin sl Kontaktne nastavitve
copied by %1, from record #%2. addressbook sl Kopirano iz zapisa %2 v zapis %1. copied by %1, from record #%2. addressbook sl Kopirano iz zapisa %2 v zapis %1.
country common sl Država country common sl Država
csv-fieldname addressbook sl CSV-Ime polja csv-fieldname addressbook sl CSV-Ime polja
csv-filename addressbook sl CSV-Ime datoteke csv-filename addressbook sl CSV-Ime datoteke
custom addressbook sl Lasten custom addressbook sl Zasebni adresar!
custom fields addressbook sl Lastna polja custom fields addressbook sl Dodana polja
debug output in browser addressbook sl Preglej izpis v brskalniku debug output in browser addressbook sl Preglej izpis v brskalniku
default filter addressbook sl Privzeti filter default filter addressbook sl Privzeti filter
delete a single entry by passing the id. addressbook sl Zbriši zapis s podano šifro delete a single entry by passing the id. addressbook sl Zbriši edini vhod preko identifikacijske številke.
department common sl Oddelek department common sl Oddelek
domestic addressbook sl Domači domestic addressbook sl Domač
download addressbook sl Prenos download addressbook sl Prenos
download export file (uncheck to debug output in browser) addressbook sl Prenos izvožene datoteke (Odznači za izpis v brskalniku) edit custom field addressbook sl Uredi dodano polje
edit custom field addressbook sl Uredi lastno polje edit custom fields admin sl Uredi dodana polja
edit custom fields admin sl Uredi lastna polja
empty for all addressbook sl izprazni za vse empty for all addressbook sl izprazni za vse
enter the path to the exported file here addressbook sl Vnesite pot do izhodne datoteke enter the path to the exported file here addressbook sl Vnesite pot do izhodne datoteke sem
export contacts addressbook sl Izvozi kontakte export contacts addressbook sl Izvozi kontakte
export file name addressbook sl Ime izvožene datoteke export file name addressbook sl Izvozi imen datoteke
export from addressbook addressbook sl Izvoz iz adresarja export from addressbook addressbook sl Izvoz iz imenika
extra addressbook sl Dodatno extra addressbook sl Dodatno
fax addressbook sl Faks fax addressbook sl Faks
fax number common sl Faks fax number common sl Številka faksa
field %1 has been added ! addressbook sl Polje %1 je bilo dodano! field %1 has been added ! addressbook sl Polje %1 je bilo dodano!
field %1 has been updated ! addressbook sl Polje %1 je bilo popravljeno! field %1 has been updated ! addressbook sl Polje %1 je bilo popravljeno!
field name addressbook sl Ime polja field name addressbook sl Ime pollja
fields to show in address list addressbook sl Polja, ki naj se prikažejo v seznamu fields to show in address list addressbook sl Polja, ki naj se prikažejo v seznamu
fieldseparator addressbook sl Ločilo polj fieldseparator addressbook sl Ločnik polj
full name addressbook sl Polno ime full name addressbook sl Polno ime
geo addressbook sl GEO geo addressbook sl GEO
global categories addressbook sl Globalne kategorije global categories addressbook sl Globalne kategorije
grant addressbook access common sl Dostop do glavnega imenika grant addressbook access common sl Dostop do glavnega imenika
home address type addressbook sl Tip naslova home address type addressbook sl Tip domačega imenika
home city addressbook sl Mesto home city addressbook sl Mesto bivališča
home country addressbook sl Dežela home country addressbook sl Država bivališča
home email addressbook sl E-pošta home email addressbook sl Domač enaslov
home email type addressbook sl Tip E-pošte home email type addressbook sl Tip domačega enaslova
home phone addressbook sl Telefon home phone addressbook sl Domači telefon
home state addressbook sl Država home state addressbook sl Država
home street addressbook sl Naslov home street addressbook sl Ulica bivališča
home zip code addressbook sl Poštna št. home zip code addressbook sl Poštna številka
import addressbook sl Uvozi import addressbook sl Uvozi
import contacts addressbook sl Uvozi kontakte import contacts addressbook sl Uvozi kontakte
import csv-file into addressbook addressbook sl Uvozi CSV-polja v imenik import csv-file into addressbook addressbook sl Uvozi CSV-polja v imenik
import file addressbook sl Uvozi datoteko import file addressbook sl Uvozi datoteko
import from addressbook sl Uvozi iz
import from ldif, csv, or vcard addressbook sl Uvoz iz LDIF, CSV ali VCard import from ldif, csv, or vcard addressbook sl Uvoz iz LDIF, CSV ali VCard
import from outlook addressbook sl Uvoz iz Outlook-a import from outlook addressbook sl Uvoz iz Outlook-a
import multiple vcard addressbook sl Uvoz večih VCard import next set addressbook sl Uvozi naslednjo množico
import next set addressbook sl Uvozi naslednji niz international addressbook sl Mednaroden
import_instructions addressbook sl V Netscapu odprite adresar in izberite <b>Export</b> v meniju <b>File</b>. Izvožena datoteka bo v obliki LDIF.<p>V Outlooku izberite mapo Stiki (Contacts), izberite <b>Uvoz/izvoz (Import/Export)</b> v meniju <b>Datoteka (File)</b>. Izvožena datoteka bo v obliki CSV. isdn phone addressbook sl ISDN številka
international addressbook sl Mednarodni label addressbook sl Etiketa
isdn phone addressbook sl ISDN
label addressbook sl Značilnosti
ldap context for contacts admin sl LDAP kontekst za kontakte ldap context for contacts admin sl LDAP kontekst za kontakte
ldap host for contacts admin sl LDAP strežnik za kontakte ldap host for contacts admin sl LDAP strežnik za kontakte
ldap root dn for contacts admin sl LDAP root dn za kontakte ldap root dn for contacts admin sl LDAP root dn za kontakte
ldap root pw for contacts admin sl LDAP root pw za povezave ldap root pw for contacts admin sl LDAP root pw za povezave
ldif addressbook sl LDIF ldif addressbook sl LDIF
line 2 addressbook sl Vrstica 2 line 2 addressbook sl Vrstica 2
list all categories addressbook sl Izpis vseh kategorij mark records as private addressbook sl Označi zapise kot privatne
list all customfields addressbook sl Izpis vseh lastnih polj message phone addressbook sl Sporočilni telefon
load vcard addressbook sl Naloži VCard
mark records as private addressbook sl Označi zapise kot zasebne
message phone addressbook sl Telefon za sporočila
middle name addressbook sl Srednje ime middle name addressbook sl Srednje ime
mobile addressbook sl Mobilni mobile addressbook sl Mobilni
mobile phone addressbook sl GSM mobile phone addressbook sl Mobilni telefon
modem phone addressbook sl Modem modem phone addressbook sl Modem
multiple vcard addressbook sl Več VCard zapisov no vcard addressbook sl Ni VCard
no vcard addressbook sl Ni VCard zapisov
number of records to read (%1) addressbook sl Število zapisov za branje (%1) number of records to read (%1) addressbook sl Število zapisov za branje (%1)
number of records to read (<=200) addressbook sl Številka zapisov za branje(<=200) number of records to read (<=200) addressbook sl Številka zapisov za branje(<=200)
other number addressbook sl Številka other number addressbook sl Ostala številka
other phone addressbook sl Telefon other phone addressbook sl Ostali telefon
pager common sl Pozivnik pager common sl Pozivnik
parcel addressbook sl Dostava parcel addressbook sl paket
phone number common sl Telefonska številka phone number common sl Telefonska številka
phone numbers common sl Telefonske številke phone numbers common sl Telefonske številke
please enter a name for that field ! addressbook sl Prosim vpiši ime za to polje! please enter a name for that field ! addressbook sl Prosim vpiši ime za to polje!
postal common sl Poštni postal common sl Poštni
pref addressbook sl privzeta pref addressbook sl nast
prefix addressbook sl Predpona prefix addressbook sl Predpona
public key addressbook sl Javni ključ public key addressbook sl Javni ključ
read a list / search for entries. addressbook sl Preberi seznam / iskanje vnosov
read a list of entries. addressbook sl Preberi seznam vnosov. read a list of entries. addressbook sl Preberi seznam vnosov.
read a single entry by passing the id and fieldlist. addressbook sl Preberi zapis s podano šifro in seznamom polj. read a single entry by passing the id and fieldlist. addressbook sl Preberi edini vnos preko šifre in seznama polj.
record access addressbook sl Dostop do zapisa record access addressbook sl Dostop do zapisa
record owner addressbook sl Lastnik zapisa record owner addressbook sl Lastnik zapisa
retrieve contacts admin sl pridobi kontakte retrieve contacts admin sl pridobi kontakte
select all addressbook sl Izberi vse select all addressbook sl Izberi vse
select the type of conversion addressbook sl Izberite tip pretvorbe select the type of conversion addressbook sl Izberite tip pretvorbe
select the type of conversion: addressbook sl Izberite tip pretvorbe: select the type of conversion: addressbook sl Izberite tip pretvorbe:
select where you want to store admin sl Izberite kam želite shraniti select where you want to store admin sl Izberi kje shraniti
show addressbook sl Prikaži
show birthday reminders on main screen addressbook sl Prikaži opomnike rojstnih dni v glavnem oknu show birthday reminders on main screen addressbook sl Prikaži opomnike rojstnih dni v glavnem oknu
startrecord addressbook sl Začetni zapis startrecord addressbook sl Začetni zapis
state common sl Država state common sl Država
@ -146,23 +136,22 @@ successfully imported %1 records into your addressbook. addressbook sl Uspešno
suffix addressbook sl Pripona suffix addressbook sl Pripona
test import (show importable records <u>only</u> in browser) addressbook sl Preizkus uvoza (Pokaže uvožene zapise<u>samo</u> v brskalniku). test import (show importable records <u>only</u> in browser) addressbook sl Preizkus uvoza (Pokaže uvožene zapise<u>samo</u> v brskalniku).
that field name has been used already ! addressbook sl To ime polja je že v uporabi! that field name has been used already ! addressbook sl To ime polja je že v uporabi!
this person's first name was not in the address book. addressbook sl Imena te osebe ni v adresarju. this person's first name was not in the address book. addressbook sl Imena te osebe ni v telefonskem imeniku.
this person's last name was not in the address book. addressbook sl Priimka te osebe ni v adresarju. this person's last name was not in the address book. addressbook sl Priimka te osebe ni v telefonskem imeniku.
to many might exceed your execution-time-limit addressbook sl preveč lahko preseže čas izvajanja to many might exceed your execution-time-limit addressbook sl preveč lahko preseže tvoj čas izvajanja
today is %1's birthday! common sl Danes ima rojstni dan %1. today is %1's birthday! common sl Danes ima rojstni dan %1.
tomorrow is %1's birthday. common sl Jutri ima rojstni dan %1. tomorrow is %1's birthday. common sl Jutri ima rojstni dan %1.
translation addressbook sl Prevod. translation addressbook sl Prevod.
update a single entry by passing the fields. addressbook sl Popravi en zapis z vnosom polj. update a single entry by passing the fields. addressbook sl Popravi en zapis z vnosom polj.
use country list addressbook sl Uporabi seznam držav use country list addressbook sl Uporabi seznam držav
vcard common sl VCard vcard common sl VCard
vcards require a first name entry. addressbook sl VCards zahteva vpis imena. vcards require a first name entry. addressbook sl VCards zahteava vpis imena.
vcards require a last name entry. addressbook sl VCards zahteva vpis priimka. vcards require a last name entry. addressbook sl VCards zahtava vpis priimka.
video phone addressbook sl Videotelefon video phone addressbook sl Video telefon
voice phone addressbook sl Glasovni telefon voice phone addressbook sl Glasovni telefon
warning!! ldap is valid only if you are not using contacts for accounts storage! admin sl OPOZORILO!! LDAP je veljaven samo, če ne uporabljate kontaktov za skladiščenje računov! warning!! ldap is valid only if you are not using contacts for accounts storage! admin sl OPOZORILO!! LDAP je veljaven samo, če ne uporabljaš kontaktov za skladiščenje računov!
work phone addressbook sl Telefon work phone addressbook sl Službeni telefon
write (update or add) a single entry by passing the fields. addressbook sl Zapiši (posodobi ali dodaj) zapis s podanimi polji. you must select a vcard. (*.vcf) addressbook sl Moraš izbrati vcard. (*.vcf)
you must select a vcard. (*.vcf) addressbook sl Izbrati morate VCard. (*.vcf) you must select at least 1 column to display addressbook sl Izbrati moraš najmanj 1 stolpec za prikaz
you must select at least 1 column to display addressbook sl Izbrati morate najmanj 1 stolpec za prikaz
zip code common sl Poštna številka zip code common sl Poštna številka
zip_note addressbook sl <p><b>Opozorilo:</b> Datoteka je lahko arhiv .csv, .vcf, or .ldif datotek. Ne mešajte datotečnih tipov ob uvozu. zip_note addressbook sl <p><b>Opozorilo:</b> Datoteka je lahko arhiv .csv, .vcf, or .ldif datotek. Ne mešajte datotečnih tipov ob uvozu.

View File

@ -1,7 +1,7 @@
%1 records imported addressbook sv %1 poster inporterade %1 records imported addressbook sv %1 poster inporterade
%1 records read (not yet imported, you may go %2back%3 and uncheck test import) addressbook sv %1 poster lästa (inte importerade ännu, du kan gå %2tillbaka%3 och kryssa ur "Testa Import") %1 records read (not yet imported, you may go %2back%3 and uncheck test import) addressbook sv %1 poster lästa (inte importerade ännu, du kan gå %2tillbaka%3 och kryssa ur "Testa Import")
(e.g. 1969) addressbook sv (t ex:1969) (e.g. 1969) addressbook sv (t ex:1969)
<b>no conversion type &lt;none&gt; could be located.</b> please choose a conversion type from the list addressbook sv <b> Ingen konverteringstyp <ingen> kunde hittas.</b> Var snäll och välj konverteringstyp från listan <b>no conversion type &lt;none&gt; could be located.</b> please choose a conversion type from the list addressbook sv <b> Ingen konverteringstyp &lt;ingen&gt; kunde hittas.</b> Var snäll och välj konverteringstyp från listan
@-eval() is only availible to admins!!! addressbook sv @-eval() är endast tillgängligt för administratörer @-eval() is only availible to admins!!! addressbook sv @-eval() är endast tillgängligt för administratörer
actions addressbook sv Åtgärder actions addressbook sv Åtgärder
add a single entry by passing the fields. addressbook sv Lägg till en enstaka post genom att passa fälten add a single entry by passing the fields. addressbook sv Lägg till en enstaka post genom att passa fälten
@ -106,8 +106,6 @@ ldap root dn for contacts admin sv LDAP-rootkonto f
ldap root pw for contacts admin sv LDAP-lösenord för export av kontakter ldap root pw for contacts admin sv LDAP-lösenord för export av kontakter
ldif addressbook sv LDIF ldif addressbook sv LDIF
line 2 addressbook sv Linje 2 line 2 addressbook sv Linje 2
list all categories addressbook sv Visa alla kategorier
list all customfields addressbook sv Visa alla egendefinerade fält
load vcard addressbook sv Ladda vCard load vcard addressbook sv Ladda vCard
mark records as private addressbook sv Markera posten som privat mark records as private addressbook sv Markera posten som privat
message phone addressbook sv Växel eller Voicemail message phone addressbook sv Växel eller Voicemail
@ -130,7 +128,6 @@ postal common sv Post
pref addressbook sv pref pref addressbook sv pref
prefix addressbook sv Prefix prefix addressbook sv Prefix
public key addressbook sv Publik kryptonyckel public key addressbook sv Publik kryptonyckel
read a list / search for entries. addressbook sv Titta på lista/sök efter poster
read a list of entries. addressbook sv Läs lista över poster read a list of entries. addressbook sv Läs lista över poster
read a single entry by passing the id and fieldlist. addressbook sv Läs en enstaka post genom att ange ID och fältlista read a single entry by passing the id and fieldlist. addressbook sv Läs en enstaka post genom att ange ID och fältlista
record access addressbook sv Åtkomst till posten record access addressbook sv Åtkomst till posten
@ -141,7 +138,6 @@ select all addressbook sv V
select the type of conversion addressbook sv Välj konverteringstyp select the type of conversion addressbook sv Välj konverteringstyp
select the type of conversion: addressbook sv Välj konverteringstyp select the type of conversion: addressbook sv Välj konverteringstyp
select where you want to store admin sv Välj var du vill lagra select where you want to store admin sv Välj var du vill lagra
show addressbook sv Visa
show birthday reminders on main screen addressbook sv Visa födelsedagsnotis på huvudskärm show birthday reminders on main screen addressbook sv Visa födelsedagsnotis på huvudskärm
startrecord addressbook sv Startpost startrecord addressbook sv Startpost
state common sv Stat state common sv Stat

View File

@ -1,158 +0,0 @@
%1 records imported addressbook tr %1 kay?t al?nd?
%1 records read (not yet imported, you may go %2back%3 and uncheck test import) addressbook tr %1 kay?t okundu (henüz al?nmad?, %2geri%3 gidebilir ve Test Al?m?'ndaki seçimi kald?rabilirsiniz)
(e.g. 1969) addressbook tr (örn. 1969)
<b>no conversion type &lt;none&gt; could be located.</b> please choose a conversion type from the list addressbook tr <b>Tip de?i?imi yok &lt;hiç&gt; bulunamad?.</b> Lütfen listeden bir de?i?im tipi seçin
@-eval() is only availible to admins!!! addressbook tr @-eval() yaln?zca adminlere mevcuttur!!!
actions addressbook tr Hareketler
add a single entry by passing the fields. addressbook tr Alanlar? geçerek yaln?zca tek giri? yap?n?z.
add custom field addressbook tr Özel Alan Ekle
address book common tr Adres Defteri
address book - vcard in addressbook tr Adres defteri - VCard al?m?
address book - view addressbook tr Adres defteri - görüntüle
address line 2 addressbook tr Adres Sat?r? 2
address line 3 addressbook tr Adres Sat?r? 3
address type addressbook tr Adres Tipi
addressbook common tr Adresdefteri
addressbook preferences addressbook tr Adresdefteri seçenekleri
addressbook-fieldname addressbook tr Adresdefteri-Alan ad?
addvcard addressbook tr VCard Ekle
alt. csv import addressbook tr Alt. CSV Al?m?
are you sure you want to delete this field? addressbook tr Bu alan? silmek istedi?inize emin misiniz?
bbs phone addressbook tr BBS Telefonu
birthday common tr Do?um Günü
birthdays common tr Do?um Günleri
blank addressbook tr Bo?luk
business common tr ??
business address type addressbook tr ?? Adresi Tipi
business city addressbook tr ?? Kent
business country addressbook tr ?? Ülke
business email addressbook tr ?? e-posta
business email type addressbook tr ?? e-posta Tipi
business fax addressbook tr ?? Faks
business phone addressbook tr ?? Telefon
business state addressbook tr ?? Eyalet
business street addressbook tr ?? Sokak
business zip code addressbook tr ?? Posta Kodu
car phone addressbook tr Araç Telefonu
cell phone addressbook tr Cep Telefonu
charset of file addressbook tr Dosya karakter seti
city common tr Kent
company common tr ?irket
company name common tr ?irket Ad?
configuration common tr Ayarlar
contact common tr Ki?i
contact application admin tr Ki?i Uygulamas?
contact settings admin tr Ki?i Ayarlar?
copied by %1, from record #%2. addressbook tr #%2 . kay?ttan %1 kopyaland?
country common tr Ülke
csv-fieldname addressbook tr CSV-Alan ad?
csv-filename addressbook tr CSV-Dosya ad?
custom addressbook tr Özel
custom fields addressbook tr Özel Alanlar
debug output in browser addressbook tr Hata ay?klamay? taray?c?da göster
default filter addressbook tr Ayarl? Filtre
delete a single entry by passing the id. addressbook tr ID ileterek tek giri? sil
department common tr Depatman
domestic addressbook tr Yurt içi
download addressbook tr ?ndir
download export file (uncheck to debug output in browser) addressbook tr Verme dosyas?n? indir (Hata ay?klamay? taray?c?da göstermek için seçimi kald?r?n)
edit custom field addressbook tr Özel Alan? Düzelt
edit custom fields admin tr Özel Alan? Düzelt
empty for all addressbook tr hepsi için bo?alt
enter the path to the exported file here addressbook tr Verilen dosyan?n yolunu buraya girin
export contacts addressbook tr Ki?ileri Ver
export file name addressbook tr Dosya Ad? Ver
export from addressbook addressbook tr Adresdefteri'nden ver
extra addressbook tr Ekstra
fax addressbook tr Faks
fax number common tr Faks Numaras?
field %1 has been added ! addressbook tr Alan %1 eklendi!
field %1 has been updated ! addressbook tr Alan %1 güncellendi!
field name addressbook tr Alan Ad?
fields to show in address list addressbook tr Adres listesinde gösterilecek alanlar
fieldseparator addressbook tr Alan ay?r?c?
full name addressbook tr Tam Ad
geo addressbook tr GEO
global categories addressbook tr Global Kategoriler
grant addressbook access common tr Adresdefteri Eri?im Hakk? Ver
home address type addressbook tr Ev Adresi Tipi
home city addressbook tr Ev Kent
home country addressbook tr Ev Ülke
home email addressbook tr Ev e-posta
home email type addressbook tr Ev e-posta tipi
home phone addressbook tr Ev Telefon
home state addressbook tr Ev Eyalet
home street addressbook tr Ev Sokak
home zip code addressbook tr Ev Posta Kodu
import addressbook tr Al
import contacts addressbook tr Ki?ileri Al
import csv-file into addressbook addressbook tr CSV-Dosyas?n? Adresdefterine al
import file addressbook tr Dosya al
import from ldif, csv, or vcard addressbook tr LDIF, CSV, veya VCard'dan al
import from outlook addressbook tr Outlook'tan Al
import next set addressbook tr Bir sonraki seti al
import_instructions addressbook tr Netscape'de, Adresdefteri'ni aç?n ve <b>Dosya</b> menüsünden <b>Ver</b>'i seçin. Verilen dosya LDIF format?nda olacakt?r.<p>Veya, Outlook'ta, <b>Dosya</b> menüsünden <b>Al ve Ver...</b>'u seçin ve ki?ilerinizi Virgülle Ayr?lm?? Tekst (CSV) dosyas? olarak verin.<p>Veya, Palm Desktop 4.0 veya daha üzer,nde adresdefterinize girin ve <b>Dosya</b> menüsünden <b>Ver</b>'i seçin. Verilen dosya VCard format?nda olacakt?r.
international addressbook tr Uluslararas?
isdn phone addressbook tr ISDN Telefon
label addressbook tr Etiket
ldap context for contacts admin tr Ki?iler için LDAP içerik
ldap host for contacts admin tr Ki?iler için LDAP sunucu
ldap root dn for contacts admin tr Ki?iler için LDAP root dn
ldap root pw for contacts admin tr Ki?iler için LDAP root pw
ldif addressbook tr LDIF
line 2 addressbook tr 2. Sat?r
mark records as private addressbook tr Kay?tlar? özel olarak i?aretle
message phone addressbook tr Telefon Mesaj?
middle name addressbook tr Orta ad?
mobile addressbook tr Cep
mobile phone addressbook tr Cep Telefonu
modem phone addressbook tr Modem Telefon
no vcard addressbook tr VCard Yok
number of records to read (%1) addressbook tr Okunacak kay?t say?s? (%1)
other number addressbook tr Di?er Numara
other phone addressbook tr Di?er Telefon
pager common tr Ça?r?
parcel addressbook tr Parsel
phone number common tr Telefon Numaras?
phone numbers common tr Telefon Numaralar?
please enter a name for that field ! addressbook tr Lütfen bu alan için bir isim girin !
postal common tr Posta kodu
pref addressbook tr pref
prefix addressbook tr Prefiks
public key addressbook tr Aç?k Anahtar
read a list of entries. addressbook tr Bir giri? listesi oku.
read a single entry by passing the id and fieldlist. addressbook tr ?d ve alanlistesi'ni geçerek tek bir giri? okuyun.
record access addressbook tr Kay?t ?zni
record owner addressbook tr Kay?t Sahibi
retrieve contacts admin tr ki?ileri getir
select all addressbook tr Tümünü seç
select the type of conversion addressbook tr Çeviri tipini seç
select the type of conversion: addressbook tr Çeviri tipini seç:
select where you want to store admin tr Nereye saklamak istedi?ini seç
show birthday reminders on main screen addressbook tr Do?umgünü hat?rlatmalar?n? ana ekranda göster
startrecord addressbook tr Kay?daba?la
state common tr Eyalet
street common tr Sokak
successfully imported %1 records into your addressbook. addressbook tr Adfrtesdefterinize kay?tlar?n %1'i ba?ar?yla girildi
suffix addressbook tr suffix
test import (show importable records <u>only</u> in browser) addressbook tr Test giri? (girilebilir kay?tlar? <u>yaln?zca</u> taray?c?da göster)
that field name has been used already ! addressbook tr Bu alan ismi daha önce kullan?lm??t?r !
this person's first name was not in the address book. addressbook tr Bu ki?inin ilk ad? adres defterinde bulunmamaktad?r.
this person's last name was not in the address book. addressbook tr Bu ki?inin soyad? adres defterinde bulunmamaktad?r.
to many might exceed your execution-time-limit addressbook tr çok fazla olursa kullan?m-zaman-s?n?r?n?z? a?abilirsiniz.
today is %1's birthday! common tr Bugün %1'in do?umgünü!
tomorrow is %1's birthday. common tr Yar?n %1'in do?umgünü>
translation addressbook tr Çeviri
update a single entry by passing the fields. addressbook tr Tek bir giri?i alanlar? geçerek güncelle
use country list addressbook tr Ülke Listesini kullan
vcard common tr VCard
vcards require a first name entry. addressbook tr VCardlar ilk ad?n giri?ini gerektirmektedir.
vcards require a last name entry. addressbook tr VCardlar soyad?nismin giri?ini gerektirmektedir.
video phone addressbook tr Video Telefon
voice phone addressbook tr Ses Telefonu
warning!! ldap is valid only if you are not using contacts for accounts storage! admin tr UYARI!! LDAP yaln?zca ki?ileri hesap saklama için KULLANMIYORSANIZ geçerlidir.
work phone addressbook tr ?? Telefonu
you must select a vcard. (*.vcf) addressbook tr Bir VCard seçmelisiniz. (*.vcf)
you must select at least 1 column to display addressbook tr Göstermek için en az 1 kolon seçmelisiniz
zip code common tr Posta Kodu
zip_note addressbook tr <p><b>Not:</b> Dosya .csv, .vcf veya .ldif dosyalar?n?n bir zipli dosya koleksiyonu olabilir. Ancak giri? içinde dosya tiplerini kar??t?rmay?n.

View File

@ -1,154 +0,0 @@
%1 records imported addressbook uk %1 записів імпортовано
%1 records read (not yet imported, you may go %2back%3 and uncheck test import) addressbook uk %1 записів прочитано (ще не імпортовано, %2поверніться%3 та зніміть відмітку Тестувати Імпорт)
(e.g. 1969) addressbook uk (наприклад 1969)
<b>no conversion type &lt;none&gt; could be located.</b> please choose a conversion type from the list addressbook uk <b>Тип конверсії &lt;немає&gt; не існує.</b> Будь ласка виберіть тип конверсії зі списку
@-eval() is only availible to admins!!! addressbook uk @-eval() можуть використовувати тільки адміністратори
actions addressbook uk Дії
add a single entry by passing the fields. addressbook uk Додати один запис шляхом заповнення полів
add custom field addressbook uk Додати власне поле
address book common uk Адресна Книга
address book - vcard in addressbook uk Адресна Книга - VCard in
address book - view addressbook uk Адресна Книга - перегляд
address line 2 addressbook uk Рядок 2
address line 3 addressbook uk Рядок 3
address type addressbook uk Тип адреси
addressbook common uk Адресна Книга
addressbook preferences addressbook uk Параметри Адресної Книги
addressbook-fieldname addressbook uk Адресна Книга - назва поля
addvcard addressbook uk Додати VCard
alt. csv import addressbook uk Альтернативний CSV Імпорт
are you sure you want to delete this field? addressbook uk Ви дійсно хочете видалити цей запис?
bbs phone addressbook uk Телефон BBS
birthday common uk День народження
birthdays common uk Дні народження
blank addressbook uk Порожньо
business common uk Робоча адреса
business address type addressbook uk Тип робочої адреси
business city addressbook uk Місто
business country addressbook uk Країна
business email addressbook uk Робочий EMail
business email type addressbook uk Тип робочого EMail
business fax addressbook uk Факс
business phone addressbook uk Телефон
business state addressbook uk Область
business street addressbook uk Вулиця
business zip code addressbook uk Поштовий індекс
car phone addressbook uk Автомобільний телефон
cell phone addressbook uk Сотовий телефон
charset of file addressbook uk Кодування файлу
city common uk Місто
company common uk Компанія
company name common uk Назва компанії
configuration common uk Конфігурація
contact common uk Контакт
contact application admin uk Приложення Контакт
contact settings admin uk Параметри Контакту
copied by %1, from record #%2. addressbook uk Скопійовано %1, з запису #%2.
country common uk Країна
csv-fieldname addressbook uk CSV-Fieldname
csv-filename addressbook uk CSV-Filename
custom addressbook uk Власне
custom fields addressbook uk Власні поля
debug output in browser addressbook uk Debug output in browser
default filter addressbook uk Типовий фільтр
delete a single entry by passing the id. addressbook uk Видалити один запис по id.
department common uk Департамент
domestic addressbook uk Місцевий
download addressbook uk Загрузити
edit custom field addressbook uk Редагувати власне поле
edit custom fields admin uk Редагувати власні поля
empty for all addressbook uk Порожнє для всіх
enter the path to the exported file here addressbook uk Введіть шлях до файлу експорту
export contacts addressbook uk Експортувати контакти
export file name addressbook uk Назва файлу експорту
export from addressbook addressbook uk Експорт з Адресної книги
extra addressbook uk Додаткове
fax addressbook uk Факс
fax number common uk Номер факсу
field %1 has been added ! addressbook uk Поле %1 додано!
field %1 has been updated ! addressbook uk Поле %1 змінено!
field name addressbook uk Назва поля
fields to show in address list addressbook uk Видимі поля у переліку адрес
fieldseparator addressbook uk Розділитель полів
full name addressbook uk Повне ім'я
geo addressbook uk GEO
grant addressbook access common uk Надати доступи до адресної книги
home address type addressbook uk Тип домашньої адреси
home city addressbook uk Місто
home country addressbook uk Країна
home email addressbook uk Домашній EMail
home email type addressbook uk Тип домашнього EMail
home phone addressbook uk Телефон
home state addressbook uk Область
home street addressbook uk Вулиця
home zip code addressbook uk Поштовий індекс
import addressbook uk Імпорт
import contacts addressbook uk Імпортувати контакти
import csv-file into addressbook addressbook uk Імпортувати CSV-файл до Адресної книги
import file addressbook uk Імпортувати файл
import from ldif, csv, or vcard addressbook uk Імпортувати LDIF, CSV або VCard
import from outlook addressbook uk Імпорт з Outlook
import next set addressbook uk Імпортувати наступний набір
import_instructions addressbook uk В Нетскейпі(Мозілі) відкрийте Адресну книгу та виберіть <b>Експорт</b> з меню <b>Файл</b>. Файл буде експортовано в форматі LDIF. <p>В Outlook зайдіть в закладку Контакти, виберіть <b>Імпорт та Експорт...</b> в меню <b>Файл</b> та експортуйте ваші контакти в CSV-файл.<p>В Palm Desktop 4.0 або вище, зайдіть в Адресну книгу та виберіть <b>Експорт</b> в меню <b>Файл</b>. Файл буде експортовано в форматі VCard.
international addressbook uk Міжнародний
isdn phone addressbook uk ISDN телефон
label addressbook uk Примітки
ldap context for contacts admin uk
ldap host for contacts admin uk
ldap root dn for contacts admin uk
ldap root pw for contacts admin uk
ldif addressbook uk LDIF
line 2 addressbook uk Рядок 2
mark records as private addressbook uk Помітити записи як особисті
message phone addressbook uk Телефон автовідповідача
middle name addressbook uk По батькові
mobile addressbook uk Мобільний
mobile phone addressbook uk Мобільний телефон
modem phone addressbook uk Модемний телефон
no vcard addressbook uk немає VCard
number of records to read (%1) addressbook uk Кількість записів для читання (%1)
other number addressbook uk Інший номер
other phone addressbook uk Інший телефон
pager common uk Пейджер
parcel addressbook uk Поштова скринька
phone number common uk Номер телефону
phone numbers common uk Телефонні номери
please enter a name for that field ! addressbook uk Будь ласка введіть назву поля !
postal common uk Поштовий
pref addressbook uk ліпше
prefix addressbook uk Префікс
public key addressbook uk Публічний ключ
read a list of entries. addressbook uk Прочитати перелік записів
read a single entry by passing the id and fieldlist. addressbook uk Прочитати один запис по id та переліку полів.
record access addressbook uk Доступи запису
record owner addressbook uk Власник запису
retrieve contacts admin uk втягнути контакти
select the type of conversion addressbook uk Виберіть тип конверсії
select where you want to store admin uk Виберіть місце для зберігання
show birthday reminders on main screen addressbook uk Показувати основному екрані нагадування про дні народження
startrecord addressbook uk Початковий запис
state common uk Область
street common uk Вулиця
successfully imported %1 records into your addressbook. addressbook uk В Адресну книгу успішо імпортовано %1 записів.
suffix addressbook uk Суфікс
test import (show importable records <u>only</u> in browser) addressbook uk Тестувати Імпорт (тільки показати записи, що можуть бути імпортовані)
that field name has been used already ! addressbook uk Така назва поля вже використовується
this person's first name was not in the address book. addressbook uk В Адресній книзі немає людини з таким ім'ям.
this person's last name was not in the address book. addressbook uk В Адресній книзі немає людини з таким прізвищем.
to many might exceed your execution-time-limit addressbook uk надто багато може перевищити Ваш ліміт часу
today is %1's birthday! common uk Сьогодні день народження %1!
tomorrow is %1's birthday. common uk Завтра день народження %1.
translation addressbook uk Переклад
update a single entry by passing the fields. addressbook uk Змінити один запис шляхом заповнення полів.
use country list addressbook uk Використовувати перелік країн
vcard common uk VCard
vcards require a first name entry. addressbook uk VCard потребує поле імені.
vcards require a last name entry. addressbook uk VCard потребує поле прізвища.
video phone addressbook uk Відеотелефон
voice phone addressbook uk Голосовий телефон
warning!! ldap is valid only if you are not using contacts for accounts storage! admin uk УВАГА!! LDAP можливий тільки якщо Ви НЕ використовуєте контакти для зберігання рахунків користувачів!
work phone addressbook uk Робочий телефон
you must select a vcard. (*.vcf) addressbook uk Необхідно вказати VCard. (*.vcf)
you must select at least 1 column to display addressbook uk Необхідно вказати мінімум один стовпчик для показу
zip code common uk Поштовий індекс
zip_note addressbook uk <p><b>Примітка:</b> Файл може бути zip архівом колекції .csv, .vcf, або .ldif файлів. Але не змішуйте типи файлів в імпорті.

View File

@ -75,6 +75,7 @@ full name addressbook zh 姓名
geo addressbook zh GEO geo addressbook zh GEO
global categories addressbook zh 全局类别 global categories addressbook zh 全局类别
grant addressbook access common zh 授权访问 grant addressbook access common zh 授权访问
home addressbook zh 家庭
home address type addressbook zh 地址类型 home address type addressbook zh 地址类型
home city addressbook zh 城市 home city addressbook zh 城市
home country addressbook zh 国家/地区 home country addressbook zh 国家/地区
@ -88,41 +89,46 @@ import addressbook zh 导入
import contacts addressbook zh 导入通讯录 import contacts addressbook zh 导入通讯录
import csv-file into addressbook addressbook zh 从CSV文件导入 import csv-file into addressbook addressbook zh 从CSV文件导入
import file addressbook zh 导入文件 import file addressbook zh 导入文件
import from addressbook zh 导入从
import from ldif, csv, or vcard addressbook zh 导入其他软件的通讯录 import from ldif, csv, or vcard addressbook zh 导入其他软件的通讯录
import from outlook addressbook zh 从Outlook导入 import from outlook addressbook zh 从Outlook导入
import multiple vcard addressbook zh 导入多重名片档
import next set addressbook zh 导入下一个集合 import next set addressbook zh 导入下一个集合
import_instructions addressbook zh 请按照下列方法导出其他软件的通讯录, 以便导入eGroupWare中:<p>在Netscape中, 打开通讯录, 选定<b>文件</b>菜单的<b>导出</b>项, 导出的文件将以LDIF格式存放.<p>在Outlook中, 选定将要导出的联系人文件夹, 选定<b>文件菜单</b>的<b>导入和导出</b>项, 导出的文件将以CSV格式存放.<p>在Palm Desktop 4.0或更高版本中, 打开通讯录, 选定<b>文件</b>菜单的<b>导出</b>项, 导出的文件将以VCard格式存放.<p>Palm Desktop 4.0 或是更新的版本,在瀏覽通訊錄資料時在<b>檔案</b>功能選擇 <b>匯出</b>,匯出的資料是 VCard 格式。 import_instructions addressbook zh 请按照下列方法导出其他软件的通讯录, 以便导入eGroupWare中:<p>在Netscape中, 打开通讯录, 选定<b>文件</b>菜单的<b>导出</b>项, 导出的文件将以LDIF格式存放.<p>在Outlook中, 选定将要导出的联系人文件夹, 选定<b>文件菜单</b>的<b>导入和导出</b>项, 导出的文件将以CSV格式存放.<p>在Palm Desktop 4.0或更高版本中, 打开通讯录, 选定<b>文件</b>菜单的<b>导出</b>项, 导出的文件将以VCard格式存放.
international addressbook zt 國際 international addressbook zh 国际
isdn phone addressbook zt ISDN電話 isdn phone addressbook zh ISDN电话
label addressbook zt 概述 label addressbook zh 附注
ldap context for contacts admin zt 聯絡人之LDAP context ldap context for contacts admin zh LDAP服务器上下文
ldap host for contacts admin zt 聯絡人之LDAP host ldap host for contacts admin zh LDAP服务器主机名
ldap root dn for contacts admin zt 聯絡人之LDAP root dn ldap root dn for contacts admin zh LDAP服务器管理员dn
ldap root pw for contacts admin zt 聯絡人之LDAP root 密碼 ldap root pw for contacts admin zh LDAP服务器管理员密码
ldif addressbook zt LDIF ldif addressbook zh LDIF
line 2 addressbook zt 第2行 line 2 addressbook zh 第2行
mark records as private addressbook zt 標示為私人記錄 load vcard addressbook zh 导入Vcard
message phone addressbook zt 留言電話 mark records as private addressbook zh 将导入的条目设为私有条目
middle name addressbook zt 中間欄位 message phone addressbook zh 短信电话
mobile addressbook zt 行動電話 middle name addressbook zh 中间名
mobile phone addressbook zt 行動電話 mobile addressbook zh 移动的
modem phone addressbook zt 撥接電話 mobile phone addressbook zh 移动电话
no vcard addressbook zt 沒有VCard modem phone addressbook zh Modem电话
number of records to read (%1) addressbook zt 讀取記錄號碼(%1) multiple vcard addressbook zh 多重名片档
number of records to read (<=200) addressbook zt 讀取的資料筆數(<=200) no vcard addressbook zh 无vCard
other number addressbook zt 其他號碼 number of records to read (<=200) addressbook zh 待读取记录数 (<=200)
other phone addressbook zt 其他電話 number of records to read (%1) addressbook zh 读取记录号码(%1)
pager common zt 呼叫器 other number addressbook zh 其他电话
parcel addressbook zt 兼職 other phone addressbook zh 其他电话
phone number common zt 電話號碼 pager common zh 寻呼
phone numbers common zt 電話號碼 parcel addressbook zh 包裹
please enter a name for that field ! addressbook zt 請輸入欄位名稱! phone number common zh 电话号码
postal common zt 郵政信箱 phone numbers common zh 电话号码
please enter a name for that field ! addressbook zh 请输入该字段名!
postal common zh 邮政
pref addressbook zh 设为首选 pref addressbook zh 设为首选
preference addressbook zh 通讯录个性化配置
prefix addressbook zh 称谓 prefix addressbook zh 称谓
public key addressbook zh 公钥 public key addressbook zh 公钥
read a list of entries. addressbook zh 读取条目列表. read a list of entries. addressbook zh 读取条目列表.
read a single entry by passing the id and fieldlist. addressbook zh Read a single entry by passing the id and fieldlist. read a single entry by passing the id and fieldlist. addressbook zh 从ID及条目清单读取一个条目
record access addressbook zh 谁可访问? record access addressbook zh 谁可访问?
record owner addressbook zh 所有者 record owner addressbook zh 所有者
retrieve contacts admin zh 取位置: retrieve contacts admin zh 取位置:
@ -140,7 +146,7 @@ test import (show importable records <u>only</u> in browser) addressbook zh 导
that field name has been used already ! addressbook zh 该字段名已被占用! that field name has been used already ! addressbook zh 该字段名已被占用!
this person's first name was not in the address book. addressbook zh 通讯录中无此人名. this person's first name was not in the address book. addressbook zh 通讯录中无此人名.
this person's last name was not in the address book. addressbook zh 通讯录中无此姓氏. this person's last name was not in the address book. addressbook zh 通讯录中无此姓氏.
to many might exceed your execution-time-limit addressbook zh to many might exceed your execution-time-limit to many might exceed your execution-time-limit addressbook zh 太多而超时
today is %1's birthday! common zh 今天是%1的生日! today is %1's birthday! common zh 今天是%1的生日!
tomorrow is %1's birthday. common zh 明天是%1的生日。 tomorrow is %1's birthday. common zh 明天是%1的生日。
translation addressbook zh 翻译 translation addressbook zh 翻译

View File

@ -23,19 +23,19 @@ birthday common zt 生日
birthdays common zt 生日 birthdays common zt 生日
blank addressbook zt 空白 blank addressbook zt 空白
business common zt 公司 business common zt 公司
business address type addressbook zt 住址類型 business address type addressbook zt 公司住址資料
business city addressbook zt 縣/市 business city addressbook zt 公司所在縣/市
business country addressbook zt 國家/地區 business country addressbook zt 公司所在國家/地區
business email addressbook zt 電子郵件 business email addressbook zt 公司電子郵件
business email type addressbook zt 電子郵件類型 business email type addressbook zt 公司電子郵件類型
business fax addressbook zt 傳真 business fax addressbook zt 公司傳真
business phone addressbook zt 電話 business phone addressbook zt 公司電話
business state addressbook zt 省/市 business state addressbook zt 公司所在省/市
business street addressbook zt 地址 business street addressbook zt 公司所在街道
business zip code addressbook zt 郵遞區號 business zip code addressbook zt 公司郵遞區號
car phone addressbook zt 車用電話 car phone addressbook zt 車用電話
cell phone addressbook zt 行動電話 cell phone addressbook zt 行動電話
charset of file addressbook zt 檔案字元編碼設定 charset of file addressbook zt 檔案字元設定
city common zt 縣市 city common zt 縣市
company common zt 公司 company common zt 公司
company name common zt 公司名稱 company name common zt 公司名稱
@ -75,25 +75,24 @@ full name addressbook zt 全名
geo addressbook zt GEO geo addressbook zt GEO
global categories addressbook zt 全域類別 global categories addressbook zt 全域類別
grant addressbook access common zt 允許存取通訊錄 grant addressbook access common zt 允許存取通訊錄
home address type addressbook zt 住址 home address type addressbook zt 住家住資料
home city addressbook zt 縣/市 home city addressbook zt 住家所在縣/市
home country addressbook zt 國家/地區 home country addressbook zt 住家所在國家/地區
home email addressbook zt 電子郵件 home email addressbook zt 住家電子郵件
home email type addressbook zt 電子郵件類型 home email type addressbook zt 住家電子郵件類型
home phone addressbook zt 電話 home phone addressbook zt 住家電話
home state addressbook zt 省/市 home state addressbook zt 住家所在省/市
home street addressbook zt 地址 home street addressbook zt 住家所在街道
home zip code addressbook zt 郵遞區號 home zip code addressbook zt 住家郵遞區號
import addressbook zt 匯入 import addressbook zt 匯入
import contacts addressbook zt 匯入聯絡人 import contacts addressbook zt 匯入聯絡人
import csv-file into addressbook addressbook zt 將CSV檔案匯入通訊錄 import csv-file into addressbook addressbook zt 將CSV檔案匯入通訊錄
import file addressbook zt 匯入檔案 import file addressbook zt 匯入檔案
import from addressbook zt 匯入自
import from ldif, csv, or vcard addressbook zt 從LDIF, CSV, 或 VCard匯入 import from ldif, csv, or vcard addressbook zt 從LDIF, CSV, 或 VCard匯入
import from outlook addressbook zt 從Outlook匯入 import from outlook addressbook zt 從Outlook匯入
import multiple vcard addressbook zt 匯入多重名片檔
import next set addressbook zt 匯入下一個 import next set addressbook zt 匯入下一個
import_instructions addressbook zt Netscape開啟通訊錄並且從<b>檔案</b>功能選擇<b>匯出</b>匯出的檔案是LDIF格式。Outlook選擇聯絡人資料夾從<b>檔案</b>功能選擇<b>匯入與匯出...</b>來匯出聯絡人資料成為逗點分隔(CSV)檔案。 import_instructions addressbook zt Netscape開啟通訊錄並且從<b>檔案</b>功能選擇<b>匯出</b>匯出的檔案是LDIF格式。Outlook選擇聯絡人資料夾從<b>檔案</b>功能選擇<b>匯入與匯出...</b>來匯出聯絡人資料成為逗點分隔(CSV)檔案。
<p>Palm Desktop 4.0 或是更新的版本,在瀏覽通訊錄資料時在<b>檔案</b>功能選擇 <b>匯出</b>,匯出的資料是 VCard 格式。
international addressbook zt 國際 international addressbook zt 國際
isdn phone addressbook zt ISDN電話 isdn phone addressbook zt ISDN電話
label addressbook zt 概述 label addressbook zt 概述
@ -103,14 +102,12 @@ ldap root dn for contacts admin zt 聯絡人之LDAP root dn
ldap root pw for contacts admin zt 聯絡人之LDAP root 密碼 ldap root pw for contacts admin zt 聯絡人之LDAP root 密碼
ldif addressbook zt LDIF ldif addressbook zt LDIF
line 2 addressbook zt 第2行 line 2 addressbook zt 第2行
load vcard addressbook zt 讀取名片檔
mark records as private addressbook zt 標示為私人記錄 mark records as private addressbook zt 標示為私人記錄
message phone addressbook zt 留言電話 message phone addressbook zt 留言電話
middle name addressbook zt 中間欄位 middle name addressbook zt 中間欄位
mobile addressbook zt 行動電話 mobile addressbook zt 行動電話
mobile phone addressbook zt 行動電話 mobile phone addressbook zt 行動電話
modem phone addressbook zt 撥接電話 modem phone addressbook zt 撥接電話
multiple vcard addressbook zt 多重名片檔
no vcard addressbook zt 沒有VCard no vcard addressbook zt 沒有VCard
number of records to read (%1) addressbook zt 讀取記錄號碼(%1) number of records to read (%1) addressbook zt 讀取記錄號碼(%1)
number of records to read (<=200) addressbook zt 讀取的資料筆數(<=200) number of records to read (<=200) addressbook zt 讀取的資料筆數(<=200)
@ -122,8 +119,8 @@ phone number common zt 電話號碼
phone numbers common zt 電話號碼 phone numbers common zt 電話號碼
please enter a name for that field ! addressbook zt 請輸入欄位名稱! please enter a name for that field ! addressbook zt 請輸入欄位名稱!
postal common zt 郵政信箱 postal common zt 郵政信箱
pref addressbook zt 主 pref addressbook zt 主
prefix addressbook zt 稱謂(前置) prefix addressbook zt 稱謂
public key addressbook zt 公鑰 public key addressbook zt 公鑰
read a list of entries. addressbook zt 讀取項目清單。 read a list of entries. addressbook zt 讀取項目清單。
read a single entry by passing the id and fieldlist. addressbook zt 從id及欄位清單讀取一筆資料。 read a single entry by passing the id and fieldlist. addressbook zt 從id及欄位清單讀取一筆資料。
@ -137,9 +134,9 @@ select where you want to store admin zt 選擇您想存放的位置
show birthday reminders on main screen addressbook zt 在主畫面顯示生日提示 show birthday reminders on main screen addressbook zt 在主畫面顯示生日提示
startrecord addressbook zt 開始記錄 startrecord addressbook zt 開始記錄
state common zt 省/市 state common zt 省/市
street common zt 地址 street common zt 街道
successfully imported %1 records into your addressbook. addressbook zt 成功匯入 %1 筆通訊錄資料 successfully imported %1 records into your addressbook. addressbook zt 成功匯入 %1 筆通訊錄資料
suffix addressbook zt 稱謂(後置) suffix addressbook zt
test import (show importable records <u>only</u> in browser) addressbook zt 測試匯入?(在瀏覽器中<u>只顯示</u>可匯入的紀錄) test import (show importable records <u>only</u> in browser) addressbook zt 測試匯入?(在瀏覽器中<u>只顯示</u>可匯入的紀錄)
that field name has been used already ! addressbook zt 這個欄位名稱已經被使用! that field name has been used already ! addressbook zt 這個欄位名稱已經被使用!
this person's first name was not in the address book. addressbook zt 這個人的名字沒有在通訊錄中。 this person's first name was not in the address book. addressbook zt 這個人的名字沒有在通訊錄中。
@ -150,14 +147,14 @@ tomorrow is %1's birthday. common zt 明天是 %1 的生日。
translation addressbook zt 轉換 translation addressbook zt 轉換
update a single entry by passing the fields. addressbook zt 從欄位更新一筆資料。 update a single entry by passing the fields. addressbook zt 從欄位更新一筆資料。
use country list addressbook zt 使用國家清單 use country list addressbook zt 使用國家清單
vcard common zt 名片檔 vcard common zt VCard
vcards require a first name entry. addressbook zt 名片檔需要名字資料。 vcards require a first name entry. addressbook zt VCards需要名字資料。
vcards require a last name entry. addressbook zt 名片檔需要姓氏資料。 vcards require a last name entry. addressbook zt Vcards需要姓氏資料。
video phone addressbook zt 影像電話 video phone addressbook zt 影像電話
voice phone addressbook zt 語音電話 voice phone addressbook zt 語音電話
warning!! ldap is valid only if you are not using contacts for accounts storage! admin zt 注意只有當您沒有將聯絡人作為帳號儲存時LDAP才會生效 warning!! ldap is valid only if you are not using contacts for accounts storage! admin zt 注意只有當您沒有將聯絡人作為帳號儲存時LDAP才會生效
work phone addressbook zt 工作電話 work phone addressbook zt 工作電話
you must select a vcard. (*.vcf) addressbook zt 您必須選取一個名片檔 (*.vcf) you must select a vcard. (*.vcf) addressbook zt 您必須選取一個vcard (*.vcf)
you must select at least 1 column to display addressbook zt 您必須至少選取一個欄位才能顯示 you must select at least 1 column to display addressbook zt 您必須至少選取一個欄位才能顯示
zip code common zt 郵遞區號 zip code common zt 郵遞區號
zip_note addressbook zt <p><b>注意:</b> 壓縮檔案可能包含 .csv, .vcf, 或 .ldif 格式,請不要在同一次的匯入工作中混用不同的檔案格式! zip_note addressbook zt <p><b>注意:</b> 壓縮檔案可能包含 .csv, .vcf, 或 .ldif 格式,請不要在同一次的匯入工作中混用不同的檔案格式!

View File

@ -48,6 +48,6 @@
/* Dependencies for this app to work */ /* Dependencies for this app to work */
$setup_info['addressbook']['depends'][] = array( $setup_info['addressbook']['depends'][] = array(
'appname' => 'phpgwapi', 'appname' => 'phpgwapi',
'versions' => Array('0.9.14','0.9.15','1.0.0','1.0.1') 'versions' => Array('0.9.14','0.9.15','1.0.0')
); );
?> ?>

View File

@ -1,35 +0,0 @@
<?php
/**************************************************************************\
* eGroupWare - Addressbook - API contacts service test *
* http://www.egroupware.org *
* -------------------------------------------- *
* This program is free software; you can redistribute it and/or modify it *
* under the terms of the GNU General Public License as published by the *
* Free Software Foundation; either version 2 of the License, or (at your *
* option) any later version. *
\**************************************************************************/
/* $Id$ */
$GLOBALS['egw_info'] = array();
$GLOBALS['egw_info']['flags'] = array(
'currentapp' => 'addressbook',
'noheader' => True,
'nonavbar' => True
);
include('../header.inc.php');
$obj = CreateObject('phpgwapi.service');
/* Entire addressbook */
$tmp = $obj->exec(array('contacts','read_list'));
echo '<br/>Entire list:';
_debug_array($tmp);
/* Single entry with id of 182 */
$tmp = $obj->exec(array('contacts','read',array('id' => 182)));
echo '<br/>Single entry:';
_debug_array($tmp);
$GLOBALS['phpgw']->common->phpgw_footer();
?>

View File

@ -1,16 +0,0 @@
<table border="0" width="100%">
<tr>
<td align="left">
<a href="{url}"><img src="{image}" border="0" alt="{alt}"></a>
</td>
</tr>
<tr>
<td align="center">{about_addressbook}</td>
</tr>
<tr>
<td align="center">{appear}&nbsp;{agent}&nbsp;{version}&nbsp;{on}&nbsp;{platform}.</td>
</tr>
<tr>
<td><hr></td>
</tr>
</table>

View File

@ -1,16 +0,0 @@
<!-- BEGIN add -->
<!--<table border="0" cellPadding="0" cellSpacing="0" width="77%">-->
<tr>
<td width="10%">
<input type="submit" name="submit" value="{lang_save}">&nbsp;
</td>
</form>
<form action="{cancel_url}" method="post">
<td colspan="3">
&nbsp;<input type="submit" name="cancel" value="{lang_cancel}">
</td>
</form>
</tr>
</table>
<!-- END add -->

View File

@ -1,16 +0,0 @@
<!-- BEGIN admin.tpl -->
<p><b>{lang_admin}:</b><hr><p>
<form method="POST" action="{action_url}">
<table border="0" align="center" cellspacing="1" cellpadding="1">
<tr bgcolor="#EEEEEE">
<td colspan="3">
{lang_countrylist}
<input type="checkbox" name="usecountrylist"{countrylist}></td>
</tr>
<tr>
<td colspan="5" align="center">
<input type="submit" name="submit" value="{lang_submit}">
</td>
</tr>
</table>
</form>

View File

@ -1,64 +0,0 @@
<!-- BEGIN header -->
<form method="POST" action="{action_url}">
{hidden_vars}
<table border="0" align="center">
<tr class="th">
<td colspan="2"><font color="{th_text}">&nbsp;<b>{title}</b></font></td>
</tr>
<tr bgcolor="{th_err}">
<td colspan="2">&nbsp;<b>{error}</b></font></td>
</tr>
<!-- END header -->
<!-- BEGIN body -->
<tr class="th">
<td colspan="2">&nbsp;<b>{lang_Addressbook}/{lang_Contact_Settings}</b></font></td>
</tr>
<!--
<tr class="row_on">
<td>{lang_Contact_application}:</td>
<td><input name="newsettings[contact_application]" value="{value_contact_application}"></td>
</tr>
<tr class="row_off">
<td align="center" colspan="2">{lang_WARNING!!_LDAP_is_valid_only_if_you_are_NOT_using_contacts_for_accounts_storage!}</td>
</tr> -->
<tr class="row_off">
<td>{lang_Select_where_you_want_to_store}/{lang_retrieve_contacts}.</td>
<td>
<select name="newsettings[contact_repository]">
<option value="sql" {selected_contact_repository_sql}>SQL</option>
<option value="ldap" {selected_contact_repository_ldap}>LDAP</option>
</select>
</td>
</tr>
<tr class="row_on">
<td>{lang_LDAP_host_for_contacts}:</td>
<td><input name="newsettings[ldap_contact_host]" value="{value_ldap_contact_host}"></td>
</tr>
<tr class="row_off">
<td>{lang_LDAP_context_for_contacts}:</td>
<td><input name="newsettings[ldap_contact_context]" value="{value_ldap_contact_context}" size="40"></td>
</tr>
<tr class="row_on">
<td>{lang_LDAP_root_dn_for_contacts}:</td>
<td><input name="newsettings[ldap_contact_dn]" value="{value_ldap_contact_dn}" size="40"></td>
</tr>
<tr class="row_off">
<td>{lang_LDAP_root_pw_for_contacts}:</td>
<td><input name="newsettings[ldap_contact_pw]" type="password" value=""></td>
</tr>
<!-- END body -->
<!-- BEGIN footer -->
<tr class="th">
<td colspan="2">
&nbsp;
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="submit" value="{lang_submit}">
<input type="submit" name="cancel" value="{lang_cancel}">
</td>
</tr>
</table>
</form>
<!-- END footer -->

View File

@ -1,71 +0,0 @@
<br><center>
<FORM {enctype} action="{action_url}" method="post">
<TABLE>
<!-- BEGIN filename -->
<TR>
<TD>{lang_csvfile}</td>
<td><INPUT NAME="csvfile" SIZE=30 TYPE="file" VALUE="{csvfile}"></td>
</tr>
<tr>
<td>{lang_fieldsep}</td>
<td><input name="fieldsep" size=1 value="{fieldsep}"></td>
</tr>
<tr>
<td>{lang_charset}</td>
<td>
{select_charset}
</td>
</tr>
<tr><td>&nbsp;</td>
<td><INPUT NAME="convert" TYPE="submit" VALUE="{submit}"></TD>
</TR>
<!-- END filename -->
<!-- BEGIN fheader -->
<tr>
<td><b>{lang_csv_fieldname}</b></td>
<td><b>{lang_addr_fieldname}</b></td>
<td><b>{lang_translation}</b></td>
</tr>
<!-- END fheader -->
<!-- BEGIN fields -->
<tr>
<td>{csv_field}</td>
<td><SELECT name="addr_fields[{csv_idx}]">{addr_fields}</select></td>
<td><input name="trans[{csv_idx}]" size=60 value="{trans}"></td>
</tr>
<!-- END fields -->
<!-- BEGIN ffooter -->
<tr>
<td rowspan="2" valign="middle"><br>{submit}</TD>
<td colspan="2"><br>
{lang_start} <INPUT name="start" type="text" size="5" value="{start}"> &nbsp; &nbsp;
{lang_max} <INPUT name="max" type="text" size="3" value="{max}"><td>
</tr>
<tr>
<td colspan="3"><INPUT name="debug" type="checkbox" value="1" {debug}> {lang_debug}</td>
</TR>
<tr><td colspan="3">&nbsp;<p>
{help_on_trans}
</td></tr>
<!-- END ffooter -->
<!-- BEGIN imported -->
<tr>
<td colspan="2">
{log}<p>
{anz_imported}
</td>
</TR>
<!-- END imported -->
</TABLE>
{hiddenvars}
</form>
</CENTER>

View File

@ -1,10 +0,0 @@
<br>
<center>{lang_sure}</center>
<br>
<center>
<form action="{yes_link}" method="POST">
<input type="submit" name="yes" value="{lang_yes}"> &nbsp; &nbsp; &nbsp; &nbsp;
<input type="submit" name="no" value="{lang_no}">
<input type="hidden" name="select" value="{select}">
</form>
</center>

View File

@ -1,16 +0,0 @@
<!-- BEGIN form -->
<center>
<table border="0" with="65%">
<tr>
<td colspan="2" align="center">
{messages}
</td>
</tr>
<tr>
<td align="center">{no}</td>
<td align="center">{yes}</td>
</tr>
</table>
</center>
<!-- END form -->

View File

@ -1,23 +0,0 @@
<!-- BEGIN edit -->
<input type="hidden" name="entry[ab_id]" value="{ab_id}">
<input type="hidden" name="entry[tid]" value="{tid}">
<input type="hidden" name="entry[referer]" value="{referer}">
<!-- <table border="0" cellPadding="1" cellSpacing="1" width="95%" align="center">-->
<tr valign="top">
<td align="left" width="10%">
<input type="submit" name="submit" value="{lang_save}"></form>
</TD>
<td align="left" colspan="3">
{cancel_link}
&nbsp;<input type="submit" name="cancel" value="{lang_cancel}"></form>
</td>
<td align="right">
{delete_link}
<input type="hidden" name="entry[ab_id]" value="{ab_id}">
{delete_button}
</form>
</td>
</tr>
</table>
<!-- END edit -->

View File

@ -1,54 +0,0 @@
<!-- $Id$ -->
<!-- BEGIN form -->
<center>
<table border="0" width="80%" cellspacing="2" cellpadding="2">
<tr>
<td colspan="1" align="center" bgcolor="#c9c9c9"><b>{title_fields}<b/></td>
</tr>
</table>
{message}
<table border="0" width="80%" cellspacing="2" cellpadding="2">
<form name="form" action="{actionurl}" method="POST">
<tr>
<td>{lang_name}:</td>
<td><input name="field_name" size="50" value="{field_name}"></td>
</tr>
</table>
<!-- BEGIN add -->
<table width="50%" border="0" cellspacing="2" cellpadding="2">
<tr valign="bottom">
<td height="50" align="center">
{hidden_vars}
<input type="submit" name="submit" value="{lang_add}"></td>
<td height="50" align="center">
<input type="reset" name="reset" value="{lang_reset}"></form></td>
<td height="50" align="center">
<form method="POST" action="{doneurl}">
{hidden_vars}
<input type="submit" name="done" value="{lang_done}"></form></td>
</tr>
</table>
</form>
</center>
<!-- END add -->
<!-- BEGIN edit -->
<table width="50%" border="0" cellspacing="2" cellpadding="2">
<tr valign="bottom">
<td height="50" align="center">
{hidden_vars}
<input type="submit" name="submit" value="{lang_edit}"></form></td>
<td height="50" align="center">
<form method="POST" action="{deleteurl}">
{hidden_vars}
<input type="submit" name="delete" value="{lang_delete}"></form></td>
<td height="50" align="center">
<form method="POST" action="{doneurl}">
{hidden_vars}
<input type="submit" name="done" value="{lang_done}"></form></td>
</tr>
</table>
</center>
<!-- END edit -->
<!-- END form -->

View File

@ -1,282 +0,0 @@
<!-- BEGIN addressbook entry form -->
<table width="95%" border="0" align="center">
<tr bgcolor="{th_bg}">
<td colspan="5"><font color="{th_text}" face="">{lang_personal}:</font></td>
</tr>
<tr bgcolor="{row_on}">
<td>&nbsp;</td>
<td><font color="{row_text}" face="" size="-1">{lang_prefix}:</font></td>
<td colspan="3">
<font size="-1"><input size="10" name="entry[prefix]" value="{prefix}"></font>
</td>
</tr>
<tr bgcolor="{row_off}">
<td>&nbsp;</td>
<td><font color="{row_text}" face="" size="-1">{lang_firstname}:</font></td>
<td>
<font size="-1"><input name="entry[firstname]" value="{firstname}"></font>
</td>
<td><font color="{row_text}" face="" size="-1">{lang_middle}:</font></td>
<td>
<font size="-1"><input name="entry[middle]" value="{middle}"></font>
</td>
</tr>
<tr bgcolor="{row_on}">
<td>&nbsp;</td>
<td><font color="{row_text}" face="" size="-1">{lang_lastname}:</font></td>
<td colspan="3">
<font size="-1"><input name="entry[lastname]" value="{lastname}"></font>
</td>
</tr>
<tr bgcolor="{row_off}">
<td>&nbsp;</td>
<td><font color="{row_text}" face="" size="-1">{lang_suffix}:</font></td>
<td colspan="3">
<font size="-1"><input size="10" name="entry[suffix]" value="{suffix}"></font>
</td>
</tr>
<tr bgcolor="{row_on}">
<td>&nbsp;</td>
<td><font face="" size="-1">{lang_birthday}:</font></td>
<td colspan="3"><font size="-1">{birthday}</font></td>
</tr>
<tr bgcolor="{th_bg}">
<td colspan="5"><font color="{th_text}" face="">{lang_business}:</font></td>
</tr>
<tr bgcolor="{row_on}">
<td>&nbsp;</td>
<td>
<font color="{row_text}" face="" size="-1">{lang_title}:</font>
</td>
<td colspan="3">
<font size="-1"><input name="entry[title]" value="{title}"></font>
</td>
</tr>
<tr bgcolor="{row_off}">
<td>&nbsp;</td>
<td>
<font color="{row_text}" face="" size="-1">{lang_company}:</font>
</td>
<td>
<font size="-1"><input size="30" name="entry[company]" value="{company}"></font>
</td>
<td colspan="2">
<font color="{row_text}" face="" size="-1">{lang_url}:</font>
<input size="30" name="entry[url]" value="{url}">
</td>
</tr>
<tr bgcolor="{row_on}">
<td>&nbsp;</td>
<td>
<font color="{row_text}" face="" size="-1">{lang_email}:
</td>
<td>
<font size="-1"><input size="30" name="entry[email]" value="{email}"></font>
</td>
<td colspan="2">
<font color="{row_text}" face="" size="-1">{lang_email_type}:</font>
<font size="-1">{email_type}</font>
</td>
</tr>
<tr bgcolor="{row_off}">
<td>&nbsp;</td>
<td>
<font color="{row_text}" face="" size="-1">{lang_department}:</font>
</td>
<td colspan="3">
<font size="-1"><input name="entry[department]" value="{department}"></font>
</td>
</tr>
<tr bgcolor="{row_on}">
<td>&nbsp;</td>
<td><font face="" size="-1">{lang_bstreet}:</font></td>
<td colspan="3">
<font size="-1"><input size="30" name="entry[bstreet]" value="{bstreet}"></font>
</td>
</tr>
<tr bgcolor="{row_off}">
<td>&nbsp;</td>
<td><font face="" size="-1">{lang_address2}:</font></td>
<td colspan="3">
<font size="-1"><input size="30" name="entry[address2]" value="{address2}"></font>
</td>
</tr>
<tr bgcolor="{row_on}">
<td>&nbsp;</td>
<td><font face="" size="-1">{lang_address3}:</font></td>
<td colspan="3">
<font size="-1"><input size="30" name="entry[address3]" value="{address3}"></font>
</td>
</tr>
<tr bgcolor="{row_off}">
<td>&nbsp;</td>
<td><font face="" size="-1">{lang_bcity}:</font></td>
<td>
<font size="-1"><input size="30" name="entry[bcity]" value="{bcity}"></font>
</td>
<td colspan="2"><font color="{row_text}" face="" size="-1">{lang_bstate}:</font>
<font size="-1"><input name="entry[bstate]" value="{bstate}"></font>
</td>
</tr>
<tr bgcolor="{row_on}">
<td>&nbsp;</td>
<td><font face="" size="-1">{lang_bzip}:</font></td>
<td colspan="3">
<font size="-1"><input size="10" name="entry[bzip]" value="{bzip}"></font>
</td>
</tr>
<tr bgcolor="{row_off}">
<td>&nbsp;</td>
<td><font color="{row_text}" face="" size="-1">{lang_bcountry}:</font></td>
<td>
<font size="-1">{bcountry}</font>
</td>
<td colspan="2"><font color="{row_text}" face="" size="-1">{lang_timezone}:</font>
<font size="-1">{timezone}</font>
</td>
</tr>
<tr bgcolor="{row_on}">
<td>&nbsp;</td>
<td><font color="{row_text}" face="" size="-1">{lang_badrtype}:</font></td>
<td colspan="3">
<font size="-1">{badrtype}</font>
</td>
</tr>
<tr bgcolor="{row_off}">
<td>&nbsp;</td>
<td><font color="{row_text}" face="" size="-1">{lang_wphone}:</font></td>
<td>
<font size="-1"><input name="entry[wphone]" value="{wphone}"></font>{pref_work}
</td>
<td><font color="{row_text}" face="" size="-1">{lang_fax}:</font></td>
<td>
<font size="-1"><input name="entry[fax]" value="{fax}"></font>{pref_fax}
</td>
</tr>
<tr bgcolor="{row_on}">
<td>&nbsp;</td>
<td><font color="{row_text}" face="" size="-1">{lang_pager}:</font></td>
<td>
<font size="-1"><input name="entry[pager]" value="{pager}"></font>{pref_pager}
</td>
<td><font color="{row_text}" face="" size="-1">{lang_mphone}:</font></td>
<td>
<font size="-1"><input name="entry[mphone]" value="{mphone}"></font>{pref_cell}
</td>
</tr>
<tr bgcolor="{row_off}">
<td>&nbsp;</td>
<td><font color="{row_text}" face="" size="-1">{lang_msgphone}:</font></td>
<td>
<font size="-1"><input name="entry[msgphone]" value="{msgphone}"></font>{pref_msg}
</td>
<td><font color="{row_text}" face="" size="-1">{lang_isdnphone}:</font></td>
<td>
<font size="-1"><input name="entry[isdnphone]" value="{isdnphone}"></font>{pref_isdn}
</td>
</tr>
<tr bgcolor="{row_on}">
<td>&nbsp;</td>
<td><font color="{row_text}" face="" size="-1">{lang_carphone}:</font></td>
<td>
<font size="-1"><input name="entry[carphone]" value="{carphone}"></font>{pref_car}
</td>
<td><font color="{row_text}" face="" size="-1">{lang_vidphone}:</font></td>
<td>
<font size="-1"><input name="entry[vidphone]" value="{vidphone}"></font>{pref_video}
</td>
</tr>
<tr bgcolor="{row_off}">
<td>&nbsp;</td>
<td><font size="-1">{lang_label}:</font></td>
<td colspan="3"><font size="-1">{label}</font></td>
</tr>
<tr bgcolor="{row_on}">
<td>&nbsp;</td>
<td><font size="-1">{lang_pubkey}:</font></td>
<td colspan="3"><font size="-1">{pubkey}</font></td>
</tr>
<tr bgcolor="{th_bg}">
<td colspan="5"><font color="{row_text}" face="">{lang_home}:</font></td>
</tr>
<tr bgcolor="{row_on}">
<td>&nbsp;</td>
<td>
<font color="{row_text}" face="" size="-1">{lang_hemail}:</font>
</td>
<td><font size="-1"><input size="30" name="entry[hemail]" value="{hemail}"></font></td>
<td colspan="2"><font color="{row_text}" face="" size="-1">{lang_hemail_type}:</font>
<font size="-1">{hemail_type}</font>
</td>
</tr>
<tr bgcolor="{row_off}">
<td>&nbsp;</td>
<td><font face="" size="-1">{lang_hstreet}:</font></td>
<td colspan="3"><font size="-1"><input size="30" name="entry[hstreet]" value="{hstreet}"></font></td>
</tr>
<tr bgcolor="{row_on}">
<td>&nbsp;</td>
<td><font face="" size="-1">{lang_hcity}:</font></td>
<td>
<font size="-1"><input size="30" name="entry[hcity]" value="{hcity}"></font>
</td>
<td><font color="{row_text}" face="" size="-1">{lang_hstate}:</font></td>
<td>
<font size="-1"><input name="entry[hstate]" value="{hstate}"></font>
</td>
</tr>
<tr bgcolor="{row_off}">
<td>&nbsp;</td>
<td><font face="" size="-1">{lang_hzip}:</font></td>
<td colspan="3">
<font size="-1"><input size="10" name="entry[hzip]" value="{hzip}"></font>
</td>
</tr>
<tr bgcolor="{row_on}">
<td>&nbsp;</td>
<td><font color="{row_text}" face="" size="-1">{lang_hcountry}:</font></td>
<td colspan="3">
<font size="-1">{hcountry}</font>
</td>
</tr>
<tr bgcolor="{row_off}">
<td>&nbsp;</td>
<td><font color="{row_text}" face="" size="-1">{lang_hadrtype}:</font></td>
<td colspan="3">
<font size="-1">{hadrtype}</font>
</td>
</tr>
<tr bgcolor="{row_on}">
<td>&nbsp;</td>
<td><font color="{row_text}" face="" size="-1">{lang_hphone}:</font></td>
<td>
<font size="-1"><input name="entry[hphone]" value="{hphone}"></font>{pref_home}
</td>
<td colspan="2"><font color="{row_text}" face="" size="-1">{lang_ophone}:</font>
<font size="-1"><input name="entry[ophone]" value="{ophone}"></font>
</td>
</tr>
<tr bgcolor="{row_off}">
<td><font size="-1">{lang_notes}:</font></td>
<td colspan="4"><font size="-1">{notes}</font></td>
</tr>
<tr bgcolor="{row_on}">
<td><font size="-1">{lang_private}:</font></td>
<td colspan="4">
<input type="checkbox" name="entry[access]" value="True"{access_check}>
</td>
</tr>
<tr bgcolor="{row_off}">
<td><font size="-1">{lang_cats}:</font></td>
<td colspan="4">{cats_link}</td>
</tr>
<tr bgcolor="{th_bg}">
<td colspan="5"><font color="{row_text}" face="" size="-1">{lang_custom}</font></td>
</tr>
{custom}
<!-- BEGIN creator -->
{create}
<!-- END creator -->
<!--</table>-->
<!-- END addressbook entry form -->

View File

@ -1,19 +0,0 @@
<!-- $Id$ -->
<table border="0" cellpadding="2" cellspacing="2">
<tr>
<td><font face="{font}" size="{fontsize}">{company}</font></td>
</tr>
<tr>
<td><font face="{font}" size="{fontsize}">{department}</font></td>
</tr>
<tr>
<td><font face="{font}" size="{fontsize}">{street}</font></td>
</tr>
<tr>
<td><font face="{font}" size="{fontsize}">{zip}&nbsp;{city}</font></td>
</tr>
<tr>
<td><font face="{font}" size="{fontsize}">{country}</font></td>
</tr>
</table>

View File

@ -1,19 +0,0 @@
<!-- $Id$ -->
<table border="0" cellpadding="2" cellspacing="2">
<tr>
<td><font face="{font}" size="{fontsize}">{company}</font></td>
</tr>
<tr>
<td><font face="{font}" size="{fontsize}">{department}</font></td>
</tr>
<tr>
<td><font face="{font}" size="{fontsize}">{street}</font></td>
</tr>
<tr>
<td><font face="{font}" size="{fontsize}">{city},&nbsp;{state}&nbsp;{zip}</font></td>
</tr>
<tr>
<td><font face="{font}" size="{fontsize}">{country}</font></td>
</tr>
</table>

View File

@ -1,29 +0,0 @@
<!-- $Id$ -->
<table border="0" cellpadding="1" cellspacing="1">
<tr>
<td><font face="{font}" size="{fontsize}">{company}</font></td>
<td>&nbsp;</td>
<td><font face="{font}" size="{fontsize}">{lang_url}:&nbsp;{url}</font></td>
</tr>
<tr>
<td><font face="{font}" size="{fontsize}">{department}</font></td>
<td>&nbsp;</td>
<td><font face="{font}" size="{fontsize}">{lang_email}:&nbsp;{email}</font></td>
</tr>
<tr>
<td><font face="{font}" size="{fontsize}">{street}</font></td>
<td>&nbsp;</td>
<td><font face="{font}" size="{fontsize}">{lang_fon}:&nbsp;{tel}</font></td>
</tr>
<tr>
<td><font face="{font}" size="{fontsize}">{zip}&nbsp;{city}</font></td>
<td>&nbsp;</td>
<td><font face="{font}" size="{fontsize}">{lang_fax}:&nbsp;{fax}</font></td>
</tr>
<tr>
<td><font face="{font}" size="{fontsize}">{country}</font></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>

View File

@ -1,29 +0,0 @@
<!-- $Id$ -->
<table border="0" cellpadding="2" cellspacing="2">
<tr>
<td><font face="{font}" size="{fontsize}">{company}</font></td>
<td>&nbsp;</td>
<td><font face="{font}" size="{fontsize}">{lang_url}:&nbsp;{url}</font></td>
</tr>
<tr>
<td><font face="{font}" size="{fontsize}">{department}</font></td>
<td>&nbsp;</td>
<td><font face="{font}" size="{fontsize}">{lang_email}:&nbsp;{email}</font></td>
</tr>
<tr>
<td><font face="{font}" size="{fontsize}">{street}</font></td>
<td>&nbsp;</td>
<td><font face="{font}" size="{fontsize}">{lang_fon}:&nbsp;{tel}</font></td>
</tr>
<tr>
<td><font face="{font}" size="{fontsize}">{city},&nbsp;{state}&nbsp;{zip}</font></td>
<td>&nbsp;</td>
<td><font face="{font}" size="{fontsize}">{lang_fax}:&nbsp;{fax}</font></td>
</tr>
<tr>
<td><font face="{font}" size="{fontsize}">{country}</font></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 661 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -1,95 +0,0 @@
<!-- BEGIN addressbook_header -->
<script>
function check_all(which)
{
for (i=0; i<document.addr_index.elements.length; i++)
{
if (document.addr_index.elements[i].type == "checkbox" && document.addr_index.elements[i].name.substring(0,which.length) == which)
{
if (document.addr_index.elements[i].checked)
{
document.addr_index.elements[i].checked = false;
}
else
{
document.addr_index.elements[i].checked = true;
}
}
}
}
</script>
<style type="text/css">
.letter_box,.letter_box_active {
background-color: #D3DCE3;
width: 25px;
border: 1px solid #D3DCE3;
text-align: center;
cursor: pointer;
cusror: hand;
}
.letter_box_active {
font-weight: bold;
background-color: #E8F0F0;
}
.letter_box_active,.letter_box:hover {
border: 1px solid black;
background-color: #E8F0F0;
}
</style>
<div align="center">
{lang_showing}
<br>{searchreturn}
{search_filter}
<table width="95%" border="0">
<tr>
{alphalinks}
</tr>
</table>
<table width="95%" border="0" cellspacing="1" cellpadding="3">
<form name="addr_index" action="{action_url}" method="POST">
<tr class="th">{cols}
<td width="5%" height="21"><font face="Arial, Helvetica, sans-serif" size="-1">{lang_actions}</font>
&nbsp;<a href="javascript:check_all('select')"><img src="{check}" border="0" height="16" width="21" alt="{select_all}"></a></td>
</tr>
<!-- END addressbook_header -->
<!-- BEGIN column -->
<td valign="top"><font face="Arial, Helvetica, san-serif" size="2">{col_data}&nbsp;</font></td>
<!-- END column -->
<!-- BEGIN row -->
<tr bgcolor="{row_tr_color}">{columns}
<td valign="top" nowrap>{actions}</td>
</tr>
<!-- END row -->
<!-- BEGIN delete_block -->
<tr bgcolor="{row_tr_color}"><td colspan="{column_count}">&nbsp;</td>
<td align="right"><input type="submit" name="Delete" value="{lang_delete}"></td>
</tr>
<!-- END delete_block -->
<!-- BEGIN addressbook_footer -->{delete_button}
</form>
</table>
<table border="0" cellspacing="0" cellpadding="2">
<tr class="th">
<form action="{add_url}" method="post"><td><input type="submit" name="Add" value="{lang_add}" /></td></form>
<form action="{vcard_url}" method="post"><td><input type="submit" name="AddVcard" value="{lang_addvcard}" /></td></form>
<form action="{import_url}" method="post"><td><input type="submit" name="Import" value="{lang_import}" /></td></form>
</tr>
</table>
<table border="0" cellspacing="0" cellpadding="2">
<tr bgcolor="{th_bg}">
<form action="{import_alt_url}" method="post"><td><input type="submit" name="Import" value="{lang_import_alt}" /></td></form>
<form action="{export_url}" method="post"><td><input type="submit" name="Export" value="{lang_export}" /></td></form>
</tr>
</table>
</div>
<!-- END addressbook_footer -->
<!-- BEGIN addressbook_alpha -->
<td class="{charclass}" onclick="location.href='{charlink}';">{char}</td>
<!-- END addressbook_alpha -->

View File

@ -1,7 +0,0 @@
<!-- $Id$ -->
<table border="0" cellpadding="2" cellspacing="2">
<tr>
<td><font face="{font}" size="{fontsize}">{company}&nbsp;°&nbsp;{street}&nbsp;°&nbsp;{zip}&nbsp;{city}{county}</font></td>
</tr>
</table>

View File

@ -1,7 +0,0 @@
<!-- $Id$ -->
<table border="0" cellpadding="2" cellspacing="2">
<tr>
<td><font face="{font}" size="{fontsize}">{company}&nbsp;°&nbsp;{street}&nbsp;°&nbsp;{city},&nbsp;{state}&nbsp;{zip}{country}</font></td>
</tr>
</table>

View File

@ -1,52 +0,0 @@
<center>
<table border="0" cellspacing="2" cellpadding="2">
<tr>
<td colspan="6" align="center" bgcolor="#c9c9c9"><b>{title_fields}<b/></td>
</tr>
<tr>
<td colspan="6" align=left>
<table border="0" width="100%">
<tr>
{left}
<td align="center">{lang_showing}</td>
{right}
</tr>
</table>
</td>
</tr>
<tr>
<td align=right>
<form method="post" action="{actionurl}">
<input type="text" name="query">&nbsp;<input type="submit" name="search" value="{lang_search}"></form></td>
</tr>
<tr bgcolor="{th_bg}">
<td width="16%" bgcolor="{th_bg}">{sort_field}</td>
<td width="8%" bgcolor="{th_bg}" align="center">{lang_edit}</td>
<td width="8%" bgcolor="{th_bg}" align="center">{lang_delete}</td>
</tr>
<!-- BEGIN field_list -->
<tr bgcolor="{tr_color}">
<td>{cfield}</td>
<td align="center"><a href="{edit}">{lang_edit_entry}</a></td>
<td align="center"><a href="{delete}">{lang_delete_entry}</a></td>
</tr>
<!-- END field_list -->
<!-- BEGIN add -->
<tr valign="bottom">
<td>
<form method="POST" action="{add_action}">
<input type="submit" name="add" value="{lang_add}"></form>
</td>
</tr>
<tr valign="bottom">
<td>
<form method="POST" action="{doneurl}">
<input type="submit" name="done" value="{lang_done}"></form>
</td>
</tr>
<!-- END add -->
</table>
</center>

View File

@ -1,27 +0,0 @@
{errors}
{title}
<table border="0" align="center" width="70%">
<tr>
{nml}
<td width="40%">
<div align="center">
<form method="POST" action="{action_url}">
{common_hidden_vars}
<input type="text" name="query" value="{search_value}">
<input type="submit" name="search" value="{search}">
</form>
</div>
</td>
{nmr}
</tr>
</table>
<form method="POST" action="{action_url}">
<table border="0" align="center" width="50%">
{row}
</table>
{common_hidden_vars_form}
<input type="hidden" name="processed" value="{processed}">
<center><input type="submit" name="submit" value="{submit_lang}"></center>
</form>

View File

@ -1,7 +0,0 @@
<!-- $Id$ -->
<tr bgcolor="{row_color}">
<td>{user}</td>
<td align="center"><input type="checkbox" name="{read}" value="Y"{read_selected}></td>
<td align="center"><input type="checkbox" name="{edit}" value="Y"{edit_selected}></td>
<td align="center"><input type="checkbox" name="{delete}" value="Y"{delete_selected}></td>
</tr>

View File

@ -1,6 +0,0 @@
<tr bgcolor="{bg_color}">
<td>{string}</td>
<td align="center">{lang_read}</td>
<td align="center">{lang_edit}</td>
<td align="center">{lang_delete}</td>
</tr>

View File

@ -1,143 +0,0 @@
<!-- BEGIN preferences.tpl -->
<br>
<form method="POST" action="{action_url}">
<table border="0" align="center" cellspacing="1" cellpadding="1" width="98%">
<tr class="th">
<td colspan="6" align="center"><font color="#000000" face="">{lang_fields}:</font></td>
</tr>
<tr class="row_on">
<td colspan="6"><font color="#000000" face="">{lang_personal}:</font></td>
</tr>
<tr class="row_off">
<td><input type="checkbox" name="prefs[fn]"{fn_checked}>{fn}</option></td>
<td><input type="checkbox" name="prefs[n_given]"{n_given_checked}>{n_given}</option></td>
<td><input type="checkbox" name="prefs[n_family]"{n_family_checked}>{n_family}</option></td>
<td><input type="checkbox" name="prefs[n_middle]"{n_middle_checked}>{n_middle}</option></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr class="row_off">
<td><input type="checkbox" name="prefs[n_prefix]"{n_prefix_checked}>{n_prefix}</option></td>
<td><input type="checkbox" name="prefs[n_suffix]"{n_suffix_checked}>{n_suffix}</option></td>
<td><input type="checkbox" name="prefs[bday]"{bday_checked}>{bday}</option></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr class="row_on">
<td colspan="6"><font color="#000000" face="">{lang_business}:</font></td>
</tr>
<tr class="row_off">
<td><input type="checkbox" name="prefs[org_name]"{org_name_checked}>{org_name}</option></td>
<td><input type="checkbox" name="prefs[org_unit]"{org_unit_checked}>{org_unit}</option></td>
<td><input type="checkbox" name="prefs[title]"{title_checked}>{title}</option></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr class="row_off">
<td><input type="checkbox" name="prefs[adr_one_street]"{adr_one_street_checked}>{adr_one_street}</option></td>
<td><input type="checkbox" name="prefs[address2]"{address2_checked}>{address2}</option></td>
<td><input type="checkbox" name="prefs[address3]"{address3_checked}>{address3}</option></td>
<td><input type="checkbox" name="prefs[adr_one_locality]"{adr_one_locality_checked}>{adr_one_locality}</option></td>
<td><input type="checkbox" name="prefs[adr_one_region]"{adr_one_region_checked}>{adr_one_region}</option></td>
<td><input type="checkbox" name="prefs[adr_one_postalcode]"{adr_one_postalcode_checked}>{adr_one_postalcode}</option></td>
</tr>
<tr class="row_off">
<td><input type="checkbox" name="prefs[adr_one_countryname]"{adr_one_countryname_checked}>{adr_one_countryname}</option></td>
<td><input type="checkbox" name="prefs[adr_two_type]"{adr_one_type_checked}>{adr_one_type}</option></td>
<td><input type="checkbox" name="prefs[tel_work]"{tel_work_checked}>{tel_work}</option></td>
<td><input type="checkbox" name="prefs[email]"{email_checked}>{email}</option></td>
<td colspan="2"><input type="checkbox" name="prefs[email_type]"{email_type_checked}>{email_type}</option></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr class="row_on">
<td colspan="6"><font color="#000000" face="">{lang_home}:</font></td>
</tr>
<tr class="row_off">
<td><input type="checkbox" name="prefs[adr_two_street]"{adr_two_street_checked}>{adr_two_street}</option></td>
<td><input type="checkbox" name="prefs[adr_two_locality]"{adr_two_locality_checked}>{adr_two_locality}</option></td>
<td><input type="checkbox" name="prefs[adr_two_region]"{adr_two_region_checked}>{adr_two_region}</option></td>
<td><input type="checkbox" name="prefs[adr_two_postalcode]"{adr_two_postalcode_checked}>{adr_two_postalcode}</option></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr class="row_off">
<td><input type="checkbox" name="prefs[adr_two_countryname]"{adr_two_countryname_checked}>{adr_two_countryname}</option></td>
<td><input type="checkbox" name="prefs[adr_two_type]"{adr_two_type_checked}>{adr_two_type}</option></td>
<td><input type="checkbox" name="prefs[tel_home]"{tel_home_checked}>{tel_home}</option></td>
<td><input type="checkbox" name="prefs[email_home]"{email_home_checked}>{email_home}</option></td>
<td colspan="2"><input type="checkbox" name="prefs[email_home_type]"{email_home_type_checked}>{email_home_type}</option></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr class="row_on">
<td colspan="6"><font color="#000000" face="">{lang_phones}:</font></td>
</tr>
<tr class="row_off">
<td><input type="checkbox" name="prefs[tel_voice]"{tel_voice_checked}>{tel_voice}</option></td>
<td><input type="checkbox" name="prefs[tel_fax]"{tel_fax_checked}>{tel_fax}</option></td>
<td><input type="checkbox" name="prefs[tel_msg]"{tel_msg_checked}>{tel_msg}</option></td>
<td><input type="checkbox" name="prefs[tel_cell]"{tel_cell_checked}>{tel_cell}</option></td>
<td><input type="checkbox" name="prefs[tel_pager]"{tel_pager_checked}>{tel_pager}</option></td>
<td><input type="checkbox" name="prefs[tel_bbs]"{tel_bbs_checked}>{tel_bbs}</option></td>
</tr>
<tr class="row_off">
<td><input type="checkbox" name="prefs[tel_modem]"{tel_modem_checked}>{tel_modem}</option></td>
<td><input type="checkbox" name="prefs[tel_car]"{tel_car_checked}>{tel_car}</option></td>
<td><input type="checkbox" name="prefs[tel_isdn]"{tel_isdn_checked}>{tel_isdn}</option></td>
<td><input type="checkbox" name="prefs[tel_video]"{tel_video_checked}>{tel_video}</option></td>
<td><input type="checkbox" name="prefs[ophone]"{ophone_checked}>{ophone}</option></td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr class="row_on">
<td colspan="6"><font color="#000000" face="">{lang_other}:</font></td>
</tr>
<tr class="row_off">
<td><input type="checkbox" name="prefs[geo]"{geo_checked}>{geo}</option></td>
<td><input type="checkbox" name="prefs[url]"{url_checked}>{url}</option></td>
<td><input type="checkbox" name="prefs[tz]"{tz_checked}>{tz}</option></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
{custom_fields}
<tr>
<td>&nbsp;</td>
</tr>
<tr class="th">
<td colspan="6" align="center"><font color="#000000" face="">{lang_otherprefs}:</font></td>
</tr>
<tr class="row_off">
<td>{lang_default_filter}</td>
<td>{filter_select}</td>
<td colspan="3">
<input type="checkbox" name="other[mainscreen_showbirthdays]"{show_birthday}>
{lang_showbirthday}
</td>
</tr>
<tr class="row_off">
<td>{lang_defaultcat}</td>
<td>{cat_select}</td>
<td colspan="3">
<input type="checkbox" name="other[autosave_category]"{autosave}>
{lang_autosave}
</td>
</tr>
<tr height="40">
<td colspan="6">
<input type="submit" name="save" value="{lang_save}"> &nbsp;
<input type="submit" name="cancel" value="{lang_cancel}">
</td>
</tr>
</table>
</form>

View File

@ -1,33 +0,0 @@
<!-- BEGIN view_header -->
<br>
<table border="0" cellspacing="2" cellpadding="2" width="70%" align="center">
<!-- END view_header -->
<!-- BEGIN view_row -->
<tr bgcolor="{th_bg}">
<td align="right" width="30%"><b>{display_col}</b>:</td><td width="70%">{ref_data}</td>
</tr>
<!-- END view_row -->
{cols}
<!-- BEGIN view_footer -->
</table>
<!-- END view_footer -->
<!-- BEGIN view_buttons -->
<center>
<table border="0" cellpadding="1" cellspacing="1">
<tr>
<td>
{edit_button}
</td>
<td>
{copy_button}
</td>
<td>
{vcard_button}
</td>
<td>
{done_button}
</td>
</tr>
</table>
</center>
<!-- END view_buttons -->

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 482 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 412 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 468 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 382 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -1,79 +0,0 @@
<!-- BEGIN addressbook_header -->
<script>
function check_all(which)
{
for (i=0; i<document.addr_index.elements.length; i++)
{
if (document.addr_index.elements[i].type == "checkbox" && document.addr_index.elements[i].name.substring(0,which.length) == which)
{
if (document.addr_index.elements[i].checked)
{
document.addr_index.elements[i].checked = false;
}
else
{
document.addr_index.elements[i].checked = true;
}
}
}
}
</script>
<div align="center">
{lang_showing}
<br>{searchreturn}
{search_filter}
<table class="calDayViewSideBoxes" width="100%" >
<tr><td>{alphalinks}</td>
</tr>
</table>
<table height=5><tr><td></td></tr></table>
<table class="calDayViewShadowBox" width="100%">
<tr>
<td>
<table width="100%" class="calDayViewSideBoxes">
<form name="addr_index" action="{action_url}" method="POST">
<tr bgcolor="{th_bg}">{cols}
<td class="body">{lang_actions}
&nbsp;<a href="javascript:check_all('select')"><img src="{check}" border="0" height="16" width="21" alt="{select_all}"></a></td>
</tr>
<!-- END addressbook_header -->
<!-- BEGIN column -->
<td class="body" valign="top">{col_data}&nbsp;</td>
<!-- END column -->
<!-- BEGIN row -->
<tr bgcolor="{row_tr_color}">{columns}
<td valign="top" nowrap>{actions}</td>
</tr>
<!-- END row -->
<!-- BEGIN delete_block -->
<tr bgcolor="{row_tr_color}"><td colspan="{column_count}">&nbsp;</td>
<td align="right"><input type="submit" name="Delete" value="{lang_delete}"></td>
</tr>
<!-- END delete_block -->
<!-- BEGIN addressbook_footer -->{delete_button}
</form>
</table>
</td></tr></table>
<table border="0" cellspacing="0" cellpadding="2">
<tr bgcolor="{th_bg}">
<form action="{add_url}" method="post"><td><input type="submit" name="Add" value="{lang_add}" /></td></form>
<form action="{vcard_url}" method="post"><td><input type="submit" name="AddVcard" value="{lang_addvcard}" /></td></form>
<form action="{import_url}" method="post"><td><input type="submit" name="Import" value="{lang_import}" /></td></form>
</tr>
</table>
<table border="0" cellspacing="0" cellpadding="2">
<tr bgcolor="{th_bg}">
<form action="{import_alt_url}" method="post"><td><input type="submit" name="Import" value="{lang_import_alt}" /></td></form>
<form action="{export_url}" method="post"><td><input type="submit" name="Export" value="{lang_export}" /></td></form>
</tr>
</table>
</div>
<!-- END addressbook_footer -->
<!-- BEGIN addressbook_alpha --><td bgcolor="{charbgcolor}" align="center"><a href="{charlink}"><font color="{charcolor}">{char}</a></font></td>
<!-- END addressbook_alpha -->

View File

@ -1,54 +0,0 @@
<!-- BEGIN view_header -->
<br>
<table class="calDayViewShadowBox" width="100%" align="center">
<tr>
<td>
<table class="calDayViewSideBoxes" width="100%" align="left">
<!-- END view_header -->
<!-- BEGIN view_row -->
<tr bgcolor="{th_bg}">
<td align="right" width="30%"><b>{display_col}</b>:</td><td width="70%">{ref_data}</td>
</tr>
<!-- END view_row -->
{cols}
<!-- BEGIN view_footer -->
</table>
</td>
<td valign="top" nowrap>
<table class="calDayViewSideBoxes" width="100%"><tr><td>
<table width="100%" cellpadding=0 cellspacing=0>
<tr>
<td align="center" class="calDayView">Month Calendar</td>
</tr>
<tr>
<td align="center">Feature Not Yet Available</td>
</tr>
</table>
</td></tr></table>
</td>
</tr></table>
<!-- END view_footer -->
<!-- BEGIN view_buttons -->
<center>
<table border="0" cellpadding="1" cellspacing="1">
<tr>
<td>
{edit_button}
</td>
<td>
{copy_button}
</td>
<td>
{vcard_button}
</td>
<td>
{done_button}
</td>
</tr>
</table>
</center>
<!-- END view_buttons -->

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

47
admin/check_acl.php Normal file
View File

@ -0,0 +1,47 @@
<?php
/**************************************************************************\
* eGroupWare - Admin - delete ACL records of deleted accounts *
* http://www.egroupware.org *
* Written and (c) 2004 by Ralf Becker <RalfBecker@outdoor-training.de> *
* -------------------------------------------- *
* This program is free software; you can redistribute it and/or modify it *
* under the terms of the GNU General Public License as published by the *
* Free Software Foundation; either version 2 of the License, or (at your *
* option) any later version. *
\**************************************************************************/
/* $Id$ */
/**
* delete ACL records of deleted accounts (can be called only via the URL)
*
* ACL records of deleted accounts have very irritating effects on the ACL (specialy calendar)
*
* @package admin
* @author RalfBecker@outdoor-training.de
* @license GPL
*/
$GLOBALS['phpgw_info'] = array(
'flags' => array(
'currentapp' => 'admin',
));
include('../header.inc.php');
if (!$GLOBALS['phpgw_info']['user']['apps']['admin'])
{
echo '<p align="center">'.lang('Permission denied')."</p>\n";
}
else
{
$deleted = 0;
if (($all_accounts = $GLOBALS['phpgw']->accounts->search(array('type'=>'both'))))
{
$all_accounts = array_keys($all_accounts);
$GLOBALS['phpgw']->db->query("DELETE FROM phpgw_acl WHERE acl_account NOT IN (".implode(',',$all_accounts).") OR acl_appname='phpgw_group' AND acl_location NOT IN ('".implode("','",$all_accounts)."')",__LINE__,__FILE__);
$deleted = $GLOBALS['phpgw']->db->affected_rows();
}
echo '<p align="center">'.lang('%1 ACL records of not (longer) existing accounts deleted.',$deleted)."</p>\n";
}
$GLOBALS['phpgw']->common->phpgw_footer();
$GLOBALS['phpgw']->common->phpgw_exit();

View File

@ -1,16 +0,0 @@
The add-on LDAP-Manager for Admin currently manages the following configuration:
1. Postfix 2.x
2. LDAP v3
3. Courier-Imap 3.x
Example for Postfix-configuration:
Usage of LDAP schemas:
core.schema
qmail.schema

Binary file not shown.

View File

@ -1,413 +0,0 @@
#LyX 1.1 created this file. For more info see http://www.lyx.org/
\lyxformat 218
\textclass docbook
\language english
\inputencoding auto
\fontscheme default
\graphics default
\paperfontsize default
\spacing single
\papersize Default
\paperpackage a4
\use_geometry 0
\use_amsmath 0
\paperorientation portrait
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
\defskip medskip
\quotes_language english
\quotes_times 2
\papercolumns 1
\papersides 1
\paperpagestyle default
\layout Title
eGroupWare admin/config.php
\layout Abstract
A brief introduction to writing hooks and templates for any application
to use this admin interface, by
\layout Abstract
Miles Lott <milosch@groupwhere.org> Dec 22, 2001.
\layout Section
Files
\layout Subsection
config.tpl (required)
\layout Standard
In your application/templates/default directory, create a new template file
named 'config.tpl'.
This will be included by config.php and used to draw the page.
This template should include a POST method form.
The following template tags may be used:
\layout Enumerate
{action_url} - A egw->link to config.php will be inserted.
\layout Enumerate
{title} - This will be parsed to display 'Site Configuration'.
\layout Enumerate
{th_bg},{th_text},{row_on},{row_off} - Replaced with the current theme colors.
\layout Standard
and the following special types:
\layout Enumerate
{lang_XXX} - Filled with lang('XXX').
\layout Enumerate
{value_XXX} - Filled with the current value of config item 'XXX'.
\layout Enumerate
{selected_XXX} - set to '', or ' selected' if an option value is current.
\layout Enumerate
{hook_XXX} - Calls a function named XXX (will be discussed later).
\layout Standard
Following is an example from the addressbook application:
\layout Code
<form method="POST" action="{action_url}">
\layout Code
<table border="0" align="center">
\layout Code
<tr bgcolor="{th_bg}">
\layout Code
<td colspan="2"><font color="{th_text}">&nbsp;<b>{title}</b></font></td>
\layout Code
</tr> <tr bgcolor="{th_err}">
\layout Code
<td colspan="2">&nbsp;<b>{error}</b></font></td>
\layout Code
</tr>
\layout Code
<!-- END header -->
\layout Code
<!-- BEGIN body -->
\layout Code
<tr bgcolor="{row_on}">
\layout Code
<td colspan="2">&nbsp;</td>
\layout Code
</tr>
\layout Code
<tr bgcolor="{row_off}">
\layout Code
<td colspan="2">&nbsp;<b>{lang_Addressbook}/{lang_Contact_Settings}</b></font>
\layout Code
</td>
\layout Code
</tr>
\layout Code
<tr bgcolor="{row_on}">
\layout Code
<td>{lang_Contact_application}:</td>
\layout Code
<td><input name="newsettings[contact_application]" value="{value_contact_appli
cation}"></td>
\layout Code
</tr>
\layout Code
...
\layout Standard
Note the fieldname, newsettings[contact_application].
This array name must be used for the form values.
Next, note the value setting for this form element, {value_contact_application}.
This indicates that we want the current value of the config setting, 'contact_a
pplication', to be set and displayed on the form.
Lastly, look at the template element, {lang_Contact_application}.
Here, the value from the lang db table will be inserted if available.
\layout Standard
Let's take a look at part of the preferences/default/config.tpl:
\layout Code
<tr bgcolor="{row_on}">
\layout Code
<td>{lang_Country_Selection} ({lang_Text_Entry}/{lang_SelectBox}):</td>
\layout Code
<td>
\layout Code
<select name="newsettings[countrylist]">
\layout Code
{hook_country_set}
\layout Code
</select>
\layout Code
</td>
\layout Code
</tr>
\layout Standard
Here, we are adding a new element, {hook_country_set}.
This brings up the next file we will need to parse this value...
\layout Subsection
hook_config.inc.php (optional)
\layout Standard
At each invocation of config.php, a call to the common class function hook_single
() is made.
It attempts to include a file, hook_config.inc.php as a set of code for config.php
to use.
In the case of the preferences example above, using hook_country_set, here
is the corresponding function in preferences/inc/hook_config.inc.php:
\layout Code
function country_set($config)
\layout Code
{
\layout Code
$country = array( 'user_choice' => 'Users Choice', 'force_select' =>
'Force Selectbox' );
\layout Code
while (list ($key, $value) = each ($country))
\layout Code
{
\layout Code
if ($config['countrylist'] == $key)
\layout Code
{
\layout Code
$selected = ' selected';
\layout Code
}
\layout Code
else
\layout Code
{
\layout Code
$selected = '';
\layout Code
}
\layout Code
$descr = lang($value);
\layout Code
$out .= '<option value="' .
$key .
'"' .
$selected .
'>' .
$descr .
'</option>' .
"
\backslash
n";
\layout Code
}
\layout Code
return $out;
\layout Code
}
\layout Standard
Note again the template value we used earlier, {hook_country_set}.
This causes config.php to look for a function named country_set().
Since we included the file with this function via the hook_single() call,
this function is executed.
It's return is a string, and the function prints nothing itself.
\layout Subsection
hook_config_validate.inc.php (optional)
\layout Standard
Once the admin clicks the submit button to post the form, we can optionally
validate their input using one or many different functions.
This is done by first making another call to hook_single() in the API common
class.
This time, the name config_validate is used, so common tries to include
'application/inc/hook_config_validate.inc.php'.
\layout Standard
If this file exists, it sets a var to tell config.php it was found.
Following then are functions named after each config we want to validate.
The following example is for addressbook:
\layout Code
$GLOBALS['phpgw_info']['server']['found_validation_hook'] = True;
\layout Code
\layout Code
/* Check a specific setting.
Name must match the setting.
*/
\layout Code
function ldap_contact_context($value='')
\layout Code
{
\layout Code
if($value == $GLOBALS['phpgw_info']['server']['ldap_context'])
\layout Code
{
\layout Code
$GLOBALS['config_error'] = 'Contact context for ldap must be
different from the context used for accounts';
\layout Code
}
\layout Code
elseif($value == $GLOBALS['phpgw_info']['server']['ldap_group_context'])
\layout Code
{
\layout Code
$GLOBALS['config_error'] = 'Contact context for ldap must be
different from the context used for groups';
\layout Code
}
\layout Code
else
\layout Code
{
\layout Code
$GLOBALS['config_error'] = '';
\layout Code
}
\layout Code
}
\layout Standard
Here we created a function to check the entered value for the config item,
ldap_contact_context.
We want to make sure the admin did not set this value to one which would
conflict with another config item, used for accounts or groups in eGroupWare.
\layout Standard
config.php calls this function, sending it the POSTed value.
config.php continues, adding all other config items from the POSTed values.
\layout Standard
The variable $GLOBALS['config_error'] is parsed through lang(), then appended
to the local variable, $error.
If this has any value after the POSTed variables are checked, the form
then has its {error} tag filled with this result.
The form is displayed again, with the error.
If $error has no value, config.php redirects to admin/index.php.
\layout Standard
However, there is one more function that may be included in hook_config_validate.
inc.php:
\layout Code
/* Check all settings to validate input.
Name must be 'final_validation' */
\layout Code
function final_validation($value='')
\layout Code
{
\layout Code
if($value['contact_repository'] == 'ldap' && !$value['ldap_contact_dn'])
\layout Code
{
\layout Code
$GLOBALS['config_error'] = 'Contact dn must be set';
\layout Code
}
\layout Code
elseif($value['contact_repository'] == 'ldap' && !$value['ldap_contact_c
ontext'])
\layout Code
{
\layout Code
$GLOBALS['config_error'] = 'Contact context must be set';
\layout Code
}
\layout Code
else
\layout Code
{
\layout Code
$GLOBALS['config_error'] = '';
\layout Code
}
\layout Code
}
\layout Standard
config.php checks for the existence of the function 'final_validation()'.
This function can be used to check all form values at once.
It gets sent the entire $newsettings array POSTed from the form.
As with the other functions in this file, final_validation() should set
$GLOBALS['config_error'] if there is a problem.
\the_end

Binary file not shown.

View File

@ -1,526 +0,0 @@
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
%%Title: adminconfig.dvi
%%Pages: 4
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%%DocumentFonts: Helvetica-Bold Times-Roman Courier Times-Italic
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -t letter -o adminconfig.ps adminconfig.dvi
%DVIPSParameters: dpi=600, compressed
%DVIPSSource: TeX output 2004.01.25:2344
%%BeginProcSet: texc.pro
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
(LaserWriter 16/600)]{A length product length le{A length product exch 0
exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
%%EndProcSet
%%BeginProcSet: 8r.enc
% @@psencodingfile@{
% author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry",
% version = "0.6",
% date = "22 June 1996",
% filename = "8r.enc",
% email = "kb@@mail.tug.org",
% address = "135 Center Hill Rd. // Plymouth, MA 02360",
% codetable = "ISO/ASCII",
% checksum = "119 662 4424",
% docstring = "Encoding for TrueType or Type 1 fonts to be used with TeX."
% @}
%
% Idea is to have all the characters normally included in Type 1 fonts
% available for typesetting. This is effectively the characters in Adobe
% Standard Encoding + ISO Latin 1 + extra characters from Lucida.
%
% Character code assignments were made as follows:
%
% (1) the Windows ANSI characters are almost all in their Windows ANSI
% positions, because some Windows users cannot easily reencode the
% fonts, and it makes no difference on other systems. The only Windows
% ANSI characters not available are those that make no sense for
% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen
% (173). quotesingle and grave are moved just because it's such an
% irritation not having them in TeX positions.
%
% (2) Remaining characters are assigned arbitrarily to the lower part
% of the range, avoiding 0, 10 and 13 in case we meet dumb software.
%
% (3) Y&Y Lucida Bright includes some extra text characters; in the
% hopes that other PostScript fonts, perhaps created for public
% consumption, will include them, they are included starting at 0x12.
%
% (4) Remaining positions left undefined are for use in (hopefully)
% upward-compatible revisions, if someday more characters are generally
% available.
%
% (5) hyphen appears twice for compatibility with both ASCII and Windows.
%
/TeXBase1Encoding [
% 0x00 (encoded characters from Adobe Standard not in Windows 3.1)
/.notdef /dotaccent /fi /fl
/fraction /hungarumlaut /Lslash /lslash
/ogonek /ring /.notdef
/breve /minus /.notdef
% These are the only two remaining unencoded characters, so may as
% well include them.
/Zcaron /zcaron
% 0x10
/caron /dotlessi
% (unusual TeX characters available in, e.g., Lucida Bright)
/dotlessj /ff /ffi /ffl
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
% very contentious; it's so painful not having quoteleft and quoteright
% at 96 and 145 that we move the things normally found there down to here.
/grave /quotesingle
% 0x20 (ASCII begins)
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
% 0x30
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
% 0x40
/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O
% 0x50
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
% 0x60
/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o
% 0x70
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde
/.notdef % rubout; ASCII ends
% 0x80
/.notdef /.notdef /quotesinglbase /florin
/quotedblbase /ellipsis /dagger /daggerdbl
/circumflex /perthousand /Scaron /guilsinglleft
/OE /.notdef /.notdef /.notdef
% 0x90
/.notdef /.notdef /.notdef /quotedblleft
/quotedblright /bullet /endash /emdash
/tilde /trademark /scaron /guilsinglright
/oe /.notdef /.notdef /Ydieresis
% 0xA0
/.notdef % nobreakspace
/exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot
/hyphen % Y&Y (also at 45); Windows' softhyphen
/registered
/macron
% 0xD0
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
% 0xC0
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
% 0xD0
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
% 0xE0
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
% 0xF0
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis
] def
%%EndProcSet
%%BeginProcSet: texps.pro
%!
TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics
exch def dict begin Encoding{exch dup type/integertype ne{pop pop 1 sub
dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}
ifelse}forall Metrics/Metrics currentdict end def[2 index currentdict
end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{
dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1
roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def
dup[exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}
if}forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}
def end
%%EndProcSet
%%BeginProcSet: special.pro
%!
TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N
/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N
/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N
/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{
/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho
X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B
/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{
/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known
{userdict/md get type/dicttype eq{userdict begin md length 10 add md
maxlength ge{/md md dup length 20 add dict copy def}if end md begin
/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S
atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{
itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll
transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll
curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf
pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}
if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1
-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip
yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub
neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{
noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop
90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get
neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr
1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr
2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4
-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S
TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{
Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale
}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState
save N userdict maxlength dict begin/magscale true def normalscale
currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts
/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x
psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx
psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub
TR/showpage{}N/erasepage{}N/copypage{}N/p 3 def @MacSetUp}N/doclip{
psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2
roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath
moveto}N/endTexFig{end psf$SavedState restore}N/@beginspecial{SDict
begin/SpecialSave save N gsave normalscale currentpoint TR
@SpecialDefaults count/ocount X/dcount countdictstack N}N/@setspecial{
CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto
closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx
sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR
}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse
CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury
lineto closepath clip}if/showpage{}N/erasepage{}N/copypage{}N newpath}N
/@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{end}
repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N
/@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX
currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY
moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X
/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0
1 startangle endangle arc savematrix setmatrix}N end
%%EndProcSet
%%BeginProcSet: color.pro
%!
TeXDict begin/setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop
setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll
}repeat setrgbcolor pop}ifelse}B}ifelse/TeXcolorcmyk{setcmykcolor}def
/TeXcolorrgb{setrgbcolor}def/TeXcolorgrey{setgray}def/TeXcolorgray{
setgray}def/TeXcolorhsb{sethsbcolor}def/currentcmykcolor where{pop}{
/currentcmykcolor{currentrgbcolor 10}B}ifelse/DC{exch dup userdict exch
known{pop pop}{X}ifelse}B/GreenYellow{0.15 0 0.69 0 setcmykcolor}DC
/Yellow{0 0 1 0 setcmykcolor}DC/Goldenrod{0 0.10 0.84 0 setcmykcolor}DC
/Dandelion{0 0.29 0.84 0 setcmykcolor}DC/Apricot{0 0.32 0.52 0
setcmykcolor}DC/Peach{0 0.50 0.70 0 setcmykcolor}DC/Melon{0 0.46 0.50 0
setcmykcolor}DC/YellowOrange{0 0.42 1 0 setcmykcolor}DC/Orange{0 0.61
0.87 0 setcmykcolor}DC/BurntOrange{0 0.51 1 0 setcmykcolor}DC
/Bittersweet{0 0.75 1 0.24 setcmykcolor}DC/RedOrange{0 0.77 0.87 0
setcmykcolor}DC/Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC/Maroon{0 0.87
0.68 0.32 setcmykcolor}DC/BrickRed{0 0.89 0.94 0.28 setcmykcolor}DC/Red{
0 1 1 0 setcmykcolor}DC/OrangeRed{0 1 0.50 0 setcmykcolor}DC/RubineRed{
0 1 0.13 0 setcmykcolor}DC/WildStrawberry{0 0.96 0.39 0 setcmykcolor}DC
/Salmon{0 0.53 0.38 0 setcmykcolor}DC/CarnationPink{0 0.63 0 0
setcmykcolor}DC/Magenta{0 1 0 0 setcmykcolor}DC/VioletRed{0 0.81 0 0
setcmykcolor}DC/Rhodamine{0 0.82 0 0 setcmykcolor}DC/Mulberry{0.34 0.90
0 0.02 setcmykcolor}DC/RedViolet{0.07 0.90 0 0.34 setcmykcolor}DC
/Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC/Lavender{0 0.48 0 0
setcmykcolor}DC/Thistle{0.12 0.59 0 0 setcmykcolor}DC/Orchid{0.32 0.64 0
0 setcmykcolor}DC/DarkOrchid{0.40 0.80 0.20 0 setcmykcolor}DC/Purple{
0.45 0.86 0 0 setcmykcolor}DC/Plum{0.50 1 0 0 setcmykcolor}DC/Violet{
0.79 0.88 0 0 setcmykcolor}DC/RoyalPurple{0.75 0.90 0 0 setcmykcolor}DC
/BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC/Periwinkle{0.57 0.55 0 0
setcmykcolor}DC/CadetBlue{0.62 0.57 0.23 0 setcmykcolor}DC
/CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC/MidnightBlue{0.98 0.13 0
0.43 setcmykcolor}DC/NavyBlue{0.94 0.54 0 0 setcmykcolor}DC/RoyalBlue{1
0.50 0 0 setcmykcolor}DC/Blue{1 1 0 0 setcmykcolor}DC/Cerulean{0.94 0.11
0 0 setcmykcolor}DC/Cyan{1 0 0 0 setcmykcolor}DC/ProcessBlue{0.96 0 0 0
setcmykcolor}DC/SkyBlue{0.62 0 0.12 0 setcmykcolor}DC/Turquoise{0.85 0
0.20 0 setcmykcolor}DC/TealBlue{0.86 0 0.34 0.02 setcmykcolor}DC
/Aquamarine{0.82 0 0.30 0 setcmykcolor}DC/BlueGreen{0.85 0 0.33 0
setcmykcolor}DC/Emerald{1 0 0.50 0 setcmykcolor}DC/JungleGreen{0.99 0
0.52 0 setcmykcolor}DC/SeaGreen{0.69 0 0.50 0 setcmykcolor}DC/Green{1 0
1 0 setcmykcolor}DC/ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC
/PineGreen{0.92 0 0.59 0.25 setcmykcolor}DC/LimeGreen{0.50 0 1 0
setcmykcolor}DC/YellowGreen{0.44 0 0.74 0 setcmykcolor}DC/SpringGreen{
0.26 0 0.76 0 setcmykcolor}DC/OliveGreen{0.64 0 0.95 0.40 setcmykcolor}
DC/RawSienna{0 0.72 1 0.45 setcmykcolor}DC/Sepia{0 0.83 1 0.70
setcmykcolor}DC/Brown{0 0.81 1 0.60 setcmykcolor}DC/Tan{0.14 0.42 0.56 0
setcmykcolor}DC/Gray{0 0 0 0.50 setcmykcolor}DC/Black{0 0 0 1
setcmykcolor}DC/White{0 0 0 0 setcmykcolor}DC end
%%EndProcSet
TeXDict begin 40258431 52099146 1000 600 600 (adminconfig.dvi)
@start /Fa 138[42 2[32 1[42 42 42 60 3[23 42 42 1[37
42 37 1[42 9[69 15[60 18[42 42 42 42 1[23 21 43[42 2[{
TeXBase1Encoding ReEncodeFont}22 83.022 /Times-Italic
rf /Fb 107[45 22[45 1[45 1[45 45 45 45 45 45 45 45 1[45
45 45 45 45 45 1[45 45 45 45 45 45 45 45 45 1[45 1[45
45 45 5[45 45 45 2[45 45 45 1[45 2[45 1[45 45 45 45 45
45 45 2[45 45 45 45 45 7[45 1[45 45 45 45 45 1[45 45
45 45 45 1[45 1[45 45 33[{TeXBase1Encoding ReEncodeFont}64
74.7198 /Courier rf /Fc 137[55 61 33 1[39 61 61 61 61
1[28 55 1[28 61 61 1[55 61 55 1[55 1[55 43[55 55 55 2[28
4[33 33 37[61 2[{TeXBase1Encoding ReEncodeFont}25 99.6264
/Helvetica-Bold rf /Fd 140[66 6[33 2[33 3[66 30[73 20[66
2[33 46[{TeXBase1Encoding ReEncodeFont}7 119.552 /Helvetica-Bold
rf /Fe 107[37 22[40 1[40 1[42 42 60 42 42 23 32 28 1[42
42 42 65 23 42 1[23 42 42 28 37 42 37 42 37 1[42 1[28
1[28 2[60 78 2[51 46 55 1[46 60 60 74 51 2[28 60 60 46
1[60 55 55 60 76 1[47 1[47 1[23 5[42 42 42 42 42 23 21
28 21 2[28 28 28 2[42 32[46 46 2[{TeXBase1Encoding ReEncodeFont}66
83.022 /Times-Roman rf /Ff 138[126 2[80 1[126 126 126
184 3[57 126 126 1[115 126 115 1[115 9[195 15[161 23[57
57 43[126 2[{TeXBase1Encoding ReEncodeFont}18 206.584
/Helvetica-Bold rf end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
TeXDict begin
%%BeginPaperSize: Letter
letter
%%EndPaperSize
%%EndSetup
%%Page: 1 1
1 0 bop Black 0 TeXcolorgray Black Black 637 140 a Ff(eGr)l(oupW)-8
b(are)57 b(admin/con\002g.php)542 373 y Fe(A)20 b(brief)g(introduction)
d(to)k(writing)e(hooks)g(and)h(templates)g(for)g(an)o(y)f(application)g
(to)h(use)g(this)h(admin)542 481 y(interf)o(ace,)e(by)542
630 y(Miles)h(Lott)h(<milosch@groupwhere.or)o(g)o(>)15
b(Dec)20 b(22,)g(2001.)-2 1298 y Fd(1.)34 b(Files)396
1586 y Fc(1.1.)28 b(con\002g.tpl)f(\(required\))396 1743
y Fe(In)20 b(your)f(application/templates/def)o(ault)e(directory)-5
b(,)18 b(create)i(a)g(ne)n(w)g(template)g(\002le)h(named)e
('con\002g.tpl'.)f(This)i(will)396 1851 y(be)g(included)f(by)h
(con\002g.php)d(and)j(used)g(to)g(dra)o(w)g(the)g(page.)f(This)i
(template)e(should)h(include)f(a)h(POST)h(method)396
1959 y(form.)e(The)h(follo)n(wing)f(template)g(tags)i(may)e(be)i(used:)
p Black 463 2192 a(1.)p Black 40 w({action_url})e(-)h(A)h(e)o(gw->link)
d(to)i(con\002g.php)e(will)j(be)f(inserted.)p Black 463
2341 a(2.)p Black 40 w({title})h(-)f(This)h(will)g(be)f(parsed)f(to)i
(display)e('Site)i(Con\002guration'.)p Black 463 2491
a(3.)p Black 40 w({th_bg},{th_te)o(xt},{ro)n(w_on)o(},{r)o(o)n(w_)o(of)
m(f})15 b(-)20 b(Replaced)g(with)g(the)g(current)f(theme)h(colors.)396
2640 y(and)g(the)g(follo)n(wing)f(special)h(types:)p
Black 463 2873 a(1.)p Black 40 w({lang_XXX})f(-)i(Filled)f(with)h
(lang\('XXX'\).)p Black 463 3022 a(2.)p Black 40 w({v)n(alue_XXX})e(-)h
(Filled)h(with)f(the)g(current)f(v)n(alue)h(of)g(con\002g)f(item)h
('XXX'.)p Black 463 3171 a(3.)p Black 40 w({selected_XXX})g(-)g(set)h
(to)f(\224,)h(or)f(')g(selected')g(if)g(an)h(option)d(v)n(alue)i(is)h
(current.)p Black 463 3321 a(4.)p Black 40 w({hook_XXX})d(-)j(Calls)g
(a)g(function)d(named)h(XXX)i(\(will)f(be)h(discussed)f(later\).)396
3470 y(F)o(ollo)n(wing)f(is)i(an)f(e)o(xample)f(from)g(the)h
(addressbook)e(application:)396 3650 y Fb(<form)44 b(method="POST")f
(action="{action_url}">)396 3748 y(<table)h(border="0")f
(align="center">)441 3845 y(<tr)h(bgcolor="{th_bg}">)486
3942 y(<td)g(colspan="2"><font)e
(color="{th_text}">&nbsp;<b>{title}</b></f)o(ont><)o(/td>)441
4039 y(</tr>)i(<tr)g(bgcolor="{th_err}">)486 4136 y(<td)g
(colspan="2">&nbsp;<b>{error}</b></font></)o(td>)441
4233 y(</tr>)396 4330 y(<!--)g(END)h(header)f(-->)396
4428 y(<!--)g(BEGIN)g(body)h(-->)441 4525 y(<tr)f(bgcolor="{row_on}">)
486 4622 y(<td)g(colspan="2">&nbsp;</td>)441 4719 y(</tr>)441
4816 y(<tr)g(bgcolor="{row_off}">)486 4913 y(<td)g
(colspan="2">&nbsp;<b>{lang_Addressbook}/{)o(lang_C)o(ontact)o(_Setti)o
(ngs}<)o(/b></f)o(ont>)396 5010 y(</td>)441 5108 y(</tr>)p
Black 3842 5569 a Fa(1)p Black eop
%%Page: 2 2
2 1 bop Black 0 TeXcolorgray Black 2866 -132 a Fa(eGr)l(oupW)-8
b(ar)m(e)20 b(admin/con\002g)o(.php)p Black 441 72 a
Fb(<tr)44 b(bgcolor="{row_on}">)486 170 y
(<td>{lang_Contact_application}:</td>)486 267 y(<td><input)f
(name="newsettings[contact_application]")38 b
(value="{value_contact_application}"></td>)441 364 y(</tr>)396
461 y(...)396 749 y Fe(Note)20 b(the)h(\002eldname,)e(ne)n
(wsettings[contact_application].)c(This)20 b(array)f(name)h(must)g(be)g
(used)g(for)g(the)g(form)f(v)n(alues.)396 857 y(Ne)o(xt,)h(note)g(the)g
(v)n(alue)f(setting)i(for)e(this)i(form)e(element,)g({v)n
(alue_contact_application}.)c(This)20 b(indicates)g(that)h(we)396
965 y(w)o(ant)g(the)f(current)f(v)n(alue)g(of)h(the)g(con\002g)g
(setting,)g('contact_application',)c(to)k(be)g(set)h(and)f(displayed)f
(on)g(the)i(form.)396 1073 y(Lastly)-5 b(,)20 b(look)f(at)i(the)f
(template)g(element,)f({lang_Contact_application}.)d(Here,)j(the)i(v)n
(alue)e(from)g(the)i(lang)e(db)h(table)396 1181 y(will)h(be)f(inserted)
g(if)g(a)n(v)n(ailable.)396 1330 y(Let')-5 b(s)21 b(tak)o(e)f(a)h(look)
e(at)i(part)f(of)g(the)g(preferences/def)o(ault/con\002g.tpl:)441
1510 y Fb(<tr)44 b(bgcolor="{row_on}">)486 1608 y
(<td>{lang_Country_Selection})c
(\({lang_Text_Entry}/{lang_SelectBox}\):</)o(td>)486
1705 y(<td>)531 1802 y(<select)j(name="newsettings[countrylist]">)396
1899 y({hook_country_set})531 1996 y(</select>)486 2093
y(</td>)441 2190 y(</tr>)396 2478 y Fe(Here,)20 b(we)h(are)f(adding)f
(a)h(ne)n(w)g(element,)f({hook_country_set}.)d(This)k(brings)f(up)h
(the)g(ne)o(xt)g(\002le)h(we)f(will)h(need)f(to)396 2586
y(parse)g(this)h(v)n(alue...)396 2923 y Fc(1.2.)28 b
(hook_con\002g.inc.php)f(\(optional\))396 3081 y Fe(At)21
b(each)f(in)m(v)n(ocation)e(of)i(con\002g.php,)d(a)k(call)g(to)f(the)g
(common)f(class)i(function)d(hook_single\(\))f(is)k(made.)f(It)g
(attempts)396 3189 y(to)h(include)e(a)h(\002le,)h
(hook_con\002g.inc.php)14 b(as)21 b(a)g(set)g(of)f(code)f(for)h
(con\002g.php)d(to)k(use.)f(In)g(the)g(case)h(of)f(the)g(preferences)
396 3297 y(e)o(xample)f(abo)o(v)o(e,)f(using)i(hook_country_set,)15
b(here)20 b(is)h(the)f(corresponding)d(function)i(in)396
3405 y(preferences/inc/hook_con\002g.)o(inc.p)o(hp)o(:)396
3585 y Fb(function)44 b(country_set\($config\))396 3682
y({)576 3779 y($country)f(=)i(array\()f('user_choice')e(=>)j('Users)f
(Choice',)f('force_select')f(=>)j('Force)f(Selectbox')f(\);)576
3877 y(while)h(\(list)g(\($key,)f($value\))h(=)h(each)f(\($country\)\))
576 3974 y({)755 4071 y(if)g(\($config['countrylist'])d(==)k($key\))755
4168 y({)934 4265 y($selected)f(=)g(')h(selected';)755
4362 y(})755 4459 y(else)755 4556 y({)934 4654 y($selected)f(=)g(\224;)
755 4751 y(})755 4848 y($descr)g(=)g(lang\($value\);)755
4945 y($out)g(.=)h('<option)e(value="')h(.)g($key)g(.)h('"')f(.)h
($selected)e(.)i('>')f(.)h($descr)f(.)g('</option>')f(.)i("\\n";)576
5042 y(})576 5139 y(return)e($out;)p Black 3842 5569
a Fa(2)p Black eop
%%Page: 3 3
3 2 bop Black 0 TeXcolorgray Black 2866 -132 a Fa(eGr)l(oupW)-8
b(ar)m(e)20 b(admin/con\002g)o(.php)p Black 396 72 a
Fb(})396 361 y Fe(Note)g(again)g(the)g(template)f(v)n(alue)h(we)h(used)
e(earlier)m(,)h({hook_country_set}.)15 b(This)20 b(causes)h
(con\002g.php)c(to)k(look)e(for)h(a)396 468 y(function)f(named)g
(country_set\(\).)e(Since)j(we)h(included)d(the)j(\002le)g(with)f(this)
h(function)d(via)i(the)g(hook_single\(\))d(call,)396
576 y(this)k(function)d(is)k(e)o(x)o(ecuted.)c(It')-5
b(s)21 b(return)e(is)i(a)f(string,)g(and)g(the)g(function)e(prints)i
(nothing)f(itself.)396 913 y Fc(1.3.)28 b(hook_con\002g_v)n(alidate)r
(.inc.php)g(\(optional\))396 1071 y Fe(Once)20 b(the)g(admin)g(clicks)g
(the)g(submit)g(b)n(utton)f(to)i(post)f(the)g(form,)f(we)i(can)f
(optionally)e(v)n(alidate)i(their)g(input)f(using)396
1179 y(one)h(or)g(man)o(y)f(dif)n(ferent)f(functions.)h(This)h(is)h
(done)e(by)h(\002rst)h(making)e(another)g(call)h(to)h(hook_single\(\))c
(in)j(the)g(API)396 1287 y(common)f(class.)h(This)h(time,)f(the)g(name)
g(con\002g_v)n(alidate)d(is)k(used,)f(so)h(common)d(tries)j(to)f
(include)396 1395 y('application/inc/hook_con\002g_)o(v)n(a)o
(lidate.in)o(c.p)o(hp)o('.)396 1544 y(If)g(this)h(\002le)g(e)o(xists,)f
(it)h(sets)g(a)g(v)n(ar)f(to)g(tell)h(con\002g.php)d(it)i(w)o(as)i
(found.)c(F)o(ollo)n(wing)h(then)g(are)h(functions)f(named)g(after)396
1652 y(each)h(con\002g)f(we)i(w)o(ant)f(to)h(v)n(alidate.)e(The)h
(follo)n(wing)e(e)o(xample)h(is)i(for)f(addressbook:)576
1833 y Fb($GLOBALS['phpgw_info']['server']['fou)o(nd_val)o(idatio)o
(n_hook)o('])39 b(=)45 b(True;)576 1930 y(/*)f(Check)g(a)h(specific)e
(setting.)h(Name)g(must)g(match)g(the)g(setting.)g(*/)576
2027 y(function)f(ldap_contact_context\($value=\224\))576
2124 y({)755 2221 y(if\($value)g(==)i
($GLOBALS['phpgw_info']['server']['ldap)o(_conte)o(xt']\))755
2318 y({)934 2415 y($GLOBALS['config_error'])c(=)k('Contact)e(context)h
(for)g(ldap)g(must)g(be)h(different)e(from)h(the)h(context)e(used)i
(for)f(accounts';)755 2512 y(})755 2610 y(elseif\($value)f(==)h
($GLOBALS['phpgw_info']['server']['ldap_g)o(roup_)o(contex)o(t']\))755
2707 y({)934 2804 y($GLOBALS['config_error'])d(=)k('Contact)e(context)h
(for)g(ldap)g(must)g(be)h(different)e(from)h(the)h(context)e(used)i
(for)f(groups';)755 2901 y(})755 2998 y(else)755 3095
y({)934 3192 y($GLOBALS['config_error'])d(=)k(\224;)755
3290 y(})576 3387 y(})396 3675 y Fe(Here)20 b(we)f(created)g(a)h
(function)e(to)i(check)e(the)i(entered)e(v)n(alue)h(for)g(the)g
(con\002g)g(item,)g(ldap_contact_conte)o(xt.)c(W)-7 b(e)21
b(w)o(ant)396 3783 y(to)g(mak)o(e)e(sure)h(the)h(admin)e(did)h(not)g
(set)h(this)f(v)n(alue)g(to)g(one)g(which)g(w)o(ould)f(con\003ict)h
(with)g(another)f(con\002g)g(item,)h(used)396 3891 y(for)g(accounts)f
(or)h(groups)f(in)h(eGroupW)-7 b(are.)396 4040 y(con\002g.php)18
b(calls)j(this)g(function,)d(sending)h(it)i(the)f(POST)-6
b(ed)20 b(v)n(alue.)f(con\002g.php)f(continues,)h(adding)g(all)h(other)
g(con\002g)396 4148 y(items)h(from)e(the)h(POST)-6 b(ed)21
b(v)n(alues.)396 4297 y(The)f(v)n(ariable)f($GLOB)m
(ALS['con\002g_error'])c(is)21 b(parsed)f(through)e(lang\(\),)h(then)g
(appended)f(to)j(the)f(local)g(v)n(ariable,)396 4405
y($error)-5 b(.)19 b(If)h(this)h(has)f(an)o(y)g(v)n(alue)f(after)h(the)
g(POST)-6 b(ed)20 b(v)n(ariables)g(are)g(check)o(ed,)f(the)h(form)f
(then)h(has)g(its)h({error})e(tag)396 4513 y(\002lled)i(with)f(this)h
(result.)f(The)g(form)f(is)i(displayed)e(again,)g(with)h(the)g(error)-5
b(.)20 b(If)g($error)e(has)j(no)e(v)n(alue,)h(con\002g.php)396
4621 y(redirects)g(to)g(admin/inde)o(x.php.)396 4771
y(Ho)n(we)n(v)o(er)m(,)e(there)i(is)h(one)f(more)f(function)g(that)h
(may)g(be)g(included)e(in)j(hook_con\002g_v)n(alidate.inc)o(.ph)o(p:)
576 4951 y Fb(/*)44 b(Check)g(all)g(settings)g(to)g(validate)g(input.)g
(Name)g(must)g(be)h('final_validation')c(*/)576 5048
y(function)i(final_validation\($value=\224\))576 5145
y({)p Black 3842 5569 a Fa(3)p Black eop
%%Page: 4 4
4 3 bop Black 0 TeXcolorgray Black 2866 -132 a Fa(eGr)l(oupW)-8
b(ar)m(e)20 b(admin/con\002g)o(.php)p Black 755 72 a
Fb(if\($value['contact_repository'])40 b(==)k('ldap')g(&&)g
(!$value['ldap_contact_dn']\))755 170 y({)934 267 y
($GLOBALS['config_error'])d(=)k('Contact)e(dn)i(must)f(be)g(set';)755
364 y(})755 461 y(elseif\($value['contact_repository'])39
b(==)44 b('ldap')g(&&)h(!$value['ldap_contact_context']\))755
558 y({)934 655 y($GLOBALS['config_error'])c(=)k('Contact)e(context)h
(must)g(be)h(set';)755 752 y(})755 850 y(else)755 947
y({)934 1044 y($GLOBALS['config_error'])c(=)k(\224;)755
1141 y(})576 1238 y(})396 1526 y Fe(con\002g.php)18 b(checks)i(for)f
(the)h(e)o(xistence)g(of)g(the)g(function)e('\002nal_v)n
(alidation\(\)'.)f(This)j(function)e(can)i(be)g(used)g(to)396
1634 y(check)g(all)g(form)g(v)n(alues)f(at)i(once.)e(It)i(gets)f(sent)h
(the)f(entire)g($ne)n(wsettings)f(array)g(POST)-6 b(ed)21
b(from)e(the)h(form.)f(As)i(with)396 1742 y(the)f(other)g(functions)f
(in)h(this)h(\002le,)f(\002nal_v)n(alidation\(\))d(should)j(set)h
($GLOB)m(ALS['con\002g_error'])15 b(if)20 b(there)g(is)h(a)396
1850 y(problem.)p Black 3842 5569 a Fa(4)p Black eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF

View File

@ -1,216 +0,0 @@
<!doctype article public "-//OASIS//DTD DocBook V3.1//EN">
<article lang="en">
<!-- DocBook file was created by LyX 1.1
See http://www.lyx.org/ for more information -->
<artheader>
<title>
eGroupWare admin/config.php
</title>
<abstract>
<para>
A brief introduction to writing hooks and templates for any application to use this admin interface, by
</para>
<para>
Miles Lott &lt;milosch@groupwhere.org&gt; Dec 22, 2001.
</para>
</abstract>
</artheader>
<sect1>
<title>
Files
</title>
<sect2>
<title>
config.tpl (required)
</title>
<para>
In your application/templates/default directory, create a new template file named 'config.tpl'. This will be included by config.php and used to draw the page. This template should include a POST method form. The following template tags may be used:
</para>
<orderedlist>
<listitem>
<para>
&lcub;action_url&rcub; - A egw-&gt;link to config.php will be inserted.
</para>
</listitem>
<listitem>
<para>
&lcub;title&rcub; - This will be parsed to display 'Site Configuration'.
</para>
</listitem>
<listitem>
<para>
&lcub;th_bg&rcub;,&lcub;th_text&rcub;,&lcub;row_on&rcub;,&lcub;row_off&rcub; - Replaced with the current theme colors.
</para>
</listitem>
</orderedlist>
<para>
and the following special types:
</para>
<orderedlist>
<listitem>
<para>
&lcub;lang_XXX&rcub; - Filled with lang('XXX').
</para>
</listitem>
<listitem>
<para>
&lcub;value_XXX&rcub; - Filled with the current value of config item 'XXX'.
</para>
</listitem>
<listitem>
<para>
&lcub;selected_XXX&rcub; - set to '', or ' selected' if an option value is current.
</para>
</listitem>
<listitem>
<para>
&lcub;hook_XXX&rcub; - Calls a function named XXX (will be discussed later).
</para>
</listitem>
</orderedlist>
<para>
Following is an example from the addressbook application:
</para>
<programlisting>
<![ CDATA [<form method="POST" action="{action_url}">
]]><![ CDATA [<table border="0" align="center">
]]><![ CDATA [ <tr bgcolor="{th_bg}">
]]><![ CDATA [ <td colspan="2"><font color="{th_text}">&nbsp;<b>{title}</b></font></td>
]]><![ CDATA [ </tr> <tr bgcolor="{th_err}">
]]><![ CDATA [ <td colspan="2">&nbsp;<b>{error}</b></font></td>
]]><![ CDATA [ </tr>
]]><![ CDATA [<!-- END header -->
]]><![ CDATA [<!-- BEGIN body -->
]]><![ CDATA [ <tr bgcolor="{row_on}">
]]><![ CDATA [ <td colspan="2">&nbsp;</td>
]]><![ CDATA [ </tr>
]]><![ CDATA [ <tr bgcolor="{row_off}">
]]><![ CDATA [ <td colspan="2">&nbsp;<b>{lang_Addressbook}/{lang_Contact_Settings}</b></font>
]]><![ CDATA [</td>
]]><![ CDATA [ </tr>
]]><![ CDATA [ <tr bgcolor="{row_on}">
]]><![ CDATA [ <td>{lang_Contact_application}:</td>
]]><![ CDATA [ <td><input name="newsettings[contact_application]" value="{value_contact_application}"></td>
]]><![ CDATA [ </tr>
]]><![ CDATA [...
]]> </programlisting>
<para>
Note the fieldname, newsettings&lsqb;contact_application&rsqb;. This array name must be used for the form values. Next, note the value setting for this form element, &lcub;value_contact_application&rcub;. This indicates that we want the current value of the config setting, 'contact_application', to be set and displayed on the form. Lastly, look at the template element, &lcub;lang_Contact_application&rcub;. Here, the value from the lang db table will be inserted if available.
</para>
<para>
Let's take a look at part of the preferences/default/config.tpl:
</para>
<programlisting>
<![ CDATA [ <tr bgcolor="{row_on}">
]]><![ CDATA [ <td>{lang_Country_Selection} ({lang_Text_Entry}/{lang_SelectBox}):</td>
]]><![ CDATA [ <td>
]]><![ CDATA [ <select name="newsettings[countrylist]">
]]><![ CDATA [{hook_country_set}
]]><![ CDATA [ </select>
]]><![ CDATA [ </td>
]]><![ CDATA [ </tr>
]]> </programlisting>
<para>
Here, we are adding a new element, &lcub;hook_country_set&rcub;. This brings up the next file we will need to parse this value...
</para>
</sect2>
<sect2>
<title>
hook_config.inc.php (optional)
</title>
<para>
At each invocation of config.php, a call to the common class function hook_single() is made. It attempts to include a file, hook_config.inc.php as a set of code for config.php to use. In the case of the preferences example above, using hook_country_set, here is the corresponding function in preferences/inc/hook_config.inc.php:
</para>
<programlisting>
<![ CDATA [function country_set($config)
]]><![ CDATA [{
]]><![ CDATA [ $country = array( 'user_choice' => 'Users Choice', 'force_select' => 'Force Selectbox' );
]]><![ CDATA [ while (list ($key, $value) = each ($country))
]]><![ CDATA [ {
]]><![ CDATA [ if ($config['countrylist'] == $key)
]]><![ CDATA [ {
]]><![ CDATA [ $selected = ' selected';
]]><![ CDATA [ }
]]><![ CDATA [ else
]]><![ CDATA [ {
]]><![ CDATA [ $selected = '';
]]><![ CDATA [ }
]]><![ CDATA [ $descr = lang($value);
]]><![ CDATA [ $out .= '<option value="' . $key . '"' . $selected . '>' . $descr . '</option>' . "\n";
]]><![ CDATA [ }
]]><![ CDATA [ return $out;
]]><![ CDATA [}
]]> </programlisting>
<para>
Note again the template value we used earlier, &lcub;hook_country_set&rcub;. This causes config.php to look for a function named country_set(). Since we included the file with this function via the hook_single() call, this function is executed. It's return is a string, and the function prints nothing itself.
</para>
</sect2>
<sect2>
<title>
hook_config_validate.inc.php (optional)
</title>
<para>
Once the admin clicks the submit button to post the form, we can optionally validate their input using one or many different functions. This is done by first making another call to hook_single() in the API common class. This time, the name config_validate is used, so common tries to include 'application/inc/hook_config_validate.inc.php'.
</para>
<para>
If this file exists, it sets a var to tell config.php it was found. Following then are functions named after each config we want to validate. The following example is for addressbook:
</para>
<programlisting>
<![ CDATA [ $GLOBALS['phpgw_info']['server']['found_validation_hook'] = True;
]]><![ CDATA [
]]><![ CDATA [ /* Check a specific setting. Name must match the setting. */
]]><![ CDATA [ function ldap_contact_context($value='')
]]><![ CDATA [ {
]]><![ CDATA [ if($value == $GLOBALS['phpgw_info']['server']['ldap_context'])
]]><![ CDATA [ {
]]><![ CDATA [ $GLOBALS['config_error'] = 'Contact context for ldap must be different from the context used for accounts';
]]><![ CDATA [ }
]]><![ CDATA [ elseif($value == $GLOBALS['phpgw_info']['server']['ldap_group_context'])
]]><![ CDATA [ {
]]><![ CDATA [ $GLOBALS['config_error'] = 'Contact context for ldap must be different from the context used for groups';
]]><![ CDATA [ }
]]><![ CDATA [ else
]]><![ CDATA [ {
]]><![ CDATA [ $GLOBALS['config_error'] = '';
]]><![ CDATA [ }
]]><![ CDATA [ }
]]> </programlisting>
<para>
Here we created a function to check the entered value for the config item, ldap_contact_context. We want to make sure the admin did not set this value to one which would conflict with another config item, used for accounts or groups in eGroupWare.
</para>
<para>
config.php calls this function, sending it the POSTed value. config.php continues, adding all other config items from the POSTed values.
</para>
<para>
The variable &dollar;GLOBALS&lsqb;'config_error'&rsqb; is parsed through lang(), then appended to the local variable, &dollar;error. If this has any value after the POSTed variables are checked, the form then has its &lcub;error&rcub; tag filled with this result. The form is displayed again, with the error. If &dollar;error has no value, config.php redirects to admin/index.php.
</para>
<para>
However, there is one more function that may be included in hook_config_validate.inc.php:
</para>
<programlisting>
<![ CDATA [ /* Check all settings to validate input. Name must be 'final_validation' */
]]><![ CDATA [ function final_validation($value='')
]]><![ CDATA [ {
]]><![ CDATA [ if($value['contact_repository'] == 'ldap' && !$value['ldap_contact_dn'])
]]><![ CDATA [ {
]]><![ CDATA [ $GLOBALS['config_error'] = 'Contact dn must be set';
]]><![ CDATA [ }
]]><![ CDATA [ elseif($value['contact_repository'] == 'ldap' && !$value['ldap_contact_context'])
]]><![ CDATA [ {
]]><![ CDATA [ $GLOBALS['config_error'] = 'Contact context must be set';
]]><![ CDATA [ }
]]><![ CDATA [ else
]]><![ CDATA [ {
]]><![ CDATA [ $GLOBALS['config_error'] = '';
]]><![ CDATA [ }
]]><![ CDATA [ }
]]> </programlisting>
<para>
config.php checks for the existence of the function 'final_validation()'. This function can be used to check all form values at once. It gets sent the entire &dollar;newsettings array POSTed from the form. As with the other functions in this file, final_validation() should set &dollar;GLOBALS&lsqb;'config_error'&rsqb; if there is a problem.
</para>
</sect2>
</sect1>
</article>

Some files were not shown because too many files have changed in this diff Show More