From 2e966dd5fe014c069862f3dd7f1945cc7f83af65 Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Mon, 17 Aug 2015 19:11:30 -0700 Subject: [PATCH] CRM-16373 - Move formatUnitSize() from CRM_Core_Config to CRM_Utils_Number --- CRM/Admin/Form/Setting/Miscellaneous.php | 2 +- CRM/Contact/Import/Form/DataSource.php | 2 +- CRM/Core/Config/Defaults.php | 34 ------------------------ CRM/Import/DataSource/CSV.php | 2 +- CRM/Import/Form/DataSource.php | 4 +-- CRM/Utils/Number.php | 33 +++++++++++++++++++++++ 6 files changed, 38 insertions(+), 39 deletions(-) diff --git a/CRM/Admin/Form/Setting/Miscellaneous.php b/CRM/Admin/Form/Setting/Miscellaneous.php index cf4b71274e..a27a28351e 100644 --- a/CRM/Admin/Form/Setting/Miscellaneous.php +++ b/CRM/Admin/Form/Setting/Miscellaneous.php @@ -63,7 +63,7 @@ class CRM_Admin_Form_Setting_Miscellaneous extends CRM_Admin_Form_Setting { $config = CRM_Core_Config::singleton(); $this->_uploadMaxSize = (int) ini_get('upload_max_filesize'); // check for post max size - CRM_Core_Config_Defaults::formatUnitSize(ini_get('post_max_size'), TRUE); + CRM_Utils_Number::formatUnitSize(ini_get('post_max_size'), TRUE); } /** diff --git a/CRM/Contact/Import/Form/DataSource.php b/CRM/Contact/Import/Form/DataSource.php index f200917225..ca38d0a47e 100644 --- a/CRM/Contact/Import/Form/DataSource.php +++ b/CRM/Contact/Import/Form/DataSource.php @@ -74,7 +74,7 @@ class CRM_Contact_Import_Form_DataSource extends CRM_Core_Form { // check for post max size avoid when called twice $snippet = CRM_Utils_Array::value('snippet', $_GET, 0); if (empty($snippet)) { - CRM_Core_Config_Defaults::formatUnitSize(ini_get('post_max_size'), TRUE); + CRM_Utils_Number::formatUnitSize(ini_get('post_max_size'), TRUE); } while ($file = readdir($handler)) { diff --git a/CRM/Core/Config/Defaults.php b/CRM/Core/Config/Defaults.php index 314883e22c..5b6b82069a 100644 --- a/CRM/Core/Config/Defaults.php +++ b/CRM/Core/Config/Defaults.php @@ -61,40 +61,6 @@ class CRM_Core_Config_Defaults { $this->groupTree = defined('CIVICRM_GROUPTREE') ? TRUE : FALSE; } - /** - * Format size. - * - */ - public static function formatUnitSize($size, $checkForPostMax = FALSE) { - if ($size) { - $last = strtolower($size{strlen($size) - 1}); - switch ($last) { - // The 'G' modifier is available since PHP 5.1.0 - - case 'g': - $size *= 1024; - case 'm': - $size *= 1024; - case 'k': - $size *= 1024; - } - - if ($checkForPostMax) { - $maxImportFileSize = self::formatUnitSize(ini_get('upload_max_filesize')); - $postMaxSize = self::formatUnitSize(ini_get('post_max_size')); - if ($maxImportFileSize > $postMaxSize && $postMaxSize == $size) { - CRM_Core_Session::setStatus(ts("Note: Upload max filesize ('upload_max_filesize') should not exceed Post max size ('post_max_size') as defined in PHP.ini, please check with your system administrator."), ts("Warning"), "alert"); - } - //respect php.ini upload_max_filesize - if ($size > $maxImportFileSize && $size !== $postMaxSize) { - $size = $maxImportFileSize; - CRM_Core_Session::setStatus(ts("Note: Please verify your configuration for Maximum File Size (in MB) Administrator >> System Settings >> Misc. It should support 'upload_max_size' as defined in PHP.ini.Please check with your system administrator.", array(1 => CRM_Utils_System::url('civicrm/admin/setting/misc', 'reset=1'))), ts("Warning"), "alert"); - } - } - return $size; - } - } - /** * Set the default values. * in an empty db, also called when setting component using GUI diff --git a/CRM/Import/DataSource/CSV.php b/CRM/Import/DataSource/CSV.php index c5a73a0b07..57aea4ab91 100644 --- a/CRM/Import/DataSource/CSV.php +++ b/CRM/Import/DataSource/CSV.php @@ -67,7 +67,7 @@ class CRM_Import_DataSource_CSV extends CRM_Import_DataSource { $config = CRM_Core_Config::singleton(); - $uploadFileSize = CRM_Core_Config_Defaults::formatUnitSize($config->maxFileSize . 'm', TRUE); + $uploadFileSize = CRM_Utils_Number::formatUnitSize($config->maxFileSize . 'm', TRUE); $uploadSize = round(($uploadFileSize / (1024 * 1024)), 2); $form->assign('uploadSize', $uploadSize); $form->add('File', 'uploadFile', ts('Import Data File'), 'size=30 maxlength=255', TRUE); diff --git a/CRM/Import/Form/DataSource.php b/CRM/Import/Form/DataSource.php index 0689b6e2ac..616d6d4d40 100644 --- a/CRM/Import/Form/DataSource.php +++ b/CRM/Import/Form/DataSource.php @@ -52,7 +52,7 @@ abstract class CRM_Import_Form_DataSource extends CRM_Core_Form { CRM_Core_Session::singleton()->pushUserContext(CRM_Utils_System::url(static::PATH, $params)); // check for post max size - CRM_Core_Config_Defaults::formatUnitSize(ini_get('post_max_size'), TRUE); + CRM_Utils_Number::formatUnitSize(ini_get('post_max_size'), TRUE); } /** @@ -63,7 +63,7 @@ abstract class CRM_Import_Form_DataSource extends CRM_Core_Form { public function buildQuickForm() { $config = CRM_Core_Config::singleton(); - $uploadFileSize = CRM_Core_Config_Defaults::formatUnitSize($config->maxFileSize . 'm', TRUE); + $uploadFileSize = CRM_Utils_Number::formatUnitSize($config->maxFileSize . 'm', TRUE); $uploadSize = round(($uploadFileSize / (1024 * 1024)), 2); $this->assign('uploadSize', $uploadSize); diff --git a/CRM/Utils/Number.php b/CRM/Utils/Number.php index ff9c4d66d0..f3e427acd2 100644 --- a/CRM/Utils/Number.php +++ b/CRM/Utils/Number.php @@ -46,4 +46,37 @@ class CRM_Utils_Number { } } + /** + * Some kind of numbery-looky-printy thing. + */ + public static function formatUnitSize($size, $checkForPostMax = FALSE) { + if ($size) { + $last = strtolower($size{strlen($size) - 1}); + switch ($last) { + // The 'G' modifier is available since PHP 5.1.0 + + case 'g': + $size *= 1024; + case 'm': + $size *= 1024; + case 'k': + $size *= 1024; + } + + if ($checkForPostMax) { + $maxImportFileSize = self::formatUnitSize(ini_get('upload_max_filesize')); + $postMaxSize = self::formatUnitSize(ini_get('post_max_size')); + if ($maxImportFileSize > $postMaxSize && $postMaxSize == $size) { + CRM_Core_Session::setStatus(ts("Note: Upload max filesize ('upload_max_filesize') should not exceed Post max size ('post_max_size') as defined in PHP.ini, please check with your system administrator."), ts("Warning"), "alert"); + } + //respect php.ini upload_max_filesize + if ($size > $maxImportFileSize && $size !== $postMaxSize) { + $size = $maxImportFileSize; + CRM_Core_Session::setStatus(ts("Note: Please verify your configuration for Maximum File Size (in MB) Administrator >> System Settings >> Misc. It should support 'upload_max_size' as defined in PHP.ini.Please check with your system administrator.", array(1 => CRM_Utils_System::url('civicrm/admin/setting/misc', 'reset=1'))), ts("Warning"), "alert"); + } + } + return $size; + } + } + } -- 2.25.1