function init() { HTML_QuickForm2_Factory::registerRule('checkValidFilename', 'Piwik_Installation_FormDatabaseSetup_Rule_checkValidFilename'); $checkUserPrivilegesClass = 'Piwik_Installation_FormDatabaseSetup_Rule_checkUserPrivileges'; HTML_QuickForm2_Factory::registerRule('checkUserPrivileges', $checkUserPrivilegesClass); $availableAdapters = Piwik_Db_Adapter::getAdapters(); $adapters = array(); foreach ($availableAdapters as $adapter => $port) { $adapters[$adapter] = $adapter; } $this->addElement('text', 'host')->setLabel(Piwik_Translate('Installation_DatabaseSetupServer'))->addRule('required', Piwik_Translate('General_Required', Piwik_Translate('Installation_DatabaseSetupServer'))); $user = $this->addElement('text', 'username')->setLabel(Piwik_Translate('Installation_DatabaseSetupLogin')); $user->addRule('required', Piwik_Translate('General_Required', Piwik_Translate('Installation_DatabaseSetupLogin'))); $requiredPrivileges = Piwik_Installation_FormDatabaseSetup_Rule_checkUserPrivileges::getRequiredPrivilegesPretty(); $user->addRule('checkUserPrivileges', Piwik_Translate('Installation_InsufficientPrivileges', $requiredPrivileges . '<br/><br/>') . Piwik_Translate('Installation_InsufficientPrivilegesHelp')); $this->addElement('password', 'password')->setLabel(Piwik_Translate('Installation_DatabaseSetupPassword')); $item = $this->addElement('text', 'dbname')->setLabel(Piwik_Translate('Installation_DatabaseSetupDatabaseName')); $item->addRule('required', Piwik_Translate('General_Required', Piwik_Translate('Installation_DatabaseSetupDatabaseName'))); $item->addRule('checkValidFilename', Piwik_Translate('General_NotValid', Piwik_Translate('Installation_DatabaseSetupDatabaseName'))); $this->addElement('text', 'tables_prefix')->setLabel(Piwik_Translate('Installation_DatabaseSetupTablePrefix'))->addRule('checkValidFilename', Piwik_Translate('General_NotValid', Piwik_Translate('Installation_DatabaseSetupTablePrefix'))); $this->addElement('select', 'adapter')->setLabel(Piwik_Translate('Installation_DatabaseSetupAdapter'))->loadOptions($adapters)->addRule('required', Piwik_Translate('General_Required', Piwik_Translate('Installation_DatabaseSetupAdapter'))); $this->addElement('submit', 'submit', array('value' => Piwik_Translate('General_Next') . ' »', 'class' => 'submit')); // default values $this->addDataSource(new HTML_QuickForm2_DataSource_Array(array('host' => '127.0.0.1', 'tables_prefix' => 'piwik_'))); }
public function testConfigOverridesOptions() { $mockEl = $this->getMock('HTML_QuickForm2_Element', array('getType', 'getRawValue', 'setValue', '__toString')); $mockEl->expects($this->once())->method('getRawValue')->will($this->returnValue('foo')); HTML_QuickForm2_Factory::registerRule('regex-override', 'HTML_QuickForm2_Rule_Regex', null, '/^[a-zA-Z]+$/'); $override = HTML_QuickForm2_Factory::createRule('regex-override', $mockEl, 'an error', '/^[0-9]+$/'); $this->assertTrue($override->validate()); }
function init() { HTML_QuickForm2_Factory::registerRule('checkTimezone', 'Piwik_Installation_FormFirstWebsiteSetup_Rule_isValidTimezone'); $urlExample = 'http://example.org'; $javascriptOnClickUrlExample = "javascript:if(this.value=='{$urlExample}'){this.value='http://';} this.style.color='black';"; $timezones = Piwik_SitesManager_API::getInstance()->getTimezonesList(); $timezones = array_merge(array('No timezone' => Piwik_Translate('SitesManager_SelectACity')), $timezones); $this->addElement('text', 'siteName')->setLabel(Piwik_Translate('Installation_SetupWebSiteName'))->addRule('required', Piwik_Translate('General_Required', Piwik_Translate('Installation_SetupWebSiteName'))); $url = $this->addElement('text', 'url')->setLabel(Piwik_Translate('Installation_SetupWebSiteURL')); $url->setAttribute('style', 'color:rgb(153, 153, 153);'); $url->setAttribute('onfocus', $javascriptOnClickUrlExample); $url->setAttribute('onclick', $javascriptOnClickUrlExample); $url->addRule('required', Piwik_Translate('General_Required', Piwik_Translate('Installation_SetupWebSiteURL'))); $tz = $this->addElement('select', 'timezone')->setLabel(Piwik_Translate('Installation_Timezone'))->loadOptions($timezones); $tz->addRule('required', Piwik_Translate('General_Required', Piwik_Translate('Installation_Timezone'))); $tz->addRule('checkTimezone', Piwik_Translate('General_NotValid', Piwik_Translate('Installation_Timezone'))); $this->addElement('submit', 'submit', array('value' => Piwik_Translate('General_Next') . ' »', 'class' => 'submit')); // default values $this->addDataSource(new HTML_QuickForm2_DataSource_Array(array('url' => $urlExample))); }
function init() { HTML_QuickForm2_Factory::registerRule('checkLogin', 'Piwik_Installation_FormGeneralSetup_Rule_isValidLoginString'); HTML_QuickForm2_Factory::registerRule('checkEmail', 'Piwik_Installation_FormGeneralSetup_Rule_isValidEmailString'); $login = $this->addElement('text', 'login')->setLabel(Piwik_Translate('Installation_SuperUserLogin')); $login->addRule('required', Piwik_Translate('General_Required', Piwik_Translate('Installation_SuperUserLogin'))); $login->addRule('checkLogin'); $password = $this->addElement('password', 'password')->setLabel(Piwik_Translate('Installation_Password')); $password->addRule('required', Piwik_Translate('General_Required', Piwik_Translate('Installation_Password'))); $passwordBis = $this->addElement('password', 'password_bis')->setLabel(Piwik_Translate('Installation_PasswordRepeat')); $passwordBis->addRule('required', Piwik_Translate('General_Required', Piwik_Translate('Installation_PasswordRepeat'))); $passwordBis->addRule('eq', Piwik_Translate('Installation_PasswordDoNotMatch'), $password); $email = $this->addElement('text', 'email')->setLabel(Piwik_Translate('Installation_Email')); $email->addRule('required', Piwik_Translate('General_Required', Piwik_Translate('Installation_Email'))); $email->addRule('checkEmail', Piwik_Translate('UsersManager_ExceptionInvalidEmail')); $this->addElement('checkbox', 'subscribe_newsletter_security', null, array('content' => ' ' . Piwik_Translate('Installation_SecurityNewsletter'))); $this->addElement('checkbox', 'subscribe_newsletter_community', null, array('content' => ' ' . Piwik_Translate('Installation_CommunityNewsletter'))); $this->addElement('submit', 'submit', array('value' => Piwik_Translate('General_Next') . ' »', 'class' => 'submit')); // default values $this->addDataSource(new HTML_QuickForm2_DataSource_Array(array('subscribe_newsletter_community' => 1, 'subscribe_newsletter_security' => 1))); }
public function testConfigOverridesOptions() { $mockEl = $this->getMock('HTML_QuickForm2_Element', array('getType', 'getValue', 'setValue', '__toString')); $mockEl->expects($this->atLeastOnce())->method('getValue')->will($this->returnValue('foo')); HTML_QuickForm2_Factory::registerRule('inarray-override', 'HTML_QuickForm2_Rule_Callback', null, array('callback' => 'in_array', 'arguments' => array(array('foo', 'bar', 'baz')))); $rule1 = HTML_QuickForm2_Factory::createRule('inarray-override', $mockEl, 'an error', array('callback' => array($this, 'checkNotFoo'))); $rule2 = HTML_QuickForm2_Factory::createRule('inarray-override', $mockEl, 'an error', array('arguments' => array(array('one', 'two', 'three')))); $this->assertTrue($rule1->validate()); $this->assertTrue($rule2->validate()); }
public function testConfigOverridesOptions() { $mockFile = $this->getMock('HTML_QuickForm2_Element_InputFile', array('getValue')); $mockFile->expects($this->once())->method('getValue')->will($this->returnValue(array('name' => 'pr0n.jpg', 'type' => 'image/jpeg', 'tmp_name' => dirname(dirname(__FILE__)) . '/_files/1024-bytes.upload', 'error' => UPLOAD_ERR_OK, 'size' => 1024))); HTML_QuickForm2_Factory::registerRule('filesize-override-512', 'HTML_QuickForm2_Rule_MaxFileSize', null, 512); $maxSize = $mockFile->addRule('filesize-override-512', 'too big', 10240); $this->assertFalse($maxSize->validate()); }
public function testCreateRuleValid() { $mockNode = $this->getMock('HTML_QuickForm2_Node', array('updateValue', 'getId', 'getName', 'getType', 'getValue', 'setId', 'setName', 'setValue', '__toString')); HTML_QuickForm2_Factory::registerRule('fakerule', 'FakeRule', dirname(__FILE__) . '/_files/FakeRule.php'); $rule = HTML_QuickForm2_Factory::createRule('fakerule', $mockNode, 'An error message', 'Some options'); $this->assertType('FakeRule', $rule); $this->assertSame($mockNode, $rule->owner); $this->assertEquals('An error message', $rule->getMessage()); $this->assertEquals('Some options', $rule->getOptions()); $this->assertEquals('fakerule', $rule->registeredType); }
public function testConfigOverridesOptions() { $mockEl = $this->getMock('HTML_QuickForm2_Element', array('getType', 'getValue', 'setValue', '__toString')); $mockEl->expects($this->atLeastOnce())->method('getValue')->will($this->returnValue('foo')); HTML_QuickForm2_Factory::registerRule('compare-override', 'HTML_QuickForm2_Rule_Compare', null, array('operator' => '===', 'operand' => 'foo')); $rule1 = HTML_QuickForm2_Factory::createRule('compare-override', $mockEl, '...', array('operator' => '===', 'operand' => 'bar')); $rule2 = HTML_QuickForm2_Factory::createRule('compare-override', $mockEl, '...', array('operator' => '!==', 'operand' => 'foo')); $this->assertTrue($rule1->validate()); $this->assertTrue($rule2->validate()); }
public function testCreateRuleValid() { $mockNode = $this->getMock('HTML_QuickForm2_Node', $this->nodeAbstractMethods); HTML_QuickForm2_Factory::registerRule('fakerule', 'FakeRule', dirname(__FILE__) . '/_files/FakeRule.php'); /* @var $rule FakeRule */ $rule = HTML_QuickForm2_Factory::createRule('fakerule', $mockNode, 'An error message', 'Some options'); $this->assertInstanceOf('FakeRule', $rule); $this->assertSame($mockNode, $rule->owner); $this->assertEquals('An error message', $rule->getMessage()); $this->assertEquals('Some options', $rule->getConfig()); }
public function testDefaultConfigMerging() { $this->assertEquals('foo', HTML_QuickForm2_Rule::mergeConfig('foo', null)); $this->assertEquals('bar', HTML_QuickForm2_Rule::mergeConfig('foo', 'bar')); HTML_QuickForm2_Factory::registerRule('no-config', 'HTML_QuickForm2_Rule_ImplConst'); HTML_QuickForm2_Factory::registerRule('with-config', 'HTML_QuickForm2_Rule_ImplConst', null, 'bar'); $el = new HTML_QuickForm2_Element_InputText(); $this->assertEquals('foo', $el->createRule('no-config', '', 'foo')->getConfig()); $this->assertEquals('bar', $el->createRule('with-config', '', 'foo')->getConfig()); }
public function testConfigOverridesOptions() { $mockFile = $this->getMock('HTML_QuickForm2_Element_InputFile', array('getValue')); $mockFile->expects($this->once())->method('getValue')->will($this->returnValue(array('name' => 'pr0n.jpg', 'type' => 'image/jpeg', 'tmp_name' => '/tmp/foobar', 'error' => UPLOAD_ERR_OK, 'size' => 123456))); HTML_QuickForm2_Factory::registerRule('type-override-text', 'HTML_QuickForm2_Rule_MimeType', null, 'text/plain'); $mimeType = $mockFile->addRule('type-override-text', 'need image', array('image/gif', 'image/jpeg')); $this->assertFalse($mimeType->validate()); }
public function testConfigOverridesOptions() { HTML_QuickForm2_Factory::registerRule('length-1-5', 'HTML_QuickForm2_Rule_Length', null, array('min' => 1, 'max' => 5)); $mockElFoo = $this->getMock('HTML_QuickForm2_Element', array('getType', 'getValue', 'setValue', '__toString')); $mockElFoo->expects($this->atLeastOnce())->method('getValue')->will($this->returnValue('foo')); $mockElFoobar = $this->getMock('HTML_QuickForm2_Element', array('getType', 'getValue', 'setValue', '__toString')); $mockElFoobar->expects($this->atLeastOnce())->method('getValue')->will($this->returnValue('foobar')); $ruleFoo = $mockElFoo->addRule('length-1-5', 'not in range', array('min' => 4)); $this->assertTrue($ruleFoo->validate()); $ruleFoobar = $mockElFoobar->addRule('length-1-5', 'not in range', array('max' => 7)); $this->assertFalse($ruleFoobar->validate()); }
class Am_Form_Container_PrefixFieldset extends HTML_QuickForm2_Container_Group { public function getType() { return 'fieldset'; } } HTML_QuickForm2_Factory::registerElement('period', 'Am_Form_Element_Period'); HTML_QuickForm2_Factory::registerElement('date', 'Am_Form_Element_Date'); HTML_QuickForm2_Factory::registerElement('integer', 'Am_Form_Element_Integer'); HTML_QuickForm2_Factory::registerElement('advcheckbox', 'Am_Form_Element_AdvCheckbox'); HTML_QuickForm2_Factory::registerElement('advradio', 'Am_Form_Element_AdvRadio'); HTML_QuickForm2_Factory::registerElement('email_checkbox', 'Am_Form_Element_EmailCheckbox'); HTML_QuickForm2_Factory::registerElement('email_select', 'Am_Form_Element_EmailSelect'); HTML_QuickForm2_Factory::registerElement('email_link', 'Am_Form_Element_EmailLink'); HTML_QuickForm2_Factory::registerElement('email_with_days', 'Am_Form_Element_EmailWithDays'); HTML_QuickForm2_Factory::registerElement('upload', 'Am_Form_Element_Upload'); HTML_QuickForm2_Factory::registerElement('script', 'Am_Form_Element_Script'); HTML_QuickForm2_Factory::registerElement('html', 'Am_Form_Element_Html'); HTML_QuickForm2_Factory::registerElement('csrf', 'Am_Form_Element_Csrf'); HTML_QuickForm2_Factory::registerElement('options_editor', 'Am_Form_Element_OptionsEditor'); HTML_QuickForm2_Factory::registerElement('htmleditor', 'Am_Form_Element_HtmlEditor'); HTML_QuickForm2_Factory::registerElement('magicselect', 'Am_Form_Element_MagicSelect'); HTML_QuickForm2_Factory::registerElement('sortablemagicselect', 'Am_Form_Element_SortableMagicSelect'); HTML_QuickForm2_Factory::registerElement('checkboxedgroup', 'Am_Form_Element_CheckboxedGroup'); HTML_QuickForm2_Factory::registerElement('advfieldset', 'Am_Form_Container_AdvFieldset'); HTML_QuickForm2_Factory::registerElement('multi_select', 'Am_Form_Element_MultiSelect'); HTML_QuickForm2_Factory::registerElement('category', 'Am_Form_Element_Category'); HTML_QuickForm2_Factory::registerRule('callback2', 'Am_Rule_Callback2'); HTML_QuickForm2_Factory::registerRule('remote', 'HTML_QuickForm2_Rule_Remote');
$url = 'http://v4.amember.com/docs/' . $url; return $url; } } } class Am_Form_Renderer_User extends Am_Form_Renderer { } class Am_Form_Renderer_Admin extends Am_Form_Renderer { } HTML_QuickForm2_Factory::registerElement('period', 'Am_Form_Element_Period'); HTML_QuickForm2_Factory::registerElement('date', 'Am_Form_Element_Date'); HTML_QuickForm2_Factory::registerElement('integer', 'Am_Form_Element_Integer'); HTML_QuickForm2_Factory::registerElement('advcheckbox', 'Am_Form_Element_AdvCheckbox'); HTML_QuickForm2_Factory::registerElement('advradio', 'Am_Form_Element_AdvRadio'); HTML_QuickForm2_Factory::registerElement('email_checkbox', 'Am_Form_Element_EmailCheckbox'); HTML_QuickForm2_Factory::registerElement('email_select', 'Am_Form_Element_EmailSelect'); HTML_QuickForm2_Factory::registerElement('email_link', 'Am_Form_Element_EmailLink'); HTML_QuickForm2_Factory::registerElement('email_with_days', 'Am_Form_Element_EmailWithDays'); HTML_QuickForm2_Factory::registerElement('upload', 'Am_Form_Element_Upload'); HTML_QuickForm2_Factory::registerElement('script', 'Am_Form_Element_Script'); HTML_QuickForm2_Factory::registerElement('html', 'Am_Form_Element_Html'); HTML_QuickForm2_Factory::registerElement('csrf', 'Am_Form_Element_Csrf'); HTML_QuickForm2_Factory::registerElement('options_editor', 'Am_Form_Element_OptionsEditor'); HTML_QuickForm2_Factory::registerElement('htmleditor', 'Am_Form_Element_HtmlEditor'); HTML_QuickForm2_Factory::registerElement('magicselect', 'Am_Form_Element_MagicSelect'); HTML_QuickForm2_Factory::registerElement('checkboxedgroup', 'Am_Form_Element_CheckboxedGroup'); HTML_QuickForm2_Factory::registerElement('advfieldset', 'Am_Form_Container_AdvFieldset'); HTML_QuickForm2_Factory::registerRule('callback2', 'Am_Rule_Callback2');