From c3821398925e88f23900ce78da5b35194ef29066 Mon Sep 17 00:00:00 2001 From: "deb.monish" Date: Thu, 13 Oct 2016 20:18:57 +0530 Subject: [PATCH] CRM-19501: Improve Contact's Image Url handling --- CRM/Contact/Form/Contact.php | 8 +------- CRM/Contact/Page/View.php | 15 +-------------- CRM/Profile/Form.php | 8 +------- CRM/Utils/File.php | 20 ++++++++++++++++++++ templates/CRM/Contact/Page/ContactImage.tpl | 4 +--- 5 files changed, 24 insertions(+), 31 deletions(-) diff --git a/CRM/Contact/Form/Contact.php b/CRM/Contact/Form/Contact.php index 1c04b66e51..d1b72bea36 100644 --- a/CRM/Contact/Form/Contact.php +++ b/CRM/Contact/Form/Contact.php @@ -440,13 +440,7 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form { CRM_Contact_Form_Edit_Address::setDefaultValues($defaults, $this); if (!empty($defaults['image_URL'])) { - list($imageWidth, $imageHeight) = getimagesize(CRM_Utils_String::unstupifyUrl($defaults['image_URL'])); - list($imageThumbWidth, $imageThumbHeight) = CRM_Contact_BAO_Contact::getThumbSize($imageWidth, $imageHeight); - $this->assign('imageWidth', $imageWidth); - $this->assign('imageHeight', $imageHeight); - $this->assign('imageThumbWidth', $imageThumbWidth); - $this->assign('imageThumbHeight', $imageThumbHeight); - $this->assign('imageURL', $defaults['image_URL']); + $this->assign("imageURL", CRM_Utils_File::getImageURL($defaults['image_URL'])); } //set location type and country to default for each block diff --git a/CRM/Contact/Page/View.php b/CRM/Contact/Page/View.php index 77ddb07b3e..6536352a08 100644 --- a/CRM/Contact/Page/View.php +++ b/CRM/Contact/Page/View.php @@ -160,20 +160,7 @@ class CRM_Contact_Page_View extends CRM_Core_Page { CRM_Utils_System::appendBreadCrumb(array(array('title' => ts('View Contact'), 'url' => $path))); if ($image_URL = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $this->_contactId, 'image_URL')) { - //CRM-7265 --time being fix. - $config = CRM_Core_Config::singleton(); - $image_URL = str_replace('https://', 'http://', $image_URL); - if (Civi::settings()->get('enableSSL')) { - $image_URL = str_replace('http://', 'https://', $image_URL); - } - - list($imageWidth, $imageHeight) = getimagesize(CRM_Utils_String::unstupifyUrl($image_URL)); - list($imageThumbWidth, $imageThumbHeight) = CRM_Contact_BAO_Contact::getThumbSize($imageWidth, $imageHeight); - $this->assign("imageWidth", $imageWidth); - $this->assign("imageHeight", $imageHeight); - $this->assign("imageThumbWidth", $imageThumbWidth); - $this->assign("imageThumbHeight", $imageThumbHeight); - $this->assign("imageURL", $image_URL); + $this->assign("imageURL", CRM_Utils_File::getImageURL($image_URL)); } // also store in session for future use diff --git a/CRM/Profile/Form.php b/CRM/Profile/Form.php index 5f8e72b220..1610f5860c 100644 --- a/CRM/Profile/Form.php +++ b/CRM/Profile/Form.php @@ -577,13 +577,7 @@ class CRM_Profile_Form extends CRM_Core_Form { } if (!empty($this->_defaults['image_URL'])) { - list($imageWidth, $imageHeight) = getimagesize(CRM_Utils_String::unstupifyUrl($this->_defaults['image_URL'])); - list($imageThumbWidth, $imageThumbHeight) = CRM_Contact_BAO_Contact::getThumbSize($imageWidth, $imageHeight); - $this->assign("imageWidth", $imageWidth); - $this->assign("imageHeight", $imageHeight); - $this->assign("imageThumbWidth", $imageThumbWidth); - $this->assign("imageThumbHeight", $imageThumbHeight); - $this->assign("imageURL", $this->_defaults['image_URL']); + $this->assign("imageURL", CRM_Utils_File::getImageURL($this->_defaults['image_URL'])); $this->removeFileRequiredRules('image_URL'); } diff --git a/CRM/Utils/File.php b/CRM/Utils/File.php index a99077ef67..2587669b04 100644 --- a/CRM/Utils/File.php +++ b/CRM/Utils/File.php @@ -811,6 +811,7 @@ HTACCESS; case 'image/gif': case 'image/x-png': case 'image/png': + case 'image/jpg': list($imageWidth, $imageHeight) = getimagesize($path); list($imageThumbWidth, $imageThumbHeight) = CRM_Contact_BAO_Contact::getThumbSize($imageWidth, $imageHeight); $url = " @@ -826,4 +827,23 @@ HTACCESS; return $url; } + /** + * Return formatted image icon + * + * @param string $imageURL + * Contact's image url + * + * @return string $url + */ + public static function getImageURL($imageURL) { + // retrieve image name from $imageURL + $imageURL = CRM_Utils_String::unstupifyUrl($imageURL); + parse_str(parse_url($imageURL, PHP_URL_QUERY), $query); + + $path = CRM_Core_Config::singleton()->customFileUploadDir . $query['photo']; + $mimeType = 'image/' . strtolower(pathinfo($path, PATHINFO_EXTENSION)); + + return self::getFileURL($path, $mimeType); + } + } diff --git a/templates/CRM/Contact/Page/ContactImage.tpl b/templates/CRM/Contact/Page/ContactImage.tpl index 19b4f3d3f6..b9b3a91346 100644 --- a/templates/CRM/Contact/Page/ContactImage.tpl +++ b/templates/CRM/Contact/Page/ContactImage.tpl @@ -25,9 +25,7 @@ *} {* This form is for displaying contact Image *}
- - - + {$imageURL}
{if $action eq 0 or $action eq 2}
{$deleteURL}
-- 2.25.1