Forums / Install & configuration / Class filter by identifier not working

Class filter by identifier not working

Author Message

James Ward

Thursday 17 August 2006 1:40:47 pm

Using eZ 3.8

I'm trying to do a relatively simple fetch on a custom content class I created. The class identifier is "advocacyonline". Here is the fetch function which is failing:

{def $mynodes=fetch('content', 'tree',
        hash('parent_node_id', 69,
             'class_filter_type', 'include',
             'class_filter_array', array('advocacyonline')
             ))}

I get a notice on that says "Class filter returned false"

If I use the number to filter the class instead everything works fine. The following code works:

{def $mynodes=fetch('content', 'tree',
        hash('parent_node_id', 69,
             'class_filter_type', 'include',
             'class_filter_array', array('16')
             ))}

Any thoughts on what is going wrong?

working at www.wardnet.com
blogging at www.jamesward.ca

André R.

Friday 18 August 2006 12:24:26 am

Class id, and any other id is a number, so try:
'class_filter_array', array(16)

eZ Online Editor 5: http://projects.ez.no/ezoe || eZJSCore (Ajax): http://projects.ez.no/ezjscore || eZ Publish EE http://ez.no/eZPublish/eZ-Publish-Enterprise-Subscription
@: http://twitter.com/andrerom

James Ward

Friday 18 August 2006 7:11:08 am

Clarification:
The code using the number to filter is working fine. The code using the class identifier is not working. Any suggestions as to why the class identifier is not working?

working at www.wardnet.com
blogging at www.jamesward.ca

Claudia Kosny

Friday 18 August 2006 11:09:16 am

Hello James,

What happens if you get a list of the class identifiers known to EZ, e.g. by doing

{def $classes=fetch( 'class', 'list' )}
 
{foreach $classes as $class}
 {$class.identifier|wash} <br />
{/foreach}

Check whether advocacyonline turns up in this list - maybe you just have a typo or so.

If that does not help and if you know a bit of PHP check what the function
eZContentObjectTreeNode::createClassFilteringSQLString
is doing. As far as I know this is the function responsible for the class filter in most content fetch functions.

Greetings from Luxembourg

Claudia

Dan Ruth

Wednesday 23 August 2006 8:18:34 am

Thanks Claudia,

Interestingly, the advocacyonline class did not appear in the class listing until i cleared all caches... at which point in time the code worked.