Thanks Matthew,
I think I just figured that out myself!
Regards, TJ.
On Thu, Jul 17, 2008 at 8:21 PM, Matthew Weier O'Phinney <[EMAIL PROTECTED]>
wrote:
> -- Codiac <[EMAIL PROTECTED]> wrote
> (on Thursday, 17 July 2008, 10:39 AM -0700):
> > I have to retract my previous mail, stating the issue is resolved. I've
> > double checked and there's definitely something strange going on with
> adding
> > filters to elements using Zend_Config_Xml. Not sure what it is (probably
> me
> > again), so i need help.
> >
> > I played around with setting different (very wrong) options for the
> > StripTags filter, so now I have the following in my config file:
>
> Here's a simple XML config file I used:
>
> <?xml version="1.0"?>
> <configdata>
> <form>
> <elements>
> <keywords>
> <type>text</type>
> <options>
> <name>keywords</name>
> <label>Keywords</label>
> <filters>
> <stripTags>
> <filter>StripTags</filter>
> <options>
> <tagsAllowed>
> <tag><![CDATA[<a>]]></tag>
> <tag><![CDATA[<p>]]></tag>
> </tagsAllowed>
>
> <attributesAllowed>class</attributesAllowed>
> <commentsAllowed>1</commentsAllowed>
> </options>
> </stripTags>
> </filters>
> </options>
> </keywords>
> </elements>
> </form>
> </configdata>
>
> I then did the following script:
>
> $config = new Zend_Config_Xml(dirname(__FILE__) . '/form.xml', 'form');
> $form = new Zend_Form($config);
> $filters = $form->keywords->getFilters();
> var_export($filters);
>
> and I get the following output:
>
> array (
> 'Zend_Filter_StripTags' =>
> Zend_Filter_StripTags::__set_state(array(
> 'commentsAllowed' => true,
> '_tagsAllowed' =>
> array (
> 'tag' =>
> array (
> '<a>' => NULL,
> '<p>' => NULL,
> ),
> ),
> '_attributesAllowed' =>
> array (
> 'class' => NULL,
> ),
> )),
> )
>
> As you can see, the filter is being correctly setup.
>
> One thing to note when using configuration: the options you pass are
> passed IN ORDER to the constructor of the filter -- you can't skip
> options, nor can you pass them out-of-order -- which is why the below
> config does not work. It's missing the first argument (corresponding to
> 'tagsAllowed'), and it's got commentsAllowed and attributesAllowed in
> the wrong order.
>
>
> > <filters>
> > <striptags>
> > <filter>StripTags</filter>
> > <options>
> > <commentsAllowed>
> > <tag><![CDATA[<p>]]></tag>
> > </commentsAllowed>
> > <attibutesAllowed>
> > <attrib>class</attrib>
> > </attibutesAllowed>
> > </options>
> > </striptags>
> > </filters>
> >
> > I used $form->getElement('body')->getFilter('StripTags') to get the
> filter
> > from the element and used a simple print_r to check how it was setup:
> >
> > Zend_Filter_StripTags Object([commentsAllowed] =>
> [_tagsAllowed:protected]
> > => Array([<p> => Array())
> > [_attributesAllowed:protected] => Array([class] => ))
> >
> >
> > ???
> >
> > When I use the following config of options:
> >
> >
> > <filters>
> > <striptags>
> > <filter>StripTags</filter>
> > <options>
> > <tagsAllowed>
> > <tag><![CDATA[<p>]]></tag>
> > </tagsAllowed>
> > <commentsAllowed>
> > <![CDATA[<p>]]>
> > </commentsAllowed>
> > <attibutesAllowed>
> > <attrib>class</attrib>
> > </attibutesAllowed>
> > </options>
> > </striptags>
> > </filters>
> >
> > I get:
> >
> > Zend_Filter_StripTags Object([commentsAllowed] => 1
> [_tagsAllowed:protected]
> > => Array([tag] => Array([<p>] => ))
> >
> > [_attributesAllowed:protected] => Array([<p>] => ))
> >
> > What the !@&$????
> >
> > Questions:
> > Do I need to add all options in the config file for a filter? Is there a
> > particular order in which to add those options?
> >
> > No matter which order I use for setting the options....they simple don't
> get
> > set properly! Does it have anything to do with the following code in
> > Zend_Form_Element::_loadFilter?
> >
> > if (empty($filter['options'])) {
> > $instance = new $name;
> > } else {
> > $r = new ReflectionClass($name);
> > if ($r->hasMethod('__construct')) {
> > $instance = $r->newInstanceArgs((array)
> $filter['options']);
> > } else {
> > $instance = $r->newInstance();
> > }
> > }
>
> --
> Matthew Weier O'Phinney
> Software Architect | [EMAIL PROTECTED]
> Zend Framework | http://framework.zend.com/
>