$url, 'text' => $text, 'target' => $target]; } public static function link_attrs(array $link): string { $link = self::link($link); return $link['target'] === '_blank' ? ' target="_blank" rel="noopener noreferrer"' : ''; } public static function image(string $url, string $alt = '', string $class = '', string $key = 'lazy_other', string $lazy_src = ''): string { if ($url === '') { return ''; } return ''; } public static function lines(string $value): array { $lines = preg_split('/\r\n|\r|\n/', $value) ?: []; return array_values(array_filter(array_map('trim', $lines), static fn(string $line): bool => $line !== '')); } public static function empty_state(string $message): string { if (function_exists('jio_get_widget_null')) { return jio_get_widget_null($message); } return '
' . esc_html($message) . '
'; } public static function card_media(array $item, string $class = ''): string { $title = (string) ($item['title'] ?? ''); $link = self::link((array) ($item['link'] ?? [])); $media = ''; if (!empty($item['image_dark'])) { $media .= self::image((string) $item['image_dark'], $title, 'jio-media-card__image jio-media-card__image--dark'); } $media .= self::image((string) ($item['image'] ?? ''), $title, 'jio-media-card__image'); if (!empty($item['video'])) { $video = esc_url((string) $item['video']); $video_attr = jio_is_lazy('lazy_other') ? ' class="jio-media-card__video lazyload" src="" data-src="' . $video . '"' : ' class="jio-media-card__video" src="' . $video . '"'; $media .= ''; } $body = '' . esc_html($title) . ''; if (!empty($item['description'])) { $body .= '' . esc_html((string) $item['description']) . ''; } $body .= ''; $tag = $link['url'] !== '' ? 'a' : 'div'; $attrs = $link['url'] !== '' ? ' href="' . $link['url'] . '"' . self::link_attrs($link) : ''; return '<' . $tag . ' class="jio-media-card ' . esc_attr($class) . '"' . $attrs . '>' . $media . '' . $body . ''; } public static function ids(string $value): array { return array_values(array_filter(array_map('absint', preg_split('/\s*,\s*/', $value) ?: []))); } }