public function CvDateDateFormatValidator::getJavascriptSettings in Clientside Validation 7.2
Overrides ClientsideValidationValidator::getJavascriptSettings
File
- clientside_validation_date/
plugins/ validator/ dateformat.inc, line 23
Class
Code
public function getJavascriptSettings(array &$element, array &$form_state) {
$name = $this
->getName($element['date']);
$granularity = date_format_order($element['#date_format']);
$format = date_limit_format($element['#date_format'], array_intersect($granularity, array(
'month',
'day',
'year',
)));
$splitter = '/';
if (strpos($format, '.') !== FALSE) {
$splitter = '.';
}
elseif (strpos($format, ' ') !== FALSE) {
$splitter = ' ';
}
elseif (strpos($format, '-') !== FALSE) {
$splitter = '-';
}
$parts = explode($splitter, $format);
$daypos = array_search('d', $parts) === FALSE ? array_search('j', $parts) : array_search('d', $parts);
foreach (array(
'm',
'M',
'F',
'n',
) as $m) {
$monthpos = array_search($m, $parts);
if ($monthpos !== FALSE) {
break;
}
}
$yearpos = array_search('Y', $parts);
return array(
'rules' => array(
$name => array(
'dateFormat' => array(
'format' => $format,
'splitter' => $splitter,
'daypos' => $daypos,
'monthpos' => $monthpos,
'yearpos' => $yearpos,
),
),
),
'messages' => array(
$name => array(
'dateFormat' => $this
->getMessage($element),
),
),
);
}