public function toXML( DOMDocument $dom )
    {
        $blockNode = $dom->createElement( 'block' );

        foreach ( $this->attributes as $attrName => $attrValue )
        {
            switch ( $attrName )
            {
                case 'id':
                    $blockNode->setAttribute( 'id', 'id_' . $attrValue );
                    break;

                case 'action':
                    $blockNode->setAttribute( 'action', $attrValue );
                    break;

                case 'items':
                    foreach ( $this->attributes['items'] as $item )
                    {
                        $itemNode = $item->toXML( $dom );
                        if ( $itemNode )
                        {
                            $blockNode->appendChild( $itemNode );
                        }
                    }
                    break;

                case 'rotation':
                    $node = $dom->createElement( $attrName );
                    $blockNode->appendChild( $node );

                    foreach ( $attrValue as $arrayItemKey => $arrayItemValue )
                    {
                        $tmp = $dom->createElement( $arrayItemKey );
                        $tmpValue = $dom->createTextNode( $arrayItemValue );
                        $tmp->appendChild( $tmpValue );
                        $node->appendChild( $tmp );
                    }
                    break;

                case 'custom_attributes':
                    $node = $dom->createElement( $attrName );
                    $blockNode->appendChild( $node );

                    foreach ( $attrValue as $arrayItemKey => $arrayItemValue )
                    {
                        $tmp = $dom->createElement( $arrayItemKey );
                        $tmpValue = $dom->createTextNode( $arrayItemValue );
                        $tmp->appendChild( $tmpValue );
                        $node->appendChild( $tmp );
                    }
                    break;

                default:
                    $node = $dom->createElement( $attrName );
                    $nodeValue = $dom->createTextNode( $attrValue );
                    $node->appendChild( $nodeValue );
                    $blockNode->appendChild( $node );
                    break;
            }
        }

        return $blockNode;
    }
public function toXML( DOMDocument $dom )
    {
        $blockNode = $dom->createElement( 'block' );

        foreach ( $this->attributes as $attrName => $attrValue )
        {
            switch ( $attrName )
            {
                case 'id':
                    $blockNode->setAttribute( 'id', 'id_' . $attrValue );
                    break;

                case 'action':
                    $blockNode->setAttribute( 'action', $attrValue );
                    break;

                case 'items':
                    foreach ( $this->attributes['items'] as $item )
                    {
                        $itemNode = $item->toXML( $dom );
                        if ( $itemNode )
                        {
                            $blockNode->appendChild( $itemNode );
                        }
                    }
                    break;

                case 'rotation':
                    $node = $dom->createElement( $attrName );
                    $blockNode->appendChild( $node );

                    foreach ( $attrValue as $arrayItemKey => $arrayItemValue )
                    {
                        $tmp = $dom->createElement( $arrayItemKey );
                        $tmpValue = $dom->createTextNode( $arrayItemValue );
                        $tmp->appendChild( $tmpValue );
                        $node->appendChild( $tmp );
                    }
                    break;

                case 'custom_attributes':
                    $node = $dom->createElement( $attrName );
                    $blockNode->appendChild( $node );

                    foreach ( $attrValue as $arrayItemKey => $arrayItemValue )
                    {
                        $tmp = $dom->createElement( $arrayItemKey );
                        $tmpValue = $dom->createTextNode( $arrayItemValue );
                        $tmp->appendChild( $tmpValue );
                        $node->appendChild( $tmp );
                    }
                    break;

                default:
                    $node = $dom->createElement( $attrName );
                    $nodeValue = $dom->createTextNode( $attrValue );
                    $node->appendChild( $nodeValue );
                    $blockNode->appendChild( $node );
                    break;
            }
        }

        return $blockNode;
    }
public function toXML ( DOMDocument $ dom ) { $ blockNode = $ dom -> createElement ( 'block' ) ; foreach ( $ this -> attributes as $ attrName => $ attrValue ) { switch ( $ attrName ) { case 'id' : $ blockNode -> setAttribute ( 'id' , 'id_' . $ attrValue ) ; break ; case 'action' : $ blockNode -> setAttribute ( 'action' , $ attrValue ) ; break ; case 'items' : foreach ( $ this -> attributes [ 'items' ] as $ item ) { $ itemNode = $ item -> toXML ( $ dom ) ; if ( $ itemNode ) { $ blockNode -> appendChild ( $ itemNode ) ; } } break ; case 'rotation' : $ node = $ dom -> createElement ( $ attrName ) ; $ blockNode -> appendChild ( $ node ) ; foreach ( $ attrValue as $ arrayItemKey => $ arrayItemValue ) { $ tmp = $ dom -> createElement ( $ arrayItemKey ) ; $ tmpValue = $ dom -> createTextNode ( $ arrayItemValue ) ; $ tmp -> appendChild ( $ tmpValue ) ; $ node -> appendChild ( $ tmp ) ; } break ; case 'custom_attributes' : $ node = $ dom -> createElement ( $ attrName ) ; $ blockNode -> appendChild ( $ node ) ; foreach ( $ attrValue as $ arrayItemKey => $ arrayItemValue ) { $ tmp = $ dom -> createElement ( $ arrayItemKey ) ; $ tmpValue = $ dom -> createTextNode ( $ arrayItemValue ) ; $ tmp -> appendChild ( $ tmpValue ) ; $ node -> appendChild ( $ tmp ) ; } break ; default : $ node = $ dom -> createElement ( $ attrName ) ; $ nodeValue = $ dom -> createTextNode ( $ attrValue ) ; $ node -> appendChild ( $ nodeValue ) ; $ blockNode -> appendChild ( $ node ) ; break ; } } return $ blockNode ; }
Creates DOMElement with block data

@param DOMDocument $dom
@return DOMElement
Creates DOMElement with block data