. /** * Lesson's numeric helper lib. * * Contains any helper functions for the numeric pagetyep * * @package mod_lesson * @copyright 2020 Peter Dias * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ namespace mod_lesson\local\numeric; /** * Lesson numeric page helper * * @copyright 2020 Peter Dias * @package core_lesson */ class helper { /** * Helper function to unformat a given numeric value from locale specific values with n:n signifying ranges to standards * with decimal point numbers/ranges * * @param string $value The value to be formatted * @return string|float|bool $formattedvalue unformatted value * String - If it is a range it will return a value e.g. 2:4 * Float - if it's a properly formatted float * Null - If empty and could not be converted */ public static function lesson_unformat_numeric_value(string $value) { if (strpos($value, ':')) { list($min, $max) = explode(':', $value); $formattedvalue = unformat_float($min) . ':' . unformat_float($max); } else { $formattedvalue = unformat_float($value); } return $formattedvalue; } /** * Helper function to format a given value into locale specific values with n:n signifying ranges * * @param string|number $value The value to be formatted * @return string $formattedvalue Formatted value OR $value if not numeric */ public static function lesson_format_numeric_value($value) : string { $formattedvalue = $value; if (strpos($value, ':')) { list($min, $max) = explode(':', $value); $formattedvalue = $min . ':' . $max; if (is_numeric($min) && is_numeric($max)) { $formattedvalue = format_float($min, strlen($min), true, true) . ':' . format_float($max, strlen($max), true, true); } } else { $formattedvalue = is_numeric($value) ? format_float($value, strlen($value), true, true) : $value; } return $formattedvalue; } }