Fix issue preventing the ratio to be set on the image cropper (caused by commit af164930aa)

Add vector format parameter to api_get_supported_image_extensions()
Use api_get_supported_image_extensions() instead of a homemade list of image extensions
pull/2487/head
Yannick Warnier 9 years ago
parent 554c8061c4
commit 18835c4fa3
  1. 4
      main/admin/user_add.php
  2. 4
      main/admin/user_edit.php
  3. 4
      main/auth/profile.php
  4. 2
      main/course_info/infocours.php
  5. 8
      main/inc/lib/api.lib.php
  6. 16
      main/inc/lib/pear/HTML/QuickForm/file.php

@ -143,9 +143,9 @@ $form->addElement('text', 'phone', get_lang('PhoneNumber'));
$form->addFile(
'picture',
get_lang('AddImage'),
array('id' => 'picture', 'class' => 'picture-form', 'crop_image' => true)
array('id' => 'picture', 'class' => 'picture-form', 'crop_image' => true, 'crop_ratio' => '1 / 1')
);
$allowed_picture_types = array ('jpg', 'jpeg', 'png', 'gif');
$allowed_picture_types = api_get_supported_image_extensions(false);
$form->addRule('picture', get_lang('OnlyImagesAllowed').' ('.implode(',', $allowed_picture_types).')', 'filetype', $allowed_picture_types);

@ -290,9 +290,9 @@ if ($userGeolocalization) {
$form->addFile(
'picture',
get_lang('AddImage'),
array('id' => 'picture', 'class' => 'picture-form', 'crop_image' => true)
array('id' => 'picture', 'class' => 'picture-form', 'crop_image' => true, 'crop_ratio' => '1 / 1')
);
$allowed_picture_types = array ('jpg', 'jpeg', 'png', 'gif');
$allowed_picture_types = api_get_supported_image_extensions(false);
$form->addRule(
'picture',

@ -340,14 +340,14 @@ if (is_profile_editable() && api_get_setting('profile', 'picture') == 'true') {
($user_data['picture_uri'] != '' ? get_lang('UpdateImage') : get_lang(
'AddImage'
)),
array('id' => 'picture', 'class' => 'picture-form', 'crop_image' => true)
array('id' => 'picture', 'class' => 'picture-form', 'crop_image' => true, 'crop_ratio' => '16 / 9')
);
$form->add_progress_bar();
if (!empty($user_data['picture_uri'])) {
$form->addElement('checkbox', 'remove_picture', null, get_lang('DelImage'));
}
$allowed_picture_types = api_get_supported_image_extensions();
$allowed_picture_types = api_get_supported_image_extensions(false);
$form->addRule(
'picture',
get_lang('OnlyImagesAllowed').' ('.implode(', ', $allowed_picture_types).')',

@ -150,7 +150,7 @@ $form->addFile(
array('id' => 'picture', 'class' => 'picture-form', 'crop_image' => true)
);
$allowed_picture_types = array('jpg', 'jpeg', 'png', 'gif');
$allowed_picture_types = api_get_supported_image_extensions(false);
$form->addRule(
'picture',
get_lang('OnlyImagesAllowed').' ('.implode(',', $allowed_picture_types).')',

@ -7637,12 +7637,16 @@ function api_get_configuration_value($variable)
/**
* Returns supported image extensions in the portal
* @param bool $supportVectors Whether vector images should also be accepted or not
* @return array Supported image extensions in the portal
*/
function api_get_supported_image_extensions()
function api_get_supported_image_extensions($supportVectors = true)
{
// jpg can also be called jpeg, jpe, jfif and jif. See https://en.wikipedia.org/wiki/JPEG#JPEG_filename_extensions
$supportedImageExtensions = array('jpg', 'jpeg', 'png', 'gif', 'svg', 'jpe', 'jfif', 'jif');
$supportedImageExtensions = array('jpg', 'jpeg', 'png', 'gif', 'jpe', 'jfif', 'jif');
if ($supportVectors) {
array_push($supportedImageExtensions, 'svg');
}
if (version_compare(PHP_VERSION, '5.5.0', '>=')) {
array_push($supportedImageExtensions, 'webp');
}

@ -272,9 +272,13 @@ class HTML_QuickForm_file extends HTML_QuickForm_input
/**
* @return string
*/
public function getElementJS()
public function getElementJS($param)
{
$id = $this->getAttribute('id');
$ratio = '16 / 9';
if (!empty($param['ratio'])) {
$ratio = $param['ratio'];
}
return '<script>
$(document).ready(function() {
var $image = $("#'.$id.'_preview_image");
@ -297,7 +301,7 @@ class HTML_QuickForm_file extends HTML_QuickForm_input
$image.cropper("destroy");
$image.cropper({
aspectRatio: 1 / 1,
aspectRatio: ' . $ratio . ',
responsive : true,
center : false,
guides : false,
@ -329,7 +333,11 @@ class HTML_QuickForm_file extends HTML_QuickForm_input
{
$js = '';
if (isset($this->_attributes['crop_image'])) {
$js = $this->getElementJS();
$ratio = '16 / 9';
if (!empty($this->_attributes['crop_ratio'])) {
$ratio = $this->_attributes['crop_ratio'];
}
$js = $this->getElementJS(array('ratio' => $ratio));
}
if ($this->_flagFrozen) {
@ -339,4 +347,4 @@ class HTML_QuickForm_file extends HTML_QuickForm_input
}
} //end func toHtml
}
}

Loading…
Cancel
Save