Backend\Core\Engine\TemplateModifiers::formatNumber PHP Method

formatNumber() public static method

Format a number syntax: {{ $string|formatnumber($decimals) }}
public static formatNumber ( float $number, integer $decimals = null ) : string
$number float The number to format.
$decimals integer The number of decimals
return string
    public static function formatNumber($number, $decimals = null)
    {
        $number = (double) $number;
        // get setting
        $format = Authentication::getUser()->getSetting('number_format', 'dot_nothing');
        // get amount of decimals
        if ($decimals === null) {
            $decimals = mb_strpos($number, '.') ? mb_strlen(mb_substr($number, mb_strpos($number, '.') + 1)) : 0;
        }
        // get separators
        $separators = explode('_', $format);
        $separatorSymbols = array('comma' => ',', 'dot' => '.', 'space' => ' ', 'nothing' => '');
        $decimalSeparator = isset($separators[0], $separatorSymbols[$separators[0]]) ? $separatorSymbols[$separators[0]] : null;
        $thousandsSeparator = isset($separators[1], $separatorSymbols[$separators[1]]) ? $separatorSymbols[$separators[1]] : null;
        // format the number
        return number_format($number, $decimals, $decimalSeparator, $thousandsSeparator);
    }

Usage Example

Ejemplo n.º 1
0
    /**
     *
     * Get the mail stats
     *
     * @param $id
     *
     * @return array
     */
    public static function getStatsMail($id)
    {
        $return = (array) BackendModel::getContainer()->get('database')->getRecord('SELECT i.*, UNIX_TIMESTAMP(i.start_time) AS date, COUNT(DISTINCT u.user_id) AS users
														FROM mailengine_stats_mail AS i
															LEFT JOIN mailengine_stats_mail_users AS u ON u.send_id = i.id
														WHERE i.id = ?
														GROUP BY i.id', array((int) $id));
        $returnOpened = (array) BackendModel::getContainer()->get('database')->getRecord('SELECT i.*,  COUNT(DISTINCT o.user_id) AS opened
														FROM mailengine_stats_mail AS i
															LEFT JOIN mailengine_stats_mail_opened AS o ON o.send_id = i.id
														WHERE i.id = ?
														GROUP BY i.id', array((int) $id));
        //--Format date
        $return["date"] = BackendDataGridFunctions::getLongDate($return["date"]);
        $return["percentage"] = BackendTemplateModifiers::formatNumber(round($returnOpened["opened"] / $return['users'] * 100, 0));
        return $return;
    }