You are here

function views_natural_sort_days_of_the_week_sort_days in Views Natural Sort 7.2

Simply convert days of the week over to numbers.

This "should" be multilingual safe.

Parameters

string $string: The string we are transforming days to numbers in.

Return value

string The transformed string.

3 calls to views_natural_sort_days_of_the_week_sort_days()
ViewsNaturalSortDaysOfTheWeekTest::testAbbreviations in ./views_natural_sort.test
Test sorting day abbreviations.
ViewsNaturalSortDaysOfTheWeekTest::testDefaultDayReplace in ./views_natural_sort.test
Test tranformation functionality of the days of the week transformation.
ViewsNaturalSortDaysOfTheWeekTest::testFirstDayMonday in ./views_natural_sort.test
Test changing the first day of the week.
1 string reference to 'views_natural_sort_days_of_the_week_sort_days'
views_natural_sort_get_transformations in ./views_natural_sort.module
Get the full list of transformations to run when saving a natural sort entry.

File

./views_natural_sort.inc, line 169
The Views Natural Sort module include file.

Code

function views_natural_sort_days_of_the_week_sort_days($string) {
  global $language;

  // Adding a configuration so that in the future an admin page can be made
  // to switch which day is the first day of the week based on local.
  $used_language = isset($language->language) ? $language->language : 'en';
  $first_day = variable_get('views_natural_sort_days_of_the_week_first_day_' . $used_language, "Sunday");
  $day_list = views_natural_sort_days_of_the_week_get_default_days();
  $sorted_days = $day_list;

  // Go through list and resort it and Translate it.
  $start = array_search($first_day, $day_list);
  for ($i = 0; $i < 7; $i++) {
    $current_day = ($i + $start) % 7;
    $abbreviations = views_natural_sort_days_of_the_week_get_acceptable_day_abbreviations($day_list[$current_day], $used_language);
    $translated_day = t('@day', array(
      '@day' => $day_list[$current_day],
    ));
    $string = preg_replace(array(
      '/\\b' . $translated_day . '\\b/i',
      '/\\b(' . implode('\\.?|', views_natural_sort_days_of_the_week_get_acceptable_day_abbreviations($day_list[$current_day])) . ')\\b/i',
    ), ' ' . $i . ' ', $string);
  }
  return $string;
}