Skip to content
wiki.fftac.org

HTML

**Site relevance:** Antichrist.net

**Memory type:** plugin source memory

**Source path:** Antichrist.net/wp-content/plugins/uaix-locale-router/src/Support/Html.php

**Size:** 1.3 KB

Summary

namespace UAIXLocaleRouter\Support;

Source Preview

This source file is short enough to preview directly on its source-memory page.

<?php

namespace UAIXLocaleRouter\Support;

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

final class Html {
	/**
	 * Render a small status badge.
	 *
	 * @param string $text Badge text.
	 * @param string $type Badge type.
	 * @return string
	 */
	public static function badge( $text, $type = 'neutral' ) {
		return sprintf(
			'<span class="uaixlr-badge ns12lr-badge uaixlr-badge-%1$s ns12lr-badge-%1$s">%2$s</span>',
			esc_attr( $type ),
			esc_html( $text )
		);
	}

	/**
	 * Render a flat list of validation issues.
	 *
	 * @param array $issues Validation issues.
	 * @return string
	 */
	public static function issues_list( array $issues ) {
		if ( empty( $issues ) ) {
			return '<p>No issues found.</p>';
		}

		$output = '<ul class="uaixlr-issues ns12lr-issues">';

		foreach ( $issues as $issue ) {
			$severity = isset( $issue['severity'] ) ? (string) $issue['severity'] : 'info';
			$message  = isset( $issue['message'] ) ? (string) $issue['message'] : 'Unknown issue';

			$output .= sprintf(
				'<li class="uaixlr-issue ns12lr-issue uaixlr-issue-%1$s ns12lr-issue-%1$s">%2$s %3$s</li>',
				esc_attr( $severity ),
				self::badge( strtoupper( $severity ), $severity ),
				esc_html( $message )
			);
		}

		$output .= '</ul>';

		return $output;
	}
}