src/Thujohn/Pdf/dompdf/include/frame.cls.php
function insert_child_after(Frame $new_child, Frame $ref, $update_node = true) {
    if ( $ref === $this->_last_child ) {
      $this->append_child($new_child, $update_node);
      return;
    }

    if ( is_null($ref) ) {
      $this->prepend_child($new_child, $update_node);
      return;
    }
    
    if ( $ref->_parent !== $this )
      throw new DOMPDF_Exception("Reference child is not a child of this node.");

    // Update the node
    if ( $update_node ) {
      if ( $ref->_next_sibling ) {
        $next_node = $ref->_next_sibling->_node;
        $this->_node->insertBefore($new_child->_node, $next_node);
      } else {
        $new_child->_node = $this->_node->appendChild($new_child);
      }
    }
    
    // Remove the child from its parent
    if ( $new_child->_parent)
      $new_child->_parent->remove_child($new_child, false);
    
    $new_child->_parent = $this;
    $new_child->_prev_sibling = $ref;
    $new_child->_next_sibling = $ref->_next_sibling;

    if ( $ref->_next_sibling ) 
      $ref->_next_sibling->_prev_sibling = $new_child;

    $ref->_next_sibling = $new_child;
  }
function insert_child_after(Frame $new_child, Frame $ref, $update_node = true) {
    if ( $ref === $this->_last_child ) {
      $this->append_child($new_child, $update_node);
      return;
    }

    if ( is_null($ref) ) {
      $this->prepend_child($new_child, $update_node);
      return;
    }
    
    if ( $ref->_parent !== $this )
      throw new DOMPDF_Exception("Reference child is not a child of this node.");

    // Update the node
    if ( $update_node ) {
      if ( $ref->_next_sibling ) {
        $next_node = $ref->_next_sibling->_node;
        $this->_node->insertBefore($new_child->_node, $next_node);
      } else {
        $new_child->_node = $this->_node->appendChild($new_child);
      }
    }
    
    // Remove the child from its parent
    if ( $new_child->_parent)
      $new_child->_parent->remove_child($new_child, false);
    
    $new_child->_parent = $this;
    $new_child->_prev_sibling = $ref;
    $new_child->_next_sibling = $ref->_next_sibling;

    if ( $ref->_next_sibling ) 
      $ref->_next_sibling->_prev_sibling = $new_child;

    $ref->_next_sibling = $new_child;
  }
function insert_child_after ( Frame $ new_child , Frame $ ref , $ update_node = true ) { if ( $ ref === $ this -> _last_child ) { $ this -> append_child ( $ new_child , $ update_node ) ; return ; } if ( is_null ( $ ref ) ) { $ this -> prepend_child ( $ new_child , $ update_node ) ; return ; } if ( $ ref -> _parent !== $ this ) throw new DOMPDF_Exception ( "Reference child is not a child of this node." ) ; // Update the node if ( $ update_node ) { if ( $ ref -> _next_sibling ) { $ next_node = $ ref -> _next_sibling -> _node ; $ this -> _node -> insertBefore ( $ new_child -> _node , $ next_node ) ; } else { $ new_child -> _node = $ this -> _node -> appendChild ( $ new_child ) ; } } // Remove the child from its parent if ( $ new_child -> _parent ) $ new_child -> _parent -> remove_child ( $ new_child , false ) ; $ new_child -> _parent = $ this ; $ new_child -> _prev_sibling = $ ref ; $ new_child -> _next_sibling = $ ref -> _next_sibling ; if ( $ ref -> _next_sibling ) $ ref -> _next_sibling -> _prev_sibling = $ new_child ; $ ref -> _next_sibling = $ new_child ; }
Inserts a new child immediately after the specified frame

@param $new_child Frame The new Frame to insert
@param $ref Frame The Frame before the new Frame
@param $update_node boolean Whether or not to update the DOM
Inserts a new child immediately after the specified frame