false, 'multiple_finders' => true, 'table' => false, 'view_switch' => false, 'card_attributes' => false, 'custom_css' => false]); } public static function has(string $feature): bool { return !empty(self::all()[$feature]); } public static function views(): array { return apply_filters('facetcore_views', ['grid' => __('Grid', 'facetcore')]); } public static function publishedIds(): array { return array_map('intval', get_posts(['post_type' => TableConfiguration::TYPE, 'post_status' => 'publish', 'has_password' => false, 'numberposts' => -1, 'orderby' => 'ID', 'order' => 'ASC', 'fields' => 'ids', 'suppress_filters' => false])); } /** Compatibility helper only; no Finder selection or access restriction. */ public static function activeFinder(): int { return self::publishedIds()[0] ?? 0; } /** Kept for integrations; publication rules apply equally in both editions. */ public static function finderAvailable(int $id): bool { $post = get_post($id); return $post && $post->post_type === TableConfiguration::TYPE && $post->post_status === 'publish' && $post->post_password === ''; } }