/** * Teste, pour un nom de page de l'espace privé, s'il est possible * de générer son contenu. * * Dans ce cas, on retourne la fonction d'exécution correspondante à utiliser * (du répertoire `ecrire/exec`). Deux cas particuliers et prioritaires : * `fond` ou `fond_monobloc` sont retournés si des squelettes existent. * * - `fond` : pour des squelettes de `prive/squelettes/contenu` * ou pour des objets éditoriaux dont les suqelettes seront échaffaudés * - `fond_monobloc` (compatibilité avec SPIP 2.1) : pour des squelettes de `prive/exec` * * @param string $nom * Nom de la page * @return string * Nom de l'exec, sinon chaîne vide. **/ function tester_url_ecrire($nom) { static $exec = array(); if (isset($exec[$nom])) { return $exec[$nom]; } // tester si c'est une page en squelette if (trouver_fond($nom, 'prive/squelettes/contenu/')) { return $exec[$nom] = 'fond'; } elseif (trouver_fond($nom, 'prive/exec/')) { return $exec[$nom] = 'fond_monobloc'; } elseif (include_spip('public/styliser_par_z') and z_echafaudable($nom)) { return $exec[$nom] = 'fond'; } // attention, il ne faut pas inclure l'exec ici // car sinon #URL_ECRIRE provoque des inclusions // et des define intrusifs potentiels return $exec[$nom] = (find_in_path("{$nom}.php", 'exec/') or charger_fonction($nom, 'exec', true)) ? $nom : ''; }
/** * Verifier qu'un type a un contenu disponible, * soit parcequ'il a un fond, soit parce qu'il est echafaudable * * @param string $prefix_path * @param string $z_contenu * @param string $type * @param string $ext * @param bool $echafauder * @return mixed */ function z_contenu_disponible($prefix_path, $z_contenu, $type, $ext, $echafauder = true) { if ($d = z_trouver_bloc($prefix_path, $z_contenu, $type, $ext)) { return $d; } return $echafauder ? z_echafaudable($type) : false; }