+ /**
+ * @param $args
+ * @return PPCustomFrame_Hash
+ */
+ function newCustomFrame( $args ) {
+ return new PPCustomFrame_Hash( $this, $args );
+ }
+
+ /**
+ * @param $values array
+ * @return PPNode_Hash_Array
+ */
+ function newPartNodeArray( $values ) {
+ $list = array();
+
+ foreach ( $values as $k => $val ) {
+ $partNode = new PPNode_Hash_Tree( 'part' );
+ $nameNode = new PPNode_Hash_Tree( 'name' );
+
+ if ( is_int( $k ) ) {
+ $nameNode->addChild( new PPNode_Hash_Attr( 'index', $k ) );
+ $partNode->addChild( $nameNode );
+ } else {
+ $nameNode->addChild( new PPNode_Hash_Text( $k ) );
+ $partNode->addChild( $nameNode );
+ $partNode->addChild( new PPNode_Hash_Text( '=' ) );
+ }
+
+ $valueNode = new PPNode_Hash_Tree( 'value' );
+ $valueNode->addChild( new PPNode_Hash_Text( $val ) );
+ $partNode->addChild( $valueNode );
+
+ $list[] = $partNode;
+ }
+
+ $node = new PPNode_Hash_Array( $list );
+ return $node;
+ }
+