[ Index ]

PHP Cross Reference of Moodle 1.9.3 [Build 15-Oct-2008]

title

Body

[close]

/lib/form/ -> htmleditor.php (source)

   1  <?php
   2  global $CFG;
   3  require_once("$CFG->libdir/form/textarea.php");
   4  
   5  /**
   6   * HTML class for htmleditor type element
   7   *
   8   * @author       Jamie Pratt
   9   * @access       public
  10   */
  11  class MoodleQuickForm_htmleditor extends MoodleQuickForm_textarea{
  12      var $_type;
  13      var $_canUseHtmlEditor;
  14      var $_options=array('canUseHtmlEditor'=>'detect','rows'=>10, 'cols'=>45, 'width'=>0,'height'=>0, 'course'=>0);
  15      function MoodleQuickForm_htmleditor($elementName=null, $elementLabel=null, $options=array(), $attributes=null){
  16          parent::MoodleQuickForm_textarea($elementName, $elementLabel, $attributes);
  17          // set the options, do not bother setting bogus ones
  18          if (is_array($options)) {
  19              foreach ($options as $name => $value) {
  20                  if (isset($this->_options[$name])) {
  21                      if (is_array($value) && is_array($this->_options[$name])) {
  22                          $this->_options[$name] = @array_merge($this->_options[$name], $value);
  23                      } else {
  24                          $this->_options[$name] = $value;
  25                      }
  26                  }
  27              }
  28          }
  29          if ($this->_options['canUseHtmlEditor']=='detect'){
  30              $this->_options['canUseHtmlEditor']=can_use_html_editor();
  31          }
  32          if ($this->_options['canUseHtmlEditor']){
  33              $this->_type='htmleditor';
  34              //$this->_elementTemplateType='wide';
  35          }else{
  36              $this->_type='textarea';
  37          }
  38          $this->_canUseHtmlEditor = $this->_options['canUseHtmlEditor'];
  39      }
  40      /**
  41       * set html for help button
  42       *
  43       * @access   public
  44       * @param array $help array of arguments to make a help button
  45       * @param string $function function name to call to get html
  46       */
  47      function setHelpButton($helpbuttonargs, $function='helpbutton'){
  48          if (!$this->_canUseHtmlEditor){
  49              if ('editorhelpbutton' == $function){
  50                  $key = array_search('richtext', $helpbuttonargs);
  51                  if ($key !== FALSE){
  52                      array_splice($helpbuttonargs, $key, 1, array('text', 'emoticons'));
  53                  }
  54              } elseif ('helpbutton' == $function && $helpbuttonargs[0] == 'richtext' && ((!isset($helpbuttonargs[2])) || $helpbuttonargs[2] == 'moodle')){
  55                  //replace single 'richtext' help button with text and emoticon button when htmleditor off.
  56                  return $this->setHelpButton(array('text', 'emoticons'), 'editorhelpbutton');
  57              }
  58          }
  59          return parent::setHelpButton($helpbuttonargs, $function);
  60      }
  61  
  62      function toHtml(){
  63          if ($this->_canUseHtmlEditor && !$this->_flagFrozen){
  64              ob_start();
  65              use_html_editor($this->getName(), '', $this->getAttribute('id'));
  66              $script=ob_get_clean();
  67          } else {
  68              $script='';
  69          }
  70          if ($this->_flagFrozen) {
  71              return $this->getFrozenHtml();
  72          } else {
  73              return $this->_getTabs() .
  74                      print_textarea($this->_canUseHtmlEditor,
  75                                      $this->_options['rows'],
  76                                      $this->_options['cols'],
  77                                      $this->_options['width'],
  78                                      $this->_options['height'],
  79                                      $this->getName(),
  80                                      preg_replace("/(\r\n|\n|\r)/", '&#010;',$this->getValue()),
  81                                      $this->_options['course'],
  82                                      true,
  83                                      $this->getAttribute('id')).$script;
  84          }
  85      } //end func toHtml
  86  
  87      /**
  88       * What to display when element is frozen.
  89       *
  90       * @access    public
  91       * @return    string
  92       */
  93      function getFrozenHtml()
  94      {
  95          $html = format_text($this->getValue());
  96          return $html . $this->_getPersistantData();
  97      } //end func getFrozenHtml
  98  }
  99  ?>


Generated: Wed Jan 14 11:33:29 2009 Cross-referenced by PHPXref 0.7