コード例 #1
0
ファイル: demande_mise_a_jour.php プロジェクト: JLuc/SPIP
/**
 * Demander à mettre à jour la base de données
 */
function exec_demande_mise_a_jour_dist()
{
    // on fait la verif du path avant tout,
    // et l'installation des qu'on est dans la colonne principale
    // si jamais la liste des plugins actifs change, il faut faire un refresh du hit
    // pour etre sur que les bons fichiers seront charges lors de l'install
    include_spip('inc/plugin');
    if (actualise_plugins_actifs()) {
        include_spip('inc/headers');
        redirige_par_entete(self());
    }
    include_spip('inc/presentation');
    include_spip('inc/filtres_boites');
    $commencer_page = charger_fonction('commencer_page', 'inc');
    echo $commencer_page('', '', '', '', true, false, false);
    echo debut_grand_cadre(true);
    echo boite_ouvrir(_T('info_message_technique'), 'notice');
    echo "<p>" . _T('info_procedure_maj_version') . "</p>", "<p>" . _T('info_administrateur_site_01') . "</p>";
    echo bouton_action(_T('bouton_mettre_a_jour_base'), generer_url_ecrire("upgrade", "reinstall=non"));
    echo boite_fermer();
    // masquer les erreurs sql sur cette page car proviennent de la base pas a jour !
    echo '<style type="text/css">#debug-nav {display: none;}</style>';
    echo fin_grand_cadre(true);
    echo fin_page();
}
コード例 #2
0
ファイル: admin_couteau_suisse.php プロジェクト: rhertzog/lcs
function enregistre_modif_outils($cmd){
cs_log("INIT : enregistre_modif_outils()");
	global $outils, $metas_outils;
	// recuperer les outils dans $_POST ou $_GET
	$toggle = array();
	if(isset($_GET['outil'])) $toggle[] = $_GET['outil'];
		elseif(isset($_POST['cs_selection'])) $toggle = explode(',', $_POST['cs_selection']);
		else return;
	$_GET['outil'] = ($cmd!='hide' && count($toggle)==1)?$toggle[0]:'';
	$i = $cmd=='hide'?'cache':'actif';
	${$i} = isset($GLOBALS['meta']["tweaks_{$i}s"])?unserialize($GLOBALS['meta']["tweaks_{$i}s"]):array();
	foreach($toggle as $o) if(autoriser('configurer', 'outil', 0, NULL, $outils[$o])) {
		if(isset(${$i}[$o][$i]))
			unset(${$i}[$o][$i]); 
		else ${$i}[$o][$i] = 1;
	}
	if(defined('_SPIP19300')) $connect_id_auteur = $GLOBALS['auteur_session']['id_auteur'];
		else global $connect_id_auteur;
	spip_log("Changement de statut ($i) des outils par l'auteur id=$connect_id_auteur : ".implode(', ',array_keys(${$i})));
	ecrire_meta("tweaks_{$i}s", serialize(${$i}));
	if($cmd=='switch') $metas_outils = ${$i};

	include_spip('inc/plugin');
	defined('_SPIP20100')?actualise_plugins_actifs():verif_plugin();

cs_log(" FIN : enregistre_modif_outils()");
}
コード例 #3
0
ファイル: upgrade.php プロジェクト: genma/spip_ynh
function exec_upgrade_dist()
{
    global $spip_version_base;
    if (!_FILE_CONNECT) {
        redirige_url_ecrire("install");
    }
    // Si reinstallation necessaire, message ad hoc
    if (_request('reinstall') == 'oui') {
        include_spip('inc/minipres');
        $r = minipres(_T('titre_page_upgrade'), "<p><b>" . _T('texte_nouvelle_version_spip_1') . "</b><p> " . _T('texte_nouvelle_version_spip_2', array('connect' => '<tt>' . _FILE_CONNECT . '</tt>')) . generer_form_ecrire('upgrade', "<input type='hidden' name='reinstall' value='non' />", '', _T('bouton_relancer_installation')));
        echo $r;
    } elseif (_request('fin')) {
        include_spip('inc/plugin');
        actualise_plugins_actifs();
        include_spip('inc/headers');
        $res = generer_url_ecrire('admin_plugin', 'var_mode=recalcul');
        echo redirige_formulaire($res);
    } else {
        if (!isset($GLOBALS['meta']['version_installee'])) {
            $GLOBALS['meta']['version_installee'] = 0.0;
        } else {
            $GLOBALS['meta']['version_installee'] = (double) str_replace(',', '.', $GLOBALS['meta']['version_installee']);
        }
        # NB: str_replace car, sur club-internet, il semble que version_installe soit
        # enregistree au format '1,812' et non '1.812'
        // Erreur downgrade
        // (cas de double installation de fichiers SPIP sur une meme base)
        if ($spip_version_base < $GLOBALS['meta']['version_installee']) {
            $commentaire = _T('info_mise_a_niveau_base_2');
        } else {
            $commentaire = _T('texte_mise_a_niveau_base_1');
        }
        $commentaire .= "<br />[" . $GLOBALS['meta']['version_installee'] . "/" . $spip_version_base . "]";
        $_POST['reinstall'] = 'non';
        // pour copy_request dans admin
        include_spip('inc/headers');
        $admin = charger_fonction('admin', 'inc');
        $res = $admin('upgrade', _T('info_mise_a_niveau_base'), $commentaire);
        if ($res) {
            echo $res;
        } else {
            // effacer les alea pour forcer leur relecture
            // si jamais ils ont change pendant l'upgrade
            unset($GLOBALS['meta']['alea_ephemere']);
            unset($GLOBALS['meta']['alea_ephemere_ancien']);
            $res = redirige_action_auteur('purger', 'cache', 'upgrade', 'fin=oui', true);
            echo redirige_formulaire($res);
        }
    }
}
コード例 #4
0
ファイル: admin_plugin.php プロジェクト: JLuc/SPIP
/**
 * Affichage de la page de gestion des plugins
 *
 * Relance la page si des plugins ont été modifiés, sinon affiche la liste.
 * 
 * @uses actualise_plugins_actifs()
 * @param string $retour Inutilisé
 */
function exec_admin_plugin_dist($retour = '')
{
    if (!autoriser('configurer', '_plugins')) {
        include_spip('inc/minipres');
        echo minipres();
    } else {
        // on fait la verif du path avant tout,
        // et l'installation des qu'on est dans la colonne principale
        // si jamais la liste des plugins actifs change, il faut faire un refresh du hit
        // pour etre sur que les bons fichiers seront charges lors de l'install
        $new = actualise_plugins_actifs();
        if ($new and _request('actualise') < 2) {
            include_spip('inc/headers');
            redirige_par_entete(parametre_url(self(), 'actualise', _request('actualise') + 1, '&'));
        } else {
            admin_plug_args(_request('voir'), _request('erreur'), _request('format'));
        }
    }
}
コード例 #5
0
ファイル: demande_mise_a_jour.php プロジェクト: rhertzog/lcs
function exec_demande_mise_a_jour_dist() {
	// on fait la verif du path avant tout,
	// et l'installation des qu'on est dans la colonne principale
	// si jamais la liste des plugins actifs change, il faut faire un refresh du hit
	// pour etre sur que les bons fichiers seront charges lors de l'install
	include_spip('inc/plugin');
	if (actualise_plugins_actifs()==-1){
		include_spip('inc/headers');
		redirige_par_entete(self());
	}

	include_spip('inc/presentation');
	$commencer_page = charger_fonction('commencer_page', 'inc');
	echo $commencer_page('','','','',true,false,false);
	echo "<br /><br /><h4><span style='color: red'>",	_T('info_message_technique'),"</span><br /> ",
	_T('info_procedure_maj_version'),
	"</h4><div>",
	_T('info_administrateur_site_01'),
	" <a href='" . generer_url_ecrire("upgrade","reinstall=non") . "'>",
	_T('info_administrateur_site_02'),
	"</a></div>";
	echo fin_page();
}
コード例 #6
0
ファイル: utils.php プロジェクト: phenix-factory/SPIP
function pipeline($action, $val = null)
{
    static $charger;
    // chargement initial des fonctions mises en cache, ou generation du cache
    if (!$charger) {
        if (!($ok = @is_readable($charger = _CACHE_PIPELINES))) {
            include_spip('inc/plugin');
            // generer les fichiers php precompiles
            // de chargement des plugins et des pipelines
            actualise_plugins_actifs();
            if (!($ok = @is_readable($charger))) {
                spip_log("fichier {$charger} pas cree");
            }
        }
        if ($ok) {
            include_once $charger;
        }
    }
    // appliquer notre fonction si elle existe
    $fonc = 'execute_pipeline_' . strtolower($action);
    if (function_exists($fonc)) {
        $val = $fonc($val);
    } else {
        spip_log("fonction {$fonc} absente : pipeline desactive", _LOG_ERREUR);
    }
    // si le flux est une table avec 2 cle args&data
    // on ne ressort du pipe que les donnees dans 'data'
    // array_key_exists pour php 4.1.0
    if (is_array($val) and count($val) == 2 and array_key_exists('data', $val)) {
        $val = $val['data'];
    }
    return $val;
}
コード例 #7
0
// ou a defini certaines des constantes que cette fonction doit definir
// ===> on execute en neutralisant les messages d'erreur
spip_initialisation_core(_DIR_RACINE . _NOM_PERMANENTS_INACCESSIBLES, _DIR_RACINE . _NOM_PERMANENTS_ACCESSIBLES, _DIR_RACINE . _NOM_TEMPORAIRES_INACCESSIBLES, _DIR_RACINE . _NOM_TEMPORAIRES_ACCESSIBLES);
// chargement des plugins : doit arriver en dernier
// car dans les plugins on peut inclure inc-version
// qui ne sera pas execute car _ECRIRE_INC_VERSION est defini
// donc il faut avoir tout fini ici avant de charger les plugins
if (@is_readable(_CACHE_PLUGINS_OPT) and @is_readable(_CACHE_PLUGINS_PATH)) {
    // chargement optimise precompile
    include_once _CACHE_PLUGINS_OPT;
} else {
    spip_initialisation_suite();
    include_spip('inc/plugin');
    // generer les fichiers php precompiles
    // de chargement des plugins et des pipelines
    actualise_plugins_actifs();
}
// Initialisations non critiques surchargeables par les plugins
spip_initialisation_suite();
if (!defined('_LOG_FILTRE_GRAVITE')) {
    /** niveau maxi d'enregistrement des logs */
    define('_LOG_FILTRE_GRAVITE', _LOG_INFO_IMPORTANTE);
}
if (!defined('_OUTILS_DEVELOPPEURS')) {
    /** Activer des outils pour développeurs ? */
    define('_OUTILS_DEVELOPPEURS', false);
}
// charger systematiquement inc/autoriser dans l'espace restreint
if (test_espace_prive()) {
    include_spip('inc/autoriser');
}
コード例 #8
0
ファイル: cs_outils.php プロジェクト: rhertzog/lcs
function cs_init_plugins() {
	@unlink(_DIR_TMP."couteau-suisse.plat");
	include_spip('inc/plugin'); 
	defined('_SPIP20100')?actualise_plugins_actifs():verif_plugin();
	if(defined('_LOG_CS')) cs_log(" -- actualise_plugins_actifs() effectue");
}
コード例 #9
0
function install_etape_3b_dist()
{
    $login = _request('login');
    $email = _request('email');
    $nom = _request('nom');
    $pass = _request('pass');
    $pass_verif = _request('pass_verif');
    $server_db = defined('_INSTALL_SERVER_DB') ? _INSTALL_SERVER_DB : _request('server_db');
    if (!defined('_PASS_LONGUEUR_MINI')) {
        define('_PASS_LONGUEUR_MINI', 6);
    }
    if (!defined('_LOGIN_TROP_COURT')) {
        define('_LOGIN_TROP_COURT', 4);
    }
    if ($login) {
        $echec = $pass != $pass_verif ? _T('info_passes_identiques') : (strlen($pass) < _PASS_LONGUEUR_MINI ? _T('info_passe_trop_court_car_pluriel', array('nb' => _PASS_LONGUEUR_MINI)) : (strlen($login) < _LOGIN_TROP_COURT ? _T('info_login_trop_court') : ''));
        include_spip('inc/filtres');
        if (!$echec and $email and !email_valide($email)) {
            $echec = _T('form_email_non_valide');
        }
        if ($echec) {
            echo minipres('AUTO', info_progression_etape(3, 'etape_', 'install/', true) . "<div class='error'><h3>{$echec}</h3>\n" . "<p>" . _T('avis_connexion_echec_2') . "</p>" . "</div>");
            exit;
        }
    }
    if (@file_exists(_FILE_CHMOD_TMP)) {
        include _FILE_CHMOD_TMP;
    } else {
        redirige_url_ecrire('install');
    }
    if (!@file_exists(_FILE_CONNECT_TMP)) {
        redirige_url_ecrire('install');
    }
    # maintenant on connait le vrai charset du site s'il est deja configure
    # sinon par defaut lire_meta reglera _DEFAULT_CHARSET
    # (les donnees arrivent de toute facon postees en _DEFAULT_CHARSET)
    lire_metas();
    if ($login) {
        include_spip('inc/charsets');
        $nom = importer_charset($nom, _DEFAULT_CHARSET);
        $login = importer_charset($login, _DEFAULT_CHARSET);
        $email = importer_charset($email, _DEFAULT_CHARSET);
        # pour le passwd, bizarrement il faut le convertir comme s'il avait
        # ete tape en iso-8859-1 ; car c'est en fait ce que voit md5.js
        $pass = unicode2charset(utf_8_to_unicode($pass), 'iso-8859-1');
        include_spip('auth/sha256.inc');
        include_spip('inc/acces');
        $htpass = generer_htpass($pass);
        $alea_actuel = creer_uniqid();
        $alea_futur = creer_uniqid();
        $shapass = _nano_sha256($alea_actuel . $pass);
        // prelablement, creer le champ webmestre si il n'existe pas (install neuve
        // sur une vieille base
        $t = sql_showtable("spip_auteurs", true);
        if (!isset($t['field']['webmestre'])) {
            @sql_alter("TABLE spip_auteurs ADD webmestre varchar(3)  DEFAULT 'non' NOT NULL");
        }
        $id_auteur = sql_getfetsel("id_auteur", "spip_auteurs", "login="******"nom" => $nom, 'email' => $email, 'login' => $login, 'pass' => $shapass, 'alea_actuel' => $alea_actuel, 'alea_futur' => $alea_futur, 'htpass' => $htpass, 'statut' => '0minirezo'), "id_auteur={$id_auteur}");
        } else {
            $id_auteur = sql_insertq('spip_auteurs', array('nom' => $nom, 'email' => $email, 'login' => $login, 'pass' => $shapass, 'htpass' => $htpass, 'alea_actuel' => $alea_actuel, 'alea_futur' => $alea_futur, 'statut' => '0minirezo'));
        }
        // le passer webmestre separrement du reste, au cas ou l'alter n'aurait pas fonctionne
        @sql_updateq('spip_auteurs', array('webmestre' => 'oui'), "id_auteur={$id_auteur}");
        // inserer email comme email webmaster principal
        // (sauf s'il est vide: cas de la re-installation)
        if ($email) {
            ecrire_meta('email_webmaster', $email);
        }
        // Connecter directement celui qui vient de (re)donner son login
        // mais sans cookie d'admin ni connexion longue
        include_spip('inc/auth');
        if (!($auteur = auth_identifier_login($login, $pass)) or !auth_loger($auteur, true)) {
            spip_log("login automatique impossible {$auth_spip} {$session}" . count($row));
        }
    }
    // installer les metas
    $config = charger_fonction('config', 'inc');
    $config();
    // activer les plugins
    // leur installation ne peut pas se faire sur le meme hit, il faudra donc
    // poursuivre au hit suivant
    include_spip('inc/plugin');
    actualise_plugins_actifs();
    include_spip('inc/distant');
    redirige_par_entete(parametre_url(self(), 'etape', '4', '&'));
}
コード例 #10
0
ファイル: admin_plugin.php プロジェクト: genma/spip_ynh
/**
 * Affichage de la page de gestion des plugins
 */
function exec_admin_plugin_dist()
{
    if (!autoriser('configurer', 'plugins')) {
        include_spip('inc/minipres');
        echo minipres();
    }
    // on fait la verif du path avant tout,
    // et l'installation des qu'on est dans la colonne principale
    // si jamais la liste des plugins actifs change, il faut faire un refresh du hit
    // pour etre sur que les bons fichiers seront charges lors de l'install
    include_spip('inc/plugin');
    $new = actualise_plugins_actifs();
    if ($new and _request('actualise') < 2) {
        $url = parametre_url(self(), 'actualise', _request('actualise') + 1, '&');
        include_spip('inc/headers');
        echo redirige_formulaire($url);
        exit;
    }
    // reinstaller SVP si on le demande expressement.
    if (_request('var_mode') == 'reinstaller_svp') {
        include_spip('svp_administrations');
        svp_vider_tables('svp_base_version');
        include_spip('inc/headers');
        echo redirige_formulaire(self());
        exit;
    }
    // le code ci-dessous eut ete bien beau mais...
    // si l'on veut que les messages d'installation moches des plugins
    // soient au bon endroit, nous sommes obliges d'appeler la fonction
    // d'installation a la bonne place, et donc, en php...
    // car dans le html d'un squelette, encapsule dans un ob_start()/ob_flush(),
    // la redirection en cas de timeout sur une installation ne se fait pas.
    /*
    	// on installe les plugins maintenant,
    	// cela permet aux scripts d'install de faire des affichages (moches...)
    	plugin_installes_meta();
    	
    	// les squelettes ne peuvent pas s'appeler 'admin_plugin'
    	// sinon Z les charge en priorite par rapport a ce fichier exec en PHP
    	set_request('fond', 'svp_admin_plugin');
    	
    	// on lance l'affichage standard Z
    	include_spip('exec/fond');
    */
    // liste des erreurs mises en forme
    $erreur_activation = plugin_donne_erreurs();
    $commencer_page = charger_fonction('commencer_page', 'inc');
    echo $commencer_page(_T('icone_admin_plugin'), "configuration", "plugin");
    echo debut_gauche('plugin', true);
    echo pipeline('affiche_gauche', array('args' => array('exec' => 'admin_plugin'), 'data' => recuperer_fond('prive/squelettes/navigation/svp_admin_plugin')));
    echo debut_droite('plugin', true);
    //  alerte si mode de compatibilité forcée
    $mode_compat = defined('_DEV_PLUGINS') ? '<span class="notice">' . _T('svp:alerte_compatibilite') . '</span>' : '';
    echo gros_titre(_T('icone_admin_plugin') . $mode_compat, '', false);
    // message d'erreur au retour d'une operation
    if ($erreur_activation) {
        include_spip('inc/filtres_boites');
        echo "<div class='svp_retour'>" . boite_ouvrir(_T('svp:actions_en_erreur'), 'error') . $erreur_activation . boite_fermer() . "</div>";
    }
    // afficher les actions realisees s'il y en a eu
    // (activation/desactivation/telechargement...)
    echo svp_presenter_actions_realisees();
    // on installe les plugins maintenant,
    // cela permet aux scripts d'install de faire des affichages (moches...)
    plugin_installes_meta();
    echo recuperer_fond('prive/squelettes/contenu/svp_admin_plugin', $_REQUEST, array('ajax' => true));
    echo pipeline('affiche_milieu', array('args' => array('exec' => 'admin_plugin'), 'data' => ''));
    echo fin_gauche(), fin_page();
}
コード例 #11
0
ファイル: admin_plugin.php プロジェクト: rhertzog/lcs
function exec_admin_plugin_dist($retour='') {

	if (!autoriser('configurer', 'plugins')) {
		include_spip('inc/minipres');
		echo minipres();
	} else {
	// on fait la verif du path avant tout,
	// et l'installation des qu'on est dans la colonne principale
	// si jamais la liste des plugins actifs change, il faut faire un refresh du hit
	// pour etre sur que les bons fichiers seront charges lors de l'install
	if (actualise_plugins_actifs()==-1 AND _request('actualise')<2){
		include_spip('inc/headers');
		redirige_par_entete(parametre_url(self(),'actualise',_request('actualise')+1,'&'));
	}

	if ($erreur_activation = isset($GLOBALS['meta']['plugin_erreur_activation'])){
		$erreur_activation = $GLOBALS['meta']['plugin_erreur_activation'];
		// l'effacement reel de la meta se fera au moment de l'affichage
		// mais on la vide pour ne pas l'afficher dans le bandeau haut
		unset($GLOBALS['meta']['plugin_erreur_activation']);
	}

	$format = '';
	if (_request('format')!==NULL)
		$format = _request('format'); // liste ou repertoires

	$commencer_page = charger_fonction('commencer_page', 'inc');
	echo $commencer_page(_T('icone_admin_plugin'), "configuration", "plugin");
	echo "<br />\n";
	echo "<br />\n";

	$quoi = _request('voir');
	$quoi = $quoi ? $quoi : 'actifs';

	echo gros_titre(_T('icone_admin_plugin'),'',false);
	echo barre_onglets("plugins", $quoi=='actifs'?"plugins_actifs":"admin_plugin");

	echo debut_gauche('plugin',true);
	echo debut_boite_info(true);
	$s = "";
	$s .= _T('info_gauche_admin_tech');
	echo $s;
	echo fin_boite_info(true);

	// la valeur de retour de la fonction ci-dessus n'est pas compatible
	// avec ce que fait actualise_plugins_actifs, il faut recalculer. A revoir.
	$lcpa = liste_chemin_plugin_actifs();

	echo pipeline('affiche_gauche',
		array(
		'args'=>array('exec'=>'admin_plugin'),
		'data'=>afficher_librairies()
		)
	);

	echo debut_droite('plugin', true);

	// message d'erreur au retour d'un operation
	if (_request('erreur')){
		echo "<div class='erreur_message-plugins'>" . _T(_request('erreur')) . "</div>";
	}
	if ($erreur_activation){
		echo "<div class='erreur_message-plugins'>" . $erreur_activation . "</div>";
		effacer_meta('plugin_erreur_activation');
	}


	// on fait l'installation ici,
	// cela permet aux scripts d'install de faire des affichages (moches...)
	installe_plugins();

	$lpf = liste_plugin_files();
	$plugins_interessants = @array_keys(unserialize($GLOBALS['meta']['plugins_interessants']));
	if (!is_array($plugins_interessants))
		$plugins_interessants = array();

	echo "<div class='liste-plugins formulaire_spip'>";

	echo debut_cadre_trait_couleur('plugin-24.gif',true,'',_T('plugins_liste'),
	'plugins');

	if ($quoi!=='actifs'){
		if ($lpf)
			echo "<p>"._T('texte_presente_plugin')."</p>";
		else {
			if (!@is_dir(_DIR_PLUGINS))
				echo  "<p>"._T('plugin_info_automatique_ftp',array('rep'=>joli_repertoire(_DIR_PLUGINS)))
							. " &mdash; "._T('plugin_info_automatique_creer')."</p>";
		}
	}

	if ($quoi=='actifs' OR $lpf)
		echo "<h3>".sinon(
						singulier_ou_pluriel(count($lcpa), 'plugins_actif_un', 'plugins_actifs', 'count'),
						_T('plugins_actif_aucun')
						)."</h3>";

	$sub = "\n<div class='boutons'>"
	.  "<input type='submit' class='submit save' value='"._T('bouton_enregistrer')
	."' />"
	. "</div>";

	$no_button = false;

	// la liste
	if ($quoi=='actifs'){
		$aff = affiche_les_plugins($lcpa, $lcpa, $format);
		$no_button = !strlen($aff);
		$corps = $aff;
	}
	elseif ($quoi=='tous')
		$corps = affiche_les_plugins($lpf, $lcpa, $format);
	else {
		$dir_auto = substr(_DIR_PLUGINS_AUTO, strlen(_DIR_PLUGINS));
		$lcpaffiche = array();
		foreach ($lpf as $f)
			if (!strpos($f, '/')
			OR ($dir_auto AND substr($f, 0, strlen($dir_auto)) == $dir_auto)
			OR in_array($f, $lcpa)
			OR in_array($f, $plugins_interessants))
				$lcpaffiche[] = $f;

		$corps = affiche_les_plugins($lcpaffiche, $lcpa, $format);
	}

	if (!$no_button)
		$corps .= "\n<br />" . $sub;

	echo redirige_action_post('activer_plugins','activer','admin_plugin','', $corps);

	echo fin_cadre_trait_couleur(true);

	if ($quoi=='actifs')
		echo affiche_les_extensions(liste_chemin_plugin_actifs(_DIR_EXTENSIONS));
	echo "</div>";
	
	echo 	http_script("
	jQuery(function(){
		jQuery('#plugins .boutons').hide();
		jQuery('.plugins li.item a[rel=info]').click(function(){
			var li = jQuery(this).parents('li').eq(0);
			var prefix = li.find('input.checkbox').attr('name');
			if (!jQuery('div.details',li).html()) {
				jQuery('div.details',li).prepend(ajax_image_searching).load(
					jQuery(this).attr('href').replace(/admin_plugin|plugins/, 'info_plugin'), function(){
						li.addClass('on');
					}
				);
			}
			else {
				if (jQuery('div.details',li).toggle().is(':visible'))
					li.addClass('on');
				else
					li.removeClass('on');
			}
			return false;
		});
		jQuery('.plugins li.item input.checkbox').change(function(){
			jQuery(this).parents('form').eq(0).find('.boutons').slideDown();
		});
	});
	");

	echo pipeline('affiche_milieu',
		array(
		'args'=>array('exec'=>'admin_plugin'),
		'data'=>''
		)
	);

	echo fin_gauche(), fin_page();
	}
}
コード例 #12
0
ファイル: utils.php プロジェクト: rhertzog/lcs
function pipeline($action, $val=null) {
	static $charger;

	// chargement initial des fonctions mises en cache, ou generation du cache
	if (!$charger) {
		if (!($ok = @is_readable($charger = _CACHE_PIPELINES))) {
			include_spip('inc/plugin');
			// generer les fichiers php precompiles
			// de chargement des plugins et des pipelines
			actualise_plugins_actifs();
			if (!($ok = @is_readable($charger)))
				spip_log("fichier $charger pas cree");
		}

		if ($ok)
			include_once $charger;
	}

	// appliquer notre fonction si elle existe
	$fonc = 'execute_pipeline_'.strtolower($action);
	if (function_exists($fonc)) {
		$val = $fonc($val);
	}
	// plantage ?
	else {
		include_spip('inc/plugin');
		// on passe $action en arg pour creer la fonction meme si le pipe
		// n'est defini nul part ; vu qu'on est la c'est qu'il existe !
		actualise_plugins_actifs(strtolower($action));
		spip_log("fonction $fonc absente : pipeline desactive");
	}

	// si le flux est une table qui encapsule donnees et autres
	// on ne ressort du pipe que les donnees
	// array_key_exists pour php 4.1.0
	if (is_array($val)
	  AND count($val)==2
	  AND (array_key_exists('data',$val)))
		$val = $val['data'];
	return $val;
}