webformfile.inc in Clientside Validation 7.2
File
clientside_validation_webform/plugins/validator/webformfile.inc
View source
<?php
$plugin = array(
'label' => t('File'),
'validator' => array(
'class' => 'CvWebformFileValidator',
),
);
class CvWebformFileValidator extends CvWebformValidator {
public function supports(array $element, array &$form_state) {
if (!parent::supports($element, $form_state)) {
return FALSE;
}
return $element['#webform_component']['type'] == 'file';
}
public function getName(array $element) {
return isset($element['upload']) && isset($element['upload']['#name']) ? $element['upload']['#name'] : '';
}
public function getJavascriptSettings(array &$element, array &$form_state) {
$name = $this
->getName($element);
$settings = array();
$extensions = array();
if (isset($element['#webform_component']['filtering']['types']) && !empty($element['#webform_component']['extra']['filtering']['types'])) {
$extensions = $element['#webform_component']['extra']['filtering']['types'];
}
if (isset($element['#webform_component']['extra']['filtering']['addextensions']) && !empty($element['#webform_component']['extra']['filtering']['addextensions'])) {
$extensions = array_merge($extensions, explode(',', $element['#webform_component']['extra']['filtering']['addextensions']));
}
if ($extensions) {
$element['#cv_data']['extensions'] = $extensions;
$settings['rules'][$name]['extension'] = implode('|', $extensions);
$settings['messages'][$name]['extension'] = $this
->getMessage($element);
}
return $settings;
}
public function getMessage(array $element) {
return t('Only files with a @exts extension are allowed for !title.', array(
'@exts' => implode(', ', $element['#cv_data']['extensions']),
'!title' => $element['#title'],
));
}
}