| Author | Message | 
                                                                                                    
                                                        | Leandro Alves
                                                                                                                             
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | Thursday 17 June 2004 12:53:35 pm 
                                                                
                                                                 Hi! I am trying to use one fetch for multiple folder, but I can not!!  I have this: 
Root Folder (node_id = 2)|_Sales
 ...|_News (node_id = 10)
 ......|article 1
 ......|article 2
 |_Account
 ...|_News (node_id = 20)
 ......|article 3
 ......|text 1
 I want to fetch all articles that are only in both folders "News" (Node 10 and 20)..  I don't want the articles that are in both folder "Root", "Sales", "Account" or any other folders.. How Can I do this?!!! I tried: 
{let sub_menu=fetch( content, tree, hash( parent_node_id, 2,sort_by, array( priority, true() ),
 class_filter_type, include,
 class_filter_array,
 array ('10', 'and' '20') ) ) }
 {/let} But it doesn't work... :( I tried other options found in this links, but nothing worked http://www.ez.no/ez_publish/documentation/customization/tips_tricks/fetch_function_examples http://ez.no/ez_publish/documentation/reference/data_fetching/content/list http://ez.no/ez_publish/documentation/development/libraries/ez_template/operators/data_fetch What Can I do? 
Regards.Leandro
 | 
                                                
                                                                                                                                                        
                                                        | Paul Borgermans
                                                                                                                             | Thursday 17 June 2004 2:07:09 pm 
                                                                 http://ez.no/ez_publish/documentation/reference/data_fetching/content/search 
You can use an array of subtrees.Study this fetch function thouroghly, you'll be amazed what flexibility it offers
 -paul eZ Publish, eZ Find, Solr expert consulting and traininghttp://twitter.com/paulborgermans
 
 | 
                                                                                                    
                                                        | Leandro Alves
                                                                                                                             | Friday 18 June 2004 4:12:59 am 
                                                                 Thanks a lot for your reply Paul! 
I studied the link that you sent and this other too:http://ez.no/ez_publish/documentation/customization/components/search/search_operator
 
I made some test and now I have some doubts.I created this structure:
 
Root Folder (node_id = 2)|_Sales
 ...|_News (node_id = 10)
 ......|article 1
 ......|article 2
 |_Account
 ...|_News (node_id = 20)
 ......|article 3
 ......|text 1
 Then I tried: {let search=fetch(content,search,hash(text,'article', subtree_array(10, 20)))} 
{$search['SearchResult']} {* This Returns the word "Array" in my template *}{$search['SearchCount']} {* This Returns the number "3" - That's right! *}
 {$search['StopWordArray']} {* This Returns the word "Array" too *}
 Doubts: 
1. The parameter text in search operator is required, so What can I do to fetch ALL articles in both folders??In this case the fetch didn't catch the article "text 1" in "Account/News"...
 2. How can I do to show the results??? Today I use this code to show the results of ONE News folder 
{let news_list=fetch( content, tree, hash( parent_node_id, NODE_ID_NEWS_FOLDER,sort_by, array( published, false() ),
 class_filter_type, 'include',
 class_filter_array, array( 'article' ) ) )}
 
 <h2>News</h2>{section var=news max=3 loop=$news_list}
 {node_view_gui view=line content_node=$news.item}
 {/section}
 {/let}
 I am not any expert in eZ, I am learn a lot of Exponential with the example codes... The link http://ez.no/ez_publish/documentation/reference/data_fetching/content/search there isn't any example.. :( 
Could you send me one exemple of how to do this??Or could you send me other explanation for I try..
 
Thanks a lot again!Leandro
 | 
                                                                                                    
                                                        | Paul Forsyth
                                                                                                                             | Friday 18 June 2004 4:31:58 am 
                                                                 When you see the word Array it actually means the result is an array, so you need to look inside the array to get the results you need, ie: 
{section var=SearchResult loop=$search['SearchResult']}{$SearchResult}
 {/section}
 paul 
--http://www.visionwt.com
 | 
                                                                                                    
                                                        | Leandro Alves
                                                                                                                             | Friday 18 June 2004 9:03:01 am 
                                                                 Hi Paul. I made what you said, but it didn't work yet!!! I have this code now: {let search=fetch(content,search,hash(text,'article', subtree_array, array( 10, 20 )))} 
{section var=SearchResult loop=$search['SearchResult']}{$SearchResult}
 {/section}
 {/let} And the result is this in my template: <b>Object(ezcontentobjecttreenode)</b> What is my mistake?? Still doubt: 
1. The parameter text in search operator is required, so What can I do to fetch ALL articles in both folders??In this case the fetch didn't catch the article "text 1" in "Account/News"...
 
Thanks!Leandro
 | 
                                                                                                    
                                                        | Paul Borgermans
                                                                                                                             | Friday 18 June 2004 9:16:16 am 
                                                                 You can allow empty searches by a setting called AllowEmptySearch in sit.ini.append under [SearchSettings] Now you should learn to use {$variable|attribute(show)} to discover what to do in the loop. Regards -paul eZ Publish, eZ Find, Solr expert consulting and traininghttp://twitter.com/paulborgermans
 
 | 
                                                                                                    
                                                        | Leandro Alves
                                                                                                                             | Friday 18 June 2004 10:47:06 am 
                                                                 I'm sorry to be a newbie in eZ... But I didn't understand how to use {$variable|attribute(show)}. I tried: {let search=fetch(content,search,hash(text,'article', subtree_array, array( 10, 20 )))} 
{section var=SearchResult loop=$search['SearchResult']}{$SearchResult|attribute(show)}
 {/section}
 {/let} And the result in my template was: 
<b>Attribute Type Value </b><b>Object NULL</b>
 <b>0 NULL</b>
 <b>1 NULL</b>
 <b> NULL </b>
 <b>And many error in eZ Debug page...</b> I searched out in eZ Site about your reply, but I found nothing for my case... How can I use {$variable|attribute(show)} in this case?! About the empty searches I understood... 
Thanks again!Leandro
 | 
                                                                                                    
                                                        | Paul Borgermans
                                                                                                                             | Friday 18 June 2004 2:33:25 pm 
                                                                 Hi Leandro look here for the docs http://ez.no/ez_publish/documentation/customization/tips_tricks/debugging_templates And try  
   {section var=SearchResult loop=$search['SearchResult']}
   {$SearchResult.item|attribute(show)}
   {/section}
Depending on the number of items you will get a list which shows which variables you can/want to use. In fact you will get an array of objects of which the member variables (attributes) will provide what you are looking for hth -paul PS: there is also a book to get you started ;-) eZ Publish, eZ Find, Solr expert consulting and traininghttp://twitter.com/paulborgermans
 
 | 
                                                                                                    
                                                        | Leandro Alves
                                                                                                                             | Monday 21 June 2004 4:37:15 am 
                                                                 Hi -paul I tried to use what you sent and now I have the output result like I wanted with this code: 
{let search=fetch(content,search,hash(text,'article', subtree_array, array( 10, 20 )))}
{section var=SearchResult loop=$search['SearchResult']}
<a href={$SearchResult.item.url_alias|ezurl}>{$SearchResult.item.name|wash}</a>
{attribute_view_gui attribute=$SearchResult.object.data_map.intro}
{/section}
{/let}
The result is what I want! But I still have a problem... :( I changed my site.ini.append allowing empty searches but it didn't work with the fetch operator... 
[SearchSettings]AllowEmptySearch=enabled
 After I changed the site.ini.append, I tried all this: 
{let search=fetch(content,search,hash(text,' ', subtree_array, array( 10, 20 )))}
{let search=fetch(content,search,hash(text,'*', subtree_array, array( 10, 20 )))}
{let search=fetch(content,search,hash(text," ", subtree_array, array( 10, 20 )))}
{let search=fetch(content,search,hash(text, , subtree_array, array( 10, 20 )))}
{let search=fetch(content,search,hash(subtree_array, array( 10, 20 )))}
And nothing worked. What can I do now?!! :) 
Thanks!Leandro
 PS: May could you get the answer in your eZ Book to me! ;-) | 
                                                                                                    
                                                        | Paul Borgermans
                                                                                                                             | Monday 21 June 2004 6:31:44 am 
                                                                 Try 
   {let search=fetch(content,search,hash(text,'', subtree_array, array( 10, 20 )))}
Did you clear the (ini) cache? 
hth-paul
 eZ Publish, eZ Find, Solr expert consulting and traininghttp://twitter.com/paulborgermans
 
 | 
                                                                                                    
                                                        | Leandro Alves
                                                                                                                             | Monday 21 June 2004 7:22:18 am 
                                                                 I tried your reply and nothing happened... See the results in eZ Debug page: 
<b>Error: eZMySQLDB</b>Query error: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'order by object_count' at line 1. Query: SELECT id, word, object_count FROM ezsearch_word where order by object_count
 
<b>Notice: eZMySQLDB::query(0.000 ms) query number per page:0</b>SELECT id, word, object_count FROM ezsearch_word where order by object_count
 I cleared all the cache before to try... 
Thanks a lot again!Leandro
 |