placement_repository = adpresso_get_placement_repository(); } /** * Render all placements from the processed placements data for a specific type. * * @param string $type_id * * @return string */ public function render_placements_by_type( string $type_id ): string { $processed_data = Runtime::get_processed_data(); $output = ''; foreach ( $processed_data as $placement_id => $data ) { $placement = $this->placement_repository->get( (int) $placement_id ); if ( $placement instanceof Placement && $placement->is_type( $type_id ) && $placement->is_backend_valid ) { RuntimeDebugger::mark_output_triggered( $placement_id ); if ( $data['output_mode'] === 'ssr' && isset( $data['content'] ) ) { if ( method_exists( $placement, 'render_with_wrapper' ) ) { $output .= $placement->render_with_wrapper( $data['content'] ); } } elseif ( $data['output_mode'] === 'js' ) { if ( method_exists( $placement, 'get_placeholder_html' ) ) { $output .= $placement->get_placeholder_html(); } } } } return $output; } /** * Render a single placement. * * @param Placement $placement * @param string $content * * @return string */ public function render( Placement $placement, string $content ): string { RuntimeDebugger::mark_output_triggered( $placement->get_id() ); return $placement->render_with_wrapper( $content ); } }