/**
* Creates a submit button element. This method will generate input elements that
* can be used to submit, and reset forms by using $options. Image submits can be created by supplying an
* image option
*
* @since version 0.85
*
* @param $caption caption of the input
* @param $options Array of options.
* - image : will use a submit image input
* - `confirm` JavaScript confirmation message.
* - `confirmaction` optional action to do on confirmation
*
* @return string A HTML submit button
**/
static function submit($caption, $options = array())
{
$image = false;
if (isset($options['image'])) {
if (preg_match('/\\.(jpg|jpe|jpeg|gif|png|ico)$/', $options['image'])) {
$image = $options['image'];
}
unset($options['image']);
}
// Set default class to submit
if (!isset($options['class'])) {
$options['class'] = 'submit';
}
if (isset($options['confirm'])) {
if (!empty($options['confirm'])) {
$confirmMessage = $options['confirm'];
$confirmAction = '';
if (isset($options['confirmaction'])) {
if (!empty($options['confirmaction'])) {
$confirmAction = $options['confirmaction'];
}
unset($options['confirmaction']);
}
$options['onclick'] = Html::getConfirmationOnActionScript($options['confirm'], $confirmAction);
}
unset($options['confirm']);
}
if ($image) {
$options['title'] = $caption;
$options['alt'] = $caption;
return sprintf('<input type="image" src="%s" %s>', Html::cleanInputText($image), Html::parseAttributes($options));
}
return sprintf('<input type="submit" value="%s" %s>', Html::cleanInputText($caption), Html::parseAttributes($options));
}