diff options
author | Aleksander Machniak <alec@alec.pl> | 2013-08-08 14:15:30 +0200 |
---|---|---|
committer | Aleksander Machniak <alec@alec.pl> | 2013-08-08 14:15:30 +0200 |
commit | 8799df8ccdb09114b14742e0493a8ba401688fdf (patch) | |
tree | 409a1ab486023d2c23807a1b37be11ed809a3ff7 /program/steps/addressbook/show.inc | |
parent | bc94e296e74ab4a3313a3f807b0a5cc40f264879 (diff) |
Fix redundant SQL query on contact photo request after photo upload.
The query was also invalid in case of uploading photo in contact create form.
Move contact photo handling from show.inc into a separate file.
Diffstat (limited to 'program/steps/addressbook/show.inc')
-rw-r--r-- | program/steps/addressbook/show.inc | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/program/steps/addressbook/show.inc b/program/steps/addressbook/show.inc index 950764bb1..efab5e9e5 100644 --- a/program/steps/addressbook/show.inc +++ b/program/steps/addressbook/show.inc @@ -38,58 +38,6 @@ if ($cid && ($record = $CONTACTS->get_record($cid, true))) { // get address book name (for display) rcmail_set_sourcename($CONTACTS); -// return raw photo of the given contact -if ($RCMAIL->action == 'photo') { - // search for contact first - if (!$record && ($email = get_input_value('_email', RCUBE_INPUT_GPC))) { - foreach ($RCMAIL->get_address_sources() as $s) { - $abook = $RCMAIL->get_address_book($s['id']); - $result = $abook->search(array('email'), $email, 1, true, true, 'photo'); - while ($result && ($record = $result->iterate())) { - if ($record['photo']) - break 2; - } - } - } - - // read the referenced file - if (($file_id = get_input_value('_photo', RCUBE_INPUT_GPC)) && ($tempfile = $_SESSION['contacts']['files'][$file_id])) { - $tempfile = $RCMAIL->plugins->exec_hook('attachment_display', $tempfile); - if ($tempfile['status']) { - if ($tempfile['data']) - $data = $tempfile['data']; - else if ($tempfile['path']) - $data = file_get_contents($tempfile['path']); - } - } - else if ($record['photo']) { - $data = is_array($record['photo']) ? $record['photo'][0] : $record['photo']; - if (!preg_match('![^a-z0-9/=+-]!i', $data)) - $data = base64_decode($data, true); - } - - // let plugins do fancy things with contact photos - $plugin = $RCMAIL->plugins->exec_hook('contact_photo', array('record' => $record, 'email' => $email, 'data' => $data)); - - // redirect to url provided by a plugin - if ($plugin['url']) - $RCMAIL->output->redirect($plugin['url']); - else - $data = $plugin['data']; - - // deliver alt image - if (!$data && ($alt_img = get_input_value('_alt', RCUBE_INPUT_GPC)) && is_file($alt_img)) - $data = file_get_contents($alt_img); - - // cache for one day if requested by email - if (!$cid && $email) - $RCMAIL->output->future_expire_header(86400); - - header('Content-Type: ' . rc_image_content_type($data)); - echo $data ? $data : file_get_contents('program/resources/blank.gif'); - exit; -} - function rcmail_contact_head($attrib) { |