Details
-
Bug
-
Resolution: Fixed
-
High
-
5.4.0, 2015.05
-
None
Description
When using eZContentObjectTreeNode::subTreeByNodeId, the not_in operator forces all the strings in the provided array to integer.
ezcontentobjecttreenode.php
while ( list( $key, $value ) = each( $filter[2] ) ) { // Non-numerics must be escaped to avoid SQL injection switch ( $filterFieldType ) { case 'string': $filter[2][$key] = "'" . $db->escapeString( $value ) . "'"; break; case 'integer': default: $filter[2][$key] = (int) $value; } }
$filterFieldType is not defined anywhere when using a custom attribute, for example:
eZContentObjectTreeNode::subTreeByNodeId( array( 'AttributeFilter' => array( array( 'fruit/name', 'not_in', array( 'orange', 'banana' ) ), 'ClassFilterType' => 'include', 'ClassFilterArray' => array( 'fruit' ) ), $parent_node_id );