public function editEmail(Request $request)
 {
     $file_locale = $request->input('file_locale', 'en');
     $file_name = $request->input('file_name', 'welcome');
     $storage = Storage::disk('email');
     $file_path = str_replace(['../', '..'], '', $file_name . '/' . $file_locale . '.blade.php');
     if (!$storage->exists($file_path)) {
         abort(404);
     }
     $file_content = $storage->get($file_path);
     $php_files = [];
     $supportedLocaleCodes = allSupportedLocaleCodes();
     foreach ($storage->directories() as $directory) {
         $files = $storage->files($directory);
         foreach ($files as $file) {
             $localeCode = preg_replace('/(^' . $directory . '\\/|\\.blade\\.php$)/', '', $file);
             if (in_array($localeCode, $supportedLocaleCodes)) {
                 $locale = $localeCode . ' (' . allSupportedLocale($localeCode, 'native') . ')';
                 $php_files[$locale][] = ['locale' => $localeCode, 'file' => $directory];
             }
         }
     }
     $this->theme->title(trans('pages.admin_ui_lang_email_title'));
     $this->theme->description(trans('pages.admin_ui_lang_email_desc'));
     return $this->_any('email', ['file_locale' => $file_locale, 'file_name' => $file_name, 'file_content' => $file_content, 'files' => $php_files]);
 }
 public function validateMultipleLocaleData(Request $request, array $fieldNames, array $rules, &$data, &$successes, &$fails, &$old, array $htmlInputs = [])
 {
     $emptyHtmlInputs = empty($htmlInputs);
     $allSupportedLocaleCodes = allSupportedLocaleCodes();
     $data = [];
     $successes = [];
     $fails = [];
     $old = [];
     foreach ($fieldNames as $fieldName) {
         $input = $request->input($fieldName);
         if (empty($input)) {
             $input = $request->file($fieldName);
         }
         if (empty($input)) {
             continue;
         }
         foreach ($input as $locale => $value) {
             if (!in_array($locale, $allSupportedLocaleCodes)) {
                 continue;
             }
             if (!isset($data[$locale])) {
                 $data[$locale] = [];
             }
             if (!$emptyHtmlInputs && array_key_exists($fieldName, $htmlInputs)) {
                 $value = clean($value, $htmlInputs[$fieldName]);
             }
             $data[$locale][$fieldName] = $value;
             $old[$fieldName . '_' . $locale] = $value;
         }
     }
     if (empty($rules)) {
         $successes[] = array_keys($data);
         return;
     }
     foreach ($data as $locale => $inputs) {
         $validator = Validator::make($inputs, $rules);
         if ($validator->fails()) {
             $fails[] = $validator;
         } else {
             $successes[] = $locale;
         }
     }
 }
 public function update(Request $request)
 {
     $validator = Validator::make($request->all(), ['country' => 'required|in:' . implode(',', allCountryCodes()), 'locale' => 'required|in:' . implode(',', allSupportedLocaleCodes()), 'timezone' => 'required', 'currency' => 'required|in:' . implode(',', allCurrencyCodes()), 'number_format' => 'required|in:' . implode(',', allNumberFormats()), 'first_day_of_week' => 'required|integer|min:0|max:6', 'long_date_format' => 'required|integer|min:0|max:3', 'short_date_format' => 'required|integer|min:0|max:3', 'long_time_format' => 'required|integer|min:0|max:4', 'short_time_format' => 'required|integer|min:0|max:4']);
     if ($validator->fails()) {
         return redirect(homeUrl('custom-settings'))->withErrors($validator);
     }
     $settings = settings();
     $settings->setLocale($request->input('locale'));
     $settings->setCountry($request->input('country'));
     $settings->setTimezone($request->input('timezone'));
     $settings->setCurrency($request->input('currency'));
     $settings->setNumberFormat($request->input('number_format'));
     $settings->setFirstDayOfWeek($request->input('first_day_of_week'));
     $settings->setLongDateFormat($request->input('long_date_format'));
     $settings->setShortDateFormat($request->input('short_date_format'));
     $settings->setLongTimeFormat($request->input('long_time_format'));
     $settings->setShortTimeFormat($request->input('short_time_format'));
     $settings->storeUser();
     $settings->storeSession();
     return $settings->storeCookie(redirect(homeUrl('my-settings', [], $settings->getLocale())));
 }
Exemple #4
0
 protected function checkForceLocale(Request $request)
 {
     $allSupportedLocaleCodes = allSupportedLocaleCodes();
     $isDirectLocale = in_array($request->segment(1), $allSupportedLocaleCodes);
     $forceLocale = $isDirectLocale ? currentLocaleCode() : SettingsFacade::getLocale();
     if ($request->has(AppConfig::KEY_FORCE_LOCALE)) {
         $forceLocale = $request->input(AppConfig::KEY_FORCE_LOCALE);
     }
     if (in_array($forceLocale, $allSupportedLocaleCodes)) {
         if ($forceLocale != SettingsFacade::getLocale()) {
             SettingsFacade::setLocale($forceLocale);
             SettingsFacade::storeSession();
             SettingsFacade::storeUser();
         }
         if ($forceLocale != currentLocaleCode()) {
             $rdr = redirect(currentURL($forceLocale));
             return SettingsFacade::storeCookie($rdr);
         }
     }
     return false;
 }
Exemple #5
0
/**
 * @return array
 */
function allSupportedFullLocaleCodes()
{
    $localeCodes = allSupportedLocaleCodes();
    $fullLocaleCodes = [];
    foreach ($localeCodes as $localeCode) {
        $fullLocaleCodes[] = fullLocaleCode($localeCode);
    }
    return $fullLocaleCodes;
}