Beispiel #1
0
function configuration_type_urls_dist()
{
	if ($GLOBALS['type_urls'] != 'page') // fixe par mes_options
		return '';

	$dispo = array();
	foreach (find_all_in_path('urls/', '\w+\.php$', array()) as $f) {
		$r = basename($f, '.php');
		if ($r == 'index' OR strncmp('generer_',$r,8)==0) continue;
		include_once $f;
		$exemple = 'URLS_' . strtoupper($r) . '_EXEMPLE';
		$exemple = defined($exemple) ? constant($exemple) : '?';
		$dispo[$r] = "<em>$r</em> &mdash; <tt>" . $exemple . '</tt>';
	}

	$res = "<p class='verdana2'>"
		. _T('texte_type_urls')
		. "</p>"
		. "<div class='verdana2'>"
		. afficher_choix('type_urls', $GLOBALS['meta']['type_urls'], $dispo)
		. "</div>"
		. "<p><em>"
		. _T('texte_type_urls_attention', array('htaccess' => '<tt>.htaccess</tt>'))
		. "</em></p>";


	$res = '<br />'.debut_cadre_trait_couleur("", true, "",  _T('titre_type_urls').aide("confurl"))
	.  ajax_action_post('configurer', 'type_urls', 'config_fonctions', '', $res)
	.  fin_cadre_trait_couleur(true);

	return ajax_action_greffe("configurer-type_urls", '', $res);
}
Beispiel #2
0
/**
 * Liste toutes les vérifications possibles
 * 
 * @param string $repertoire
 * 		Dans quel repertoire chercher les yaml.
 * 
 * @return Retourne un tableau listant les vérifications et leurs options
 */
function verifier_lister_disponibles($repertoire='verifier'){
	static $verifications = array();

	if (!isset($verifications[$repertoire])) {
		$verifications[$repertoire] = array();
		$liste = find_all_in_path("$repertoire/", '.+[.]yaml$');

		if (count($liste)){
			foreach ($liste as $fichier=>$chemin){
				$type = preg_replace(',[.]yaml$,i', '', $fichier);
				$dossier = str_replace($fichier, '', $chemin);
				// On ne garde que les vérifications qui ont bien la fonction !
				if (charger_fonction($type, $repertoire, true)
					and (
						is_array($verif = verifier_charger_infos($type, $repertoire))
					)
				) {
					$verifications[$repertoire][$type] = $verif;
				}
			}
		}
	}

	return $verifications[$repertoire];
}
Beispiel #3
0
function selecteur_lister_objets($whitelist = array(), $blacklist = array())
{
    $liste = find_all_in_path('formulaires/selecteur/', 'hierarchie-[\\w]+[.]html$');
    $objets_selectionner = array();
    foreach ($liste as $fichier => $chemin) {
        $objets_selectionner[] = preg_replace('/^hierarchie-([\\w]+)[.]html$/', '$1', $fichier);
    }
    // S'il y a une whitelist on ne garde que ce qui est dedans
    if (!empty($whitelist)) {
        $whitelist = array_map('table_objet', $whitelist);
        $objets_selectionner = array_intersect($objets_selectionner, $whitelist);
    }
    // On supprime ce qui est dans la blacklist
    $blacklist = array_map('table_objet', $blacklist);
    // On enlève toujours la racine
    $blacklist[] = 'racine';
    $objets_selectionner = array_diff($objets_selectionner, $blacklist);
    // Ensuite on cherche ce qu'on doit afficher : au moins ceux qu'on peut sélectionner
    $objets_afficher = $objets_selectionner;
    // Il faut alors chercher d'éventuels parents obligatoires :
    // lister-trucs-bidules.html => on doit afficher des "trucs" pour trouver des "bidules"
    $liste = find_all_in_path('formulaires/selecteur/', 'lister-[\\w]+-[\\w]+[.]html$');
    foreach ($liste as $fichier => $chemin) {
        preg_match('/^lister-([\\w]+)-([\\w]+)[.]html$/', $fichier, $captures);
        $parent = $captures[1];
        $type = $captures[2];
        // Si le type fait partie de ce qu'on veut sélectionner alors on ajoute le parent à l'affichage
        if (in_array($type, $objets_selectionner)) {
            $objets_afficher[] = $parent;
        }
    }
    $objets = array('selectionner' => array_unique($objets_selectionner), 'afficher' => array_unique($objets_afficher));
    return $objets;
}
Beispiel #4
0
function cextras_types_formulaires(){
	$types = array();
	
	// saisies de ce plugin
	$saisies = find_all_in_path('extra-saisies/','.*\.html$');
	$noms = array();
	foreach($saisies as $saisie) {
		$type = basename($saisie,'.html');
		$noms['interne/'.$type] = _T('cextras:type', array('type' => $type));
	}
	$types[_T('iextras:saisies_champs_extras')] = $noms;

		
	if (_CHAMPS_EXTRAS_SAISIES_EXTERNES) {
		// plugin saisies (attention au chemin "/saisies/saisies/_base.html")
		$saisies = find_all_in_path('saisies/','/([^_/]{1}[^/]*)\.html$');
		$noms = array();
		foreach($saisies as $saisie) {
			$type = basename($saisie,'.html');
			$noms['externe/'.$type] = _T('cextras:type', array('type' => $type));
		}
		$types[_T('iextras:saisies_saisies')] = $noms;
	}

	return $types;
}
Beispiel #5
0
function snippets_liste_imports($table){
	$pattern = $table;
	if (substr($table,0,5)=="spip_") $table = substr($table,5);
	
	$pattern = ".*[.]xml$";
	$snippets = find_all_in_path("snippets/$table/",$pattern);
	return $snippets;
}
Beispiel #6
0
function type_urls_lister()
{
    $dispo = array();
    foreach (find_all_in_path('urls/', '\\w+\\.php$', array()) as $f) {
        $r = basename($f, '.php');
        if ($r == 'index' or strncmp('generer_', $r, 8) == 0 or $r == "standard") {
            continue;
        }
        include_once $f;
        $exemple = 'URLS_' . strtoupper($r) . '_EXEMPLE';
        $exemple = defined($exemple) ? constant($exemple) : '?';
        $dispo[_T("urls:titre_type_{$r}")] = array($r, _T("urls:titre_type_{$r}"), $exemple);
    }
    ksort($dispo);
    return $dispo;
}
Beispiel #7
0
/**
 * Initialisation des listes de langues
 *
 * Initialise les métas :
 * - langues_proposees : liste des traductions disponibles
 * - langue_site       : langue par défaut du site
 *
 * Lorsque ces métas n'existent pas encore (c'est à dire à l'installation),
 * elles sont calculées en obtenant la liste des langues
 * dans les fichiers de lang 
 * 
 * @return void
**/
function init_langues()
{
    // liste des langues dans les meta, sauf a l'install
    $all_langs = @$GLOBALS['meta']['langues_proposees'];
    $tout = array();
    if (!$all_langs) {
        // trouver tous les modules lang/spip_xx.php
        $modules = find_all_in_path("lang/", "/spip_([a-z_]+)\\.php[3]?\$");
        foreach ($modules as $name => $path) {
            if (preg_match(',^spip_([a-z_]+)\\.php[3]?$,', $name, $regs)) {
                $tout[] = $regs[1];
            }
        }
        sort($tout);
        $tout = join(',', $tout);
        // Si les langues n'ont pas change, ne rien faire
        if ($tout != $all_langs) {
            $GLOBALS['meta']['langues_proposees'] = $tout;
            include_spip('inc/meta');
            ecrire_meta('langues_proposees', $tout);
        }
    }
    if (!isset($GLOBALS['meta']['langue_site'])) {
        // Initialisation : le francais si dispo, sinon la premiere langue trouvee
        $GLOBALS['meta']['langue_site'] = $tout = (!$all_langs or strpos(',' . _LANGUE_PAR_DEFAUT . ',', ",{$all_langs},") !== false) ? _LANGUE_PAR_DEFAUT : substr($all_langs, 0, strpos($all_langs, ','));
        ecrire_meta('langue_site', $tout);
    }
}
Beispiel #8
0
/**
 * Retourne la liste des barres d'outils connues
 *
 * @return array/false : tableau des noms de barres trouvees
 */
function barre_outils_liste(){
	static $sets = -1;
	if ($sets !== -1) 
		return $sets;
	
	// on recupere l'ensemble des barres d'outils connues
	if (!$sets = find_all_in_path('barre_outils/','.*[.]php')
	or !is_array($sets)) {
		spip_log("[Scandale] Porte Plume ne trouve pas de barre d'outils !");
		$sets = false;
		return $sets;
	}
		
	foreach($sets as $fichier=>$adresse) {
		$sets[$fichier] = substr($fichier,0,-4); // juste le nom
	}
	return $sets;	
}
Beispiel #9
0
function info_progression_etape($en_cours, $phase, $dir, $erreur = false)
{
    //$en_cours = _request('etape')?_request('etape'):"";
    $liste = find_all_in_path($dir, $phase . '(([0-9])+|fin)[.]php$');
    $debut = 1;
    $etat = "ok";
    $last = count($liste);
    //	$texte_etat = array('ok'=>'OK','encours'=>_T('en_cours'),'todo'=>_T('todo'));
    $intitule_etat["etape_"][1] = typo(_T('info_connexion_base_donnee'));
    $intitule_etat["etape_"][2] = typo(_T('menu_aide_installation_choix_base'));
    $intitule_etat["etape_"][3] = typo(_T('info_informations_personnelles'));
    $intitule_etat["etape_"][4] = typo(_T('info_derniere_etape'));
    $intitule_etat["etape_ldap"][1] = typo(_T('titre_connexion_ldap'));
    $intitule_etat["etape_ldap"][2] = typo(_T('titre_connexion_ldap'));
    $intitule_etat["etape_ldap"][3] = typo(_T('info_chemin_acces_1'));
    $intitule_etat["etape_ldap"][4] = typo(_T('info_reglage_ldap'));
    $intitule_etat["etape_ldap"][5] = typo(_T('info_ldap_ok'));
    //	$aff_etapes = "<span id='etapes'>";
    $aff_etapes = "<ul id='infos_etapes' class='infos_{$phase}{$en_cours}'>";
    foreach ($liste as $etape => $fichier) {
        if ($debut < $last) {
            if ($debut == $en_cours && $erreur) {
                $class = "on erreur";
            } else {
                if ($debut == $en_cours) {
                    $class = "on";
                } else {
                    if ($debut > $en_cours) {
                        $class = "prochains";
                    } else {
                        $class = "valides";
                    }
                }
            }
            $aff_etapes .= "<li class='{$class}'><div class='fond'>";
            $aff_etapes .= $debut == $en_cours ? "<strong>" : '';
            $aff_etapes .= "<em>" . _T('etape') . " </em><span class='numero_etape'>{$debut}</span><em>&nbsp;: </em>";
            $aff_etapes .= $intitule_etat["{$phase}"][$debut];
            $aff_etapes .= $debut == $en_cours ? "</strong>" : '';
            $aff_etapes .= "</div></li>";
        }
        $debut++;
    }
    $aff_etapes .= "</ul>";
    $aff_etapes .= "<br class='nettoyeur' />\n";
    return $aff_etapes;
}
Beispiel #10
0
function lister_configurer($exclure = array())
{
    return array();
    // lister les pages de config deja dans les menus
    $deja = array();
    foreach ($exclure as $id => $b) {
        $url = $b['url'] ? $b['url'] : $id;
        if (!$b['url'] or !isset($exclure[$url])) {
            if (strncmp($url, 'configurer_', 11) == 0) {
                $deja[$url] = $b;
            } elseif ($b['url'] == 'configurer' and preg_match(',cfg=([a-z0-9_]+),i', $b['args'], $match)) {
                $deja["configurer_" . $match[1]] = $b;
            }
        }
    }
    $exclure = $exclure + $deja;
    $icone_defaut = "images/configuration-16.png";
    $liste = array();
    $skels = array();
    $forms = array();
    // trouver toutes les pages configurer_xxx de l'espace prive
    // et construire un tableau des entrees qui ne sont pas dans $deja
    $pages = find_all_in_path("prive/squelettes/contenu/", "configurer_.*[.]" . _EXTENSION_SQUELETTES . '$');
    foreach ($pages as $page) {
        $configurer = basename($page, "." . _EXTENSION_SQUELETTES);
        if (!isset($exclure[$configurer])) {
            $liste[$configurer] = array('parent' => 'bando_configuration', 'url' => $configurer, 'titre' => _T("configurer:{$configurer}_titre"), 'icone' => find_in_theme($i = "images/{$configurer}-16.png") ? $i : $icone_defaut);
        }
        $skels[$configurer] = $page;
    }
    // analyser la liste des $skels pour voir les #FORMULAIRE_CONFIGURER_ inclus
    foreach ($skels as $file) {
        $forms = array_merge($forms, lister_formulaires_configurer($file));
    }
    $forms = array_flip($forms);
    // trouver tous les formulaires/configurer_
    // et construire un tableau des entrees
    $pages = find_all_in_path("formulaires/", "configurer_.*[.]" . _EXTENSION_SQUELETTES . '$');
    foreach ($pages as $page) {
        $configurer = basename($page, "." . _EXTENSION_SQUELETTES);
        if (!isset($forms[$configurer]) and !isset($liste[$configurer]) and !isset($exclure[$configurer])) {
            $liste[$configurer] = array('parent' => 'bando_configuration', 'url' => 'configurer', 'args' => 'cfg=' . substr($configurer, 11), 'titre' => _T("configurer:{$configurer}_titre"), 'icone' => find_in_theme($i = "images/{$configurer}-16.png") ? $i : $icone_defaut);
        }
    }
    return $liste;
}
function tous_les_fonds($dir,$pattern){
	$liste = find_all_in_path($dir,$pattern);
	foreach($liste as $k=>$v)
		$liste[$k] = $dir . basename($v,'.html');
	return $liste;
}
Beispiel #12
0
/**
 * Liste tous les groupes de saisies configurables (ayant une description).
 *
 * @return array Un tableau listant des saisies et leurs options
 */
function saisies_groupes_lister_disponibles($saisies_repertoire = "saisies") {
	static $saisies = null;

	if (is_null($saisies)) {
		$saisies = array();
		$liste = find_all_in_path("$saisies_repertoire/", '.+[.]yaml$');

		if (count($liste)) {
			foreach ($liste as $fichier => $chemin) {
				$type_saisie = preg_replace(',[.]yaml$,i', '', $fichier);
				$dossier = str_replace($fichier, '', $chemin);
				// On ne garde que les saisies qui ont bien le HTML avec !
				if (is_array($saisie = saisies_charger_infos($type_saisie,$saisies_repertoire))) {
					$saisies[$type_saisie] = $saisie;
				}
			}
		}
	}
	return $saisies;
}
Beispiel #13
0
/**
 * Liste toutes les saisies configurables (ayant une description)
 *
 * @return array Un tableau listant des saisies et leurs options
 */
function saisies_lister_disponibles()
{
    static $saisies = null;
    if (is_null($saisies)) {
        $saisies = array();
        $liste = find_all_in_path('saisies/', '.+[.]yaml$');
        if (count($liste)) {
            foreach ($liste as $fichier => $chemin) {
                $type_saisie = preg_replace(',[.]yaml$,i', '', $fichier);
                $dossier = str_replace($fichier, '', $chemin);
                // On ne garde que les saisies qui ont bien le HTML avec !
                if (file_exists("{$dossier}{$type_saisie}.html") and is_array($saisie = saisies_charger_infos($type_saisie))) {
                    $saisies[$type_saisie] = $saisie;
                }
            }
        }
    }
    return $saisies;
}
/**
 * Lister les compositions disponibles : toutes ou pour un type donne
 * Si informer est a false, on ne charge pas les infos du xml
 *
 * @param string $type
 * @param bool $informer
 * @return array
 */
function compositions_lister_disponibles($type, $informer=true){
	include_spip('inc/compositions');
	$type_match = "";
	if (strlen($type)){
		$type = objet_type($type); // securite
		$type_match = $type;
	}
	else {
		// _ pour le cas des groupe_mots
		$type_match = "[a-z0-9_]+";
	}

	// rechercher les skel du type article-truc.html
	// truc ne doit pas commencer par un chiffre pour eviter de confondre avec article-12.html
	$match = "($type_match)("._COMPOSITIONS_MATCH.")?[.]html$";

	// lister les compositions disponibles
	$liste = find_all_in_path(compositions_chemin(),$match);
	$res = array();
	if (count($liste)){
		foreach($liste as $s) {
			$base = preg_replace(',[.]html$,i','',$s);
			if (preg_match(",$match,ims",basename($s),$regs)
				AND ($composition = !$informer
					OR $composition = compositions_charger_infos($base)))
			{
				$regs = array_pad($regs, 4, null);
				$res[$regs[1]][$regs[3]] = $composition;
				// retenir les skels qui ont un xml associe
			}
		}
	}
	// Pipeline compositions_lister_disponibles
	$res = pipeline('compositions_lister_disponibles',array(
		'args'=>array('type' => $type,'informer' => $informer),
		'data'=> $res
		)
	);
	return $res;
}
/**
 * Recupere la liste des config de barres TinyMCE disponibles
 * => liste des squelettes 'fonds/tinymce_XXX.html'
 */
function tinymce_listerfondsconfig()
{
    $liste_squelettes = find_all_in_path('', 'fonds/tinymce/(.*)', true);
    $liste_fonds = array();
    foreach ($liste_squelettes as $name => $path) {
        $liste_fonds[] = str_replace('.html', '', $name);
    }
    return $liste_fonds;
}
Beispiel #16
0
function get_liste_fonts() {
	return array_keys(find_all_in_path('polices/', '\w+\.ttf$'));
}
Beispiel #17
0
	'nom' => 'select_max_auteurs',
	'format' => _format_NOMBRE,
	'defaut' => 30,
	'code:%s<>30' => "define('_SPIP_SELECT_MAX_AUTEURS', %s);"
));


// Recuperer tous les outils (et leurs variables) de la forme outils/toto_config.xml
foreach (find_all_in_path('outils/', '\w+_config\.xml$') as $f) {
	add_outils_xml($f);
}

// Recuperer tous les outils de la forme outils/monoutil_config.php
// y compris les lames perso dont on met le nom en italiques
global $outils;
foreach (find_all_in_path('outils/', '\w+_config\.php$') as $f) 
if(preg_match(',^([^.]*)_config$,', basename($f, '.php'),$regs)){
	if($outil = charger_fonction($regs[0], 'outils'))
		$outil(preg_match(',couteau_suisse/outils/,', $f));
	/*else {
		// compatibilite ...	
		include $f;
		if(function_exists($cs_temp=$regs[1].'_add_outil')) {
			$cs_temp = $cs_temp();
			$cs_temp['id'] = $regs[1];
			add_outil($cs_temp);
		}
	}*/
	if(isset($outils[$regs[1]]) && strpos($f, '/couteau_suisse/outils/'.$regs[1])===false)
		$outils[$regs[1]]['perso'] = 1;
}
function spiplistes_liste_des_patrons ($chemin) {
	$liste_patrons = find_all_in_path($chemin, "[.]html$");
	$result = array();
	foreach($liste_patrons as $key => $value) {
		if (
			!preg_match("=\.[a-z][a-z]\.html$=", $value)
			&& !preg_match("=_texte\.html$=", $value)
			&& !preg_match("=_texte\.[a-z][a-z]\.html$=", $value)
			) {
			$result[] = basename($value, ".html");
		}
	}
	sort($result);
	return($result);
}