* added error message for setHelpButton method not existing

* modified htmleditor class so that differences in formatting for this element are defined by css but use the same html
* added type name of element classes to css wrapper class names
This commit is contained in:
jamiesensei
2006-09-26 09:42:42 +00:00
parent 51d59bbb08
commit 80f962df90
6 changed files with 40 additions and 18 deletions
+1 -1
View File
@@ -292,7 +292,7 @@
print_heading($streditcoursesettings);
$mform->display();
print_footer($course);
?>
+1 -1
View File
@@ -213,7 +213,7 @@
}else {
$mform->addElement('hidden', 'restrictmodules', $default->restrictmodules);
}
$mform->add_help_buttons(array('category'=>array("coursecategory", get_string("category")),
$mform->addHelpButtons(array('category'=>array("coursecategory", get_string("category")),
'fullname'=>array("coursefullname", get_string("fullname")),
'shortname'=>array("courseshortname", get_string("shortname")),
'idnumber'=>array("courseidnumber", get_string("idnumbercourse")),
+1
View File
@@ -2,4 +2,5 @@
$string['denotesreq']='$a denotes required field.';
$string['requiredelement']='Required field.';
$string['nonexistentformelements']='Trying to add help buttons to nonexistent form elements : $a';
$string['nomethodforaddinghelpbutton']='There is no method for adding a help button to form element $a->name (class $a->classname)';
?>
+12 -7
View File
@@ -9,26 +9,31 @@ require_once("$CFG->libdir/form/textarea.php");
* @access public
*/
class moodleform_htmleditor extends moodleform_textarea{
var $_type = 'htmleditor';
var $_type;
var $_elementTemplateType='default';
var $_canUseHtmlEditor;
var $_options=array('course'=>0);
function moodleform_htmleditor($elementName=null, $elementLabel=null, $attributes=null){
parent::moodleform_textarea($elementName, $elementLabel, $attributes);
$this->_canUseHtmlEditor=can_use_html_editor();
if ($this->_canUseHtmlEditor){
$this->_elementTemplateType='wide';
$this->_type='htmleditor';
//$this->_elementTemplateType='wide';
}else{
$this->_elementTemplateType='default';
$this->_type='textarea';
}
parent::moodleform_textarea($elementName, $elementLabel, $attributes);
}
function getElementTemplateType(){
return $this->_elementTemplateType;
}
function toHtml(){
ob_start();
use_html_editor($this->getName());
$script=ob_get_clean();
if ($this->_canUseHtmlEditor){
ob_start();
use_html_editor($this->getName());
$script=ob_get_clean();
} else {
$script='';
}
if ($this->_flagFrozen) {
return $this->getFrozenHtml();
} else {
+15 -7
View File
@@ -91,7 +91,7 @@ class moodleform extends HTML_QuickForm_DHTMLRulesTableless{
if (!empty($oldclass)){
$this->updateAttributes(array('class'=>$oldclass.' mform'));
}else {
$this->updateAttributes(array('class'=>'mform'));
$this->updateAttributes(array('class'=>'mform'));
}
$this->_helpImageURL="$CFG->wwwroot/lib/form/req.gif";
$this->_reqHTML =
@@ -110,14 +110,19 @@ class moodleform extends HTML_QuickForm_DHTMLRulesTableless{
*
* @access public
*/
function add_help_buttons($buttons, $suppresscheck=false){
function addHelpButtons($buttons, $suppresscheck=false){
foreach ($this->_elements as $no => $element){
if (array_key_exists($element->getName(), $buttons)){
//dynamically create a property so we don't have to modify element
//class :
$this->_elements[$no]->setHelpButton($buttons[$element->getName()]);
if (method_exists($element, 'setHelpButton')){
$this->_elements[$no]->setHelpButton($buttons[$element->getName()]);
}else{
$a=new object();
$a->name=$element->getName();
$a->classname=get_class($element);
print_error('nomethodforaddinghelpbutton', 'form', '', $a);
}
unset($buttons[$element->getName()]);
}
@@ -178,8 +183,8 @@ class moodleform_renderer extends HTML_QuickForm_Renderer_Tableless{
var $_elementTemplates;
var $_htmleditors=array();
function moodleform_renderer(){
$this->_elementTemplates=array('default'=>"\n\t\t<div class=\"qfrow\"><label class=\"qflabel\">{label}{help}<!-- BEGIN required -->{req}<!-- END required --></label><div class=\"qfelement<!-- BEGIN error --> error<!-- END error -->\"><!-- BEGIN error --><span class=\"error\">{error}</span><br /><!-- END error -->{element}</div></div>",
'wide'=>"\n\t\t<div class=\"qfrow\"><label class=\"qflabel\">{label}{help}<!-- BEGIN required -->{req}<!-- END required --></label><br /><div class=\"qfelementwide<!-- BEGIN error --> error<!-- END error -->\"><!-- BEGIN error --><span class=\"error\">{error}</span><br /><!-- END error -->{element}</span></div>");
$this->_elementTemplates=array('default'=>"\n\t\t<div class=\"qfrow\"><label class=\"qflabel\">{label}{help}<!-- BEGIN required -->{req}<!-- END required --></label><div class=\"qfelement<!-- BEGIN error --> error<!-- END error --> {type}\"><!-- BEGIN error --><span class=\"error\">{error}</span><br /><!-- END error -->{element}</div></div>",
'wide'=>"\n\t\t<div class=\"qfrow\"><label class=\"qflabel\">{label}{help}<!-- BEGIN required -->{req}<!-- END required --></label><br /><div class=\"qfelementwide<!-- BEGIN error --> error<!-- END error --> {type}\"><!-- BEGIN error --><span class=\"error\">{error}</span><br /><!-- END error -->{element}</span></div>");
parent::HTML_QuickForm_Renderer_Tableless();
}
@@ -201,6 +206,8 @@ class moodleform_renderer extends HTML_QuickForm_Renderer_Tableless{
$html =str_replace('{help}', '', $html);
}
$html =str_replace('{type}', 'group', $html);
$this->_templates[$group->getName()]=$html;
// Fix for bug in tableless quickforms that didn't allow you to stop a
// fieldset before a group of elements.
@@ -220,6 +227,7 @@ class moodleform_renderer extends HTML_QuickForm_Renderer_Tableless{
$html = $this->_elementTemplates['default'];
}
$html =str_replace('{type}', $element->getType(), $html);
if (method_exists($element, 'getHelpButton')){
$html=str_replace('{help}', $element->getHelpButton(), $html);
}else{
+10 -2
View File
@@ -41,6 +41,7 @@ form.mform textarea {
form.mform br {
clear: left;
}
form.mform div.qfelement {
display: inline;
float: left;
@@ -48,10 +49,14 @@ form.mform div.qfelement {
padding: 0;
}
form.mform div.qfelementwide {
margin: 0 10% 10px 10%;
form.mform div.htmleditor {
margin: 0 auto 10px auto;
width : 600px;
clear:both;
float:none;
}
form.mform span.error, form.mform span.required {
color: red;
}
@@ -59,4 +64,7 @@ form.mform div.error {
border: 1px solid red;
padding: 5px;
color: inherit;
}
form.mform div.qfrow {
clear:both;
}