</div> TPL; } } public function renderDualSelect(HTML_QuickForm2_Node $element) { $elTpl = $this->renderer->prepareTemplate($this->renderer->findTemplate($element), $element); foreach ($element->toArray() as $k => $v) { $elTpl = str_replace('{' . $k . '}', $v, $elTpl); } $this->renderer->html[count($this->renderer->html) - 1][] = str_replace('{id}', $element->getId(), $elTpl); } } // Now we register both the element and the renderer plugin HTML_QuickForm2_Factory::registerElement('dualselect', 'HTML_QuickForm2_Element_DualSelect'); HTML_QuickForm2_Renderer::registerPlugin('default', 'HTML_QuickForm2_Renderer_Default_DualSelectPlugin'); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <style type="text/css"> /* Set up custom font and form width */ body { margin-left: 10px; font-family: Arial,sans-serif; font-size: small; } .quickform { min-width: 700px;
public function testDuplicateMethodNamesDisallowed() { $type = 'fake' . mt_rand(); HTML_QuickForm2_Renderer::register($type, 'HTML_QuickForm2_FakeRenderer'); HTML_QuickForm2_Renderer::registerPlugin($type, 'HTML_QuickForm2_FakeRenderer_HelloPlugin'); HTML_QuickForm2_Renderer::registerPlugin($type, 'HTML_QuickForm2_FakeRenderer_AnotherHelloPlugin'); try { $renderer = HTML_Quickform2_Renderer::factory($type); $renderer->sayHello(); } catch (HTML_QuickForm2_InvalidArgumentException $e) { $this->assertRegexp('/^Duplicate method name/', $e->getMessage()); return; } $this->fail('Expected HTML_QuickForm2_InvalidArgumentException was not thrown'); }