/**
  * Delegate handle that adds Custom Preference Fieldsets
  * @param string $page
  * @param array $context
  */
 public function addCustomPreferenceFieldsets($context)
 {
     // creates the field set
     $fieldset = new XMLElement('fieldset');
     $fieldset->setAttribute('class', 'settings');
     $fieldset->appendChild(new XMLElement('legend', self::EXT_NAME));
     // create a paragraph for short intructions
     $p = new XMLElement('p', __('Define here when and how IP are blocked'), array('class' => 'help'));
     // append intro paragraph
     $fieldset->appendChild($p);
     // outter wrapper
     $out_wrapper = new XMLElement('div');
     // create a wrapper
     $wrapper = new XMLElement('div');
     $wrapper->setAttribute('class', 'two columns');
     // append labels to field set
     $wrapper->appendChild(ViewFactory::generateField(ABF::SETTING_FAILED_COUNT, 'Fail count limit', $this->hasErrors(), $this->errors));
     $wrapper->appendChild(ViewFactory::generateField(ABF::SETTING_LENGTH, 'Blocked length <em>in minutes</em>', $this->hasErrors(), $this->errors));
     $out_wrapper->appendChild($wrapper);
     // create a new wrapper
     $wrapper = new XMLElement('div');
     $wrapper->setAttribute('class', 'two columns');
     $wrapper->appendChild(ViewFactory::generateField(ABF::SETTING_GL_THRESHOLD, 'Gray list threshold', $this->hasErrors(), $this->errors));
     $wrapper->appendChild(ViewFactory::generateField(ABF::SETTING_GL_DURATION, 'Gray list duration <em>in days</em>', $this->hasErrors(), $this->errors));
     $out_wrapper->appendChild($wrapper);
     // create a new wrapper
     $wrapper = new XMLElement('div');
     $wrapper->setAttribute('class', 'two columns');
     $wrapper->appendChild(ViewFactory::generateField(ABF::SETTING_REMOTE_ADDR, 'Remote IP address field name', $this->hasErrors(), $this->errors));
     $out_wrapper->appendChild($wrapper);
     // create a new wrapper
     $wrapper = new XMLElement('div');
     $wrapper->setAttribute('class', 'two columns');
     $wrapper->appendChild(ViewFactory::generateField(ABF::SETTING_AUTO_UNBAN, 'Users can unban their IP via email', $this->hasErrors(), $this->errors, 'checkbox'));
     $wrapper->appendChild(ViewFactory::generateField(ABF::SETTING_RESTRICT_ACCESS, 'Restrict access from authors', $this->hasErrors(), $this->errors, 'checkbox'));
     $out_wrapper->appendChild($wrapper);
     // wrapper into fieldset
     $fieldset->appendChild($out_wrapper);
     // adds the field set to the wrapper
     $context['wrapper']->appendChild($fieldset);
 }