kernel/classes/datatypes/ezxmltext/ezxmloutputhandler.php
function prefetch()
    {
        $relatedObjectIDArray = array();
        $nodeIDArray = array();

        // Fetch all links and cache urls
        $linkIDArray = $this->getAttributeValueArray( 'link', 'url_id' );
        if ( count( $linkIDArray ) > 0 )
        {
            $inIDSQL = implode( ', ', $linkIDArray );

            $db = eZDB::instance();
            $linkArray = $db->arrayQuery( "SELECT * FROM ezurl WHERE id IN ( $inIDSQL ) " );

            foreach ( $linkArray as $linkRow )
            {
                $url = str_replace( '&', '&amp;', $linkRow['url'] );
                $this->LinkArray[$linkRow['id']] = $url;
            }
        }

        $linkRelatedObjectIDArray = $this->getAttributeValueArray( 'link', 'object_id' );
        $linkNodeIDArray = $this->getAttributeValueArray( 'link', 'node_id' );

        // Fetch all embeded objects and cache by ID
        $objectRelatedObjectIDArray = $this->getAttributeValueArray( 'object', 'id' );

        $embedRelatedObjectIDArray = $this->getAttributeValueArray( 'embed', 'object_id' );
        $embedInlineRelatedObjectIDArray = $this->getAttributeValueArray( 'embed-inline', 'object_id' );

        $embedNodeIDArray = $this->getAttributeValueArray( 'embed', 'node_id' );
        $embedInlineNodeIDArray = $this->getAttributeValueArray( 'embed-inline', 'node_id' );

        $relatedObjectIDArray = array_merge(
            $linkRelatedObjectIDArray,
            $objectRelatedObjectIDArray,
            $embedRelatedObjectIDArray,
            $embedInlineRelatedObjectIDArray );
        $relatedObjectIDArray = array_unique( $relatedObjectIDArray );

        if ( count( $relatedObjectIDArray ) > 0 )
        {
            if ( $this->ContentObjectAttribute instanceof eZContentObjectAttribute )
            {
                $this->ObjectArray = eZContentObject::fetchIDArray(
                    $relatedObjectIDArray, true,
                    $this->ContentObjectAttribute->attribute( 'language_code' )
                );
            }
            else
            {
                $this->ObjectArray = eZContentObject::fetchIDArray( $relatedObjectIDArray );
            }
        }

        $nodeIDArray = array_merge(
            $linkNodeIDArray,
            $embedNodeIDArray,
            $embedInlineNodeIDArray
        );
        $nodeIDArray = array_unique( $nodeIDArray );

        if ( count( $nodeIDArray ) > 0 )
        {
            $nodes = eZContentObjectTreeNode::fetch( $nodeIDArray );

            if ( is_array( $nodes ) )
            {
                foreach( $nodes as $node )
                {
                    $nodeID = $node->attribute( 'node_id' );
                    $this->NodeArray[$nodeID] = $node;
                }
            }
            elseif ( $nodes )
            {
                $node = $nodes;
                $nodeID = $node->attribute( 'node_id' );
                $this->NodeArray[$nodeID] = $node;
            }
        }
    }
function prefetch()
    {
        $relatedObjectIDArray = array();
        $nodeIDArray = array();

        // Fetch all links and cache urls
        $linkIDArray = $this->getAttributeValueArray( 'link', 'url_id' );
        if ( count( $linkIDArray ) > 0 )
        {
            $inIDSQL = implode( ', ', $linkIDArray );

            $db = eZDB::instance();
            $linkArray = $db->arrayQuery( "SELECT * FROM ezurl WHERE id IN ( $inIDSQL ) " );

            foreach ( $linkArray as $linkRow )
            {
                $url = str_replace( '&', '&amp;', $linkRow['url'] );
                $this->LinkArray[$linkRow['id']] = $url;
            }
        }

        $linkRelatedObjectIDArray = $this->getAttributeValueArray( 'link', 'object_id' );
        $linkNodeIDArray = $this->getAttributeValueArray( 'link', 'node_id' );

        // Fetch all embeded objects and cache by ID
        $objectRelatedObjectIDArray = $this->getAttributeValueArray( 'object', 'id' );

        $embedRelatedObjectIDArray = $this->getAttributeValueArray( 'embed', 'object_id' );
        $embedInlineRelatedObjectIDArray = $this->getAttributeValueArray( 'embed-inline', 'object_id' );

        $embedNodeIDArray = $this->getAttributeValueArray( 'embed', 'node_id' );
        $embedInlineNodeIDArray = $this->getAttributeValueArray( 'embed-inline', 'node_id' );

        $relatedObjectIDArray = array_merge(
            $linkRelatedObjectIDArray,
            $objectRelatedObjectIDArray,
            $embedRelatedObjectIDArray,
            $embedInlineRelatedObjectIDArray );
        $relatedObjectIDArray = array_unique( $relatedObjectIDArray );

        if ( count( $relatedObjectIDArray ) > 0 )
        {
            if ( $this->ContentObjectAttribute instanceof eZContentObjectAttribute )
            {
                $this->ObjectArray = eZContentObject::fetchIDArray(
                    $relatedObjectIDArray, true,
                    $this->ContentObjectAttribute->attribute( 'language_code' )
                );
            }
            else
            {
                $this->ObjectArray = eZContentObject::fetchIDArray( $relatedObjectIDArray );
            }
        }

        $nodeIDArray = array_merge(
            $linkNodeIDArray,
            $embedNodeIDArray,
            $embedInlineNodeIDArray
        );
        $nodeIDArray = array_unique( $nodeIDArray );

        if ( count( $nodeIDArray ) > 0 )
        {
            $nodes = eZContentObjectTreeNode::fetch( $nodeIDArray );

            if ( is_array( $nodes ) )
            {
                foreach( $nodes as $node )
                {
                    $nodeID = $node->attribute( 'node_id' );
                    $this->NodeArray[$nodeID] = $node;
                }
            }
            elseif ( $nodes )
            {
                $node = $nodes;
                $nodeID = $node->attribute( 'node_id' );
                $this->NodeArray[$nodeID] = $node;
            }
        }
    }
function prefetch ( ) { $ relatedObjectIDArray = array ( ) ; $ nodeIDArray = array ( ) ; // Fetch all links and cache urls $ linkIDArray = $ this -> getAttributeValueArray ( 'link' , 'url_id' ) ; if ( count ( $ linkIDArray ) > 0 ) { $ inIDSQL = implode ( ', ' , $ linkIDArray ) ; $ db = eZDB :: instance ( ) ; $ linkArray = $ db -> arrayQuery ( "SELECT * FROM ezurl WHERE id IN ( $inIDSQL ) " ) ; foreach ( $ linkArray as $ linkRow ) { $ url = str_replace ( '&' , '&amp;' , $ linkRow [ 'url' ] ) ; $ this -> LinkArray [ $ linkRow [ 'id' ] ] = $ url ; } } $ linkRelatedObjectIDArray = $ this -> getAttributeValueArray ( 'link' , 'object_id' ) ; $ linkNodeIDArray = $ this -> getAttributeValueArray ( 'link' , 'node_id' ) ; // Fetch all embeded objects and cache by ID $ objectRelatedObjectIDArray = $ this -> getAttributeValueArray ( 'object' , 'id' ) ; $ embedRelatedObjectIDArray = $ this -> getAttributeValueArray ( 'embed' , 'object_id' ) ; $ embedInlineRelatedObjectIDArray = $ this -> getAttributeValueArray ( 'embed-inline' , 'object_id' ) ; $ embedNodeIDArray = $ this -> getAttributeValueArray ( 'embed' , 'node_id' ) ; $ embedInlineNodeIDArray = $ this -> getAttributeValueArray ( 'embed-inline' , 'node_id' ) ; $ relatedObjectIDArray = array_merge ( $ linkRelatedObjectIDArray , $ objectRelatedObjectIDArray , $ embedRelatedObjectIDArray , $ embedInlineRelatedObjectIDArray ) ; $ relatedObjectIDArray = array_unique ( $ relatedObjectIDArray ) ; if ( count ( $ relatedObjectIDArray ) > 0 ) { if ( $ this -> ContentObjectAttribute instanceof eZContentObjectAttribute ) { $ this -> ObjectArray = eZContentObject :: fetchIDArray ( $ relatedObjectIDArray , true , $ this -> ContentObjectAttribute -> attribute ( 'language_code' ) ) ; } else { $ this -> ObjectArray = eZContentObject :: fetchIDArray ( $ relatedObjectIDArray ) ; } } $ nodeIDArray = array_merge ( $ linkNodeIDArray , $ embedNodeIDArray , $ embedInlineNodeIDArray ) ; $ nodeIDArray = array_unique ( $ nodeIDArray ) ; if ( count ( $ nodeIDArray ) > 0 ) { $ nodes = eZContentObjectTreeNode :: fetch ( $ nodeIDArray ) ; if ( is_array ( $ nodes ) ) { foreach ( $ nodes as $ node ) { $ nodeID = $ node -> attribute ( 'node_id' ) ; $ this -> NodeArray [ $ nodeID ] = $ node ; } } elseif ( $ nodes ) { $ node = $ nodes ; $ nodeID = $ node -> attribute ( 'node_id' ) ; $ this -> NodeArray [ $ nodeID ] = $ node ; } } }
Prefetch objects, nodes and urls for further rendering
Prefetch objects nodes and urls for further rendering