Bonjour,
Concerne 2.1 RC4.
Format de date testé dans la configuration Admin : %d %B %Y à %T
Voici les modifications à apporter pour avoir un format de date correct pour les évènements.
Pour ceux qui n'ont pas encore installé de Modules les 4 fichiers corrigés à remplacer se trouvent en annexe.
Pour les autres voici la correction à faire.
Fichier Sources/Calendar.php
Rechercher :
$start_parsed = date_parse($_REQUEST['start_date']);
Remplacer par :
$start_parsed = date_parse(convertDateToEnglish($_REQUEST['start_date']));
Rechercher :
$end_parsed = date_parse($_REQUEST['end_date']);
Remplacer par :
$end_parsed = date_parse(convertDateToEnglish($_REQUEST['end_date']));
Sauver.
Fichier Sources/Subs-Calendar.php
Rechercher :
$d = date_parse($_POST['start_date']);
Remplacer par :
$d = date_parse(convertDateToEnglish($_POST['start_date']));
Rechercher :
$d = date_parse($_POST['start_datetime']);
Remplacer par :
$d = date_parse(convertDateToEnglish($_POST['start_datetime']));
Rechercher :
$start_string_parsed = date_parse($start_string);
Remplacer par :
$start_string_parsed = date_parse(convertDateToEnglish($start_string));
Rechercher :
$end_string_parsed = date_parse($end_string);
Remplacer par :
$end_string_parsed = date_parse(convertDateToEnglish($end_string));
Mettre avant la fin du fichier ?>
/**
* Helper function to convert date string to english
* so that date_parse can parse the date
*
* @param string $date A localized date string
* @return string English date string
*/
function convertDateToEnglish($date)
{
global $txt, $context;
if ($context['user']['language'] == 'english')
return $date;
$replacements = array_combine(array_map('strtolower', $txt['months_titles']), array(
'January', 'February', 'March', 'April', 'May', 'June',
'July', 'August', 'September', 'October', 'November', 'December'
));
$replacements += array_combine(array_map('strtolower', $txt['months_short']), array(
'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'
));
$replacements += array_combine(array_map('strtolower', $txt['days']), array(
'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'
));
$replacements += array_combine(array_map('strtolower', $txt['days_short']), array(
'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'
));
// Find all possible variants of AM and PM for this language.
$replacements[strtolower($txt['time_am'])] = 'AM';
$replacements[strtolower($txt['time_pm'])] = 'PM';
if (($am = strftime('%p', strtotime('01:00:00'))) !== 'p' && $am !== false)
{
$replacements[strtolower($am)] = 'AM';
$replacements[strtolower(strftime('%p', strtotime('23:00:00')))] = 'PM';
}
if (($am = strftime('%P', strtotime('01:00:00'))) !== 'P' && $am !== false)
{
$replacements[strtolower($am)] = 'AM';
$replacements[strtolower(strftime('%P', strtotime('23:00:00')))] = 'PM';
}
return strtr(strtolower($date), $replacements);
}
Sauver.
Fichier Themes/default/Calendar.template.php
Rechercher :
<input type="text" name="start_date" id="start_date" maxlength="10" value="', $calendar_data['start_date'], '" tabindex="', $context['tabindex']++, '" class="date_input start" data-type="date">';
Remplacer par :
<input type="text" name="start_date" id="start_date" maxlength="10" value="', trim($calendar_data['start_date']), '" tabindex="', $context['tabindex']++, '" class="date_input start" data-type="date">';
Rechercher :
<input type="text" name="end_date" id="end_date" maxlength="10" value="', $calendar_data['end_date'], '" tabindex="', $context['tabindex']++, '" class="date_input end" data-type="date">';
Remplacer par :
<input type="text" name="end_date" id="end_date" maxlength="10" value="', trim($calendar_data['end_date']), '" tabindex="', $context['tabindex']++, '" class="date_input end" data-type="date">';
Rechercher :
<input type="text" name="start_date" id="start_date" maxlength="10" value="', $context['event']['start_date'], '" tabindex="', $context['tabindex']++, '" class="date_input start" data-type="date">
<input type="text" name="start_time" id="start_time" maxlength="11" value="', $context['event']['start_time_local'], '" tabindex="', $context['tabindex']++, '" class="time_input start" data-type="time"', !empty($context['event']['allday']) ? ' disabled' : '', '>
Remplacer par :
<input type="text" name="start_date" id="start_date" maxlength="10" value="', trim($context['event']['start_date_orig']), '" tabindex="', $context['tabindex']++, '" class="date_input start" data-type="date">
<input type="text" name="start_time" id="start_time" maxlength="11" value="', $context['event']['start_time_orig'], '" tabindex="', $context['tabindex']++, '" class="time_input start" data-type="time"', !empty($context['event']['allday']) ? ' disabled' : '', '>
Rechercher :
<input type="text" name="end_date" id="end_date" maxlength="10" value="', $context['event']['end_date'], '" tabindex="', $context['tabindex']++, '" class="date_input end" data-type="date"', $modSettings['cal_maxspan'] == 1 ? ' disabled' : '', '>
<input type="text" name="end_time" id="end_time" maxlength="11" value="', $context['event']['end_time_local'], '" tabindex="', $context['tabindex']++, '" class="time_input end" data-type="time"', !empty($context['event']['allday']) ? ' disabled' : '', '>
Remplacer par :
<input type="text" name="end_date" id="end_date" maxlength="10" value="', trim($context['event']['end_date_orig']), '" tabindex="', $context['tabindex']++, '" class="date_input end" data-type="date"', $modSettings['cal_maxspan'] == 1 ? ' disabled' : '', '>
<input type="text" name="end_time" id="end_time" maxlength="11" value="', $context['event']['end_time_orig'], '" tabindex="', $context['tabindex']++, '" class="time_input end" data-type="time"', !empty($context['event']['allday']) ? ' disabled' : '', '>
Sauver.
Fichier Themes/default/Post.template.php
Rechercher :
<input type="text" name="start_date" id="start_date" maxlength="10" value="', $context['event']['start_date'], '" tabindex="', $context['tabindex']++, '" class="date_input start" data-type="date">
<input type="text" name="start_time" id="start_time" maxlength="11" value="', $context['event']['start_time'], '" tabindex="', $context['tabindex']++, '" class="time_input start" data-type="time"', !empty($context['event']['allday']) ? ' disabled' : '', '>
Remplacer par :
<input type="text" name="start_date" id="start_date" maxlength="10" value="', trim($context['event']['start_date_orig']), '" tabindex="', $context['tabindex']++, '" class="date_input start" data-type="date">
<input type="text" name="start_time" id="start_time" maxlength="11" value="', $context['event']['start_time_orig'], '" tabindex="', $context['tabindex']++, '" class="time_input start" data-type="time"', !empty($context['event']['allday']) ? ' disabled' : '', '>
Rechercher :
<input type="text" name="end_date" id="end_date" maxlength="10" value="', $context['event']['end_date'], '" tabindex="', $context['tabindex']++, '" class="date_input end" data-type="date"', $modSettings['cal_maxspan'] == 1 ? ' disabled' : '', '>
<input type="text" name="end_time" id="end_time" maxlength="11" value="', $context['event']['end_time'], '" tabindex="', $context['tabindex']++, '" class="time_input end" data-type="time"', !empty($context['event']['allday']) ? ' disabled' : '', '>
Remplacer par :
<input type="text" name="end_date" id="end_date" maxlength="10" value="', trim($context['event']['end_date_orig']), '" tabindex="', $context['tabindex']++, '" class="date_input end" data-type="date"', $modSettings['cal_maxspan'] == 1 ? ' disabled' : '', '>
<input type="text" name="end_time" id="end_time" maxlength="11" value="', $context['event']['end_time_orig'], '" tabindex="', $context['tabindex']++, '" class="time_input end" data-type="time"', !empty($context['event']['allday']) ? ' disabled' : '', '>
Sauver.