Commit Graph

3131 Commits

Author SHA1 Message Date
Ralf Becker
0da675bf6e made all methods from html class static and removed the unnecessary singleton 2008-03-09 14:35:48 +00:00
Ralf Becker
97f63b43ff some compatibility stuff for ADOdb<->PDO 2008-03-09 14:22:02 +00:00
Ralf Becker
0ac46f72c7 reworked to call egw_link (static) 2008-03-08 23:21:42 +00:00
Ralf Becker
6cfde1148b "added (depricated) $link_table var" 2008-03-08 23:17:10 +00:00
Ralf Becker
b1c2d9ac47 titles was not caching the returned titles and new param for get_links_multiple() to cache the titles of all found links 2008-03-08 22:38:09 +00:00
Ralf Becker
15ca7e90ed eGW wide index over all applications (superindex)
This index allows a fulltext search over all applications (or of
cause also a single app).
Whenever an applications stores an entry it calls: 

             boolean egw_index::save($app,$id,$owner,array $fields,array $cat_id=null)

which calls, as the application do when is deletes an entry (!), 

             boolean egw_index::delete($app,$id)

and then splits all fields into keywords and add these to the index by 

             boolean private egw_index::add($app,$id,$keyword).

Applications can then use the index to search for a given keyword
(and optional application):

             array egw_index::search($keyword,$app=null) or

             foreach(new egw_index($keyword,$app=null) as $app_id => $title)

To also allow to search by a category or keyword part of it, the index
also tracks the categories of the entries. Applications can choose to
only use it for category storage, or cat do it redundant in there own
table too. To retrieve the categories of one or multiple entries: 

             array egw_index::cats($app,$ids)

Applications can use a sql (sub-)query to get the id's of there app
matching a certain keyword and include that in there own queries:

             string egw_index::sql_ids_by_keyword($app,$keyword)

Please note: the index knows nothing about ACL, so it's the task of
the application to ensure ACL rights.
2008-03-08 21:51:12 +00:00
Ralf Becker
a515bdeffb reworked link classes:
- new public egw_link class, which has only static methods and can NOT be instanciated
- depricated bolink class, for existing code instanciating the bolink class in $egw->link
- new method and application hook *titles* to retrieve the title of multiple entries of an app in one go
- new method *get_links_multiple* to retrieve all links of multiple entries of an app
2008-03-08 21:41:20 +00:00
Ralf Becker
407b4defad static strip_array_keys method to strip a colum-prefix from a result, docu update about depricated functions which use the internal result-set 2008-03-08 21:31:12 +00:00
Klaus Leithoff
85c7be0259 checking if apparray exist in __autoload, before looping through 2008-03-07 10:18:17 +00:00
Ralf Becker
108cb59d3c fixed bug introduced by Connys performance stuff: function returned limited resultset with unset or empty start parameter 2008-03-06 16:11:49 +00:00
Ralf Becker
4f941b5a61 (hopefully) final fix: default for select() is now again ASSOC, but next_record() adds numerical indexes again, if they are required. That is a slight penality for old code, but gives full speed / lowest memory for new code. 2008-03-06 14:20:47 +00:00
Ralf Becker
046713e00f temp. fixed problem introduced with last egw_db commit (db::f() not working with db::select()), thought I want to check how often that is used, as an only asociative fetchmod needs half the memory 2008-03-06 13:33:38 +00:00
Ralf Becker
e03425c90b fixed an error with the initialisation of the static $db var (under LDAP and php4-restore sessions) and or by using the global db object without cloning it 2008-03-06 11:43:45 +00:00
Ralf Becker
9de6c2884f added fetchmode parameter to query() and set it to ADODB_FETCH_ASSOC for select(), also added comment about how to avoid cloning the global db object and looping over result sets via the returned result object 2008-03-06 11:42:21 +00:00
Ralf Becker
42688f5cd2 removed unnecessary checkAuth function, because the regular eGW session cookie got not recogniced and all checks are done by the header include anyway 2008-03-04 08:33:08 +00:00
Ralf Becker
b638e9117b set old vfs as default again for easier testing of the new UI 2008-03-03 12:17:08 +00:00
Ralf Becker
d2094b8958 search, lettersearch, merge content of subdirs (recursive display) 2008-03-03 12:16:11 +00:00
Ralf Becker
0af252ad55 ordering and limited resultsets 2008-03-03 07:53:43 +00:00
Ralf Becker
4df4fd9f06 first work on UI for a new filemanager and some vfs bugfixes and improvments 2008-03-02 21:44:15 +00:00
Ralf Becker
7da0cd0dd0 fixed static use of config::save_value() 2008-02-29 07:36:29 +00:00
Ralf Becker
3cd2ce8dd2 fixed mount command and enhanced egw_vfs::find() 2008-02-29 07:27:49 +00:00
Ralf Becker
ea5cda5310 fixed typo preventing non-root access 2008-02-29 07:23:14 +00:00
Ralf Becker
a0e5556c62 hooks to create, rename or delete user+group home-dirs (you need to run Admin >> register hooks!) 2008-02-27 10:33:48 +00:00
Ralf Becker
640ee3ab93 hooks to create, rename or delete user+group home-dirs (you need to run Admin >> register hooks!) 2008-02-27 10:20:48 +00:00
Ralf Becker
8afe9094b7 More improvments of the sqlfs code and the command line interface:
- read rights are not checks in each traversed directory (via sql in a single query to locate the path)
- diropen additionally checks for execute rights
- fopen checks for read or write depending on the mode
- chmod, chgrp, chown methods in sqlfs and egw_vfs/vfs plus an egw_vfs::$is_root var used to grant root rights (no access controll and chown or chgrp without being the owner of a file)
- find method (some more params to come) to recursivly search and optionaly execute some callback
- egw_vfs::remove doing a "rm -r" / recursive remove or dirs and files
- new files or dirs inherit the perms and ownership from the parent directory (no umask)
- files/dirs the user has no read rights, in a directory where he has no write rights, get hidden (eg. not showing all the other users / groups home dirs
- many new cli commands (chmod, chgrp, chown, find), recursive option for most commands and the ability to use it with root rights, see the usage message if called without options
- "cp -r -p" to copy a whole tree incl. ownership and perms, eg. backing up /home to /backup
2008-02-26 08:51:42 +00:00
Nigel Vickers
d81d9bce03 Mutexed memcache handler. Traps race and memcache memory conditions on large scale Fastcgi farms.
Attribs: Stephan Becker: Code, identified the Javascript culprits
         Wim Bonis: Code, Race condition
	 Klaus Leithhoff: Code, mbstring writes a different length to that that it reads
	 Lars Volker: Code, Debug memcache slab memory,  memcache add as lock.
2008-02-25 14:13:45 +00:00
Nathan Gray
cc210e9dae config->save_value() was overwriting the cached array values with a single value 2008-02-22 16:42:20 +00:00
Carsten Wolff
3304616642 Circumvent a bug in some distributions of apache/mod_php, where an apache
child, that has executed a php script with mbstring.func_overload=7 once, will
overload substr() in a later execution of another php script, even if the
Location context of that script has mbstring.func_overload=0 set. Since the
WBXML decoder works byte-by-byte to determine substring length, it fails, if
mb_substr() is used. This patch prevents this.
2008-02-19 09:55:59 +00:00
Ralf Becker
e71608d8cc new sqlfs stream wrapper, as replacement for the old vfs class (it uses the PDO extension, as PDO allows to access BLOBs as streams), the update create a new egw_sqlfs table and fills it with the content of the old vfs (egw_vfs table), BOTH use the same files in the filesystem, so beware if you delete something in one or the other, this is definitly NOT for production systems 2008-02-18 06:52:07 +00:00
Ralf Becker
9c649da978 WebDAV can use now the new stream wrapper interface, thought its switched off by default in filemanager/webdav.php (see the comments at the end of the file) 2008-02-18 06:43:49 +00:00
Cornelius Weiß
ed6fea6f5b performance enhancement: accounts::search 2008-02-12 15:57:39 +00:00
Cornelius Weiß
86f6654c8c fix the "to many categories" problem with ldap backend 2008-02-12 15:55:26 +00:00
Lars Kneschke
252f2a964b use the global instance of the accountsClass and create a own connection to the accounts backend 2008-02-08 11:21:32 +00:00
Lars Kneschke
09f1287d6c using the singleton passtern to get a instance of the accounts class and call the setAccountId function to set the accountId 2008-02-08 11:20:50 +00:00
Lars Kneschke
51f14c8d82 don't resolve group grants when using the addressbook, as resolving group memberships is currently extremly slow, with bigger installations
maybe we can also fix it different
2008-02-08 11:19:41 +00:00
Lars Kneschke
31f2ea4a07 minor formating changes 2008-02-08 11:16:40 +00:00
Lars Kneschke
844936d19b added singelton pattern to the accounts class and added function to set accountId without needing to call the construtor 2008-02-08 11:16:09 +00:00
Ralf Becker
e3ee4fb7dc new egw_vfs class, with many static methods to access the new vfs, see the documentation in the header of egw_vfs 2008-02-07 06:37:45 +00:00
Ralf Becker
b2be83b0da new id2name parameter $item="path" to get a / delimited path of the cat hierarchy (names of the parents) 2008-02-07 02:40:43 +00:00
Klaus Leithoff
08e5fa0497 prevent the mb_convert_encoding to return with an empty string, for the failing of the conversion in that function results in an empty string as
well.
2008-01-31 12:31:18 +00:00
Klaus Leithoff
a0cee847a2 small bugfix while getting the grants, since analyzing grants for read/write access in infolog returned less results than expected. this was
suggested by Ralf for testing.
2008-01-31 12:23:46 +00:00
Ralf Becker
e657227035 new vfs-stream-wrapper class, which uses a fstab (in a static class var at the moment) to mount different filesystems/stream-wrappers together in a single virtual file system for eGroupWare, can be tested with filemanager/ls.php and the default fstab of / => oldvfs:/ 2008-01-30 06:51:54 +00:00
Ralf Becker
399e087f2c - unlink/mkdir/rmdir methods
- caching the information for dir_open vfs_sql::ls() to use it in url_stat, to not read it again from the db
- implemented a static touch method, which is not (yet) part of the stream-wrapper interface
2008-01-30 06:47:53 +00:00
Ralf Becker
fbc8aa7be7 new parameter to set the date/time for touch, default the the current time 2008-01-30 06:43:55 +00:00
Ralf Becker
88cb04b87b oldvfs stream-wrapper can now also open/read/write files and uses a direct filesystem stream to overcome memory_limit limitations, eg. with filemanager/ls.php --cp /tmp/xyz.iso oldvfs://user:password@default/home/user you can copy now a cd image to the vfs! 2008-01-29 07:24:16 +00:00
Klaus Leithoff
10f3a93947 fixing a possible problem in the fix. accidently commented out the line that stops including files after framework inclusion. It does cause
problems!
2008-01-28 13:18:35 +00:00
Klaus Leithoff
e6cd15b08d fixed a problem with the loading of config (with session restore), by loading the class.config.inc.php after the stored object is unserialized. 2008-01-25 10:54:51 +00:00
Ralf Becker
4a800502fa was not fully working with half-hour timezone, like eg. used in australia 2008-01-19 05:29:50 +00:00
Ralf Becker
c25ba82735 - slightly modified exception handler, to cover the situation when the egw object is not yet or only partially initialised
- somehow the baseclass stuff in __autoload was never working as intended (could not load the exceptions derived from egw_exception)
2008-01-19 05:28:33 +00:00
Ralf Becker
2722e59477 reworked the config class to:
- have a static method config::read($app) to read the config of an app, no need to instanciate it
- added some caching to not read the config more then once per request
- moved the get_customfields and get_content_type methods here from admin.customfields
- private custom fields only visible for certain users/groups (in addressbook only for the moment)
2008-01-19 05:25:37 +00:00