To add: public function postnewAction() {
$request = $this->getRequest(); if(!$request->isPost()) { $this->_helper->redirector('notauthorized', 'error'); } $form = $this->_getNewMessageForm(); if (!$form->isValid($request->getPost())) { $this->view->newMessageForm = $form; return $this->render('index'); } $values = $form->getValues(); Zend_Debug::dump($values); exit; Outputs: array(1) { ["message"] => string(27) "This is <a>linked text</a>." } On Wed, Jul 15, 2009 at 8:13 AM, J DeBord <jasdeb...@gmail.com> wrote: > Thanks for the reply Matthew. > > I'm using 1.84 > > Still not working. After executing the code below (see form and controller > code) and putting this into the textarea: > > <p> > This is <a onClick="foo.bar()" href="http://foo.com/" > title="Foo!">linked text</a>. > </p> > > The following is entered into the MySql DB: > > [image: > Edit]<http://localhost/phpmyadmin/tbl_change.php?db=jasondeb_jdnet_Zend&table=messages&primary_key=+%60messages%60.%60id%60+%3D+49&sql_query=SELECT+%2A+FROM+%60messages%60&goto=sql.php&token=e863630c23d959b05950ce1d215c6df5> > [image: > Delete]<http://localhost/phpmyadmin/sql.php?db=jasondeb_jdnet_Zend&table=messages&sql_query=DELETE+FROM+%60jasondeb_jdnet_Zend%60.%60messages%60+WHERE+%60messages%60.%60id%60+%3D+49+LIMIT+1&zero_rows=The+row+has+been+deleted&goto=sql.php%3Fdb%3Djasondeb_jdnet_Zend%26table%3Dmessages%26sql_query%3DSELECT%2B%252A%2BFROM%2B%2560messages%2560%26zero_rows%3DThe%2Brow%2Bhas%2Bbeen%2Bdeleted%26goto%3Dtbl_structure.php%26token%3De863630c23d959b05950ce1d215c6df5&token=e863630c23d959b05950ce1d215c6df5> > 49 2009-07-15 07:54:32 1 This is <a>linked text</a>. > Everything but the <a> tag is stripped as expected, but the href is still > being stripped. Could it have something to do with the Zend_Db_Table's > insert method? > > FORM: > > <?php > > class Form_NewMessage extends Form_Default { > > public function init() { > > $this->setMethod('post'); > > $this->setAttrib('id', 'new_message'); > $this->setDescription("What are you doing? What's new?"); > > $textarea = new Zend_Form_Element_Textarea('message', array( > 'id' => 'message', > 'filters' => array( > array('StripTags', array(array('a'), array('href', > 'title'))), > 'StringTrim', > ), > 'validators' => array(), > 'rows' => 2, > 'cols' => 40, > )); > > $this->addElement($textarea); > > $this->addElement('Submit', 'submit', array( > 'Decorators' => array('ViewHelper'), > 'class' => 'submit', > 'Label' => 'Post Your Message!', > 'Ignore' => true, > )); > > $this->setDecorators(array( > 'Description', > 'FormElements', > 'Fieldset', > 'Form' > )); > > } > } > > CONTROLLER (postnewAction is the relevant piece): > > public function indexAction() { > > $this->view->headTitle('Message Board'); > > $this->view->newMessageForm = $this->_getNewMessageForm(); > > } > > public function postnewAction() { > > $request = $this->getRequest(); > > if(!$request->isPost()) { > $this->_helper->redirector('notauthorized', 'error'); > } > > $form = $this->_getNewMessageForm(); > > if (!$form->isValid($request->getPost())) { > $this->view->newMessageForm = $form; > return $this->render('index'); > } > > $values = $form->getValues(); > $values['user_id'] = Zend_Auth::getInstance()->getIdentity()->id; > $model = new Model_DbTable_Messages; > $result = $model->insert($values); > > if(!$result) { > throw new Zend_Exception('Problem adding message to database'); > } > > $this->_helper->redirector('index', 'messageboard'); > > } > > protected function _getNewMessageForm() { > > $form = new Form_NewMessage; > $form->setAction('/messageboard/postnew/'); > > return $form; > } > > > Again, I really appreciate your help. > > Thanks! > > J > > > On Tue, Jul 14, 2009 at 11:06 PM, Matthew Weier O'Phinney < > matt...@zend.com> wrote: > >> -- J DeBord <jasdeb...@gmail.com> wrote >> (on Tuesday, 14 July 2009, 08:29 PM +0200): >> > I've tried to make StripTags leave the href attribute, but it strips it >> out. I >> > can't find the right syntax or it just doesn't work. The <a> tag is left >> > intact, every other tag is stripped, but the href and title get stripped >> as >> > well. >> > >> > I've also used the fluid interface when adding the Textarea, but changed >> it to >> > what is below in hopes that it would work. >> > >> > What am I doing wrong? >> >> What version of ZF are you using? >> >> I did the following using current trunk: >> >> $element = new Zend_Form_Element_Textarea('foo', array( >> 'filters' => array( >> array('StripTags', array(array('a'), array('href', 'title'))), >> 'StringTrim', >> ), >> 'value' => '<p> >> This is <a onClick="foo.bar()" href="http://foo.com/" >> title="Foo!">linked text</a>. >> </p>', >> )); >> echo $element->getValue(); >> >> and got exactly what I expected: >> >> This is <a href="http://foo.com/" title="Foo!">linked text</a>. >> >> >> > <?php >> > >> > class Form_NewMessage extends Form_Default { >> > >> > public function init() { >> > >> > $this->setMethod('post'); >> > >> > $this->setAttrib('id', 'new_message'); >> > >> > $textarea = new Zend_Form_Element_Textarea('message'); >> > $textarea->setDecorators($this->_defaultDecorators); >> > >> > $stripTags = new Zend_Filter_StripTags(array('a'), array('href', >> > 'title')); >> > >> > $textarea->addFilter('StringTrim'); >> > $textarea->addFilter($stripTags); >> > $textarea->setValidators(array()); >> > $textarea->setRequired(true); >> > $textarea->setAttrib('cols', 40); >> > $textarea->setAttrib('rows', 2); >> > >> > $this->addElement($textarea); >> > >> > $this->addElement('Submit', 'submit', array( >> > 'Decorators' => array('ViewHelper'), >> > 'class' => 'submit', >> > 'Label' => 'Post Your Message!', >> > 'Ignore' => true, >> > )); >> > >> > $this->setDecorators(array( >> > 'Description', >> > 'FormElements', >> > 'Fieldset', >> > 'Form' >> > )); >> > >> > } >> > } >> >> -- >> Matthew Weier O'Phinney >> Project Lead | matt...@zend.com >> Zend Framework | http://framework.zend.com/ >> > >