Forums / General / filtering problems...

filtering problems...

Author Message

johann savalle

Sunday 26 June 2005 3:50:11 am

Hi,

I guess I am still unable to figure out the right way to read the documentation, but after multiple try I still can't filter a list of class based on an attribute value...
here is the code :

{let data2=fetch( 'content', 'tree', hash( 'parent_node_id', 15232,
                                          'class_filter_type', 'include',
                                          'class_filter_array', array( 'lesson_text' ) 
                                          'attribute_filter', 
                                           array('or', array( 'lesson_text/status', '=', 0 ))))}
        {section var=test loop=$data2}
                {node_view_gui view=line content_node=$test}
        {/section}

It doesn't display anything at all... and i got the following debug message :

parser error @ design/kabru/templates/pagelayout.tpl:36[10]
Extra characters found, should have been a whitespace or the end of the expression
Characters: 'fetch( 'content', 'tree', hash( 'parent_node_id', 15232,
                                          'class_filter_type', 'include',
                                          'class_filter_array', array( 'lesson_text' )
                                          'attribute_filter', 
                                           array('or', array( 'lesson_text/status', '=', 0 ))))'

I have followed the documention(the old one and the new one), which doesn't provide any exemples anyway, but so far it should be correct.

any ideas ?

Łukasz Serwatka

Sunday 26 June 2005 5:29:08 am

Hi Johann,

This error means that your code have errors in syntax. You have missing ","

'class_filter_array', array( 'lesson_text' ) <- missing ","

should be 

'class_filter_array', array( 'lesson_text' ),
'attribute_filter', 

Personal website -> http://serwatka.net
Blog (about eZ Publish) -> http://serwatka.net/blog

johann savalle

Sunday 26 June 2005 5:29:29 am

Thanks:) I have fixed the missing coma, but it still doesn't display anything...

just in case I tried with :
{let mylist=fetch(content,list,hash(parent_node_id,15232))}
{section loop=$mylist}
{section show=eq($:item.data_map.status.data_int, 0}
{node_view_gui view=line content_node=$:item.data_map}<br>
{/section}
{/section}
{/let}
<br>

but doesn't do much more ...

Łukasz Serwatka

Sunday 26 June 2005 5:43:45 am

Try with,

{node_view_gui view=line content_node=$:item}

and check if var "mylist" have any data

{$mylist|attribute( 'show',1 )}

If you want fetch only nodes with status 0 use

 array( array( 'lesson_text/status', '=', 0 ) )

Good luck!

Personal website -> http://serwatka.net
Blog (about eZ Publish) -> http://serwatka.net/blog

johann savalle

Sunday 26 June 2005 5:51:04 am

thanks,

finally it's working, I used the attribute Id instead of the 'lesson_text/status' and it worked... no idea why this is so, but it's enought if it's working ;)

Mark Marsiglio

Sunday 26 June 2005 6:37:58 pm

Johann,

What kind of system are you running (OS, ez version)?

I just experienced this problem today after copying code from a working installation 3.5/linux to a 3.6/windows install and had to make the same change to get it to work (from attribute name to ID).

Hoping to narrow down to see if it is a bug...

Thanks
Mark

http://www.thinkcreative.com
Turning Ideas Into Strategic Solutions