public function doExecApplier() { $form = new MyQuickForm('applyform', 'POST', M_Office::URL()); $opts = M::tablesWithPlugin('tag'); $opts = array_combine($opts, $opts); $form->addElement('select', 'table', 'Table', $opts); $form->addElement('textarea', 'clause', 'clause', 'rows="4" cols="60"'); $form->addElement('text', 'tagname', 'tagname'); $form->addElement('text', 'tagdel', 'tagdel'); $form->addElement('checkbox', 'distinct', 'distinct'); $form->addElement('submit', '__submit__', 'Apply'); $form->addFormRule(array($this, 'checkApplier')); if ($form->validate()) { @set_time_limit(0); ini_set('memory_limit', '1024M'); $values = $form->exportValues(); $t = DB_DataObject::factory($values['table']); $query = 'SELECT ' . ($values['distinct'] ? 'DISTINCT ' : ' ') . $values['table'] . '.* FROM ' . $values['table'] . ' ' . $values['clause']; $t->query($query); while ($t->fetch()) { if ($values['tagname']) { $t->addTag($values['tagname']); } if ($values['tagdel']) { $t->removeTag($values['tagdel']); } $applied++; } $this->assign('success', 1); $this->assign('applied', $applied); } $this->assign('form', $form); }
public function testWithNamePrefix() { T::setLang('fr'); $t = DB_DataObject::factory('formtest'); $t->fb_elementNamePrefix = 'test'; $fb = MyFB::create($t); $form = new MyQuickForm('testform', 'POST', M_Office::URL()); $post = array_merge($form->exportValues(), array('testtitre_group' => array('testtitre_fr' => 'Test titre', 'testtitre_en' => 'title', 'testtitre_es' => 'titulo'), 'testdescription_group' => array('testdescription_fr' => 'Nouv desc 2 FR', 'testdescription_en' => null, 'testdescription_es' => 'Nueva desc 2 ES'), 'testpays' => 'ma', 'testtestuser_id' => 1, '_qf__' . $form->getAttribute('name') => 1, 'testi18n_id_fr' => '', 'testi18n_id_en' => '', 'testi18n_id_es' => '', 'testid' => '')); $get = $_GET; $request = array_merge($get, $post); $form->initRequest($get, $post, $request); $fb->useForm($form); $fb->getForm(); $form->validate(); $form->process(array($fb, 'processForm'), false); T::setLang('es'); $t2 = DB_DataObject::factory('formtest'); $t2->get($t->id); $this->assertEqual($t2->titre, 'titulo'); T::setLang('en'); $t2 = DB_DataObject::factory('formtest'); $t2->get($t->id); $this->assertEqual($t2->titre, 'title'); }