Fix error in multi select see #7713

1.10.x
Julio Montoya 11 years ago
parent ba286e7897
commit 0c71327813
  1. 13
      main/announcements/announcements.php
  2. 4
      main/inc/lib/course.lib.php
  3. 13
      main/inc/lib/pear/HTML/QuickForm.php
  4. 80
      main/inc/lib/pear/HTML/QuickForm/Renderer.php
  5. 2
      main/inc/lib/pear/HTML/QuickForm/Renderer/Default.php
  6. 6
      main/inc/lib/pear/HTML/QuickForm/advmultiselect.php

@ -272,10 +272,13 @@ switch ($action) {
}
}
CourseManager::addUserGroupMultiSelect($form, array());
$element = CourseManager::addUserGroupMultiSelect($form, array());
$form->setRequired($element);
if (!isset($announcement_to_modify)) {
$announcement_to_modify = '';
}
$form->addElement(
'checkbox',
'email_ann',
@ -286,7 +289,9 @@ switch ($action) {
if (!isset($announcement_to_modify)) {
$announcement_to_modify = "";
}
CourseManager::addGroupMultiSelect($form, $group_id, array());
$element = CourseManager::addGroupMultiSelect($form, $group_id, array());
$form->setRequired($element);
$form->addElement(
'checkbox',
'email_ann',
@ -331,8 +336,6 @@ switch ($action) {
$form->addButtonSave(get_lang('ButtonPublishAnnouncement'));
$form->setDefaults($defaults);
$content = $form->returnForm();
if ($form->validate()) {
$data = $form->getSubmitValues();
@ -413,6 +416,8 @@ switch ($action) {
} // end condition token
}
}
$content = $form->returnForm();
break;
}

@ -5165,6 +5165,8 @@ class CourseManager
/**
* @param FormValidator $form
* @param array $to_already_selected
*
* @param HTML_QuickForm_element
*/
public static function addUserGroupMultiSelect(&$form, $to_already_selected)
{
@ -5177,7 +5179,7 @@ class CourseManager
$result[$content['value']] = $content['content'];
}
$form->addElement(
return $form->addElement(
'advmultiselect',
'users',
get_lang('Users'),

@ -1427,7 +1427,6 @@ class HTML_QuickForm extends HTML_Common
function isRuleRegistered($name, $autoRegister = false)
{
return true;
var_dump($name);
if (is_scalar($name) && isset($GLOBALS['_HTML_QuickForm_registered_rules'][$name])) {
return true;
} elseif (!$autoRegister) {
@ -1575,6 +1574,7 @@ class HTML_QuickForm extends HTML_Common
foreach ($this->_rules as $target => $rules) {
$submitValue = $this->getSubmitValue($target);
foreach ($rules as $rule) {
if ((isset($rule['group']) && isset($this->_errors[$rule['group']])) ||
isset($this->_errors[$target])) {
@ -1620,7 +1620,9 @@ class HTML_QuickForm extends HTML_Common
} elseif (is_array($submitValue) && !isset($rule['howmany'])) {
$result = $registry->validate($rule['type'], $submitValue, $rule['format'], true);
} else {
$result = $registry->validate($rule['type'], $submitValue, $rule['format'], false);
}
if (!$result || (!empty($rule['howmany']) && $rule['howmany'] > (int)$result)) {
@ -1738,7 +1740,7 @@ class HTML_QuickForm extends HTML_Common
$element =& $this->_elements[$key];
$elementName = $element->getName();
$required = ($this->isElementRequired($elementName) && !$element->isFrozen());
$error = $this->getElementError($elementName);
$error = $this->getElementError($elementName);
$element->accept($renderer, $required, $error);
}
$renderer->finishForm($this);
@ -1783,6 +1785,7 @@ class HTML_QuickForm extends HTML_Common
}
$renderer =& $this->defaultRenderer();
$this->accept($renderer);
return $renderer->toHtml();
} // end func toHtml
@ -2078,7 +2081,11 @@ class HTML_QuickForm extends HTML_Common
*/
public function setRequired(HTML_QuickForm_element $element)
{
$this->addRule($element->getName(), get_lang('ThisFieldIsRequired'), 'required');
$this->addRule(
$element->getName(),
get_lang('ThisFieldIsRequired'),
'required'
);
}
}

@ -1,36 +1,36 @@
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
/**
* An abstract base class for QuickForm renderers
*
* PHP versions 4 and 5
*
* LICENSE: This source file is subject to version 3.01 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_01.txt If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @category HTML
* @package HTML_QuickForm
* @author Alexey Borzov <avb@php.net>
* @copyright 2001-2009 The PHP Group
* @license http://www.php.net/license/3_01.txt PHP License 3.01
* @version CVS: $Id$
* @link http://pear.php.net/package/HTML_QuickForm
*/
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
/**
* An abstract base class for QuickForm renderers
*
* PHP versions 4 and 5
*
* LICENSE: This source file is subject to version 3.01 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_01.txt If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @category HTML
* @package HTML_QuickForm
* @author Alexey Borzov <avb@php.net>
* @copyright 2001-2009 The PHP Group
* @license http://www.php.net/license/3_01.txt PHP License 3.01
* @version CVS: $Id$
* @link http://pear.php.net/package/HTML_QuickForm
*/
/**
* An abstract base class for QuickForm renderers
*
* The class implements a Visitor design pattern
*
* @category HTML
* @package HTML_QuickForm
* @author Alexey Borzov <avb@php.net>
* @version Release: 3.2.11
* @since 3.0
* @category HTML
* @package HTML_QuickForm
* @author Alexey Borzov <avb@php.net>
* @version Release: 3.2.11
* @since 3.0
* @abstract
*/
class HTML_QuickForm_Renderer
@ -47,7 +47,7 @@ class HTML_QuickForm_Renderer
/**
* Called when visiting a form, before processing any form elements
*
* @param HTML_QuickForm a form being visited
* @param HTML_QuickForm a form being visited
* @access public
* @return void
* @abstract
@ -60,7 +60,7 @@ class HTML_QuickForm_Renderer
/**
* Called when visiting a form, after processing all form elements
*
* @param HTML_QuickForm a form being visited
* @param HTML_QuickForm a form being visited
* @access public
* @return void
* @abstract
@ -73,7 +73,7 @@ class HTML_QuickForm_Renderer
/**
* Called when visiting a header element
*
* @param HTML_QuickForm_header a header element being visited
* @param HTML_QuickForm_header a header element being visited
* @access public
* @return void
* @abstract
@ -86,9 +86,9 @@ class HTML_QuickForm_Renderer
/**
* Called when visiting an element
*
* @param HTML_QuickForm_element form element being visited
* @param bool Whether an element is required
* @param string An error message associated with an element
* @param HTML_QuickForm_element form element being visited
* @param bool Whether an element is required
* @param string An error message associated with an element
* @access public
* @return void
* @abstract
@ -101,7 +101,7 @@ class HTML_QuickForm_Renderer
/**
* Called when visiting a hidden element
*
* @param HTML_QuickForm_element a hidden element being visited
* @param HTML_QuickForm_element a hidden element being visited
* @access public
* @return void
* @abstract
@ -114,10 +114,10 @@ class HTML_QuickForm_Renderer
/**
* Called when visiting a raw HTML/text pseudo-element
*
* Only implemented in Default renderer. Usage of 'html' elements is
* discouraged, templates should be used instead.
* Only implemented in Default renderer. Usage of 'html' elements is
* discouraged, templates should be used instead.
*
* @param HTML_QuickForm_html a 'raw html' element being visited
* @param HTML_QuickForm_html a 'raw html' element being visited
* @access public
* @return void
* @abstract
@ -130,9 +130,9 @@ class HTML_QuickForm_Renderer
/**
* Called when visiting a group, before processing any group elements
*
* @param HTML_QuickForm_group A group being visited
* @param bool Whether a group is required
* @param string An error message associated with a group
* @param HTML_QuickForm_group A group being visited
* @param bool Whether a group is required
* @param string An error message associated with a group
* @access public
* @return void
* @abstract
@ -145,7 +145,7 @@ class HTML_QuickForm_Renderer
/**
* Called when visiting a group, after processing all group elements
*
* @param HTML_QuickForm_group A group being visited
* @param HTML_QuickForm_group A group being visited
* @access public
* @return void
* @abstract

@ -318,8 +318,8 @@ class HTML_QuickForm_Renderer_Default extends HTML_QuickForm_Renderer
} else {
$html = preg_replace("/([ \t\n\r]*)?<!-- BEGIN required -->.*<!-- END required -->([ \t\n\r]*)?/isU", '', $html);
}
if (isset($error)) {
$html = str_replace('{error}', $error, $html);
$html = str_replace('{error_class}', 'error has-error', $html);
$html = str_replace('<!-- BEGIN error -->', '', $html);

@ -305,11 +305,6 @@ class HTML_QuickForm_advmultiselect extends HTML_QuickForm_select
if (is_null($this->_tableAttributes)) {
$this->updateAttributes(array('class' => 'col-md-4'));
} else {
/*
if (is_null($this->_tableAttributes)) {
// default table layout
$attr = array('border' => '0', 'cellpadding' => '10', 'cellspacing' => '0');*/
//} else {
$attr = array('class' => $this->_tableAttributes);
$this->_removeAttr('class', $this->_attributes);
}
@ -989,6 +984,7 @@ class HTML_QuickForm_advmultiselect extends HTML_QuickForm_select
$strHtml = str_replace("<!-- END label_{$key} -->", '', $strHtml);
}
}
// clean up useless label tags
if (strpos($strHtml, '{label_')) {
$strHtml = preg_replace('/\s*<!-- BEGIN label_(\S+) -->'.

Loading…
Cancel
Save