Exemple #1
0
/**
 * 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 : '';
}
Exemple #2
0
/**
 * 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;
}