attribute_filter breaking fetch.

Author Message

Emil Österlund

Wednesday 08 August 2007 4:16:06 am

I have this fetch:

                children_tag=fetch( 'content', 'list',
                                        hash( 'parent_node_id',   12,
                                        depth,4,
                                        class_filter_type,include,
                                        class_filter_array,array('image'),
                                        limit, $page_limit,
                                        offset, $view_parameters.offset ) )

and it is working perfectly fine. i get a result of all the images in that parent node and depth 4.
the thing now is that i want to filter the search and only get images from a certain keyword(image/tags).

i tried adding

attribute_filter, array(array( 'image/tags' , 'like', 'string')),

but really had no luck - that line broke the whole fetch and no sql query is run.

i have tried using the id instead of image/tags and i have tried with = instead of like and i have tried with different strings. cant seem to get it to work.

anyone has any ideas?

Paul Borgermans

Wednesday 08 August 2007 1:19:16 pm

Hi Emil

What version of eZ Publish are you running?

Paul

eZ Publish, eZ Find, Solr expert consulting and training
http://twitter.com/paulborgermans

Ole Morten Halvorsen

Wednesday 08 August 2007 3:25:25 pm

Hi Emil,

Did you try to add the wildcard character (*)?

attribute_filter, array(array( 'image/tags' , 'like', '*string*')),

Doc reference: http://ez.no/doc/ez_publish/technical_manual/3_9/reference/modules/content/fetch_functions/list

Ole M.

Senior Software Engineer - Vision with Technology

http://www.visionwt.com
http://www.omh.cc
http://www.twitter.com/omh

eZ Certified Developer
http://ez.no/certification/verify/358441
http://ez.no/certification/verify/272578

Bruce Morrison

Wednesday 08 August 2007 4:48:32 pm

Hi Emil

When you add the attribute_filter line try removing the class_filter_type & class_filter_array lines so you end up with someting like

 children_tag=fetch( 'content', 'list',
                                       hash( 'parent_node_id',  12,
                                       depth,4,
                                       attribute_filter, array(array( 'image/tags' , 'like', '*string*')),
                                       limit, $page_limit,
                                       offset, $view_parameters.offset ) )

I seem to recall that this has worked for me in the past.

Also turn on debugging so you can see the SQL output. This allows you to check the generated SQL and you can tweak the fetch to get the desired result.

Cheers
Bruce

My Blog: http://www.stuffandcontent.com/
Follow me on twitter: http://twitter.com/brucemorrison
Consolidated eZ Publish Feed : http://friendfeed.com/rooms/ez-publish

Emil Österlund

Thursday 09 August 2007 12:47:08 am

Ole: Yes i tried wildcard.
Paul: 3.7.8
Bruce:
It breaks the fetch, whith this i mean that there is no sql run. I have sqldebug on but cant find the query. i even made it original(like puting depth 15) and did not get any.
As soon as i put in attribute_filter it breaks the fetch.

I am using attribute_filter in other fetches and its fine.

Emil Österlund

Thursday 09 August 2007 12:50:57 am

here is my full code:
http://privat.larsemil.se/galleri.txt

Bruce Morrison

Thursday 09 August 2007 1:02:16 am

Hi Emil

Any errors in the debug?

Try changing

children_tag=fetch( 'content', 'list',

to

children_tag=fetch( 'content', 'tree',

"list" will only return nodes directly under (children) the parent node (12) and depending on the depth of node 12 this may cause issues with depth,4

I'm also assuming they you have a

{def $children_tag=...

in there.

Cheers
Bruce

My Blog: http://www.stuffandcontent.com/
Follow me on twitter: http://twitter.com/brucemorrison
Consolidated eZ Publish Feed : http://friendfeed.com/rooms/ez-publish

Emil Österlund

Thursday 09 August 2007 1:25:32 am

bruce:
The thing is: The sql/fetch is run if i dont have attribute filter. It shows all the objects only they are unfiltered. It is first when i add attribute_filter it screws up.

On the same page i have other fetches, and they work perfectly fine.
It is just that one line of attribute_filter that is screwing it up. And i am using attribute_filter in other templates without any problems what so ever.

Emil Österlund

Monday 13 August 2007 1:44:23 am

no more ideas?

Heath

Monday 13 August 2007 1:51:01 am

A number of suggestions have been made, why don't you share the current fetch you have in your template for review.

Cheers,
Heath

Brookins Consulting | http://brookinsconsulting.com/
Certified | http://auth.ez.no/certification/verify/380350
Solutions | http://projects.ez.no/users/community/brookins_consulting
eZpedia community documentation project | http://ezpedia.org

Emil Österlund

Monday 13 August 2007 2:13:20 am

Here we go:

http://privat.larsemil.se/galleri.txt

also i tried leaving class_filters out.

Heath

Monday 13 August 2007 2:57:01 am

Emil,

I took a moment to <i>really</i> test for myself how to do this this morning and found this worked great for me :)

{def $c=fetch( 'content', 'tree', hash( 'parent_node_id', 175,
                depth, 7,
                attribute_filter, array( array( 'article/keywords', 'like', '*string*' ) )
                ) )}

{$c|attribute(show,1)}
{$c.0|attribute(show,1)}

Also works by id just fine ...

{def $c=fetch( 'content', 'tree', hash( 'parent_node_id', 175,
                depth, 7,
                attribute_filter, array( array( 865, 'like', '*string*' ) )
                ) )}

Also works with a variable works as well like this ...

{def $tag='string'}
{def $c=fetch( 'content', 'tree', hash( 'parent_node_id', 175,
                depth, 7,
                attribute_filter, array( array( 'article/keywords', 'like', concat( '*', $tag, '*' ) ) )
                ) )}

Remember to clear all cache before testing, also consider the following, <i>http://ezpedia.org/wiki/en/ez/solution_template_development_without_clearing_cache</i>

For future users we have published the following documentation on eZpedia for long term storage and searching! eZpedia is your friend :)
<i>http://ezpedia.org/wiki/en/ez/solution_how_to_do_an_attribute_filter_using_the_like_condition</i>

Cheers,
Heath

Brookins Consulting | http://brookinsconsulting.com/
Certified | http://auth.ez.no/certification/verify/380350
Solutions | http://projects.ez.no/users/community/brookins_consulting
eZpedia community documentation project | http://ezpedia.org

Emil Österlund

Monday 13 August 2007 3:44:46 am

{def $c=fetch( 'content', 'tree', hash( 'parent_node_id', 3,
               depth, 17,
               attribute_filter, array( array( 'image/tags', 'like', '*larsemil*' ) )
               ) )}

{$c|attribute(show,1)}
{$c.0|attribute(show,1)}

i put this in my code as this 'should' work then.
3 is the lowest node containing all users and everyting.
depth 17 should cover all images by far.
and i looked up and it should be image/tags.

i ony get this output:
Attribute Type Value
Attribute Type Value

is it me or is it my ez publish?

Heath

Monday 13 August 2007 5:29:12 am

Emil,

I think your continued breakdowns in search of a resolution and working solution derive from a number of combined factors.

1) Your using an unsupported branch which is very old, (Re: eZ publish <i>3.7.8</i>)

2) Your using a dirty installation, I can't see it but I'm certain you are.

By dirty I mean it's in an unknown state (the database could be corrupt for all you know for certain), it's using an old version of eZ (lots of bug fixes you may need are not available), it's an old installation with lots of customizations also in an unknown state. The solution / site as a whole could not be certified without much cleanup and re-organizing in a stable clean install of eZ Publish (Which you should do ... now instead of later)

3) Your new to eZ Publish. This is not so bad except you need professional help to lead you to stability and experience, I hope your employer supports you in seeking this experience and support.

Cheers,
Heath

Brookins Consulting | http://brookinsconsulting.com/
Certified | http://auth.ez.no/certification/verify/380350
Solutions | http://projects.ez.no/users/community/brookins_consulting
eZpedia community documentation project | http://ezpedia.org

Powered by eZ Publish™ CMS Open Source Web Content Management. Copyright © 1999-2014 eZ Systems AS (except where otherwise noted). All rights reserved.

eZ debug

Timing: Jan 31 2025 08:15:22
Script start
Timing: Jan 31 2025 08:15:22
Module start 'layout'
Timing: Jan 31 2025 08:15:22
Module start 'content'
Timing: Jan 31 2025 08:15:22
Module end 'content'
Timing: Jan 31 2025 08:15:22
Script end

Main resources:

Total runtime0.0168 sec
Peak memory usage4,096.0000 KB
Database Queries3

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0060 588.1328151.2109
Module start 'layout' 0.00600.0030 739.343836.6484
Module start 'content' 0.00900.0061 775.9922110.2813
Module end 'content' 0.01510.0017 886.273453.9922
Script end 0.0168  940.2656 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.002615.4306140.0002
Check MTime0.00116.3550140.0001
Mysql Total
Database connection0.00106.056110.0010
Mysqli_queries0.002917.319430.0010
Looping result0.00000.089310.0000
Template Total0.00137.410.0013
Template load0.00095.473710.0009
Template processing0.00031.937010.0003
Override
Cache load0.00063.594810.0006
General
dbfile0.002011.950680.0003
String conversion0.00000.043940.0000
Note: percentages do not add up to 100% because some accumulators overlap

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1print_pagelayout.tpl<No override>extension/community/design/community/templates/print_pagelayout.tplEdit templateOverride template
 Number of times templates used: 1
 Number of unique templates used: 1

Time used to render debug report: 0.0001 secs