|
|
|
|
@ -1,23 +1,11 @@
|
|
|
|
|
<?php
|
|
|
|
|
/**
|
|
|
|
|
* ownCloud - Addressbook
|
|
|
|
|
*
|
|
|
|
|
* @author Jakob Sack
|
|
|
|
|
* @copyright 2011 Jakob Sack mail@jakobsack.de
|
|
|
|
|
*
|
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
|
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
|
|
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
|
|
* version 3 of the License, or any later version.
|
|
|
|
|
*
|
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
|
|
|
|
|
*
|
|
|
|
|
* You should have received a copy of the GNU Affero General Public
|
|
|
|
|
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
*
|
|
|
|
|
* Copyright (c) 2012 Thomas Tanghus <thomas@tanghus.net>
|
|
|
|
|
* Copyright (c) 2011, 2012 Bart Visscher <bartv@thisnet.nl>
|
|
|
|
|
* Copyright (c) 2011 Jakob Sack mail@jakobsack.de
|
|
|
|
|
* This file is licensed under the Affero General Public License version 3 or
|
|
|
|
|
* later.
|
|
|
|
|
* See the COPYING-README file.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
// Init owncloud
|
|
|
|
|
@ -29,67 +17,36 @@ $id = $_GET['id'];
|
|
|
|
|
if(isset($GET['refresh'])) {
|
|
|
|
|
header("Cache-Control: no-cache, no-store, must-revalidate");
|
|
|
|
|
}
|
|
|
|
|
$l10n = new OC_L10N('contacts');
|
|
|
|
|
|
|
|
|
|
$content = OC_Contacts_App::getContactVCard($id);
|
|
|
|
|
$contact = OC_Contacts_App::getContactVCard($id);
|
|
|
|
|
$image = new OC_Image();
|
|
|
|
|
// invalid vcard
|
|
|
|
|
if( is_null($content)){
|
|
|
|
|
$image->loadFromFile('img/person_large.png');
|
|
|
|
|
header('Content-Type: '.$image->mimeType());
|
|
|
|
|
$image();
|
|
|
|
|
//echo $l10n->t('This card is not RFC compatible.');
|
|
|
|
|
exit();
|
|
|
|
|
if( is_null($contact)) {
|
|
|
|
|
OC_Log::write('contacts','photo.php. The VCard for ID '.$id.' is not RFC compatible',OC_Log::ERROR);
|
|
|
|
|
} else {
|
|
|
|
|
// Photo :-)
|
|
|
|
|
foreach($content->children as $child){
|
|
|
|
|
if($child->name == 'PHOTO'){
|
|
|
|
|
$mime = 'image/jpeg';
|
|
|
|
|
foreach($child->parameters as $parameter){
|
|
|
|
|
if( $parameter->name == 'TYPE' ){
|
|
|
|
|
$mime = $parameter->value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if($image->loadFromBase64($child->value)) {
|
|
|
|
|
if($image->width() > 200 || $image->height() > 200) {
|
|
|
|
|
$image->resize(200);
|
|
|
|
|
}
|
|
|
|
|
header('Content-Type: '.$mime);
|
|
|
|
|
$image();
|
|
|
|
|
exit();
|
|
|
|
|
} else {
|
|
|
|
|
$image->loadFromFile('img/person_large.png');
|
|
|
|
|
header('Content-Type: '.$image->mimeType());
|
|
|
|
|
$image();
|
|
|
|
|
}
|
|
|
|
|
//$photo = base64_decode($child->value);
|
|
|
|
|
//header('Content-Type: '.$mime);
|
|
|
|
|
//header('Content-Length: ' . strlen($photo));
|
|
|
|
|
//echo $photo;
|
|
|
|
|
//exit();
|
|
|
|
|
}
|
|
|
|
|
if($image->loadFromBase64($contact->getAsString('PHOTO'))) {
|
|
|
|
|
// OK
|
|
|
|
|
header('ETag: '.md5($contact->getAsString('PHOTO')));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$image->loadFromFile('img/person_large.png');
|
|
|
|
|
header('Content-Type: '.$image->mimeType());
|
|
|
|
|
$image();
|
|
|
|
|
/*
|
|
|
|
|
// Logo :-/
|
|
|
|
|
foreach($content->children as $child){
|
|
|
|
|
if($child->name == 'PHOTO'){
|
|
|
|
|
$mime = 'image/jpeg';
|
|
|
|
|
foreach($child->parameters as $parameter){
|
|
|
|
|
if($parameter->name == 'TYPE'){
|
|
|
|
|
$mime = $parameter->value;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
// Logo :-/
|
|
|
|
|
if($image->loadFromBase64($contact->getAsString('LOGO'))) {
|
|
|
|
|
// OK
|
|
|
|
|
header('ETag: '.md5($contact->getAsString('LOGO')));
|
|
|
|
|
}
|
|
|
|
|
if ($image->valid()) {
|
|
|
|
|
$max_size = 200;
|
|
|
|
|
if($image->width() > $max_size ||
|
|
|
|
|
$image->height() > $max_size) {
|
|
|
|
|
$image->resize($max_size);
|
|
|
|
|
}
|
|
|
|
|
$photo = base64_decode($child->value());
|
|
|
|
|
header('Content-Type: '.$mime);
|
|
|
|
|
header('Content-Length: ' . strlen($photo));
|
|
|
|
|
echo $photo;
|
|
|
|
|
exit();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
*/
|
|
|
|
|
// Not found :-(
|
|
|
|
|
//echo $l10n->t('This card does not contain a photo.');
|
|
|
|
|
if (!$image->valid()) {
|
|
|
|
|
// Not found :-(
|
|
|
|
|
$image->loadFromFile('img/person_large.png');
|
|
|
|
|
}
|
|
|
|
|
header('Content-Type: '.$image->mimeType());
|
|
|
|
|
$image->show();
|
|
|
|
|
//echo OC_Contacts_App::$l10n->t('This card does not contain a photo.');
|
|
|
|
|
|