public static function makeObjectsArray($array, $with_contentobject = true, array $propertiesOverride = null)
 {
     $retNodes = array();
     if (!is_array($array)) {
         return $retNodes;
     }
     foreach ($array as $node) {
         if ($propertiesOverride !== null) {
             $node = $propertiesOverride + $node;
         }
         if ($node['node_id'] == 1 && (!array_key_exists('name', $node) || !$node['name'])) {
             $node['name'] = ezpI18n::tr('kernel/content', 'Top Level Nodes');
         }
         $object = new eZContentObjectTreeNode(array("node_id" => $node["node_id"], "parent_node_id" => $node["parent_node_id"], "main_node_id" => $node["main_node_id"], "contentobject_id" => isset($node["id"]) ? $node["id"] : $node["contentobject_id"], "contentobject_version" => $node["contentobject_version"], "contentobject_is_published" => $node["contentobject_is_published"], "depth" => $node["depth"], "sort_field" => $node["sort_field"], "sort_order" => $node["sort_order"], "priority" => $node["priority"], "modified_subnode" => $node["modified_subnode"], "path_string" => $node["path_string"], "path_identification_string" => $node["path_identification_string"], "remote_id" => $node["remote_id"], "is_hidden" => $node["is_hidden"], "is_invisible" => $node["is_invisible"]));
         // If the name is not set it will be fetched later on when
         // getName()/attribute( 'name' ) is accessed.
         if (isset($node['name'])) {
             $object->setName($node['name']);
         }
         if (isset($node['class_serialized_name_list'])) {
             $node['class_name'] = eZContentClass::nameFromSerializedString($node['class_serialized_name_list']);
             $object->ClassName = $node['class_name'];
         }
         if (isset($node['class_identifier'])) {
             $object->ClassIdentifier = $node['class_identifier'];
         }
         if (isset($node['is_container'])) {
             $object->ClassIsContainer = $node['is_container'];
         }
         if ($with_contentobject) {
             if (isset($node['class_name'])) {
                 $row = array("id" => $node["id"], "section_id" => $node["section_id"], "owner_id" => $node["owner_id"], "contentclass_id" => $node["contentclass_id"], "name" => $node["name"], "published" => $node["published"], "modified" => $node["modified"], "current_version" => $node["current_version"], "status" => $node["status"], "remote_id" => $node["object_remote_id"], "language_mask" => $node["language_mask"], "initial_language_id" => $node["initial_language_id"], "class_name" => $node["class_name"]);
                 if (isset($node['class_identifier'])) {
                     $row['class_identifier'] = $node['class_identifier'];
                 }
                 $contentObject = new eZContentObject($row);
             } else {
                 $contentObject = new eZContentObject(array());
                 if (isset($node['name'])) {
                     $contentObject->setCachedName($node['name']);
                 }
             }
             if (isset($node['real_translation']) && $node['real_translation'] != '') {
                 $object->CurrentLanguage = $node['real_translation'];
                 $contentObject->CurrentLanguage = $node['real_translation'];
             }
             if ($node['node_id'] == 1) {
                 $contentObject->ClassName = 'Folder';
                 $contentObject->ClassIdentifier = 'folder';
                 $contentObject->ClassID = 1;
                 $contentObject->SectionID = 1;
             }
             $object->setContentObject($contentObject);
         }
         $retNodes[] = $object;
     }
     return $retNodes;
 }
    static function makeObjectsArray( $array , $with_contentobject = true )
    {
        $retNodes = array();
        if ( !is_array( $array ) )
            return $retNodes;

        foreach ( $array as $node )
        {
            unset( $object );

            if( $node['node_id'] == 1 )
            {
                if( !isset( $node['name'] ) || !$node['name'] )
                    $node['name'] = ezpI18n::tr( 'kernel/content', 'Top Level Nodes' );
            }

            $object = new self( $node );
            // If the name is not set it will be fetched later on when
            // getName()/attribute( 'name' ) is accessed.
            if ( isset( $node['name'] ) )
            {
                $object->setName( $node['name'] );
            }

            if ( isset( $node['class_serialized_name_list'] ) )
            {
                $node['class_name'] = eZContentClass::nameFromSerializedString( $node['class_serialized_name_list'] );
                $object->ClassName = $node['class_name'];
            }
            if ( isset( $node['class_identifier'] ) )
                $object->ClassIdentifier = $node['class_identifier'];

            if ( isset( $node['is_container'] ) )
                $object->ClassIsContainer = $node['is_container'];

            if ( $with_contentobject )
            {
                if ( isset( $node['class_name'] ) )
                {
                    unset( $node['remote_id'] );
                    $contentObject = new eZContentObject( $node );

                    $permissions = array();
                    $contentObject->setPermissions( $permissions );
                    $contentObject->setClassName( $node['class_name'] );
                    if ( isset( $node['class_identifier'] ) )
                        $contentObject->ClassIdentifier = $node['class_identifier'];

                }
                else
                {
                    $contentObject = new eZContentObject( array());
                    if ( isset( $node['name'] ) )
                         $contentObject->setCachedName( $node['name'] );
                }
                if ( isset( $node['real_translation'] ) && $node['real_translation'] != '' )
                {
                    $object->CurrentLanguage = $node['real_translation'];
                    $contentObject->CurrentLanguage = $node['real_translation'];
                }
                if ( $node['node_id'] == 1 )
                {
                    $contentObject->ClassName = 'Folder';
                    $contentObject->ClassIdentifier = 'folder';
                    $contentObject->ClassID = 1;
                    $contentObject->SectionID = 1;
                }

                $object->setContentObject( $contentObject );
            }
            $retNodes[] = $object;
        }
        return $retNodes;
    }