__('time.months.01'), '02' => __('time.months.02'), '03' => __('time.months.03'), '04' => __('time.months.04'), '05' => __('time.months.05'), '06' => __('time.months.06'), '07' => __('time.months.07'), '08' => __('time.months.08'), '09' => __('time.months.09'), '10' => __('time.months.10'), '11' => __('time.months.11'), '12' => __('time.months.12'), ]; } /** * Get array of year list starting from 2014. * * @return array */ function get_years() { $yearRange = range(2014, date('Y')); foreach ($yearRange as $year) { $years[$year] = $year; } return $years; } /** * Split and ucword string. * * @param string $string * @return string */ function str_split_ucwords($string) { return ucwords(str_replace('_', ' ', $string)); } /** * Convert file size to have unit string. * * @param int $bytes File size. * @return string Converted file size with unit. */ function format_size_units($bytes) { if ($bytes >= 1073741824) { $bytes = number_format($bytes / 1073741824, 2).' GB'; } elseif ($bytes >= 1048576) { $bytes = number_format($bytes / 1048576, 2).' MB'; } elseif ($bytes >= 1024) { $bytes = number_format($bytes / 1024, 2).' KB'; } elseif ($bytes > 1) { $bytes = $bytes.' bytes'; } elseif ($bytes == 1) { $bytes = $bytes.' byte'; } else { $bytes = '0 bytes'; } return $bytes; } /** * Overide Laravel Collective link_to_route helper function. * * @param string $name Name of route * @param string $title Text that displayed on view * @param array $parameters URL Parameter * @param array $attributes The anchor tag atributes * @return string */ function html_link_to_route($name, $title = null, $parameters = [], $attributes = []) { if (array_key_exists('icon', $attributes)) { $title = ' '.$title; } return app('html')->decode(link_to_route($name, $title, $parameters, $attributes)); } /** * Period between two dates. * * @param string $date1 * @param string $date2 * @param string $differenceFormat * @return int|string */ function date_difference($date1, $date2, $differenceFormat = '%a') { $datetime1 = date_create($date1); $datetime2 = date_create($date2); $interval = date_diff($datetime1, $datetime2); return $interval->format($differenceFormat); } /** * Get logo image on html img tag format. * * @param array $attributes * @return \Illuminate\Support\HtmlString */ function app_logo_image($attributes = []) { return Html::image( app_logo_path(), 'Logo '.Option::get('agency_name', 'Laravel'), $attributes ); } /** * Get logo image path. * * @return string */ function app_logo_path() { $defaultLogoImagePath = 'default-logo.png'; $optionLogoImagePath = Option::get('agency_logo_path'); if (is_file(storage_path('app/public/assets/imgs/'.$optionLogoImagePath))) { return asset('storage/assets/imgs/'.$optionLogoImagePath); } return asset('assets/imgs/'.$defaultLogoImagePath); } /** * Get array of dates in a month. * * @param string $year * @param string $month * @return array */ function month_date_array($year, $month) { $dateCount = Carbon::parse($year.'-'.$month)->format('t'); $dates = []; foreach (range(1, $dateCount) as $dateNumber) { $dates[] = str_pad($dateNumber, 2, '0', STR_PAD_LEFT); } return $dates; } /** * Function helper to add flash notification. * * @param null|string $message The flashed message. * @param string $level Level/type of message * @return void */ function flash($message = null, $level = 'info') { $session = app('session'); if (!is_null($message)) { $session->flash('flash_notification.message', $message); $session->flash('flash_notification.level', $level); } }