@@ -124,7 +124,11 @@ static function getMetaAttributeType( $name, $context = 'search' )
124
124
'owner_name ' => 'text ' ,
125
125
'owner_group_id ' => 'sint ' ,
126
126
'path ' => 'sint ' ,
127
- 'object_states ' => 'sint ' ),
127
+ 'object_states ' => 'sint ' ,
128
+ 'visible_path ' => 'sint ' ,
129
+ 'hidden_path ' => 'sint ' ,
130
+ 'visible_path_string ' => 'mstring ' ,
131
+ 'hidden_path_string ' => 'mstring ' ),
128
132
self ::metaAttributes (),
129
133
self ::nodeAttributes () ),
130
134
'facet ' => array (
@@ -464,6 +468,11 @@ function addObject( $contentObject, $commit = true, $commitWithin = 0, $softComm
464
468
$ mainNodeID = $ mainNode ->attribute ( 'node_id ' );
465
469
// initialize array of parent node path ids, needed for multivalued path field and subtree filters
466
470
$ nodePathArray = array ();
471
+ // eZ Find 5.4+ expanding on nodePathArray, collect them in different visibility arrays
472
+ $ invisibleNodePathArray = array ();
473
+ $ visibleNodePathArray = array ();
474
+ $ invisibleNodePathString = array ();
475
+ $ visibleNodePathString = array ();
467
476
468
477
//included in $nodePathArray
469
478
//$pathArray = $mainNode->attribute( 'path_array' );
@@ -484,6 +493,16 @@ function addObject( $contentObject, $commit = true, $commitWithin = 0, $softComm
484
493
'fieldType ' => $ fieldType );
485
494
}
486
495
$ nodePathArray [] = $ contentNode ->attribute ( 'path_array ' );
496
+ if ( $ contentNode ->attribute ( 'is_hidden ' ) || $ contentNode ->attribute ( 'is_invisible ' ) )
497
+ {
498
+ $ invisibleNodePathArray = array_merge ( $ invisibleNodePathArray , $ contentNode ->attribute ( 'path_array ' ) );
499
+ $ invisibleNodePathString []= $ contentNode ->attribute ( 'path_string ' );
500
+ }
501
+ else
502
+ {
503
+ $ visibleNodePathArray = array_merge ( $ visibleNodePathArray , $ contentNode ->attribute ( 'path_array ' ) );
504
+ $ visibleNodePathString [] = $ contentNode ->attribute ( 'path_string ' );
505
+ }
487
506
488
507
}
489
508
@@ -627,6 +646,12 @@ function addObject( $contentObject, $commit = true, $commitWithin = 0, $softComm
627
646
$ doc ->addField ( 'meta_main_path_element_ ' . $ key . '_si ' , $ pathNodeID );
628
647
629
648
}
649
+ // Since eZ Find 5.4
650
+
651
+ $ doc ->addField ( ezfSolrDocumentFieldBase::generateMetaFieldName ( 'visible_path ' ), $ visibleNodePathArray );
652
+ $ doc ->addField ( ezfSolrDocumentFieldBase::generateMetaFieldName ( 'visible_path_string ' ), $ visibleNodePathString );
653
+ $ doc ->addField ( ezfSolrDocumentFieldBase::generateMetaFieldName ( 'hidden_path ' ), $ invisibleNodePathArray );
654
+ $ doc ->addField ( ezfSolrDocumentFieldBase::generateMetaFieldName ( 'hidden_path_string ' ), $ invisibleNodePathString );
630
655
631
656
eZContentObject::recursionProtectionStart ();
632
657
0 commit comments