Commit graph

1162 commits

Author SHA1 Message Date
Frank Karlitschek
1945cd6946 ported the oc_template class 2012-05-06 23:00:36 +02:00
Frank Karlitschek
5d55c709dd some more documentation cleanups. much more is needed.
And greeting from the Atlanta airport. ;-)
2012-05-06 22:02:16 +02:00
Frank Karlitschek
2edf59c026 first part of documentation update. lot´s more to come 2012-05-06 21:46:39 +02:00
Daniel
35177e00c0 Merge commit 'refs/merge-requests/109' of git://gitorious.org/owncloud/owncloud into merge-requests/109 2012-05-06 16:13:13 +02:00
Jernej Virag
e459309511 Fixed escaping of filename when determining MIME type 2012-04-25 10:33:52 +02:00
Bart Visscher
f991948a71 Fix loading by apptype in webdav 2012-05-05 21:58:10 +02:00
Thomas Müller
d46bea8867 fixing file headers with copy right 2012-05-05 18:13:40 +02:00
Robin Appelman
c0e67fa24a fix opening encrypted files from the browser 2012-05-05 16:49:48 +02:00
Frank Karlitschek
9bcc5c11a8 porting the hooks and starting with the templates 2012-05-05 10:18:45 +02:00
Brice Maron
4a89eb77c1 Escape strings for DB and User creation at setup. Fix oc-124 2012-05-04 22:54:55 +00:00
Frank Karlitschek
eab4a05d78 implement missing getusers call 2012-05-04 11:13:07 +02:00
Robin Appelman
a22a79cddd fix filecache for postgresql 2012-05-03 23:17:03 +02:00
Robin Appelman
9e03ea4a28 ensure the files app is always loaded 2012-05-03 20:47:18 +02:00
Frank Karlitschek
97a8af7f25 ported oc_db 2012-05-03 13:06:08 +02:00
Frank Karlitschek
43caa3b3b9 ported oc_json 2012-05-03 12:23:29 +02:00
Frank Karlitschek
351740601a port oc_response 2012-05-03 10:46:27 +02:00
Robin Appelman
e5ef3e1340 move archive library to core so we can properly depend on it 2012-05-02 23:48:23 +02:00
Michael Gapczynski
31d623f426 Fix log viewing bug 2012-05-02 15:26:42 -04:00
Frank Karlitschek
10bbbc8cd2 new checkAppEnabled call 2012-05-02 18:54:31 +02:00
Georg Ehrke
da03d05700 create folder 'remote' for the remote services like caldav, carddav and webdav 2012-05-02 16:41:23 +02:00
Frank Karlitschek
82a61e2e1a port oc_preferences 2012-05-02 15:54:34 +02:00
Frank Karlitschek
ff66600bc0 port appconfig 2012-05-02 14:11:29 +02:00
Frank Karlitschek
8e99475886 first part of the config stuff 2012-05-02 13:28:56 +02:00
Frank Karlitschek
8c7f854671 move all the files stuff into a files class 2012-05-02 12:54:31 +02:00
Arthur Schiwon
6750998984 files is not internal any more, part II 2012-05-02 11:26:22 +02:00
Arthur Schiwon
d71600213a files is not internal any more 2012-05-02 11:14:11 +02:00
Arthur Schiwon
c9eaffd336 send downloadfile piece by piece. saves RAM and is better suited for large files. 2012-05-02 11:02:13 +02:00
Frank Karlitschek
2fe646dcec ported the oc_app calls 2012-05-02 00:50:26 +02:00
Frank Karlitschek
93b63cf375 ported the rest of the OC_Helper calls 2012-05-02 00:20:45 +02:00
Frank Karlitschek
e48f511606 port linkto and serverHost 2012-05-01 23:19:39 +02:00
Frank Karlitschek
31e32e3c10 ported checkLoggedIn and checkAdmin 2012-05-01 22:59:38 +02:00
Frank Karlitschek
e2fb094693 some more porting 2012-05-01 21:07:08 +02:00
Frank Karlitschek
d0554bef06 finish porting of the LOG calls or the apps to the public api 2012-05-01 17:38:27 +02:00
Marvin Thomas Rabe
7ded9cf520 Checks if config folder is writable on begin of the installation. 2012-05-01 16:35:46 +02:00
Arthur Schiwon
d3ce2cacd6 OC_User: handle success properly 2012-05-01 14:40:56 +02:00
Arthur Schiwon
8a69116e94 OC_User: don't say password changed when it is not true 2012-05-01 13:40:01 +02:00
Frank Karlitschek
0195d5b439 some more work on the public API 2012-05-01 09:39:12 +02:00
Frank Karlitschek
04c6582af1 load the files app in a way that doesn´t break oC3 configurations 2012-04-30 13:58:48 +02:00
Frank Karlitschek
e1268cd5f4 we require php 5.3 now. so please notify the user if an old version is in use 2012-04-30 13:28:31 +02:00
Frank Karlitschek
f0701f75a9 tiny typo 2012-04-30 13:08:08 +02:00
Thomas Mueller
07f2e316e4 removing executable bit from various files 2012-04-30 12:05:57 +02:00
Frank Karlitschek
c7e7767f58 don´t hardcode files app. we have no a standard info.xml in files 2012-04-29 21:27:02 +02:00
Robin Appelman
4d3ef9a824 improve rescanning folders 2012-04-29 16:11:17 +02:00
Robin Appelman
e3adbcb7d5 remove non existing files from the cache when rescanning a folder 2012-04-29 15:09:47 +02:00
Robin Appelman
09a5c59cca only install shipped apps on setup that should be enabled by default 2012-04-29 14:38:56 +02:00
Georg Ehrke
3aedbc5f95 remove debug message 2012-04-27 22:22:58 +02:00
Georg Ehrke
06e9ac8591 fix parsing of app parameter and fix external app 2012-04-27 22:22:03 +02:00
Georg Ehrke
993d655aad Merge branch 'master' into movable_apps_2 2012-04-27 10:30:50 +02:00
Frank Karlitschek
ee0cb68f5e some csrf fixes. needs testing 2012-04-27 01:18:21 +02:00
Frank Karlitschek
74b5e22a68 some more csrf fixes 2012-04-26 23:17:46 +02:00
Georg Ehrke
5483c1be42 hide fails 2012-04-26 21:58:43 +02:00
Georg Ehrke
5fda0e4b3b make *DAV work with movable apps 2012-04-26 21:56:29 +02:00
Georg Ehrke
2b10371bde fix merge conflicts 2012-04-26 18:08:49 +02:00
Georg Ehrke
40f95ffdf3 fix security check for the path of the requested file 2012-04-26 17:55:00 +02:00
Georg Ehrke
ebcaa46482 fix loading of css files that are core related 2012-04-26 15:19:27 +02:00
Georg Ehrke
3f64eb25ab some fixes fore movable apps 2012-04-26 14:52:55 +02:00
Georg Ehrke
d76552a009 Merge branch 'sabredav_1.6' 2012-04-25 10:39:31 +02:00
Georg Ehrke
476043ecb9 add a proper 404 2012-04-25 10:17:20 +02:00
Robin Appelman
cc2bfd313d minor filecache improvements 2012-04-25 00:12:12 +02:00
Robin Appelman
9015c46e31 emit the correct hooks for file_put_contents and some readfile improvements 2012-04-25 00:12:12 +02:00
Robin Appelman
60b924c954 initial mount configuration work 2012-04-25 00:12:12 +02:00
Georg Ehrke
f17eea506a fix merge conflicts 2012-04-24 21:59:56 +02:00
Georg Ehrke
fb84d0aff8 fix php fail 2012-04-24 21:37:19 +02:00
Georg Ehrke
9b29bc96de remove debug message 2012-04-24 21:36:54 +02:00
Georg Ehrke
0b06eff3a0 another fix for linkto function 2012-04-24 20:17:00 +02:00
Georg Ehrke
29b9e27078 fix linkto function in OC_Helper 2012-04-24 20:14:42 +02:00
Thomas Tanghus
6848b069c9 OC_App::getStorage() failed if app dir didn't exist. 2012-04-24 01:44:07 +02:00
Georg Ehrke
95c220a246 remove debug code in lib base 2012-04-23 20:31:03 +02:00
Georg Ehrke
19109afa79 fix bug in lib base 2012-04-23 20:11:21 +02:00
Georg Ehrke
42a570788b Merge branch 'master' into movable_apps 2012-04-23 19:56:07 +02:00
Georg Ehrke
6d92ebca45 use native functions of php to parse the string into the Var 2012-04-23 17:09:28 +02:00
Georg Ehrke
9226cb7a6a rename var file to getfile to prevent fails in files app 2012-04-23 16:36:24 +02:00
Georg Ehrke
aaedb23f05 fix bug in lib/helper.php and fix file upload 2012-04-23 16:28:37 +02:00
Frank Karlitschek
f5c9fe9ece first step to an public api of ownCloud for the apps. In the future they shouldn´t call internall classes, functions or session variables because this will change and break in upcoming versions. Apps should only call this public interface that we will kepp stable over different releases. The namespace is OCP for ownCloud public. This is just the first step. more coming soon 2012-04-23 15:50:30 +02:00
Georg Ehrke
e888f4d9bc Merge branch 'master' into sabredav_1.6 2012-04-22 13:20:50 +02:00
Georg Ehrke
4c2cf35050 fix merge conflicts 2012-04-22 13:19:12 +02:00
Georg Ehrke
0918fc7d91 fix merge conflicts 2012-04-21 23:21:50 +02:00
Frank Karlitschek
a86d89f5ca Add a static code checker for evil patterns in apps.
Disabled by default for now.
We will check for private api calls here later once the public api is in place
2012-04-21 22:47:56 +02:00
Frank Karlitschek
6bfe2289be improve the app installer.
show a label if an app is an internal app or a third party app from the app store.
show a preview image of the app if available
2012-04-21 15:30:58 +02:00
Georg Ehrke
711aa229b8 Merge branch 'master' into movable_apps 2012-04-20 22:41:39 +02:00
Georg Ehrke
99a473bd62 support file calls with parameter 2012-04-20 22:33:30 +02:00
Frank Karlitschek
0f5864d864 support searching the knowledge base 2012-04-20 21:49:57 +02:00
Frank Karlitschek
2fbc92bd4b new OC_Mail class to handle all mail sending. The benefit is that is way mor flexible than the standard mail command. can be configured to use a remote smtp relay for example. also port the lostpassword code 2012-04-20 20:49:35 +02:00
Georg Ehrke
2e85313701 optimize code 2012-04-19 22:26:36 +02:00
Georg Ehrke
909282c81e remove parameters in file var before call require once 2012-04-19 22:25:21 +02:00
Georg Ehrke
85019887df add loading of files 2012-04-19 16:44:49 +02:00
Robin Appelman
bdb3962b8d add function to get mimetype from string 2012-04-18 20:54:28 +02:00
Georg Ehrke
dfc92675e0 make menu work with movable apps 2012-04-18 17:25:44 +02:00
Georg Ehrke
eb29c577c2 Merge branch 'master' into movable_apps 2012-04-18 12:20:09 +02:00
Georg Ehrke
3e0e6e35f4 open app thru index.php 2012-04-18 08:20:51 +02:00
Arthur Schiwon
57b8ff890c check if PHP mod GD is installed 2012-04-17 19:09:41 +02:00
Arthur Schiwon
d24abc3b9d check if PHP mod JSON is installed 2012-04-17 19:06:45 +02:00
Robin Appelman
5720bd296d merge log into admin 2012-04-16 12:21:48 +02:00
Robin Appelman
464c751f30 fix creating unique filenames 2012-04-16 10:58:40 +02:00
Robin Appelman
fa97c59f95 fix group backend 2012-04-16 10:36:21 +02:00
Robin Appelman
b61f6438ba return user specific paths from oc_filecache::getpath 2012-04-16 10:06:52 +02:00
Georg Ehrke
77cefdedb8 Merge branch 'master' into sabredav_1.6 2012-04-15 22:28:11 +02:00
Bart Visscher
68b1ae1a36 OC_Group_Backend.php misses function groupexists
Fix http://bugs.owncloud.org/thebuggenie/owncloud/issues/oc-182
2012-04-15 17:11:03 +02:00
Bart Visscher
ea99e1184d Add well-known redirects to htaccess
Fixes:
http://bugs.owncloud.org/thebuggenie/owncloud/issues/oc-232
http://bugs.owncloud.org/thebuggenie/owncloud/issues/oc-445
2012-04-15 17:11:03 +02:00
Thomas Müller
a0d917fe98 fixing oc-375 - a number is appended tp the filename 2012-04-15 17:00:49 +02:00
Robin Appelman
dae34edf4f fix filecache rename hook 2012-04-15 16:06:55 +02:00
Jan-Christoph Borchardt
7ddd043427 renamed extention to extension, also now only showing lowercase 2012-04-15 13:34:30 +02:00
Robin Appelman
a6a8e2c553 add public api to get the file id from the cache 2012-04-15 11:44:04 +02:00
Robin Appelman
c5b8a3eb94 fix installing shipped apps 2012-04-15 11:05:55 +02:00
Daniel
fd16784bcc fix bug where users could use wildcards in username to login
e.g. user Peter could probably login using username Pet%
fixed same problem in the migration script
2012-04-15 10:30:22 +02:00
Bartek Przybylski
f241615693 fix getAppVersion error 2012-04-15 00:05:28 +02:00
Jan-Christoph Borchardt
ba5e60e2e4 firefighting Robin-breakage 2012-04-14 19:05:01 +02:00
Robin Appelman
4410f15dd8 don't rely on the old version in info.xml anymore 2012-04-14 19:01:59 +02:00
Jan-Christoph Borchardt
fbb314ef4b Merge branch 'master' of gitorious.org:owncloud/owncloud 2012-04-14 18:56:55 +02:00
Jan-Christoph Borchardt
f16cfbab5e improved installation instructions 2012-04-14 18:44:32 +02:00
Jan-Christoph Borchardt
85cb171cb8 improved updater wording 2012-04-14 18:41:09 +02:00
Bart Visscher
402c6da968 Typo fix (breif->brief) 2012-04-14 18:31:42 +02:00
Bart Visscher
4976daca7a Fix default database type string 2012-04-14 18:31:41 +02:00
Robin Appelman
dec139716e cache app types in the db 2012-04-14 17:53:02 +02:00
Robin Appelman
5608867edc use the correct array indexes... 2012-04-14 17:52:49 +02:00
Robin Appelman
b1bcc60d83 reuse OC_L10N objects 2012-04-14 16:44:15 +02:00
Robin Appelman
721311c909 some minor optimizations 2012-04-14 16:29:11 +02:00
Robin Appelman
926b2b78fe keep version numbers in their own files for faster reading 2012-04-14 16:29:11 +02:00
Robin Appelman
bfdbdd9b20 remove outdated file 2012-04-14 16:29:11 +02:00
Tom Needham
c069aa62a4 Fix annoying error in log 2012-04-14 12:31:48 +00:00
Robin Appelman
d8864d4f4b show error when installing an app has failed 2012-04-14 12:57:10 +02:00
Robin Appelman
d3bf013761 prevent users with the same name but different casing from being created 2012-04-14 12:57:10 +02:00
Robin Appelman
137dce87fc remove outdated code 2012-04-14 11:42:11 +02:00
Robin Appelman
3babb8c22c improve flexibility of search providers a bit 2012-04-14 11:29:54 +02:00
Robin Appelman
d8e54acbf3 test cases for user backends 2012-04-14 10:43:28 +02:00
Arthur Schiwon
9ef34cd831 typo 2012-04-13 23:02:42 +02:00
Arthur Schiwon
74f0bebfc8 don't fail on missing extension 2012-04-13 23:02:42 +02:00
Arthur Schiwon
b9bdad5165 make sure temporary files are being removed, fixes oc-450 2012-04-13 23:02:42 +02:00
Georg Ehrke
77a9e343aa Merge branch 'master' into sabredav_1.6 2012-04-13 16:42:10 -04:00
Arthur Schiwon
b95f561bf2 file settings: let people set no more than upper boundary for file uploads, but they should can really go up to the limit 2012-04-13 11:25:38 +02:00
Arthur Schiwon
1bd27891e2 make upload size settings work probably. do not replace whole .htaccess, only replace what is needed. Consistent, human readable input on admin settings page. 2012-04-13 10:43:44 +02:00
Robin Appelman
1d8fdf52d5 allow multiply group backends 2012-04-13 01:59:05 +02:00
Bart Visscher
69d584331d OC_VCategories: sort categories in natural order using usort
Use usort to sort, so that the json encoding is an array.
2012-04-12 23:10:49 +02:00
Bart Visscher
815649dbd7 Implement default categories in OC_VCategories 2012-04-12 23:10:49 +02:00
Florian Preinstorfer
b86f2069ff Fix a session fixation vulnerability
- regenerate the session for every successful login
- properly destroy a session

Further information can be found on:
https://en.wikipedia.org/wiki/session_fixation
2012-04-12 19:15:38 +02:00
Grundik
7e7de25710 UTF8 locale by default 2012-04-12 17:54:20 +02:00
Daniele E. Domenichelli
156bdae2fe Use OC_Helper::serverHost() in OC_Helper::linkToAbsolute() 2012-04-12 17:51:17 +02:00
Daniele E. Domenichelli
7b5395675d Add method OC_Helper::serverHost()
This method returns the server host, even if the website uses one or
more reverse proxies.
2012-04-12 17:51:17 +02:00
Robin Appelman
0466437fa7 tests for oc_filesystem 2012-04-12 15:55:56 +02:00
Frank Karlitschek
637db92e60 increase version to show that we are not the same as stable 2012-04-11 09:20:28 +02:00
Georg Ehrke
613e15035e Merge branch 'master' into sabredav_1.6 2012-04-10 22:44:13 -04:00
Bart Visscher
17af1ba893 Silence error for missing appinfo info file 2012-04-10 21:04:35 +02:00
Tom Needham
8e188cd96f Copy over all file app data for imported user 2012-04-08 19:16:03 +00:00
Tom Needham
e5ebbacc9e Fix sqlite version detection 2012-04-08 18:52:31 +00:00
Tom Needham
5e314e8eff Emit hooks for user creation 2012-04-07 22:00:32 +00:00
Tom Needham
c0869887cf Return JSON for import and export methods of OC_Migrate 2012-04-07 21:55:16 +00:00
Tom Needham
9edf45a324 Merge branch 'master' into migration 2012-04-07 17:31:30 +00:00
Tom Needham
d2886f2020 Hide instance import as it eats data 2012-04-07 17:27:09 +00:00
Bartek Przybylski
96c99125da mimetype filter for filepicker 2012-04-05 23:18:44 +02:00
Florian Hülsmann
8a2c5dda6d Merge commit 'refs/merge-requests/102' of git://gitorious.org/owncloud/owncloud into merge-requests/102 2012-04-04 21:36:50 +02:00
Tom Needham
acdce2b1e0 Check blacklist before saving to filesystem 2012-04-03 22:31:34 +00:00
Michael Gapczynski
ff4b0c4d7f Move writable check into local filestorage so shared files can be renamed 2012-04-01 13:30:41 -04:00
Robin Appelman
cce59df2ae the core apps don't have types 2012-04-01 19:22:23 +02:00
Robin Appelman
39e8981bc2 oc_db is not pdo
also pgsql does not like double quotes
2012-04-01 17:32:13 +02:00
Frank Karlitschek
b758725bf7 Try to configure php to enable big file uploads.
This doesn´t work always depending on the webserver and php configuration.
Let´s try to overwrite some defaults anyways
2012-04-01 17:02:32 +02:00
Frank Karlitschek
6545e48787 Show the different editions to the user. Used in the status call, on the personal settings page and in the updater to update to the next available version from the same edition. 2012-04-01 11:20:12 +02:00
Michael Gapczynski
6bb48b2731 Check file handle exists before trying to read file 2012-04-01 02:38:26 -04:00
Tom Needham
eba6a65908 try to use transactions to replace db 2012-04-01 00:25:47 +00:00
Tom Needham
ffbd72bbcf Fix user app data export 2012-04-01 00:07:39 +00:00
Tom Needham
a248cc73e6 Merge branch 'master' into migration 2012-03-31 23:56:16 +00:00
Tom Needham
daf742c086 Fix owncloud log 2012-03-31 23:55:41 +00:00
Tom Needham
ce89ff15aa Remove db tmp file after export creation 2012-03-31 23:20:08 +00:00
Tom Needham
f7d8a8c571 Merge branch 'master' into migration 2012-03-31 22:44:50 +00:00
Tom Needham
d20eea9761 Use ajax to download file, OC_Dialogs for errors 2012-03-31 22:41:43 +00:00
Robin Appelman
2f68b08491 fix eventsource for ie 2012-03-31 16:40:42 +02:00
Robin Appelman
ebc7a6a0a6 dont send to much when scanning large folders 2012-03-31 16:28:22 +02:00
Robin Appelman
9d2f8aa717 send more progress updates when scanning large folders 2012-03-31 16:24:53 +02:00
Robin Appelman
b72d7f1ab3 make sure output buffering is dissabled when using eventsource 2012-03-31 16:20:32 +02:00
Bart Visscher
20fc23c82b Move logfile determination to init function 2012-03-30 23:41:54 +02:00
Bart Visscher
3300d6ea53 checkUpgrade has to be after template initialization
The error path of checkUpgrade uses the template
2012-03-30 23:41:54 +02:00
Bart Visscher
a7438189f3 Move more from base init to separate functions 2012-03-30 23:41:53 +02:00
Bart Visscher
3a4521a012 Add support for logging to syslog 2012-03-30 23:41:53 +02:00
Robin Appelman
65eee1f69d clean pre-path_hash fscache entries 2012-03-30 19:44:49 +02:00
Georg Ehrke
ef1e359c7c Merge branch 'master' into sabredav_1.6 2012-03-30 18:48:30 +02:00
Robin Appelman
7552390031 add path_hash to the filesystem cache 2012-03-30 18:12:33 +02:00
Robin Appelman
523fdda399 add the option to only load apps of a specific type 2012-03-30 14:39:07 +02:00
Robin Appelman
a07c6b1a2e optimizations for loadApps 2012-03-30 14:08:18 +02:00
Robin Appelman
7bc9fa765c optimizations for updateApps 2012-03-30 14:08:18 +02:00
Georg Ehrke
90286353e2 Merge branch 'master' into sabredav_1.6 2012-03-29 23:20:03 +02:00
Tom Needham
73eca66a89 Fix comments 2012-03-29 10:17:08 +00:00
Robin Appelman
60ba5508a4 add support for installing apps from a subfolder in the zip/tgz file 2012-03-29 00:11:29 +02:00
Robin Appelman
d6a9af3138 add support for installing apps from tgz 2012-03-29 00:07:28 +02:00
Robin Appelman
d8e9db207f add tempory folder utility to OC_Helper 2012-03-28 23:47:44 +02:00
Georg Ehrke
e5c009599d remove check for variable which was set one line above - bugfix for oc-324 2012-03-28 16:38:42 +02:00
Tom Needham
ef33219e4f import method returns each apps' import status 2012-03-27 21:21:14 +00:00
Tom Needham
31d268fe92 check for sqlite 2012-03-27 20:55:53 +00:00
Tom Needham
553f4533c0 look for migrate.php in appinfo folder 2012-03-27 20:45:37 +00:00
Tom Needham
b201e51528 Stop error on export 2012-03-27 20:43:44 +00:00
Tom Needham
c8acd4a594 Merge branch 'master' into migration 2012-03-27 20:19:38 +00:00
Georg Ehrke
536a3ecb42 Merge branch 'master' into sabredav_1.6 2012-03-27 20:54:16 +02:00
Arthur Schiwon
c92fc9bf65 return path of tmp file like filestorage/common does. Fixes broken folder-/multifile-download. 2012-03-27 02:24:52 +02:00
Arthur Schiwon
24bc639222 Do not use always the same name for download-zip to avoid collisions. 2012-03-27 01:19:34 +02:00
Arthur Schiwon
bcef775d6b Overwrite Download-ZIP if it already exists. We do not want to show alien content. 2012-03-27 01:18:38 +02:00
Robin Appelman
266699ddf9 fix square images not getting proper thumbnails 2012-03-27 00:42:15 +02:00
Robin Appelman
73c6db5c8e crop and resize in a single step when creating thumbnail
also so more explicit memory cleanup
2012-03-26 23:53:48 +02:00
Robin Appelman
0ba9332358 some more memory cleanup in OC_Image 2012-03-26 22:33:37 +02:00
Robin Appelman
0c19e44a61 some more memory cleanup in OC_Image 2012-03-26 22:28:51 +02:00
Georg Ehrke
ac0c5ba6da Merge branch 'master' into sabredav_1.6 2012-03-25 14:02:40 +02:00
Michael Gapczynski
d139e3c3cd Move Google Docs storage backend to files_remote app 2012-03-24 15:28:05 -04:00
Michael Gapczynski
26fcb35a89 Implement fopen() for Google Docs storage backend 2012-03-24 14:50:17 -04:00