Function names
Update function names and corresponding function calls
This commit is contained in:
		
					parent
					
						
							
								54827e7fed
							
						
					
				
			
			
				commit
				
					
						0091d318e5
					
				
			
		
					 23 changed files with 668 additions and 535 deletions
				
			
		|  | @ -5,7 +5,6 @@ | ||||||
|  * |  * | ||||||
|  * @todo Automatically detect if incoming data is HTML or BBCode |  * @todo Automatically detect if incoming data is HTML or BBCode | ||||||
|  */ |  */ | ||||||
| 
 |  | ||||||
| use Friendica\App; | use Friendica\App; | ||||||
| use Friendica\Core\System; | use Friendica\Core\System; | ||||||
| use Friendica\Core\Config; | use Friendica\Core\Config; | ||||||
|  | @ -2377,7 +2376,7 @@ function api_get_attachments(&$body) | ||||||
| 	$attachments = array(); | 	$attachments = array(); | ||||||
| 
 | 
 | ||||||
| 	foreach ($images[1] as $image) { | 	foreach ($images[1] as $image) { | ||||||
| 		$imagedata = get_photo_info($image); | 		$imagedata = Photo::getPhotoInfo($image); | ||||||
| 
 | 
 | ||||||
| 		if ($imagedata) { | 		if ($imagedata) { | ||||||
| 			$attachments[] = array("url" => $image, "mimetype" => $imagedata["mime"], "size" => $imagedata["size"]); | 			$attachments[] = array("url" => $image, "mimetype" => $imagedata["mime"], "size" => $imagedata["size"]); | ||||||
|  | @ -2509,7 +2508,7 @@ function api_get_entitities(&$text, $bbcode) | ||||||
| 
 | 
 | ||||||
| 		$start = iconv_strpos($text, $url, $offset, "UTF-8"); | 		$start = iconv_strpos($text, $url, $offset, "UTF-8"); | ||||||
| 		if (!($start === false)) { | 		if (!($start === false)) { | ||||||
| 			$image = get_photo_info($url); | 			$image = Photo::getPhotoInfo($url); | ||||||
| 			if ($image) { | 			if ($image) { | ||||||
| 				// If image cache is activated, then use the following sizes:
 | 				// If image cache is activated, then use the following sizes:
 | ||||||
| 				// thumb  (150), small (340), medium (600) and large (1024)
 | 				// thumb  (150), small (340), medium (600) and large (1024)
 | ||||||
|  | @ -2517,19 +2516,19 @@ function api_get_entitities(&$text, $bbcode) | ||||||
| 					$media_url = proxy_url($url); | 					$media_url = proxy_url($url); | ||||||
| 
 | 
 | ||||||
| 					$sizes = array(); | 					$sizes = array(); | ||||||
| 					$scale = scale_image($image[0], $image[1], 150); | 					$scale = Photo::scaleImageTo($image[0], $image[1], 150); | ||||||
| 					$sizes["thumb"] = array("w" => $scale["width"], "h" => $scale["height"], "resize" => "fit"); | 					$sizes["thumb"] = array("w" => $scale["width"], "h" => $scale["height"], "resize" => "fit"); | ||||||
| 
 | 
 | ||||||
| 					if (($image[0] > 150) || ($image[1] > 150)) { | 					if (($image[0] > 150) || ($image[1] > 150)) { | ||||||
| 						$scale = scale_image($image[0], $image[1], 340); | 						$scale = Photo::scaleImageTo($image[0], $image[1], 340); | ||||||
| 						$sizes["small"] = array("w" => $scale["width"], "h" => $scale["height"], "resize" => "fit"); | 						$sizes["small"] = array("w" => $scale["width"], "h" => $scale["height"], "resize" => "fit"); | ||||||
| 					} | 					} | ||||||
| 
 | 
 | ||||||
| 					$scale = scale_image($image[0], $image[1], 600); | 					$scale = Photo::scaleImageTo($image[0], $image[1], 600); | ||||||
| 					$sizes["medium"] = array("w" => $scale["width"], "h" => $scale["height"], "resize" => "fit"); | 					$sizes["medium"] = array("w" => $scale["width"], "h" => $scale["height"], "resize" => "fit"); | ||||||
| 
 | 
 | ||||||
| 					if (($image[0] > 600) || ($image[1] > 600)) { | 					if (($image[0] > 600) || ($image[1] > 600)) { | ||||||
| 						$scale = scale_image($image[0], $image[1], 1024); | 						$scale = Photo::scaleImageTo($image[0], $image[1], 1024); | ||||||
| 						$sizes["large"] = array("w" => $scale["width"], "h" => $scale["height"], "resize" => "fit"); | 						$sizes["large"] = array("w" => $scale["width"], "h" => $scale["height"], "resize" => "fit"); | ||||||
| 					} | 					} | ||||||
| 				} else { | 				} else { | ||||||
|  | @ -3946,7 +3945,7 @@ function save_media_to_database($mediatype, $media, $type, $album, $allow_cid, $ | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if ($filetype == "") { | 	if ($filetype == "") { | ||||||
| 		$filetype=guess_image_type($filename); | 		$filetype=Photo::guessImageType($filename); | ||||||
| 	} | 	} | ||||||
| 	$imagedata = getimagesize($src); | 	$imagedata = getimagesize($src); | ||||||
| 	if ($imagedata) { | 	if ($imagedata) { | ||||||
|  | @ -3971,7 +3970,7 @@ function save_media_to_database($mediatype, $media, $type, $album, $allow_cid, $ | ||||||
| 	// create Photo instance with the data of the image
 | 	// create Photo instance with the data of the image
 | ||||||
| 	$imagedata = @file_get_contents($src); | 	$imagedata = @file_get_contents($src); | ||||||
| 	$ph = new Photo($imagedata, $filetype); | 	$ph = new Photo($imagedata, $filetype); | ||||||
| 	if (! $ph->is_valid()) { | 	if (! $ph->isValid()) { | ||||||
| 		throw new InternalServerErrorException("unable to process image data"); | 		throw new InternalServerErrorException("unable to process image data"); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -250,7 +250,7 @@ function new_contact($uid, $url, $interactive = false, $network = '') { | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// Update the avatar
 | 	// Update the avatar
 | ||||||
| 	update_contact_avatar($ret['photo'],$uid,$contact_id); | 	Photo::updateContactAvatar($ret['photo'], $uid, $contact_id); | ||||||
| 
 | 
 | ||||||
| 	// pull feed and consume it, which should subscribe to the hub.
 | 	// pull feed and consume it, which should subscribe to the hub.
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1690,7 +1690,7 @@ function new_follower($importer, $contact, $datarray, $item, $sharing = false) { | ||||||
| 		); | 		); | ||||||
| 		if (DBM::is_result($r)) { | 		if (DBM::is_result($r)) { | ||||||
| 			$contact_record = $r[0]; | 			$contact_record = $r[0]; | ||||||
| 			update_contact_avatar($photo, $importer["uid"], $contact_record["id"], true); | 			Photo::updateContactAvatar($photo, $importer["uid"], $contact_record["id"], true); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		/// @TODO Encapsulate this into a function/method
 | 		/// @TODO Encapsulate this into a function/method
 | ||||||
|  | @ -1877,7 +1877,7 @@ function fix_private_photos($s, $uid, $item = null, $cid = 0) { | ||||||
| 							$height = intval($match[2]); | 							$height = intval($match[2]); | ||||||
| 
 | 
 | ||||||
| 							$ph = new Photo($data, $type); | 							$ph = new Photo($data, $type); | ||||||
| 							if ($ph->is_valid()) { | 							if ($ph->isValid()) { | ||||||
| 								$ph->scaleImage(max($width, $height)); | 								$ph->scaleImage(max($width, $height)); | ||||||
| 								$data = $ph->imageString(); | 								$data = $ph->imageString(); | ||||||
| 								$type = $ph->getType(); | 								$type = $ph->getType(); | ||||||
|  |  | ||||||
|  | @ -710,11 +710,11 @@ function scale_external_images($srctext, $include_link = true, $scale_replace = | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			// guess mimetype from headers or filename
 | 			// guess mimetype from headers or filename
 | ||||||
| 			$type = guess_image_type($mtch[1], true); | 			$type = Photo::guessImageType($mtch[1], true); | ||||||
| 
 | 
 | ||||||
| 			if ($i) { | 			if ($i) { | ||||||
| 				$ph = new Photo($i, $type); | 				$ph = new Photo($i, $type); | ||||||
| 				if ($ph->is_valid()) { | 				if ($ph->isValid()) { | ||||||
| 					$orig_width = $ph->getWidth(); | 					$orig_width = $ph->getWidth(); | ||||||
| 					$orig_height = $ph->getHeight(); | 					$orig_height = $ph->getHeight(); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -51,7 +51,7 @@ function get_old_attachment_data($body) { | ||||||
| 
 | 
 | ||||||
| 			if (preg_match("/\[img\]([$URLSearchString]*)\[\/img\]/ism", $attacheddata, $matches)) { | 			if (preg_match("/\[img\]([$URLSearchString]*)\[\/img\]/ism", $attacheddata, $matches)) { | ||||||
| 
 | 
 | ||||||
| 				$picturedata = get_photo_info($matches[1]); | 				$picturedata = Photo::getPhotoInfo($matches[1]); | ||||||
| 
 | 
 | ||||||
| 				if (($picturedata[0] >= 500) && ($picturedata[0] >= $picturedata[1])) | 				if (($picturedata[0] >= 500) && ($picturedata[0] >= $picturedata[1])) | ||||||
| 					$post["image"] = $matches[1]; | 					$post["image"] = $matches[1]; | ||||||
|  | @ -221,7 +221,7 @@ function get_attached_data($body, $item = array()) { | ||||||
| 					$post["preview"] = $pictures[0][2]; | 					$post["preview"] = $pictures[0][2]; | ||||||
| 					$post["text"] = str_replace($pictures[0][0], "", $body); | 					$post["text"] = str_replace($pictures[0][0], "", $body); | ||||||
| 				} else { | 				} else { | ||||||
| 					$imgdata = get_photo_info($pictures[0][1]); | 					$imgdata = Photo::getPhotoInfo($pictures[0][1]); | ||||||
| 					if (substr($imgdata["mime"], 0, 6) == "image/") { | 					if (substr($imgdata["mime"], 0, 6) == "image/") { | ||||||
| 						$post["type"] = "photo"; | 						$post["type"] = "photo"; | ||||||
| 						$post["image"] = $pictures[0][1]; | 						$post["image"] = $pictures[0][1]; | ||||||
|  |  | ||||||
|  | @ -285,23 +285,22 @@ function create_user($arr) { | ||||||
| 		$photo = avatar_img($email); | 		$photo = avatar_img($email); | ||||||
| 
 | 
 | ||||||
| 	// unless there is no avatar-plugin loaded
 | 	// unless there is no avatar-plugin loaded
 | ||||||
| 	if(strlen($photo)) { | 	if (strlen($photo)) { | ||||||
| 		$photo_failure = false; | 		$photo_failure = false; | ||||||
| 
 | 
 | ||||||
| 		$filename = basename($photo); | 		$filename = basename($photo); | ||||||
| 		$img_str = fetch_url($photo,true); | 		$img_str = fetch_url($photo, true); | ||||||
| 		// guess mimetype from headers or filename
 | 		// guess mimetype from headers or filename
 | ||||||
| 		$type = guess_image_type($photo,true); | 		$type = Photo::guessImageType($photo, true); | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 		$img = new Photo($img_str, $type); | 		$img = new Photo($img_str, $type); | ||||||
| 		if($img->is_valid()) { | 		if ($img->isValid()) { | ||||||
| 
 |  | ||||||
| 			$img->scaleImageSquare(175); | 			$img->scaleImageSquare(175); | ||||||
| 
 | 
 | ||||||
| 			$hash = photo_new_resource(); | 			$hash = photo_new_resource(); | ||||||
| 
 | 
 | ||||||
| 			$r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 4 ); | 			$r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 4); | ||||||
| 
 | 
 | ||||||
| 			if ($r === false) { | 			if ($r === false) { | ||||||
| 				$photo_failure = true; | 				$photo_failure = true; | ||||||
|  |  | ||||||
|  | @ -311,7 +311,7 @@ function _contact_update_profile($contact_id) { | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	// Update the entry in the contact table
 | 	// Update the entry in the contact table
 | ||||||
| 	update_contact_avatar($data['photo'], local_user(), $contact_id, true); | 	Photo::updateContactAvatar($data['photo'], local_user(), $contact_id, true); | ||||||
| 
 | 
 | ||||||
| 	// Update the entry in the gcontact table
 | 	// Update the entry in the gcontact table
 | ||||||
| 	GlobalContact::updateFromProbe($data["url"]); | 	GlobalContact::updateFromProbe($data["url"]); | ||||||
|  |  | ||||||
|  | @ -1,5 +1,7 @@ | ||||||
| <?php | <?php | ||||||
| 
 | /** | ||||||
|  |  * @file mod/crepair.php | ||||||
|  |  */ | ||||||
| use Friendica\App; | use Friendica\App; | ||||||
| use Friendica\Core\Config; | use Friendica\Core\Config; | ||||||
| use Friendica\Database\DBM; | use Friendica\Database\DBM; | ||||||
|  | @ -85,17 +87,17 @@ function crepair_post(App $a) { | ||||||
| 		local_user() | 		local_user() | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	if($photo) { | 	if ($photo) { | ||||||
| 		logger('mod-crepair: updating photo from ' . $photo); | 		logger('mod-crepair: updating photo from ' . $photo); | ||||||
| 
 | 
 | ||||||
| 		update_contact_avatar($photo,local_user(),$contact['id']); | 		Photo::updateContactAvatar($photo, local_user(), $contact['id']); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if($r) | 	if ($r) { | ||||||
| 		info( t('Contact settings applied.') . EOL); | 		info(t('Contact settings applied.') . EOL); | ||||||
| 	else | 	} else { | ||||||
| 		notice( t('Contact update failed.') . EOL); | 		notice(t('Contact update failed.') . EOL); | ||||||
| 
 | 	} | ||||||
| 
 | 
 | ||||||
| 	return; | 	return; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -326,7 +326,7 @@ function dfrn_confirm_post(App $a, $handsfree = null) { | ||||||
| 		 * | 		 * | ||||||
| 		 */ | 		 */ | ||||||
| 
 | 
 | ||||||
| 		update_contact_avatar($contact['photo'],$uid,$contact_id); | 		Photo::updateContactAvatar($contact['photo'],$uid,$contact_id); | ||||||
| 
 | 
 | ||||||
| 		logger('dfrn_confirm: confirm - imported photos'); | 		logger('dfrn_confirm: confirm - imported photos'); | ||||||
| 
 | 
 | ||||||
|  | @ -675,7 +675,7 @@ function dfrn_confirm_post(App $a, $handsfree = null) { | ||||||
| 			$photo = System::baseUrl() . '/images/person-175.jpg'; | 			$photo = System::baseUrl() . '/images/person-175.jpg'; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		update_contact_avatar($photo,$local_uid,$dfrn_record); | 		Photo::updateContactAvatar($photo,$local_uid,$dfrn_record); | ||||||
| 
 | 
 | ||||||
| 		logger('dfrn_confirm: request - photos imported'); | 		logger('dfrn_confirm: request - photos imported'); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,5 +1,4 @@ | ||||||
| <?php | <?php | ||||||
| 
 |  | ||||||
| /** | /** | ||||||
|  * @file mod/dfrn_request.php |  * @file mod/dfrn_request.php | ||||||
|  * @brief Module: dfrn_request |  * @brief Module: dfrn_request | ||||||
|  | @ -11,23 +10,23 @@ | ||||||
|  *    You also find a graphic which describes the confirmation process at |  *    You also find a graphic which describes the confirmation process at | ||||||
|  *    https://github.com/friendica/friendica/blob/master/spec/dfrn2_contact_request.png |  *    https://github.com/friendica/friendica/blob/master/spec/dfrn2_contact_request.png | ||||||
|  */ |  */ | ||||||
| 
 |  | ||||||
| use Friendica\App; | use Friendica\App; | ||||||
| use Friendica\Core\Config; | use Friendica\Core\Config; | ||||||
| use Friendica\Core\PConfig; | use Friendica\Core\PConfig; | ||||||
| use Friendica\Core\System; | use Friendica\Core\System; | ||||||
| use Friendica\Database\DBM; | use Friendica\Database\DBM; | ||||||
| use Friendica\Network\Probe; | use Friendica\Network\Probe; | ||||||
|  | use Friendica\Object\Photo; | ||||||
| 
 | 
 | ||||||
| require_once 'include/enotify.php'; | require_once 'include/enotify.php'; | ||||||
| require_once 'include/group.php'; | require_once 'include/group.php'; | ||||||
| 
 | 
 | ||||||
| function dfrn_request_init(App $a) { | function dfrn_request_init(App $a) | ||||||
| 
 | { | ||||||
| 	if($a->argc > 1) | 	if ($a->argc > 1) | ||||||
| 		$which = $a->argv[1]; | 		$which = $a->argv[1]; | ||||||
| 
 | 
 | ||||||
| 	profile_load($a,$which); | 	profile_load($a, $which); | ||||||
| 	return; | 	return; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -196,7 +195,7 @@ function dfrn_request_post(App $a) { | ||||||
| 						group_add_member(local_user(), '', $r[0]['id'], $def_gid); | 						group_add_member(local_user(), '', $r[0]['id'], $def_gid); | ||||||
| 
 | 
 | ||||||
| 					if (isset($photo)) | 					if (isset($photo)) | ||||||
| 						update_contact_avatar($photo, local_user(), $r[0]["id"], true); | 						Photo::updateContactAvatar($photo, local_user(), $r[0]["id"], true); | ||||||
| 
 | 
 | ||||||
| 					$forwardurl = System::baseUrl()."/contacts/".$r[0]['id']; | 					$forwardurl = System::baseUrl()."/contacts/".$r[0]['id']; | ||||||
| 				} else { | 				} else { | ||||||
|  | @ -587,7 +586,7 @@ function dfrn_request_post(App $a) { | ||||||
| 					); | 					); | ||||||
| 					if (DBM::is_result($r)) { | 					if (DBM::is_result($r)) { | ||||||
| 						$contact_record = $r[0]; | 						$contact_record = $r[0]; | ||||||
| 						update_contact_avatar($photo, $uid, $contact_record["id"], true); | 						Photo::updateContactAvatar($photo, $uid, $contact_record["id"], true); | ||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -169,7 +169,7 @@ function photo_init(App $a) { | ||||||
| 	// Resize only if its not a GIF and it is supported by the library
 | 	// Resize only if its not a GIF and it is supported by the library
 | ||||||
| 	if (($mimetype != "image/gif") && in_array($mimetype, Photo::supportedTypes())) { | 	if (($mimetype != "image/gif") && in_array($mimetype, Photo::supportedTypes())) { | ||||||
| 		$ph = new Photo($data, $mimetype); | 		$ph = new Photo($data, $mimetype); | ||||||
| 		if ($ph->is_valid()) { | 		if ($ph->isValid()) { | ||||||
| 			if (isset($customres) && $customres > 0 && $customres < 500) { | 			if (isset($customres) && $customres > 0 && $customres < 500) { | ||||||
| 				$ph->scaleImageSquare($customres); | 				$ph->scaleImageSquare($customres); | ||||||
| 			} | 			} | ||||||
|  |  | ||||||
|  | @ -424,7 +424,7 @@ function photos_post(App $a) { | ||||||
| 			); | 			); | ||||||
| 			if (DBM::is_result($r)) { | 			if (DBM::is_result($r)) { | ||||||
| 				$ph = new Photo($r[0]['data'], $r[0]['type']); | 				$ph = new Photo($r[0]['data'], $r[0]['type']); | ||||||
| 				if ($ph->is_valid()) { | 				if ($ph->isValid()) { | ||||||
| 					$rotate_deg = ( (intval($_POST['rotate']) == 1) ? 270 : 90 ); | 					$rotate_deg = ( (intval($_POST['rotate']) == 1) ? 270 : 90 ); | ||||||
| 					$ph->rotate($rotate_deg); | 					$ph->rotate($rotate_deg); | ||||||
| 
 | 
 | ||||||
|  | @ -810,7 +810,7 @@ function photos_post(App $a) { | ||||||
| 		$type       = $_FILES['userfile']['type']; | 		$type       = $_FILES['userfile']['type']; | ||||||
| 	} | 	} | ||||||
| 	if ($type == "") { | 	if ($type == "") { | ||||||
| 		$type = guess_image_type($filename); | 		$type = Photo::guessImageType($filename); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	logger('photos: upload: received file: ' . $filename . ' as ' . $src . ' ('. $type . ') ' . $filesize . ' bytes', LOGGER_DEBUG); | 	logger('photos: upload: received file: ' . $filename . ' as ' . $src . ' ('. $type . ') ' . $filesize . ' bytes', LOGGER_DEBUG); | ||||||
|  | @ -839,7 +839,7 @@ function photos_post(App $a) { | ||||||
| 
 | 
 | ||||||
| 	$ph = new Photo($imagedata, $type); | 	$ph = new Photo($imagedata, $type); | ||||||
| 
 | 
 | ||||||
| 	if (! $ph->is_valid()) { | 	if (! $ph->isValid()) { | ||||||
| 		logger('mod/photos.php: photos_post(): unable to process image' , LOGGER_DEBUG); | 		logger('mod/photos.php: photos_post(): unable to process image' , LOGGER_DEBUG); | ||||||
| 		notice( t('Unable to process image.') . EOL ); | 		notice( t('Unable to process image.') . EOL ); | ||||||
| 		@unlink($src); | 		@unlink($src); | ||||||
|  |  | ||||||
|  | @ -73,7 +73,7 @@ function profile_photo_post(App $a) { | ||||||
| 			$base_image = $r[0]; | 			$base_image = $r[0]; | ||||||
| 
 | 
 | ||||||
| 			$im = new Photo($base_image['data'], $base_image['type']); | 			$im = new Photo($base_image['data'], $base_image['type']); | ||||||
| 			if($im->is_valid()) { | 			if ($im->isValid()) { | ||||||
| 				$im->cropImage(175,$srcX,$srcY,$srcW,$srcH); | 				$im->cropImage(175,$srcX,$srcY,$srcW,$srcH); | ||||||
| 
 | 
 | ||||||
| 				$r = $im->store(local_user(), 0, $base_image['resource-id'],$base_image['filename'], t('Profile Photos'), 4, $is_default_profile); | 				$r = $im->store(local_user(), 0, $base_image['resource-id'],$base_image['filename'], t('Profile Photos'), 4, $is_default_profile); | ||||||
|  | @ -151,13 +151,13 @@ function profile_photo_post(App $a) { | ||||||
| 	$filesize = intval($_FILES['userfile']['size']); | 	$filesize = intval($_FILES['userfile']['size']); | ||||||
| 	$filetype = $_FILES['userfile']['type']; | 	$filetype = $_FILES['userfile']['type']; | ||||||
| 	if ($filetype == "") { | 	if ($filetype == "") { | ||||||
| 		$filetype = guess_image_type($filename); | 		$filetype = Photo::guessImageType($filename); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	$maximagesize = Config::get('system','maximagesize'); | 	$maximagesize = Config::get('system', 'maximagesize'); | ||||||
| 
 | 
 | ||||||
| 	if (($maximagesize) && ($filesize > $maximagesize)) { | 	if (($maximagesize) && ($filesize > $maximagesize)) { | ||||||
| 		notice( sprintf(t('Image exceeds size limit of %s'), formatBytes($maximagesize)) . EOL); | 		notice(sprintf(t('Image exceeds size limit of %s'), formatBytes($maximagesize)) . EOL); | ||||||
| 		@unlink($src); | 		@unlink($src); | ||||||
| 		return; | 		return; | ||||||
| 	} | 	} | ||||||
|  | @ -165,8 +165,8 @@ function profile_photo_post(App $a) { | ||||||
| 	$imagedata = @file_get_contents($src); | 	$imagedata = @file_get_contents($src); | ||||||
| 	$ph = new Photo($imagedata, $filetype); | 	$ph = new Photo($imagedata, $filetype); | ||||||
| 
 | 
 | ||||||
| 	if (! $ph->is_valid()) { | 	if (! $ph->isValid()) { | ||||||
| 		notice( t('Unable to process image.') . EOL ); | 		notice(t('Unable to process image.') . EOL); | ||||||
| 		@unlink($src); | 		@unlink($src); | ||||||
| 		return; | 		return; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -131,7 +131,7 @@ function proxy_init(App $a) { | ||||||
| 			// reduce quality - if it isn't a GIF
 | 			// reduce quality - if it isn't a GIF
 | ||||||
| 			if ($mime != 'image/gif') { | 			if ($mime != 'image/gif') { | ||||||
| 				$img = new Photo($img_str, $mime); | 				$img = new Photo($img_str, $mime); | ||||||
| 				if ($img->is_valid()) { | 				if ($img->isValid()) { | ||||||
| 					$img_str = $img->imageString(); | 					$img_str = $img->imageString(); | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
|  | @ -175,7 +175,7 @@ function proxy_init(App $a) { | ||||||
| 			$cachefile = ''; // Clear the cachefile so that the dummy isn't stored
 | 			$cachefile = ''; // Clear the cachefile so that the dummy isn't stored
 | ||||||
| 			$valid = false; | 			$valid = false; | ||||||
| 			$img = new Photo($img_str, 'image/png'); | 			$img = new Photo($img_str, 'image/png'); | ||||||
| 			if ($img->is_valid()) { | 			if ($img->isValid()) { | ||||||
| 				$img->scaleImage(10); | 				$img->scaleImage(10); | ||||||
| 				$img_str = $img->imageString(); | 				$img_str = $img->imageString(); | ||||||
| 			} | 			} | ||||||
|  | @ -193,7 +193,7 @@ function proxy_init(App $a) { | ||||||
| 			dba::insert('photo', $fields); | 			dba::insert('photo', $fields); | ||||||
| 		} else { | 		} else { | ||||||
| 			$img = new Photo($img_str, $mime); | 			$img = new Photo($img_str, $mime); | ||||||
| 			if ($img->is_valid() && !$direct_cache && ($cachefile == '')) { | 			if ($img->isValid() && !$direct_cache && ($cachefile == '')) { | ||||||
| 				$img->store(0, 0, $urlhash, $_REQUEST['url'], '', 100); | 				$img->store(0, 0, $urlhash, $_REQUEST['url'], '', 100); | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
|  | @ -204,7 +204,7 @@ function proxy_init(App $a) { | ||||||
| 	// reduce quality - if it isn't a GIF
 | 	// reduce quality - if it isn't a GIF
 | ||||||
| 	if ($mime != 'image/gif') { | 	if ($mime != 'image/gif') { | ||||||
| 		$img = new Photo($img_str, $mime); | 		$img = new Photo($img_str, $mime); | ||||||
| 		if ($img->is_valid()) { | 		if ($img->isValid()) { | ||||||
| 			$img->scaleImage($size); | 			$img->scaleImage($size); | ||||||
| 			$img_str = $img->imageString(); | 			$img_str = $img->imageString(); | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|  | @ -162,7 +162,7 @@ function wall_upload_post(App $a, $desktopmode = true) { | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if ($filetype=="") { | 	if ($filetype=="") { | ||||||
| 		$filetype=guess_image_type($filename); | 		$filetype=Photo::guessImageType($filename); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// If there is a temp name, then do a manual check
 | 	// If there is a temp name, then do a manual check
 | ||||||
|  | @ -192,7 +192,7 @@ function wall_upload_post(App $a, $desktopmode = true) { | ||||||
| 	$imagedata = @file_get_contents($src); | 	$imagedata = @file_get_contents($src); | ||||||
| 	$ph = new Photo($imagedata, $filetype); | 	$ph = new Photo($imagedata, $filetype); | ||||||
| 
 | 
 | ||||||
| 	if (! $ph->is_valid()) { | 	if (! $ph->isValid()) { | ||||||
| 		$msg = t('Unable to process image.'); | 		$msg = t('Unable to process image.'); | ||||||
| 		if ($r_json) { | 		if ($r_json) { | ||||||
| 			echo json_encode(array('error'=>$msg)); | 			echo json_encode(array('error'=>$msg)); | ||||||
|  |  | ||||||
|  | @ -881,7 +881,7 @@ class GlobalContact | ||||||
| 			if (DBM::is_result($r)) { | 			if (DBM::is_result($r)) { | ||||||
| 				logger("Update public contact ".$r[0]["id"], LOGGER_DEBUG); | 				logger("Update public contact ".$r[0]["id"], LOGGER_DEBUG); | ||||||
| 
 | 
 | ||||||
| 				update_contact_avatar($contact["photo"], 0, $r[0]["id"]); | 				Photo::updateContactAvatar($contact["photo"], 0, $r[0]["id"]); | ||||||
| 
 | 
 | ||||||
| 				$fields = array('name', 'nick', 'addr', | 				$fields = array('name', 'nick', 'addr', | ||||||
| 						'network', 'bd', 'gender', | 						'network', 'bd', 'gender', | ||||||
|  |  | ||||||
|  | @ -644,7 +644,7 @@ class Contact extends BaseObject | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		update_contact_avatar($data["photo"], $uid, $contact_id); | 		Photo::updateContactAvatar($data["photo"], $uid, $contact_id); | ||||||
| 
 | 
 | ||||||
| 		$contact = dba::select('contact', array('url', 'nurl', 'addr', 'alias', 'name', 'nick', 'keywords', 'location', 'about', 'avatar-date'), array('id' => $contact_id), array('limit' => 1)); | 		$contact = dba::select('contact', array('url', 'nurl', 'addr', 'alias', 'name', 'nick', 'keywords', 'location', 'about', 'avatar-date'), array('id' => $contact_id), array('limit' => 1)); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -13,8 +13,11 @@ use Friendica\Database\DBM; | ||||||
| 
 | 
 | ||||||
| require_once "include/photos.php"; | require_once "include/photos.php"; | ||||||
| 
 | 
 | ||||||
| class Photo { | /** | ||||||
| 
 |  * Class to handle Photos | ||||||
|  |  */ | ||||||
|  | class Photo | ||||||
|  | { | ||||||
| 	private $image; | 	private $image; | ||||||
| 
 | 
 | ||||||
| 	/* | 	/* | ||||||
|  | @ -30,9 +33,9 @@ class Photo { | ||||||
| 	/** | 	/** | ||||||
| 	 * @brief supported mimetypes and corresponding file extensions | 	 * @brief supported mimetypes and corresponding file extensions | ||||||
| 	 */ | 	 */ | ||||||
| 	public static function supportedTypes() { | 	public static function supportedTypes() | ||||||
|  | 	{ | ||||||
| 		if (class_exists('Imagick')) { | 		if (class_exists('Imagick')) { | ||||||
| 
 |  | ||||||
| 			// Imagick::queryFormats won't help us a lot there...
 | 			// Imagick::queryFormats won't help us a lot there...
 | ||||||
| 			// At least, not yet, other parts of friendica uses this array
 | 			// At least, not yet, other parts of friendica uses this array
 | ||||||
| 			$t = array( | 			$t = array( | ||||||
|  | @ -51,27 +54,38 @@ class Photo { | ||||||
| 		return $t; | 		return $t; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	public function __construct($data, $type=null) | 	/** | ||||||
|  | 	 * @brief Constructor | ||||||
|  | 	 * @param object  $data data | ||||||
|  | 	 * @param boolean $type optional, default null | ||||||
|  | 	 * @return object | ||||||
|  | 	 */ | ||||||
|  | 	public function __construct($data, $type = null) | ||||||
| 	{ | 	{ | ||||||
| 		$this->imagick = class_exists('Imagick'); | 		$this->imagick = class_exists('Imagick'); | ||||||
| 		$this->types = static::supportedTypes(); | 		$this->types = static::supportedTypes(); | ||||||
| 		if (!array_key_exists($type, $this->types)){ | 		if (!array_key_exists($type, $this->types)) { | ||||||
| 			$type='image/jpeg'; | 			$type='image/jpeg'; | ||||||
| 		} | 		} | ||||||
| 		$this->type = $type; | 		$this->type = $type; | ||||||
| 
 | 
 | ||||||
| 		if ($this->is_imagick() && $this->load_data($data)) { | 		if ($this->isImagick() && $this->loadData($data)) { | ||||||
| 			return true; | 			return true; | ||||||
| 		} else { | 		} else { | ||||||
| 			// Failed to load with Imagick, fallback
 | 			// Failed to load with Imagick, fallback
 | ||||||
| 			$this->imagick = false; | 			$this->imagick = false; | ||||||
| 		} | 		} | ||||||
| 		return $this->load_data($data); | 		return $this->loadData($data); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	public function __destruct() { | 	/** | ||||||
|  | 	 * @brief Destructor | ||||||
|  | 	 * @return void | ||||||
|  | 	 */ | ||||||
|  | 	public function __destruct() | ||||||
|  | 	{ | ||||||
| 		if ($this->image) { | 		if ($this->image) { | ||||||
| 			if ($this->is_imagick()) { | 			if ($this->isImagick()) { | ||||||
| 				$this->image->clear(); | 				$this->image->clear(); | ||||||
| 				$this->image->destroy(); | 				$this->image->destroy(); | ||||||
| 				return; | 				return; | ||||||
|  | @ -82,7 +96,10 @@ class Photo { | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	public function is_imagick() | 	/** | ||||||
|  | 	 * @return boolean | ||||||
|  | 	 */ | ||||||
|  | 	public function isImagick() | ||||||
| 	{ | 	{ | ||||||
| 		return $this->imagick; | 		return $this->imagick; | ||||||
| 	} | 	} | ||||||
|  | @ -91,7 +108,8 @@ class Photo { | ||||||
| 	 * @brief Maps Mime types to Imagick formats | 	 * @brief Maps Mime types to Imagick formats | ||||||
| 	 * @return arr With with image formats (mime type as key) | 	 * @return arr With with image formats (mime type as key) | ||||||
| 	 */ | 	 */ | ||||||
| 	public function get_FormatsMap() { | 	public function getFormatsMap() | ||||||
|  | 	{ | ||||||
| 		$m = array( | 		$m = array( | ||||||
| 			'image/jpeg' => 'JPG', | 			'image/jpeg' => 'JPG', | ||||||
| 			'image/png' => 'PNG', | 			'image/png' => 'PNG', | ||||||
|  | @ -100,8 +118,13 @@ class Photo { | ||||||
| 		return $m; | 		return $m; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	private function load_data($data) { | 	/** | ||||||
| 		if ($this->is_imagick()) { | 	 * @param object $data data | ||||||
|  | 	 * @return boolean | ||||||
|  | 	 */ | ||||||
|  | 	private function loadData($data) | ||||||
|  | 	{ | ||||||
|  | 		if ($this->isImagick()) { | ||||||
| 			$this->image = new Imagick(); | 			$this->image = new Imagick(); | ||||||
| 			try { | 			try { | ||||||
| 				$this->image->readImageBlob($data); | 				$this->image->readImageBlob($data); | ||||||
|  | @ -113,7 +136,7 @@ class Photo { | ||||||
| 			/* | 			/* | ||||||
| 			 * Setup the image to the format it will be saved to | 			 * Setup the image to the format it will be saved to | ||||||
| 			 */ | 			 */ | ||||||
| 			$map = $this->get_FormatsMap(); | 			$map = $this->getFormatsMap(); | ||||||
| 			$format = $map[$type]; | 			$format = $map[$type]; | ||||||
| 			$this->image->setFormat($format); | 			$this->image->setFormat($format); | ||||||
| 
 | 
 | ||||||
|  | @ -123,7 +146,7 @@ class Photo { | ||||||
| 			/* | 			/* | ||||||
| 			 * setup the compression here, so we'll do it only once | 			 * setup the compression here, so we'll do it only once | ||||||
| 			 */ | 			 */ | ||||||
| 			switch($this->getType()){ | 			switch ($this->getType()) { | ||||||
| 				case "image/png": | 				case "image/png": | ||||||
| 					$quality = Config::get('system', 'png_quality'); | 					$quality = Config::get('system', 'png_quality'); | ||||||
| 					if ((! $quality) || ($quality > 9)) { | 					if ((! $quality) || ($quality > 9)) { | ||||||
|  | @ -171,41 +194,57 @@ class Photo { | ||||||
| 		return false; | 		return false; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	public function is_valid() { | 	/** | ||||||
| 		if ($this->is_imagick()) { | 	 * @return boolean | ||||||
|  | 	 */ | ||||||
|  | 	public function isValid() | ||||||
|  | 	{ | ||||||
|  | 		if ($this->isImagick()) { | ||||||
| 			return ($this->image !== false); | 			return ($this->image !== false); | ||||||
| 		} | 		} | ||||||
| 		return $this->valid; | 		return $this->valid; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	public function getWidth() { | 	/** | ||||||
| 		if (!$this->is_valid()) { | 	 * @return mixed | ||||||
|  | 	 */ | ||||||
|  | 	public function getWidth() | ||||||
|  | 	{ | ||||||
|  | 		if (!$this->isValid()) { | ||||||
| 			return false; | 			return false; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if ($this->is_imagick()) { | 		if ($this->isImagick()) { | ||||||
| 			return $this->image->getImageWidth(); | 			return $this->image->getImageWidth(); | ||||||
| 		} | 		} | ||||||
| 		return $this->width; | 		return $this->width; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	public function getHeight() { | 	/** | ||||||
| 		if (!$this->is_valid()) { | 	 * @return mixed | ||||||
|  | 	 */ | ||||||
|  | 	public function getHeight() | ||||||
|  | 	{ | ||||||
|  | 		if (!$this->isValid()) { | ||||||
| 			return false; | 			return false; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if ($this->is_imagick()) { | 		if ($this->isImagick()) { | ||||||
| 			return $this->image->getImageHeight(); | 			return $this->image->getImageHeight(); | ||||||
| 		} | 		} | ||||||
| 		return $this->height; | 		return $this->height; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	public function getImage() { | 	/** | ||||||
| 		if (!$this->is_valid()) { | 	 * @return mixed | ||||||
|  | 	 */ | ||||||
|  | 	public function getImage() | ||||||
|  | 	{ | ||||||
|  | 		if (!$this->isValid()) { | ||||||
| 			return false; | 			return false; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if ($this->is_imagick()) { | 		if ($this->isImagick()) { | ||||||
| 			/* Clean it */ | 			/* Clean it */ | ||||||
| 			$this->image = $this->image->deconstructImages(); | 			$this->image = $this->image->deconstructImages(); | ||||||
| 			return $this->image; | 			return $this->image; | ||||||
|  | @ -213,24 +252,37 @@ class Photo { | ||||||
| 		return $this->image; | 		return $this->image; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	public function getType() { | 	/** | ||||||
| 		if (!$this->is_valid()) { | 	 * @return mixed | ||||||
|  | 	 */ | ||||||
|  | 	public function getType() | ||||||
|  | 	{ | ||||||
|  | 		if (!$this->isValid()) { | ||||||
| 			return false; | 			return false; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		return $this->type; | 		return $this->type; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	public function getExt() { | 	/** | ||||||
| 		if (!$this->is_valid()) { | 	 * @return mixed | ||||||
|  | 	 */ | ||||||
|  | 	public function getExt() | ||||||
|  | 	{ | ||||||
|  | 		if (!$this->isValid()) { | ||||||
| 			return false; | 			return false; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		return $this->types[$this->getType()]; | 		return $this->types[$this->getType()]; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	public function scaleImage($max) { | 	/** | ||||||
| 		if (!$this->is_valid()) { | 	 * @param integer $max max dimension | ||||||
|  | 	 * @return mixed | ||||||
|  | 	 */ | ||||||
|  | 	public function scaleImage($max) | ||||||
|  | 	{ | ||||||
|  | 		if (!$this->isValid()) { | ||||||
| 			return false; | 			return false; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | @ -244,7 +296,6 @@ class Photo { | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if ($width > $max && $height > $max) { | 		if ($width > $max && $height > $max) { | ||||||
| 
 |  | ||||||
| 			// very tall image (greater than 16:9)
 | 			// very tall image (greater than 16:9)
 | ||||||
| 			// constrain the width - let the height float.
 | 			// constrain the width - let the height float.
 | ||||||
| 
 | 
 | ||||||
|  | @ -265,7 +316,6 @@ class Photo { | ||||||
| 				$dest_height = intval(($height * $max) / $width); | 				$dest_height = intval(($height * $max) / $width); | ||||||
| 			} else { | 			} else { | ||||||
| 				if ($height > $max) { | 				if ($height > $max) { | ||||||
| 
 |  | ||||||
| 					// very tall image (greater than 16:9)
 | 					// very tall image (greater than 16:9)
 | ||||||
| 					// but width is OK - don't do anything
 | 					// but width is OK - don't do anything
 | ||||||
| 
 | 
 | ||||||
|  | @ -284,7 +334,7 @@ class Photo { | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 		if ($this->is_imagick()) { | 		if ($this->isImagick()) { | ||||||
| 			/* | 			/* | ||||||
| 			 * If it is not animated, there will be only one iteration here, | 			 * If it is not animated, there will be only one iteration here, | ||||||
| 			 * so don't bother checking | 			 * so don't bother checking | ||||||
|  | @ -292,7 +342,6 @@ class Photo { | ||||||
| 			// Don't forget to go back to the first frame
 | 			// Don't forget to go back to the first frame
 | ||||||
| 			$this->image->setFirstIterator(); | 			$this->image->setFirstIterator(); | ||||||
| 			do { | 			do { | ||||||
| 
 |  | ||||||
| 				// FIXME - implement horizantal bias for scaling as in followin GD functions
 | 				// FIXME - implement horizantal bias for scaling as in followin GD functions
 | ||||||
| 				// to allow very tall images to be constrained only horizontally.
 | 				// to allow very tall images to be constrained only horizontally.
 | ||||||
| 
 | 
 | ||||||
|  | @ -322,12 +371,17 @@ class Photo { | ||||||
| 		$this->height = imagesy($this->image); | 		$this->height = imagesy($this->image); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	public function rotate($degrees) { | 	/** | ||||||
| 		if (!$this->is_valid()) { | 	 * @param integer $degrees degrees to rotate image | ||||||
|  | 	 * @return mixed | ||||||
|  | 	 */ | ||||||
|  | 	public function rotate($degrees) | ||||||
|  | 	{ | ||||||
|  | 		if (!$this->isValid()) { | ||||||
| 			return false; | 			return false; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if ($this->is_imagick()) { | 		if ($this->isImagick()) { | ||||||
| 			$this->image->setFirstIterator(); | 			$this->image->setFirstIterator(); | ||||||
| 			do { | 			do { | ||||||
| 				$this->image->rotateImage(new ImagickPixel(), -$degrees); // ImageMagick rotates in the opposite direction of imagerotate()
 | 				$this->image->rotateImage(new ImagickPixel(), -$degrees); // ImageMagick rotates in the opposite direction of imagerotate()
 | ||||||
|  | @ -336,17 +390,23 @@ class Photo { | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		// if script dies at this point check memory_limit setting in php.ini
 | 		// if script dies at this point check memory_limit setting in php.ini
 | ||||||
| 		$this->image  = imagerotate($this->image,$degrees,0); | 		$this->image  = imagerotate($this->image, $degrees, 0); | ||||||
| 		$this->width  = imagesx($this->image); | 		$this->width  = imagesx($this->image); | ||||||
| 		$this->height = imagesy($this->image); | 		$this->height = imagesy($this->image); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	public function flip($horiz = true, $vert = false) { | 	/** | ||||||
| 		if (!$this->is_valid()) { | 	 * @param boolean $horiz optional, default true | ||||||
|  | 	 * @param boolean $vert  optional, default false | ||||||
|  | 	 * @return mixed | ||||||
|  | 	 */ | ||||||
|  | 	public function flip($horiz = true, $vert = false) | ||||||
|  | 	{ | ||||||
|  | 		if (!$this->isValid()) { | ||||||
| 			return false; | 			return false; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if ($this->is_imagick()) { | 		if ($this->isImagick()) { | ||||||
| 			$this->image->setFirstIterator(); | 			$this->image->setFirstIterator(); | ||||||
| 			do { | 			do { | ||||||
| 				if ($horiz) { | 				if ($horiz) { | ||||||
|  | @ -375,8 +435,13 @@ class Photo { | ||||||
| 		$this->image = $flipped; | 		$this->image = $flipped; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	public function orient($filename) { | 	/** | ||||||
| 		if ($this->is_imagick()) { | 	 * @param string $filename filename | ||||||
|  | 	 * @return mixed | ||||||
|  | 	 */ | ||||||
|  | 	public function orient($filename) | ||||||
|  | 	{ | ||||||
|  | 		if ($this->isImagick()) { | ||||||
| 			// based off comment on http://php.net/manual/en/imagick.getimageorientation.php
 | 			// based off comment on http://php.net/manual/en/imagick.getimageorientation.php
 | ||||||
| 			$orientation = $this->image->getImageOrientation(); | 			$orientation = $this->image->getImageOrientation(); | ||||||
| 			switch ($orientation) { | 			switch ($orientation) { | ||||||
|  | @ -396,7 +461,7 @@ class Photo { | ||||||
| 		} | 		} | ||||||
| 		// based off comment on http://php.net/manual/en/function.imagerotate.php
 | 		// based off comment on http://php.net/manual/en/function.imagerotate.php
 | ||||||
| 
 | 
 | ||||||
| 		if (!$this->is_valid()) { | 		if (!$this->isValid()) { | ||||||
| 			return false; | 			return false; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | @ -404,15 +469,14 @@ class Photo { | ||||||
| 			return; | 			return; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		$exif = @exif_read_data($filename,null,true); | 		$exif = @exif_read_data($filename, null, true); | ||||||
| 		if (!$exif) { | 		if (!$exif) { | ||||||
| 			return; | 			return; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		$ort = $exif['IFD0']['Orientation']; | 		$ort = $exif['IFD0']['Orientation']; | ||||||
| 
 | 
 | ||||||
| 		switch($ort) | 		switch ($ort) { | ||||||
| 		{ |  | ||||||
| 			case 1: // nothing
 | 			case 1: // nothing
 | ||||||
| 				break; | 				break; | ||||||
| 
 | 
 | ||||||
|  | @ -449,17 +513,18 @@ class Photo { | ||||||
| 
 | 
 | ||||||
| 		//	logger('exif: ' . print_r($exif,true));
 | 		//	logger('exif: ' . print_r($exif,true));
 | ||||||
| 		return $exif; | 		return $exif; | ||||||
| 
 |  | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 
 | 	/** | ||||||
| 
 | 	 * @param integer $min minimum dimension | ||||||
| 	public function scaleImageUp($min) { | 	 * @return mixed | ||||||
| 		if (!$this->is_valid()) { | 	 */ | ||||||
|  | 	public function scaleImageUp($min) | ||||||
|  | 	{ | ||||||
|  | 		if (!$this->isValid()) { | ||||||
| 			return false; | 			return false; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| 		$width = $this->getWidth(); | 		$width = $this->getWidth(); | ||||||
| 		$height = $this->getHeight(); | 		$height = $this->getHeight(); | ||||||
| 
 | 
 | ||||||
|  | @ -492,7 +557,7 @@ class Photo { | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if ($this->is_imagick()) { | 		if ($this->isImagick()) { | ||||||
| 			return $this->scaleImage($dest_width, $dest_height); | 			return $this->scaleImage($dest_width, $dest_height); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | @ -511,14 +576,17 @@ class Photo { | ||||||
| 		$this->height = imagesy($this->image); | 		$this->height = imagesy($this->image); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 
 | 	/** | ||||||
| 
 | 	 * @param integer $dim dimension | ||||||
| 	public function scaleImageSquare($dim) { | 	 * @return mixed | ||||||
| 		if (!$this->is_valid()) { | 	 */ | ||||||
|  | 	public function scaleImageSquare($dim) | ||||||
|  | 	{ | ||||||
|  | 		if (!$this->isValid()) { | ||||||
| 			return false; | 			return false; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if ($this->is_imagick()) { | 		if ($this->isImagick()) { | ||||||
| 			$this->image->setFirstIterator(); | 			$this->image->setFirstIterator(); | ||||||
| 			do { | 			do { | ||||||
| 				$this->image->scaleImage($dim, $dim); | 				$this->image->scaleImage($dim, $dim); | ||||||
|  | @ -541,13 +609,21 @@ class Photo { | ||||||
| 		$this->height = imagesy($this->image); | 		$this->height = imagesy($this->image); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 
 | 	/** | ||||||
| 	public function cropImage($max, $x, $y, $w, $h) { | 	 * @param integer $max maximum | ||||||
| 		if (!$this->is_valid()) { | 	 * @param integer $x   x coordinate | ||||||
|  | 	 * @param integer $y   y coordinate | ||||||
|  | 	 * @param integer $w   width | ||||||
|  | 	 * @param integer $h   height | ||||||
|  | 	 * @return mixed | ||||||
|  | 	 */ | ||||||
|  | 	public function cropImage($max, $x, $y, $w, $h) | ||||||
|  | 	{ | ||||||
|  | 		if (!$this->isValid()) { | ||||||
| 			return false; | 			return false; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if ($this->is_imagick()) { | 		if ($this->isImagick()) { | ||||||
| 			$this->image->setFirstIterator(); | 			$this->image->setFirstIterator(); | ||||||
| 			do { | 			do { | ||||||
| 				$this->image->cropImage($w, $h, $x, $y); | 				$this->image->cropImage($w, $h, $x, $y); | ||||||
|  | @ -576,8 +652,13 @@ class Photo { | ||||||
| 		$this->height = imagesy($this->image); | 		$this->height = imagesy($this->image); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	public function saveImage($path) { | 	/** | ||||||
| 		if (!$this->is_valid()) { | 	 * @param string $path file path | ||||||
|  | 	 * @return mixed | ||||||
|  | 	 */ | ||||||
|  | 	public function saveImage($path) | ||||||
|  | 	{ | ||||||
|  | 		if (!$this->isValid()) { | ||||||
| 			return false; | 			return false; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | @ -590,12 +671,16 @@ class Photo { | ||||||
| 		$a->save_timestamp($stamp1, "file"); | 		$a->save_timestamp($stamp1, "file"); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	public function imageString() { | 	/** | ||||||
| 		if (!$this->is_valid()) { | 	 * @return mixed | ||||||
|  | 	 */ | ||||||
|  | 	public function imageString() | ||||||
|  | 	{ | ||||||
|  | 		if (!$this->isValid()) { | ||||||
| 			return false; | 			return false; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if ($this->is_imagick()) { | 		if ($this->isImagick()) { | ||||||
| 			/* Clean it */ | 			/* Clean it */ | ||||||
| 			$this->image = $this->image->deconstructImages(); | 			$this->image = $this->image->deconstructImages(); | ||||||
| 			$string = $this->image->getImagesBlob(); | 			$string = $this->image->getImagesBlob(); | ||||||
|  | @ -609,7 +694,7 @@ class Photo { | ||||||
| 		// Enable interlacing
 | 		// Enable interlacing
 | ||||||
| 		imageinterlace($this->image, true); | 		imageinterlace($this->image, true); | ||||||
| 
 | 
 | ||||||
| 		switch($this->getType()){ | 		switch ($this->getType()) { | ||||||
| 			case "image/png": | 			case "image/png": | ||||||
| 				$quality = Config::get('system', 'png_quality'); | 				$quality = Config::get('system', 'png_quality'); | ||||||
| 				if ((!$quality) || ($quality > 9)) { | 				if ((!$quality) || ($quality > 9)) { | ||||||
|  | @ -630,10 +715,23 @@ class Photo { | ||||||
| 		return $string; | 		return $string; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 
 | 	/** | ||||||
| 
 | 	 * @param integer $uid       uid | ||||||
| 	public function store($uid, $cid, $rid, $filename, $album, $scale, $profile = 0, $allow_cid = '', $allow_gid = '', $deny_cid = '', $deny_gid = '', $desc = '') { | 	 * @param integer $cid       cid | ||||||
| 
 | 	 * @param integer $rid       rid | ||||||
|  | 	 * @param string  $filename  filename | ||||||
|  | 	 * @param string  $album     album name | ||||||
|  | 	 * @param integer $scale     scale | ||||||
|  | 	 * @param integer $profile   optional, default = 0 | ||||||
|  | 	 * @param string  $allow_cid optional, default = '' | ||||||
|  | 	 * @param string  $allow_gid optional, default = '' | ||||||
|  | 	 * @param string  $deny_cid  optional, default = '' | ||||||
|  | 	 * @param string  $deny_gid  optional, default = '' | ||||||
|  | 	 * @param string  $desc      optional, default = '' | ||||||
|  | 	 * @return object | ||||||
|  | 	 */ | ||||||
|  | 	public function store($uid, $cid, $rid, $filename, $album, $scale, $profile = 0, $allow_cid = '', $allow_gid = '', $deny_cid = '', $deny_gid = '', $desc = '') | ||||||
|  | 	{ | ||||||
| 		$r = dba::select('photo', array('guid'), array("`resource-id` = ? AND `guid` != ?", $rid, ''), array('limit' => 1)); | 		$r = dba::select('photo', array('guid'), array("`resource-id` = ? AND `guid` != ?", $rid, ''), array('limit' => 1)); | ||||||
| 		if (DBM::is_result($r)) { | 		if (DBM::is_result($r)) { | ||||||
| 			$guid = $r['guid']; | 			$guid = $r['guid']; | ||||||
|  | @ -656,22 +754,23 @@ class Photo { | ||||||
| 
 | 
 | ||||||
| 		return $r; | 		return $r; | ||||||
| 	} | 	} | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
| 
 | 	/** | ||||||
| /** |  | ||||||
| 	 * Guess image mimetype from filename or from Content-Type header | 	 * Guess image mimetype from filename or from Content-Type header | ||||||
| 	 * | 	 * | ||||||
|  * @arg $filename string Image filename | 	 * @param string  $filename Image filename | ||||||
|  * @arg $fromcurl boolean Check Content-Type header from curl request | 	 * @param boolean $fromcurl Check Content-Type header from curl request | ||||||
|  | 	 * | ||||||
|  | 	 * @return object | ||||||
| 	 */ | 	 */ | ||||||
| function guess_image_type($filename, $fromcurl=false) { | 	public function guessImageType($filename, $fromcurl = false) | ||||||
| 	logger('Photo: guess_image_type: '.$filename . ($fromcurl?' from curl headers':''), LOGGER_DEBUG); | 	{ | ||||||
|  | 		logger('Photo: guessImageType: '.$filename . ($fromcurl?' from curl headers':''), LOGGER_DEBUG); | ||||||
| 		$type = null; | 		$type = null; | ||||||
| 		if ($fromcurl) { | 		if ($fromcurl) { | ||||||
| 			$a = get_app(); | 			$a = get_app(); | ||||||
| 			$headers=array(); | 			$headers=array(); | ||||||
| 		$h = explode("\n",$a->get_curl_headers()); | 			$h = explode("\n", $a->get_curl_headers()); | ||||||
| 			foreach ($h as $l) { | 			foreach ($h as $l) { | ||||||
| 				list($k,$v) = array_map("trim", explode(":", trim($l), 2)); | 				list($k,$v) = array_map("trim", explode(":", trim($l), 2)); | ||||||
| 				$headers[$k] = $v; | 				$headers[$k] = $v; | ||||||
|  | @ -679,7 +778,7 @@ function guess_image_type($filename, $fromcurl=false) { | ||||||
| 			if (array_key_exists('Content-Type', $headers)) | 			if (array_key_exists('Content-Type', $headers)) | ||||||
| 				$type = $headers['Content-Type']; | 				$type = $headers['Content-Type']; | ||||||
| 		} | 		} | ||||||
| 	if (is_null($type)){ | 		if (is_null($type)) { | ||||||
| 			// Guessing from extension? Isn't that... dangerous?
 | 			// Guessing from extension? Isn't that... dangerous?
 | ||||||
| 			if (class_exists('Imagick') && file_exists($filename) && is_readable($filename)) { | 			if (class_exists('Imagick') && file_exists($filename) && is_readable($filename)) { | ||||||
| 				/** | 				/** | ||||||
|  | @ -692,21 +791,20 @@ function guess_image_type($filename, $fromcurl=false) { | ||||||
| 				$image->setInterlaceScheme(Imagick::INTERLACE_PLANE); | 				$image->setInterlaceScheme(Imagick::INTERLACE_PLANE); | ||||||
| 			} else { | 			} else { | ||||||
| 				$ext = pathinfo($filename, PATHINFO_EXTENSION); | 				$ext = pathinfo($filename, PATHINFO_EXTENSION); | ||||||
| 			$types = Photo::supportedTypes(); | 				$types = $this->supportedTypes(); | ||||||
| 				$type = "image/jpeg"; | 				$type = "image/jpeg"; | ||||||
| 			foreach ($types as $m => $e){ | 				foreach ($types as $m => $e) { | ||||||
| 					if ($ext == $e) { | 					if ($ext == $e) { | ||||||
| 						$type = $m; | 						$type = $m; | ||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 	logger('Photo: guess_image_type: type='.$type, LOGGER_DEBUG); | 		logger('Photo: guessImageType: type='.$type, LOGGER_DEBUG); | ||||||
| 		return $type; | 		return $type; | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| } | 	/** | ||||||
| 
 |  | ||||||
| /** |  | ||||||
| 	 * @brief Updates the avatar links in a contact only if needed | 	 * @brief Updates the avatar links in a contact only if needed | ||||||
| 	 * | 	 * | ||||||
| 	 * @param string $avatar Link to avatar picture | 	 * @param string $avatar Link to avatar picture | ||||||
|  | @ -716,27 +814,31 @@ function guess_image_type($filename, $fromcurl=false) { | ||||||
| 	 * | 	 * | ||||||
| 	 * @return array Returns array of the different avatar sizes | 	 * @return array Returns array of the different avatar sizes | ||||||
| 	 */ | 	 */ | ||||||
| function update_contact_avatar($avatar, $uid, $cid, $force = false) { | 	public function updateContactAvatar($avatar, $uid, $cid, $force = false) | ||||||
| 	$r = q("SELECT `avatar`, `photo`, `thumb`, `micro`, `nurl` FROM `contact` WHERE `id` = %d LIMIT 1", intval($cid)); | 	{ | ||||||
|  | 		// Limit = 1 returns the row so no need for dba:inArray()
 | ||||||
|  | 		$r = dba::select('contact', array('avatar', 'photo', 'thumb', 'micro', 'nurl'), array('id' => $cid), array('limit' => 1)); | ||||||
| 		if (!DBM::is_result($r)) { | 		if (!DBM::is_result($r)) { | ||||||
| 			return false; | 			return false; | ||||||
| 		} else { | 		} else { | ||||||
| 		$data = array($r[0]["photo"], $r[0]["thumb"], $r[0]["micro"]); | 			$data = array($r["photo"], $r["thumb"], $r["micro"]); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 	if (($r[0]["avatar"] != $avatar) || $force) { | 		if (($r["avatar"] != $avatar) || $force) { | ||||||
| 		$photos = import_profile_photo($avatar, $uid, $cid, true); | 			$photos = $this->importProfilePhoto($avatar, $uid, $cid, true); | ||||||
| 
 | 
 | ||||||
| 			if ($photos) { | 			if ($photos) { | ||||||
| 			q("UPDATE `contact` SET `avatar` = '%s', `photo` = '%s', `thumb` = '%s', `micro` = '%s', `avatar-date` = '%s' WHERE `id` = %d", | 				dba::update( | ||||||
| 				dbesc($avatar), dbesc($photos[0]), dbesc($photos[1]), dbesc($photos[2]), | 					'contact', | ||||||
| 				dbesc(datetime_convert()), intval($cid)); | 					array('avatar' => $avatar, 'photo' => $photos[0], 'thumb' => $photos[1], 'micro' => $photos[2], 'avatar-date' => datetime_convert()), | ||||||
|  | 					array('id' => $cid) | ||||||
|  | 				); | ||||||
| 
 | 
 | ||||||
| 				// Update the public contact (contact id = 0)
 | 				// Update the public contact (contact id = 0)
 | ||||||
| 				if ($uid != 0) { | 				if ($uid != 0) { | ||||||
| 					$pcontact = dba::select('contact', array('id'), array('nurl' => $r[0]['nurl']), array('limit' => 1)); | 					$pcontact = dba::select('contact', array('id'), array('nurl' => $r[0]['nurl']), array('limit' => 1)); | ||||||
| 					if (DBM::is_result($pcontact)) { | 					if (DBM::is_result($pcontact)) { | ||||||
| 					update_contact_avatar($avatar, 0, $pcontact['id'], $force); | 						$this->updateContactAvatar($avatar, 0, $pcontact['id'], $force); | ||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
| 
 | 
 | ||||||
|  | @ -745,16 +847,26 @@ function update_contact_avatar($avatar, $uid, $cid, $force = false) { | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		return $data; | 		return $data; | ||||||
| } | 	} | ||||||
| 
 | 
 | ||||||
| function import_profile_photo($photo, $uid, $cid, $quit_on_error = false) { | 	/** | ||||||
| 
 | 	 * @param string  $photo         photo | ||||||
| 	$r = q("SELECT `resource-id` FROM `photo` WHERE `uid` = %d AND `contact-id` = %d AND `scale` = 4 AND `album` = 'Contact Photos' LIMIT 1", | 	 * @param integer $uid           user id | ||||||
| 		intval($uid), | 	 * @param integer $cid           contact id | ||||||
| 		intval($cid) | 	 * @param boolean $quit_on_error optional, default false | ||||||
|  | 	 * @return array | ||||||
|  | 	 */ | ||||||
|  | 	private function importProfilePhoto($photo, $uid, $cid, $quit_on_error = false) | ||||||
|  | 	{ | ||||||
|  | 		$r = dba::select( | ||||||
|  | 			'photo', | ||||||
|  | 			array('resource-id'), | ||||||
|  | 			array('uid' => $uid, 'contact-id' => $cid, 'scale' => 4, 'album' => 'Contact Photos'), | ||||||
|  | 			array('limit' => 1) | ||||||
| 		); | 		); | ||||||
| 	if (DBM::is_result($r) && strlen($r[0]['resource-id'])) { | 
 | ||||||
| 		$hash = $r[0]['resource-id']; | 		if (DBM::is_result($r) && strlen($r['resource-id'])) { | ||||||
|  | 			$hash = $r['resource-id']; | ||||||
| 		} else { | 		} else { | ||||||
| 			$hash = photo_new_resource(); | 			$hash = photo_new_resource(); | ||||||
| 		} | 		} | ||||||
|  | @ -768,23 +880,24 @@ function import_profile_photo($photo, $uid, $cid, $quit_on_error = false) { | ||||||
| 			return false; | 			return false; | ||||||
| 		} | 		} | ||||||
| 	 | 	 | ||||||
| 	$type = guess_image_type($photo, true); | 		$type = $this->guessImageType($photo, true); | ||||||
| 		$img = new Photo($img_str, $type); | 		$img = new Photo($img_str, $type); | ||||||
| 	if ($img->is_valid()) { | 		if ($img->isValid()) { | ||||||
| 
 |  | ||||||
| 			$img->scaleImageSquare(175); | 			$img->scaleImageSquare(175); | ||||||
| 	 | 	 | ||||||
| 			$r = $img->store($uid, $cid, $hash, $filename, 'Contact Photos', 4); | 			$r = $img->store($uid, $cid, $hash, $filename, 'Contact Photos', 4); | ||||||
| 	 | 	 | ||||||
| 		if ($r === false) | 			if ($r === false) { | ||||||
| 				$photo_failure = true; | 				$photo_failure = true; | ||||||
|  | 			} | ||||||
| 	 | 	 | ||||||
| 			$img->scaleImage(80); | 			$img->scaleImage(80); | ||||||
| 	 | 	 | ||||||
| 			$r = $img->store($uid, $cid, $hash, $filename, 'Contact Photos', 5); | 			$r = $img->store($uid, $cid, $hash, $filename, 'Contact Photos', 5); | ||||||
| 	 | 	 | ||||||
| 		if ($r === false) | 			if ($r === false) { | ||||||
| 				$photo_failure = true; | 				$photo_failure = true; | ||||||
|  | 			} | ||||||
| 	 | 	 | ||||||
| 			$img->scaleImage(48); | 			$img->scaleImage(48); | ||||||
| 	 | 	 | ||||||
|  | @ -832,11 +945,15 @@ function import_profile_photo($photo, $uid, $cid, $quit_on_error = false) { | ||||||
| 			$micro = System::baseUrl() . '/images/person-48.jpg'; | 			$micro = System::baseUrl() . '/images/person-48.jpg'; | ||||||
| 		} | 		} | ||||||
| 	 | 	 | ||||||
| 	return(array($photo,$thumb,$micro)); | 		return(array($photo, $thumb, $micro)); | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| } | 	/** | ||||||
| 
 | 	 * @param string $url url | ||||||
| function get_photo_info($url) { | 	 * @return object | ||||||
|  | 	 */ | ||||||
|  | 	public function getPhotoInfo($url) | ||||||
|  | 	{ | ||||||
| 		$data = array(); | 		$data = array(); | ||||||
| 	 | 	 | ||||||
| 		$data = Cache::get($url); | 		$data = Cache::get($url); | ||||||
|  | @ -867,10 +984,16 @@ function get_photo_info($url) { | ||||||
| 		} | 		} | ||||||
| 	 | 	 | ||||||
| 		return $data; | 		return $data; | ||||||
| } | 	} | ||||||
| 
 |  | ||||||
| function scale_image($width, $height, $max) { |  | ||||||
| 
 | 
 | ||||||
|  | 	/** | ||||||
|  | 	 * @param integer $width  width | ||||||
|  | 	 * @param integer $height height | ||||||
|  | 	 * @param integer $max    max | ||||||
|  | 	 * @return array | ||||||
|  | 	 */ | ||||||
|  | 	public function scaleImageTo($width, $height, $max) | ||||||
|  | 	{ | ||||||
| 		$dest_width = $dest_height = 0; | 		$dest_width = $dest_height = 0; | ||||||
| 	 | 	 | ||||||
| 		if ((!$width) || (!$height)) { | 		if ((!$width) || (!$height)) { | ||||||
|  | @ -878,7 +1001,6 @@ function scale_image($width, $height, $max) { | ||||||
| 		} | 		} | ||||||
| 	 | 	 | ||||||
| 		if ($width > $max && $height > $max) { | 		if ($width > $max && $height > $max) { | ||||||
| 
 |  | ||||||
| 			// very tall image (greater than 16:9)
 | 			// very tall image (greater than 16:9)
 | ||||||
| 			// constrain the width - let the height float.
 | 			// constrain the width - let the height float.
 | ||||||
| 	 | 	 | ||||||
|  | @ -899,7 +1021,6 @@ function scale_image($width, $height, $max) { | ||||||
| 				$dest_height = intval(($height * $max) / $width); | 				$dest_height = intval(($height * $max) / $width); | ||||||
| 			} else { | 			} else { | ||||||
| 				if ($height > $max) { | 				if ($height > $max) { | ||||||
| 
 |  | ||||||
| 					// very tall image (greater than 16:9)
 | 					// very tall image (greater than 16:9)
 | ||||||
| 					// but width is OK - don't do anything
 | 					// but width is OK - don't do anything
 | ||||||
| 	 | 	 | ||||||
|  | @ -917,12 +1038,23 @@ function scale_image($width, $height, $max) { | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		return array("width" => $dest_width, "height" => $dest_height); | 		return array("width" => $dest_width, "height" => $dest_height); | ||||||
| } | 	} | ||||||
| 
 | 
 | ||||||
| function store_photo(App $a, $uid, $imagedata = "", $url = "") { | 	/** | ||||||
| 	$r = q("SELECT `user`.`nickname`, `user`.`page-flags`, `contact`.`id` FROM `user` INNER JOIN `contact` on `user`.`uid` = `contact`.`uid`
 | 	 * @brief This function doesn't seem to be used | ||||||
|  | 	 * @param object  $a         App | ||||||
|  | 	 * @param integer $uid       user id | ||||||
|  | 	 * @param string  $imagedata optional, default empty | ||||||
|  | 	 * @param string  $url       optional, default empty | ||||||
|  | 	 * @return array | ||||||
|  | 	 */ | ||||||
|  | 	private function storePhoto(App $a, $uid, $imagedata = "", $url = "") | ||||||
|  | 	{ | ||||||
|  | 		$r = q( | ||||||
|  | 			"SELECT `user`.`nickname`, `user`.`page-flags`, `contact`.`id` FROM `user` INNER JOIN `contact` on `user`.`uid` = `contact`.`uid`
 | ||||||
| 			WHERE `user`.`uid` = %d AND `user`.`blocked` = 0 AND `contact`.`self` = 1 LIMIT 1",
 | 			WHERE `user`.`uid` = %d AND `user`.`blocked` = 0 AND `contact`.`self` = 1 LIMIT 1",
 | ||||||
| 		intval($uid)); | 			intval($uid) | ||||||
|  | 		); | ||||||
| 	 | 	 | ||||||
| 		if (!DBM::is_result($r)) { | 		if (!DBM::is_result($r)) { | ||||||
| 			logger("Can't detect user data for uid ".$uid, LOGGER_DEBUG); | 			logger("Can't detect user data for uid ".$uid, LOGGER_DEBUG); | ||||||
|  | @ -969,7 +1101,7 @@ function store_photo(App $a, $uid, $imagedata = "", $url = "") { | ||||||
| 	 | 	 | ||||||
| 		$ph = new Photo($imagedata, $data["mime"]); | 		$ph = new Photo($imagedata, $data["mime"]); | ||||||
| 	 | 	 | ||||||
| 	if (!$ph->is_valid()) { | 		if (!$ph->isValid()) { | ||||||
| 			unlink($tempfile); | 			unlink($tempfile); | ||||||
| 			logger("Picture is no valid picture", LOGGER_DEBUG); | 			logger("Picture is no valid picture", LOGGER_DEBUG); | ||||||
| 			return(array()); | 			return(array()); | ||||||
|  | @ -1069,4 +1201,5 @@ function store_photo(App $a, $uid, $imagedata = "", $url = "") { | ||||||
| 		} | 		} | ||||||
| 	 | 	 | ||||||
| 		return($image); | 		return($image); | ||||||
|  | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -353,7 +353,7 @@ class ParseUrl | ||||||
| 				} | 				} | ||||||
| 
 | 
 | ||||||
| 				$src = self::completeUrl($attr["src"], $url); | 				$src = self::completeUrl($attr["src"], $url); | ||||||
| 				$photodata = get_photo_info($src); | 				$photodata = Photo::getPhotoInfo($src); | ||||||
| 
 | 
 | ||||||
| 				if (($photodata) && ($photodata[0] > 150) && ($photodata[1] > 150)) { | 				if (($photodata) && ($photodata[0] > 150) && ($photodata[1] > 150)) { | ||||||
| 					if ($photodata[0] > 300) { | 					if ($photodata[0] > 300) { | ||||||
|  | @ -374,7 +374,7 @@ class ParseUrl | ||||||
| 
 | 
 | ||||||
| 			unset($siteinfo["image"]); | 			unset($siteinfo["image"]); | ||||||
| 
 | 
 | ||||||
| 			$photodata = get_photo_info($src); | 			$photodata = Photo::getPhotoInfo($src); | ||||||
| 
 | 
 | ||||||
| 			if (($photodata) && ($photodata[0] > 10) && ($photodata[1] > 10)) { | 			if (($photodata) && ($photodata[0] > 10) && ($photodata[1] > 10)) { | ||||||
| 				$siteinfo["images"][] = array("src" => $src, | 				$siteinfo["images"][] = array("src" => $src, | ||||||
|  |  | ||||||
|  | @ -15,6 +15,7 @@ use Friendica\Core\Worker; | ||||||
| use Friendica\Database\DBM; | use Friendica\Database\DBM; | ||||||
| use Friendica\Model\GlobalContact; | use Friendica\Model\GlobalContact; | ||||||
| use Friendica\Object\Contact; | use Friendica\Object\Contact; | ||||||
|  | use Friendica\Object\Photo; | ||||||
| use Friendica\Object\Profile; | use Friendica\Object\Profile; | ||||||
| use Friendica\Protocol\OStatus; | use Friendica\Protocol\OStatus; | ||||||
| use Friendica\Util\XML; | use Friendica\Util\XML; | ||||||
|  | @ -1659,7 +1660,7 @@ class DFRN | ||||||
| 				); | 				); | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			update_contact_avatar( | 			Photo::updateContactAvatar( | ||||||
| 				$author["avatar"], | 				$author["avatar"], | ||||||
| 				$importer["uid"], | 				$importer["uid"], | ||||||
| 				$contact["id"], | 				$contact["id"], | ||||||
|  | @ -2034,7 +2035,7 @@ class DFRN | ||||||
| 			dbesc(normalise_link($old["url"])) | 			dbesc(normalise_link($old["url"])) | ||||||
| 		); | 		); | ||||||
| 
 | 
 | ||||||
| 		update_contact_avatar($relocate["avatar"], $importer["importer_uid"], $importer["id"], true); | 		Photo::updateContactAvatar($relocate["avatar"], $importer["importer_uid"], $importer["id"], true); | ||||||
| 
 | 
 | ||||||
| 		if ($x === false) { | 		if ($x === false) { | ||||||
| 			return false; | 			return false; | ||||||
|  |  | ||||||
|  | @ -2211,7 +2211,7 @@ class Diaspora | ||||||
| 			$image_url = "http://".$handle_parts[1].$image_url; | 			$image_url = "http://".$handle_parts[1].$image_url; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		update_contact_avatar($image_url, $importer["uid"], $contact["id"]); | 		Photo::updateContactAvatar($image_url, $importer["uid"], $contact["id"]); | ||||||
| 
 | 
 | ||||||
| 		// Generic birthday. We don't know the timezone. The year is irrelevant.
 | 		// Generic birthday. We don't know the timezone. The year is irrelevant.
 | ||||||
| 
 | 
 | ||||||
|  | @ -2471,7 +2471,7 @@ class Diaspora | ||||||
| 			group_add_member($importer["uid"], "", $contact_record["id"], $def_gid); | 			group_add_member($importer["uid"], "", $contact_record["id"], $def_gid); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		update_contact_avatar($ret["photo"], $importer['uid'], $contact_record["id"], true); | 		Photo::updateContactAvatar($ret["photo"], $importer['uid'], $contact_record["id"], true); | ||||||
| 
 | 
 | ||||||
| 		if ($importer["page-flags"] == PAGE_NORMAL) { | 		if ($importer["page-flags"] == PAGE_NORMAL) { | ||||||
| 			logger("Sending intra message for author ".$author.".", LOGGER_DEBUG); | 			logger("Sending intra message for author ".$author.".", LOGGER_DEBUG); | ||||||
|  | @ -2494,7 +2494,7 @@ class Diaspora | ||||||
| 
 | 
 | ||||||
| 			logger("Does an automatic friend approval for author ".$author.".", LOGGER_DEBUG); | 			logger("Does an automatic friend approval for author ".$author.".", LOGGER_DEBUG); | ||||||
| 
 | 
 | ||||||
| 			update_contact_avatar($contact_record["photo"], $importer["uid"], $contact_record["id"]); | 			Photo::updateContactAvatar($contact_record["photo"], $importer["uid"], $contact_record["id"]); | ||||||
| 
 | 
 | ||||||
| 			// technically they are sharing with us (CONTACT_IS_SHARING),
 | 			// technically they are sharing with us (CONTACT_IS_SHARING),
 | ||||||
| 			// but if our page-type is PAGE_COMMUNITY or PAGE_SOAPBOX
 | 			// but if our page-type is PAGE_COMMUNITY or PAGE_SOAPBOX
 | ||||||
|  |  | ||||||
|  | @ -203,7 +203,7 @@ class OStatus | ||||||
| 
 | 
 | ||||||
| 			if (!empty($author["author-avatar"]) && ($author["author-avatar"] != $current['avatar'])) { | 			if (!empty($author["author-avatar"]) && ($author["author-avatar"] != $current['avatar'])) { | ||||||
| 				logger("Update profile picture for contact ".$contact["id"], LOGGER_DEBUG); | 				logger("Update profile picture for contact ".$contact["id"], LOGGER_DEBUG); | ||||||
| 				update_contact_avatar($author["author-avatar"], $importer["uid"], $contact["id"]); | 				Photo::updateContactAvatar($author["author-avatar"], $importer["uid"], $contact["id"]); | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			// Ensure that we are having this contact (with uid=0)
 | 			// Ensure that we are having this contact (with uid=0)
 | ||||||
|  | @ -223,7 +223,7 @@ class OStatus | ||||||
| 				dba::update('contact', $fields, array('id' => $cid), $old_contact); | 				dba::update('contact', $fields, array('id' => $cid), $old_contact); | ||||||
| 
 | 
 | ||||||
| 				// Update the avatar
 | 				// Update the avatar
 | ||||||
| 				update_contact_avatar($author["author-avatar"], 0, $cid); | 				Photo::updateContactAvatar($author["author-avatar"], 0, $cid); | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			$contact["generation"] = 2; | 			$contact["generation"] = 2; | ||||||
|  | @ -1326,7 +1326,7 @@ class OStatus | ||||||
| 
 | 
 | ||||||
| 		switch ($siteinfo["type"]) { | 		switch ($siteinfo["type"]) { | ||||||
| 			case 'photo': | 			case 'photo': | ||||||
| 				$imgdata = get_photo_info($siteinfo["image"]); | 				$imgdata = Photo::getPhotoInfo($siteinfo["image"]); | ||||||
| 				$attributes = array("rel" => "enclosure", | 				$attributes = array("rel" => "enclosure", | ||||||
| 						"href" => $siteinfo["image"], | 						"href" => $siteinfo["image"], | ||||||
| 						"type" => $imgdata["mime"], | 						"type" => $imgdata["mime"], | ||||||
|  | @ -1346,7 +1346,7 @@ class OStatus | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if (!Config::get('system', 'ostatus_not_attach_preview') && ($siteinfo["type"] != "photo") && isset($siteinfo["image"])) { | 		if (!Config::get('system', 'ostatus_not_attach_preview') && ($siteinfo["type"] != "photo") && isset($siteinfo["image"])) { | ||||||
| 			$imgdata = get_photo_info($siteinfo["image"]); | 			$imgdata = Photo::getPhotoInfo($siteinfo["image"]); | ||||||
| 			$attributes = array("rel" => "enclosure", | 			$attributes = array("rel" => "enclosure", | ||||||
| 					"href" => $siteinfo["image"], | 					"href" => $siteinfo["image"], | ||||||
| 					"type" => $imgdata["mime"], | 					"type" => $imgdata["mime"], | ||||||
|  |  | ||||||
|  | @ -154,7 +154,7 @@ function update_1014() | ||||||
| 	if (DBM::is_result($r)) { | 	if (DBM::is_result($r)) { | ||||||
| 		foreach ($r as $rr) { | 		foreach ($r as $rr) { | ||||||
| 			$ph = new Photo($rr['data']); | 			$ph = new Photo($rr['data']); | ||||||
| 			if ($ph->is_valid()) { | 			if ($ph->isValid()) { | ||||||
| 				$ph->scaleImage(48); | 				$ph->scaleImage(48); | ||||||
| 				$ph->store($rr['uid'],$rr['contact-id'],$rr['resource-id'],$rr['filename'],$rr['album'],6,(($rr['profile']) ? 1 : 0)); | 				$ph->store($rr['uid'],$rr['contact-id'],$rr['resource-id'],$rr['filename'],$rr['album'],6,(($rr['profile']) ? 1 : 0)); | ||||||
| 			} | 			} | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue