Réponses:
Utilisez list_themes
$ refresh : Indique s'il faut recharger la liste des thèmes de la base de données. La valeur par défaut est FALSE.
Un tableau associatif des thèmes actuellement disponibles. Les clés sont les noms des machines des thèmes et les valeurs sont des objets ayant les propriétés suivantes:
Utilisez path_to_theme pour obtenir un thème actif.
Il peut pointer vers le thème actif ou le module gérant une implémentation thématique. Par exemple, lorsqu'elle est invoquée dans le cadre d'un appel de thème, cela dépend de l'endroit où la fonction de thème est gérée. S'il est implémenté à partir d'un module, il pointera vers le module. S'il est implémenté à partir du thème actif, il pointera vers le thème actif. Lorsqu'il est appelé en dehors de la portée d'un appel à thème, il pointe toujours vers le thème actif.
Les données sont en fait conservées exactement au même endroit, la system
table. Je n'ai pas pu trouver une fonction existante à vérifier (bien qu'il y en ait probablement une quelque part), mais cela devrait faire l'affaire:
function theme_exists($theme_name) {
$themes = list_themes();
return isset($themes[$theme_name]) && $themes[$theme_name]->status == 1;
}
theme_exists
juste pour éviter les problèmes possibles avec le système de thème