diff options
| author | thomasb <thomasb@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2012-03-31 12:25:48 +0000 |
|---|---|---|
| committer | thomasb <thomasb@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2012-03-31 12:25:48 +0000 |
| commit | e6d8f97bf2e0bbb4d95df0c4e030eb7ec6ef75a5 (patch) | |
| tree | 4f6fdadb51cbe1a2bb3b2b06c9bcabb0429d1a84 /plugins/database_attachments/database_attachments.php | |
| parent | 868c169e2a64c1d19a9b6bbcd98f268808dfd173 (diff) | |
Move plugins repository into roundcubemail root folder; svn:externals are not defined anymore
git-svn-id: https://svn.roundcube.net/trunk@6034 208e9e7b-5314-0410-a742-e7e81cd9613c
Diffstat (limited to 'plugins/database_attachments/database_attachments.php')
| -rw-r--r-- | plugins/database_attachments/database_attachments.php | 169 |
1 files changed, 0 insertions, 169 deletions
diff --git a/plugins/database_attachments/database_attachments.php b/plugins/database_attachments/database_attachments.php deleted file mode 100644 index 9a279f57e..000000000 --- a/plugins/database_attachments/database_attachments.php +++ /dev/null @@ -1,169 +0,0 @@ -<?php -/** - * Filesystem Attachments - * - * This plugin which provides database backed storage for temporary - * attachment file handling. The primary advantage of this plugin - * is its compatibility with round-robin dns multi-server roundcube - * installations. - * - * This plugin relies on the core filesystem_attachments plugin - * - * @author Ziba Scott <ziba@umich.edu> - * @author Aleksander Machniak <alec@alec.pl> - * @version @package_version@ - */ -require_once('plugins/filesystem_attachments/filesystem_attachments.php'); -class database_attachments extends filesystem_attachments -{ - - // A prefix for the cache key used in the session and in the key field of the cache table - private $cache_prefix = "db_attach"; - - /** - * Helper method to generate a unique key for the given attachment file - */ - private function _key($args) - { - $uname = $args['path'] ? $args['path'] : $args['name']; - return $this->cache_prefix . $args['group'] . md5(mktime() . $uname . $_SESSION['user_id']); - } - - /** - * Save a newly uploaded attachment - */ - function upload($args) - { - $args['status'] = false; - $rcmail = rcmail::get_instance(); - $key = $this->_key($args); - - $data = file_get_contents($args['path']); - - if ($data === false) - return $args; - - $data = base64_encode($data); - - $status = $rcmail->db->query( - "INSERT INTO ".get_table_name('cache')." - (created, user_id, cache_key, data) - VALUES (".$rcmail->db->now().", ?, ?, ?)", - $_SESSION['user_id'], - $key, - $data); - - if ($status) { - $args['id'] = $key; - $args['status'] = true; - unset($args['path']); - } - - return $args; - } - - /** - * Save an attachment from a non-upload source (draft or forward) - */ - function save($args) - { - $args['status'] = false; - $rcmail = rcmail::get_instance(); - - $key = $this->_key($args); - - if ($args['path']) { - $args['data'] = file_get_contents($args['path']); - - if ($args['data'] === false) - return $args; - } - - $data = base64_encode($args['data']); - - $status = $rcmail->db->query( - "INSERT INTO ".get_table_name('cache')." - (created, user_id, cache_key, data) - VALUES (".$rcmail->db->now().", ?, ?, ?)", - $_SESSION['user_id'], - $key, - $data); - - if ($status) { - $args['id'] = $key; - $args['status'] = true; - } - - return $args; - } - - /** - * Remove an attachment from storage - * This is triggered by the remove attachment button on the compose screen - */ - function remove($args) - { - $args['status'] = false; - $rcmail = rcmail::get_instance(); - $status = $rcmail->db->query( - "DELETE FROM ".get_table_name('cache')." - WHERE user_id=? - AND cache_key=?", - $_SESSION['user_id'], - $args['id']); - - if ($status) { - $args['status'] = true; - } - - return $args; - } - - /** - * When composing an html message, image attachments may be shown - * For this plugin, $this->get() will check the file and - * return it's contents - */ - function display($args) - { - return $this->get($args); - } - - /** - * When displaying or sending the attachment the file contents are fetched - * using this method. This is also called by the attachment_display hook. - */ - function get($args) - { - $rcmail = rcmail::get_instance(); - - $sql_result = $rcmail->db->query( - "SELECT cache_id, data - FROM ".get_table_name('cache')." - WHERE user_id=? - AND cache_key=?", - $_SESSION['user_id'], - $args['id']); - - if ($sql_arr = $rcmail->db->fetch_assoc($sql_result)) { - $args['data'] = base64_decode($sql_arr['data']); - $args['status'] = true; - } - - return $args; - } - - /** - * Delete all temp files associated with this user - */ - function cleanup($args) - { - $prefix = $this->cache_prefix . $args['group']; - $rcmail = rcmail::get_instance(); - $rcmail->db->query( - "DELETE FROM ".get_table_name('cache')." - WHERE user_id=? - AND cache_key like '{$prefix}%'", - $_SESSION['user_id']); - } -} |
