/**
 * Sauvegarder par morceaux
 *
 * @param string $arg
 */
function action_sauvegarder_dist($arg = null)
{
    if (!$arg) {
        $securiser_action = charger_fonction('securiser_action', 'inc');
        $arg = $securiser_action();
    }
    $status_file = $arg;
    $redirect = parametre_url(generer_action_auteur('sauvegarder', $status_file), "step", intval(_request('step') + 1), '&');
    // lancer export qui va se relancer jusqu'a sa fin
    $sauvegarder = charger_fonction('sauvegarder', 'inc');
    utiliser_langue_visiteur();
    // quand on sort de $export avec true c'est qu'on a fini
    if ($sauvegarder($status_file, $redirect)) {
        dump_end($status_file, 'sauvegarder');
        include_spip('inc/headers');
        echo redirige_formulaire(generer_url_ecrire("sauvegarder", 'status=' . $status_file, '', true, true));
    }
    // forcer l'envoi du buffer par tous les moyens !
    echo str_repeat("<br />\r\n", 256);
    while (@ob_get_level()) {
        @ob_flush();
        @flush();
        @ob_end_flush();
    }
}
Beispiel #2
0
function inc_iconifier_dist($id_objet, $id,  $script, $visible=false, $flag_modif=true) {
	if ($GLOBALS['spip_display'] == 4) return "";
	$texteon = $GLOBALS['logo_libelles'][($id OR $id_objet != 'id_rubrique') ? $id_objet : 'id_racine'];

	$chercher_logo = charger_fonction('chercher_logo', 'inc');
	
	// Add the redirect url when uploading via iframe
	$iframe_script = generer_url_ecrire('iconifier',"type=$id_objet&$id_objet=$id&script=$script",true);
	$iframe = "<input type='hidden' name='iframe_redirect' value='".rawurlencode($iframe_script)."' />\n";

	$logo = $chercher_logo($id, $id_objet, 'on');
	$logo_s = $chercher_logo($id, $id_objet, 'off');
	if (!$logo) {
		if ($flag_modif AND $GLOBALS['meta']['activer_logos'] != 'non') {
			$masque = indiquer_logo($texteon, $id_objet, 'on', $id, $script, $iframe);
			$masque = "<div class='cadre_padding'>$masque</div>";
			$bouton = bouton_block_depliable($texteon, $visible, "on-$id_objet-$id");
			$res = debut_block_depliable($visible,"on-$id_objet-$id") . $masque . fin_block();
		}
	} else {
		list($img, $clic) = decrire_logo($id_objet,'on',$id, 170, 170, $logo, $texteon, $script, $flag_modif AND !$logo_s);

		$bouton = bouton_block_depliable($texteon, $visible, "on-$id_objet-$id");

		$survol = '';
		$texteoff = _T('logo_survol');
		if (!$logo = $logo_s) {
			if ($flag_modif AND $GLOBALS['meta']['activer_logos_survol'] == 'oui') {
				$masque = "<br />".indiquer_logo($texteoff, $id_objet, 'off', $id, $script, $iframe);
				$survol .= "<br />".block_parfois_visible("off-$id_objet-$id", $texteoff, $masque, null, $visible);
			}
			$masque = debut_block_depliable($visible,"on-$id_objet-$id") 
				. "<div class='cadre_padding'>"
				. $clic . $survol . "</div>" . fin_block();
		} else {
			list($imgoff, $clicoff) = decrire_logo($id_objet, 'off', $id, 170, 170, $logo, $texteoff, $script, $flag_modif);
			$masque = debut_block_depliable($visible, "off-$id_objet-$id") .  $clicoff . fin_block();
			$survol .= "<br />".bouton_block_depliable($texteoff, $visible, "off-$id_objet-$id")
			. "<div class='cadre_padding'>".$imgoff.$masque."</div>";
			$masque = debut_block_depliable($visible,"on-$id_objet-$id") . $clic . fin_block() . $survol;
		}

		$res = "$img$masque";
	}

	if ($res) {
		$res = debut_cadre('r', 'image-24.gif', '', $bouton, '', '', false)
			. $res
			. fin_cadre_relief(true);

		if(_request("exec")!="iconifier") {
		  $js = http_script('',  'async_upload.js')
		    . http_script('$("form.form_upload_icon").async_upload(async_upload_icon)');

		} else $js = "";
		return ajax_action_greffe("iconifier", $id, $res).$js;
	}
	else return '';

}
/**
 * Retourne une liste HTML des rubriques et rubriques enfants
 *
 * @param bool $complet
 *     - false pour n'avoir que le bouton racine «plan du site»
 *     - true pour avoir l'ensemble des rubriques en plus
 *
 * @return string
 *     Code HTML présentant la liste des rubriques
 **/
function menu_rubriques($complet = true)
{
    $ret = "<li class='toutsite'><a href='" . generer_url_ecrire('plan') . "'>" . _T('info_tout_site') . "</a></li>";
    if (!$complet) {
        return "<ul class='cols_1'>{$ret}\n</ul>\n";
    }
    if (!isset($GLOBALS['db_art_cache'])) {
        gen_liste_rubriques();
    }
    $arr_low = extraire_article(0, $GLOBALS['db_art_cache']);
    $total_lignes = $i = sizeof($arr_low);
    if ($i > 0) {
        $nb_col = min(8, ceil($total_lignes / 30));
        if ($nb_col <= 1) {
            $nb_col = ceil($total_lignes / 10);
        }
        foreach ($arr_low as $id_rubrique => $titre_rubrique) {
            if (autoriser('voir', 'rubrique', $id_rubrique)) {
                $ret .= bandeau_rubrique($id_rubrique, $titre_rubrique, $i);
                $i++;
            }
        }
        $ret = "<ul class='cols_{$nb_col}'>" . $ret . "\n</ul>\n";
    } else {
        $ret = "<ul class='cols_1'>{$ret}\n</ul>\n";
    }
    return $ret;
}
Beispiel #4
0
function exec_calendrier_args($time, $type, $echelle, $partie_cal)
{
	if ($time < 0) $time = time();

	if (!$type)
		$type = 'mois';
	elseif ($type == 'semaine')
		$GLOBALS['afficher_bandeau_calendrier_semaine'] = true;

	$ancre = 'calendrier-1';
	$r = generer_url_ecrire('calendrier', "type=$type") . "#$ancre";
	$r = http_calendrier_init($time, $type, $echelle, $partie_cal, $r);

	if (_AJAX) {
		ajax_retour($r);
	} else {
		$date = date("Y-m-d", $time);
		if ($type == 'jour') {
			$titre = nom_jour($date)." ". affdate_jourcourt($date);
		}  else {
			$titre = _T('titre_page_calendrier',
					array('nom_mois' => nom_mois($date),
						'annee' => annee($date)));
		}

		$commencer_page = charger_fonction('commencer_page', 'inc');
		echo $commencer_page($titre, "accueil", "calendrier");
// ne produit rien par defaut, mais est utilisee par le plugin agenda
		echo barre_onglets("calendrier", "calendrier"); 
		echo debut_grand_cadre(true);
		echo "\n<div>&nbsp;</div>\n<div id='", $ancre, "'>",$r,'</div>';
		echo fin_grand_cadre(true);
		echo fin_page();
	}
}
function player_affiche_config_form ($exec_page){

		global $spip_lang_right, $spip_lang_left;
		
	  if ($player = _request('player')) {
			ecrire_meta('player', $player);
			if(version_compare($GLOBALS['spip_version_code'],'1.9300','<')) { 
				include_spip("inc/meta");
				ecrire_metas();
			}
		}
		
		$player_ = $GLOBALS['meta']['player'];
		
		$out = ""
			. debut_cadre_trait_couleur(_DIR_PLUGIN_PLAYER_IMAGES."player-son-24.png", true, "", "Player Audio")
			. "<form action='".generer_url_ecrire($exec_page)."' method='post' class='verdana2'><div>"
			. bouton_radio("player", "neoplayer", "Neolao player", $player_ == "neoplayer")
			. "<br />"
			. bouton_radio("player", "dewplayer", "Dew player", $player_ == "dewplayer")
			. "<br />"
			. bouton_radio("player", "pixplayer", "One pixel out player", $player_ == "pixplayer")
			. "<br />"
			. bouton_radio("player", "eraplayer", "Erational player", $player_ == "eraplayer")
			. "<div style='text-align:$spip_lang_right'><input type='submit' name='Valider' value='"._T('bouton_valider')."' class='fondo' /></div>"
			. "</div></form>"
			. fin_cadre_trait_couleur(true)
			;

		return ($out);
}
Beispiel #6
0
function exec_acces_restreint(){
	if (!autoriser('administrer','zone',0)) {
		include_spip('inc/minipres');
		echo minipres();
		exit;
	}

	$commencer_page = charger_fonction('commencer_page','inc');
	echo $commencer_page(_T('accesrestreint:page_zones_acces'));
	
	echo gros_titre(_T('accesrestreint:titre_zones_acces'),'',false);
	echo debut_gauche("acces_restreint",true);
	
	echo debut_boite_info(true);
	echo propre(_T('accesrestreint:info_page'));	
	echo fin_boite_info(true);
	
	if (autoriser('webmestre')) {
		$res = icone_horizontale(_L('Configuration des acc&#232;s .htaccess'), generer_url_ecrire("acces_restreint_config"), "../"._DIR_PLUGIN_ACCESRESTREINT."/img_pack/zones-acces-24.gif", "cadenas-24.gif",false);
		echo bloc_des_raccourcis($res);
	}
	
	echo debut_droite("acces_restreint",true);
	echo recuperer_fond('prive/acces_restreint',$_GET);
	if (autoriser('modifier','zone'))
		echo "<div>".icone_inline(_T('accesrestreint:creer_zone'),
		  generer_url_ecrire("zones_edit","new=oui"),
		  _DIR_PLUGIN_ACCESRESTREINT."/img_pack/zones-acces-24.gif",
		  "creer.gif",'right')."</div>";

	echo fin_gauche(),fin_page();
}
Beispiel #7
0
function exec_export_all_init($rub, $gz, $tables, $serveur='', $save=''){
	$meta = base_dump_meta_name($rub);
	utiliser_langue_visiteur();
	if (!isset($GLOBALS['meta'][$meta])){
		// c'est un demarrage en arrivee directe depuis exec=admin_tech
		// on initialise  (mais si c'est le validateur, ne rien faire)
		if ($GLOBALS['exec'] == 'valider_xml') return;
		$archive = exec_export_all_args($rub, $gz);
		$tables = export_all_start($meta, $archive, $rub, $tables);
		$v = array($gz, $archive, $rub, $tables, 1, 0, $serveur, $save);
		ecrire_meta($meta, serialize($v), 'non');
		// rub=$rub sert AUSSI a distinguer cette redirection
		// d'avec l'appel initial sinon FireFox croit malin
		// d'optimiser la redirection
		$url = generer_url_ecrire('export_all',"rub=$rub", true);
	} else {
		// appels suivants
		$export = charger_fonction('export', 'inc');
		$arg = $export($meta);
		// Si retour de $export c'est fini; dernier appel pour ramasser
		// et produire l'en tete du fichier a partir de l'espace public
		$url = generer_action_auteur("export_all",$arg,'',true, true, true);
	}
	include_spip('inc/headers');
	redirige_par_entete($url);
}
Beispiel #8
0
/**
 * 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();
}
Beispiel #9
0
/**
 * Sauvegarder par morceaux
 * 
 * @param string $arg
 */
function action_restaurer_dist($arg = null)
{
    if (!$arg) {
        $securiser_action = charger_fonction('securiser_action', 'inc');
        $arg = $securiser_action();
    }
    $status_file = $arg;
    define('_DUMP_STATUS_FILE', $status_file);
    $status_file = _DIR_TMP . basename($status_file) . ".txt";
    if (!lire_fichier($status_file, $status) or !($status = unserialize($status))) {
        include_spip('inc/headers');
        echo redirige_formulaire(generer_url_ecrire("restaurer", 'status=' . _DUMP_STATUS_FILE, '', true, true));
    } else {
        utiliser_langue_visiteur();
        $archive = "<br />" . joli_repertoire($status['archive']);
        $action = _T('dump:info_restauration_sauvegarde', array('archive' => $archive));
        $admin = charger_fonction('admin', 'inc');
        echo $admin('restaurer', $action, "", true);
    }
    // forcer l'envoi du buffer par tous les moyens !
    echo str_repeat("<br />\r\n", 256);
    while (@ob_get_level()) {
        @ob_flush();
        @flush();
        @ob_end_flush();
    }
}
Beispiel #10
0
/**
 * Installation du plugin
 *
 * A chaque appel de exec/admin_plugin, si le plugin est active,
 * spip detecte spiplistes_install() et l'appelle 3 fois :
 * 1/ $action = 'test'
 * 2/ $action = 'install'
 * 3/ $action = 'test'
 * @global string $GLOBALS['meta']['spiplistes_version']
 * @return boolean
 */
function spiplistes_install ($action) {

	include_spip('inc/spipliste_api_globales');
	spiplistes_debug_log('spiplistes_install()');

	switch($action) {
		case 'test':
			// si renvoie true, c'est que la base est a jour, inutile de re-installer
			// la valise plugin "effacer tout" apparait.
			// si renvoie false, SPIP revient avec $action = 'install' (une seule fois)
			$spiplistes_version = $GLOBALS['meta']['spiplistes_version'];
			$result = (
				$spiplistes_version
				&& ($spiplistes_version >= spiplistes_real_version_get(_SPIPLISTES_PREFIX))
				&& sql_showtable("spip_listes",true)
				);
			//spiplistes_debug_log("TEST: ".($result ? "OK" : "NO"));
			return($result);
			break;
		case 'install':
			if(!$GLOBALS['meta']['spiplistes_version']) {
				$result = spiplistes_base_creer();
				$str_log = "create";
			}
			else {
				// logiquement, ne devrait pas passer par la (upgrade assure par mes_options)
				include_spip('base/spiplistes_upgrade');
				$result = spiplistes_upgrade();
				$str_log = "upgrade";
			}
			$result = (
				$result
				&& spiplistes_initialise_spip_metas_spiplistes()
				&& spiplistes_activer_inscription_visiteurs()
				);
			$str_log = "INSTALL: $str_log " . spiplistes_str_ok_error($result);
			if(!$result) {
				// nota: SPIP ne filtre pas le resultat. Si retour en erreur,
				// la case a cocher du plugin sera quand meme cochee
				$str_log .= ": PLEASE REINSTALL PLUGIN";
			}
			else {
				echo(_T('spiplistes:_aide_install'
					, array('url_config' => generer_url_ecrire(_SPIPLISTES_EXEC_CONFIGURE))
					));
			}
			spiplistes_log($str_log);
			return($result);
			break;
		case 'uninstall':
			// est appelle lorsque "Effacer tout" dans exec=admin_plugin
			$result = spiplistes_vider_tables();
			spiplistes_log("UNINSTALL: " . spiplistes_str_ok_error($result));
			return($result);
			break;
		default:
			break;
	}
	return (FALSE);
}
Beispiel #11
0
function exec_articles_page_dist()
{
	global $connect_statut, $connect_id_auteur;

 	pipeline('exec_init',array('args'=>array('exec'=>'articles_page'),'data'=>''));
	$commencer_page = charger_fonction('commencer_page', 'inc');
	echo $commencer_page(_T('titre_page_articles_page'), "naviguer", "articles");

	echo debut_gauche('', true);

//
// Afficher le bouton de creation d'article
//

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

	if (sql_countsel('spip_rubriques')) {
		echo bloc_des_raccourcis(icone_horizontale(_T('icone_ecrire_article'), generer_url_ecrire("articles_edit","new=oui"), "article-24.gif", "creer.gif", false));
	} else {
		if (autoriser('creerrubriquedans', 'rubrique')) {
			echo _T('texte_creer_rubrique');
			echo	bloc_des_raccourcis(icone_horizontale (_T('icone_creer_rubrique'), generer_url_ecrire("rubriques_edit","new=oui&retour=nav"), "rubrique-24.gif", "creer.gif",false));
		}
	}

	echo creer_colonne_droite('', true);
	echo pipeline('affiche_droite',array('args'=>array('exec'=>'articles_page'),'data'=>''));
echo debut_droite('', true);

//
// Vos articles en cours de redaction
//

	echo afficher_objets('article',_T('info_en_cours_validation'), array('FROM' => "spip_articles AS articles, spip_auteurs_articles AS lien ", "WHERE" => "articles.id_article=lien.id_article AND lien.id_auteur=$connect_id_auteur AND articles.statut='prepa'", 'ORDER BY' => "articles.date DESC"));



//
// Vos articles soumis au vote
//

	echo afficher_objets('article',_T('info_attente_validation'), array('FROM' => "spip_articles AS articles, spip_auteurs_articles AS lien ", "WHERE" => "articles.id_article=lien.id_article AND lien.id_auteur=$connect_id_auteur AND articles.statut='prop'", "ORDER BY" => "articles.date"));

//
// Vos articles publies
//

	echo afficher_objets('article',_T('info_publies'),	array("FROM" =>"spip_articles AS articles, spip_auteurs_articles AS lien ", "WHERE" => "articles.id_article=lien.id_article AND lien.id_auteur=$connect_id_auteur AND articles.statut='publie'", 'ORDER BY' => "articles.date DESC"));

//
//  Vos articles refuses
//

	echo afficher_objets('article',_T('info_refuses'),	array('FROM' =>"spip_articles AS articles, spip_auteurs_articles AS lien ", "WHERE" => "articles.id_article=lien.id_article AND lien.id_auteur=$connect_id_auteur AND articles.statut='refuse'",  'ORDER BY' => "articles.date DESC"));

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

	echo fin_gauche(), fin_page();
}
Beispiel #12
0
function couteau_suisse_ajouter_onglets($flux){
	include_spip('inc/autoriser');
	$arg = $flux['args']=='configuration' || $flux['args']=='plugins';
	// si on est admin...
	if($arg && autoriser('configurer', 'cs'))
		$flux['data']['couteau_suisse']= new Bouton(find_in_path('img/couteau-24.gif'), _T('couteau:titre'), generer_url_ecrire('admin_couteau_suisse'));
	return $flux;
}
Beispiel #13
0
function balise_LOGIN_PRIVE_dyn($url, $login) {
	include_spip('balise/formulaire_');
	if (!$url 		# pas d'url passee en filtre ou dans le contexte
	AND !$url = _request('url') # ni d'url passee par l'utilisateur
	)
		$url = generer_url_ecrire('accueil','',true);
	return balise_FORMULAIRE__dyn('login',$url,$login,true);
}
Beispiel #14
0
function balise_LOGIN_PRIVE_dyn($url, $login)
{
    include_spip('balise/formulaire_');
    if (!$url and !($url = _request('url'))) {
        $url = generer_url_ecrire('accueil', '', true);
    }
    return balise_FORMULAIRE__dyn('login', $url, $login, true);
}
Beispiel #15
0
/**
 * cette fonction doit etre appelee avec un $id_transaction securise
 * jamais avec un $id_transaction qui provient directement de l'url sans verification
 *
 * @param <type> $mode
 * @param <type> $acte_ou_abo
 * @param <type> $succes
 * @param <type> $id_transaction
 */
function redirige_apres_retour_transaction($mode, $acte_ou_abo, $succes, $id_transaction = 0)
{
    $redirect = "";
    // cas de paiement par un admin (cheque...)
    // renvoyer dans le prive
    $id_auteur = sql_getfetsel("id_auteur", "spip_transactions", "id_transaction=" . intval($id_transaction));
    if (isset($GLOBALS['visiteur_session']['id_auteur']) and $GLOBALS['visiteur_session']['id_auteur'] != $id_auteur and include_spip("inc/autoriser") and autoriser("regler", "transaction", $id_transaction)) {
        $redirect = generer_url_ecrire("transactions", "id_transaction=" . $id_transaction, true);
    }
    if (!$redirect) {
        // par defaut on revient sur une des pages reglees en define()
        // _BANK_ACTE_NORMAL_RETURN_URL
        // _BANK_ACTE_CANCEL_RETURN_URL
        // _BANK_ABO_NORMAL_RETURN_URL
        // _BANK_ABO_CANCEL_RETURN_URL
        $acte_ou_abo = $acte_ou_abo == 'acte' ? 'ACTE' : 'ABO';
        $c = "_BANK_" . $acte_ou_abo . "_NORMAL_RETURN_URL";
        if ($succes) {
            if (defined($c)) {
                $redirect = constant($c);
            } else {
                $redirect = generer_url_public('bank_retour_ok');
            }
        } else {
            if (defined($c)) {
                $redirect = constant($c);
            } else {
                $redirect = generer_url_public('bank_retour_echec');
            }
        }
        if (strlen($redirect)) {
            $redirect = parametre_url($redirect, 'type', $acte_ou_abo, '&');
            if ($id_transaction = intval($id_transaction)) {
                // attraper les infos sur la transaction
                $row = sql_fetsel('*', 'spip_transactions', 'id_transaction=' . intval($id_transaction));
            }
            if ($row and $row['transaction_hash']) {
                $redirect = parametre_url($redirect, 'id_transaction', $id_transaction, '&');
                $redirect = parametre_url($redirect, 'transaction_hash', $row['transaction_hash'], '&');
            }
        }
    }
    // permettre de definir autrement l'url de redirection
    $redirect = pipeline('bank_redirige_apres_retour_transaction', array('args' => array('mode' => $mode, 'type' => $acte_ou_abo, 'succes' => $succes, 'id_transaction' => $id_transaction, 'row' => $row), 'data' => $redirect));
    #var_dump($redirect);die();
    if (strlen($redirect)) {
        include_spip('inc/headers');
        redirige_par_entete($redirect);
        exit;
    }
    //on ne devrait jamais arriver la !
    if ($succes) {
        echo "Transaction {$mode} {$acte_ou_abo} {$id_transaction} terminee OK";
    } else {
        echo "Transaction {$mode} {$acte_ou_abo} {$id_transaction} annulee";
    }
    die;
}
Beispiel #16
0
function formulaires_recherche_ecrire_charger_dist($action = '', $class = '')
{
    if ($GLOBALS['spip_lang'] != $GLOBALS['meta']['langue_site']) {
        $lang = $GLOBALS['spip_lang'];
    } else {
        $lang = '';
    }
    return array('action' => $action ? $action : generer_url_ecrire('recherche'), 'recherche' => _request('recherche'), 'lang' => $lang, 'class' => $class, '_id_champ' => 'rechercher_' . substr(md5($action . $class), 0, 4));
}
Beispiel #17
0
function exec_documents_liste_dist()
{

//
// Recupere les donnees
//

$commencer_page = charger_fonction('commencer_page', 'inc');
echo $commencer_page(_T('titre_page_documents_liste'), "naviguer", "documents");
echo debut_gauche('', true);


//////////////////////////////////////////////////////
// Boite "voir en ligne"
//

echo debut_boite_info(true);

echo propre(_T('texte_recapitiule_liste_documents'));

echo fin_boite_info(true);



echo debut_droite('', true);

	// recupere les titres des types
	$res = sql_select('extension, titre', "spip_types_documents");
	while ($row = sql_fetch($res))
		$types[$row['extension']] = $row;

	$result = sql_select("docs.id_document AS id_doc, docs.extension AS extension, docs.fichier AS fichier, docs.date AS date, docs.titre AS titre, docs.descriptif AS descriptif, R.id_rubrique AS id_rub, R.titre AS titre_rub", "spip_documents AS docs, spip_documents_liens AS lien, spip_rubriques AS R", "docs.id_document = lien.id_document AND R.id_rubrique = lien.id_objet AND lien.objet='rubrique' AND docs.mode = 'document'", "", "docs.date DESC");

	while ($row=sql_fetch($result)){
		$titre=$row['titre'];
		$descriptif=$row['descriptif'];
		$date=$row['date'];
		$id_document=$row['id_doc'];
		$id_rubrique=$row['id_rub'];
		$titre_rub = typo($row['titre_rub']);
		$fichier = $row['fichier'];

		if (!$titre) $titre = _T('info_document').' '.$id_document;

		debut_cadre_relief("doc-24.gif");
		echo "<b>$titre</b> (" . $types[$row['extension']]['titre'] . ', ' . affdate($date) . ")";
		if ($descriptif)
			echo propre($descriptif);
		else
			echo "<p><tt>$fichier</tt>" . '</p>';

		echo "<p>"._T('info_dans_rubrique')." <a href='" . generer_url_ecrire("naviguer","id_rubrique=$id_rubrique") . "'>$titre_rub</a></p>";
		echo fin_cadre_relief(true);
	}

	echo fin_gauche(), fin_page();
}
/**
 * Ajoute dans le bloc d'info d'un objet un bouton permettant d'aller voir
 * l'historique de ses révisions
 *
 * @param array $flux Données du pipeline
 * @return array $flux  Données du pipeline
 */
function revisions_boite_infos($flux)
{
    $type = $flux['args']['type'];
    if ($id = intval($flux['args']['id']) and $tables = unserialize($GLOBALS['meta']['objets_versions']) and in_array(table_objet_sql($type), $tables) and autoriser('voirrevisions', $type, $id) and sql_countsel('spip_versions', 'id_objet=' . intval($id) . ' AND objet = ' . sql_quote($type)) > 1) {
        include_spip('inc/presentation');
        $flux['data'] .= icone_horizontale(_T('revisions:info_historique_lien'), generer_url_ecrire('revision', "id_objet={$id}&objet={$type}"), "revision-24.png");
    }
    return $flux;
}
Beispiel #19
0
/**
 * Ajout de l'onglet 'Ajouter les plugins'
 *
 * L'URL dépend de l'existence ou pas d'un dépot de plugins.
 * En absence, on amène sur la page permettant de créer un premier dépot.
 *
 * @pipeline ajouter_onglets
 * @param array $flux Données du pipeline
 * @return array      Données du pipeline
 */
function svp_ajouter_onglets($flux)
{
    if ($flux['args'] == 'plugins' and autoriser('ajouter', '_plugins')) {
        $compteurs = svp_compter('depot');
        $page = $compteurs['depot'] == 0 ? 'depots' : 'charger_plugin';
        $flux['data']['charger_plugin'] = new Bouton(find_in_theme('images/plugin-add-24.png'), 'plugin_titre_automatique_ajouter', generer_url_ecrire($page));
    }
    return $flux;
}
function formulaires_clevermail_post_edit_traiter_dist($pst_id = -1)
{
    $champs = array('pst_subject' => _request('pst_subject'), 'pst_html' => _request('pst_html'), 'pst_text' => _request('pst_text'));
    $lst_id = sql_getfetsel("lst_id", "spip_cm_posts", "pst_id=" . intval(_request('pst_id')));
    $lst_name = sql_getfetsel("lst_name", "spip_cm_lists", "lst_id=" . intval($lst_id));
    sql_updateq('spip_cm_posts', $champs, "pst_id = " . intval(_request('pst_id')));
    spip_log('Modification du message « ' . _request('pst_subject') . ' » (id = ' . _request('pst_id') . ') de la liste « ' . $lst_name . ' » (id = ' . $lst_id . ')', 'clevermail');
    return array('message_ok' => 'ok', 'redirect' => generer_url_ecrire('clevermail_posts', 'lst_id=' . $lst_id));
}
function urls_generer_url_ecrire_forum_dist($id, $args = '', $ancre = '', $public = null, $connect = '')
{
    $a = "id_forum=" . intval($id);
    if (is_null($public) and !$connect) {
        $public = objet_test_si_publie('forum', $id, $connect);
    }
    $h = ($public or $connect) ? generer_url_entite_absolue($id, 'forum', $args, $ancre, $connect) : generer_url_ecrire('controler_forum', "debut_forum=@{$id}" . ($args ? "&{$args}" : '')) . ($ancre ? "#{$ancre}" : '');
    return $h;
}
Beispiel #22
0
function base_restaurer_dist($titre = '', $reprise = false)
{
    $status_file = _DUMP_STATUS_FILE;
    $status_file = _DIR_TMP . basename($status_file) . ".txt";
    if (!lire_fichier($status_file, $status) or !($status = unserialize($status))) {
    } else {
        $redirect = parametre_url(generer_action_auteur('restaurer', _DUMP_STATUS_FILE), "step", intval(_request('step') + 1), '&');
        $timeout = ini_get('max_execution_time');
        // valeur conservatrice si on a pas reussi a lire le max_execution_time
        if (!$timeout) {
            $timeout = 30;
        }
        // parions sur une valeur tellement courante ...
        $max_time = time() + $timeout / 2;
        include_spip('inc/minipres');
        @ini_set("zlib.output_compression", "0");
        // pour permettre l'affichage au fur et a mesure
        $titre = _T('dump:restauration_en_cours') . " (" . count($status['tables']) . ") ";
        $balise_img = chercher_filtre('balise_img');
        $titre .= $balise_img(chemin_image('searching.gif'));
        echo install_debut_html($titre);
        // script de rechargement auto sur timeout
        echo http_script("window.setTimeout('location.href=\"" . $redirect . "\";'," . $timeout * 1000 . ")");
        echo "<div style='text-align: left'>\n";
        dump_serveur($status['connect']);
        spip_connect('dump');
        // au premier coup on ne fait rien sauf afficher l'ecran de sauvegarde
        if (_request('step')) {
            $options = array('callback_progression' => 'dump_afficher_progres', 'max_time' => $max_time, 'no_erase_dest' => lister_tables_noerase(), 'where' => $status['where'] ? $status['where'] : array(), 'desc_tables_dest' => array());
            if ($desc = sql_getfetsel('valeur', 'spip_meta', "nom='dump_structure_temp'", '', '', '', '', 'dump') and $desc = unserialize($desc)) {
                $options['desc_tables_dest'] = $desc;
            }
            #var_dump(sql_allfetsel('nom,valeur','spip_meta',"",'','','','','dump'));
            #die();
            $res = base_copier_tables($status_file, $status['tables'], 'dump', '', $options);
        } else {
            // mais on en profite pour reparer les version base pour etre sur de ne pas les perdre
            sql_updateq("spip_meta", array('impt' => 'oui'), "nom='version_installee'", '', 'dump');
            sql_updateq("spip_meta", array('impt' => 'oui'), "nom LIKE '%_base_version'", '', 'dump');
        }
        echo "</div>\n";
        if (!$res) {
            echo dump_relance($redirect);
        }
        echo install_fin_html();
        ob_end_flush();
        flush();
        if (!$res) {
            exit;
        }
        // quand on sort de $export avec true c'est qu'on a fini
        dump_end(_DUMP_STATUS_FILE, 'restaurer');
        include_spip('inc/headers');
        echo redirige_formulaire(generer_url_ecrire("restaurer", 'status=' . _DUMP_STATUS_FILE, '', true, true));
    }
}
/**
 * Inserer les infos d'agenda sur les articles et rubriques
 *
 * @param array $flux
 * @return array
 */
function agenda_affiche_milieu($flux)
{
    $e = trouver_objet_exec($flux['args']['exec']);
    $out = "";
    if ($e['type'] == 'rubrique' and autoriser('configurer') and $e['edition'] == false and $id_rubrique = intval($flux['args']['id_rubrique']) and autoriser('modifier', 'rubrique', $id_rubrique)) {
        $activer = true;
        $res = "";
        $actif = sql_getfetsel('agenda', 'spip_rubriques', 'id_rubrique=' . intval($id_rubrique));
        $statut = "-32";
        $alt = "";
        $voir = "";
        if (!sql_countsel('spip_rubriques', 'agenda=1')) {
            $res .= "<span class='small'>" . _T('agenda:aucune_rubrique_mode_agenda') . "</span><br />";
        } else {
            include_spip('inc/rubriques');
            if (sql_countsel('spip_rubriques', sql_in('id_rubrique', calcul_hierarchie_in($id_rubrique)) . " AND agenda=1 AND id_rubrique<>" . intval($id_rubrique))) {
                $alt = _T('agenda:rubrique_dans_une_rubrique_mode_agenda');
                $activer = false;
                $statut = "-ok-32";
                $voir = _T('agenda:voir_evenements_rubrique');
            } elseif (!$actif) {
                $alt = _T('agenda:rubrique_sans_gestion_evenement') . '<br />';
                $statut = "-non-32";
            }
            if ($actif) {
                $alt = _T('agenda:rubrique_mode_agenda') . '<br />';
                $statut = "-ok-32";
                $voir = _T('agenda:voir_evenements_rubrique');
            }
        }
        if (!$actif) {
            if ($activer) {
                $res .= bouton_action(_T('agenda:rubrique_activer_agenda'), generer_action_auteur('activer_agenda_rubrique', $id_rubrique, self()), 'ajax');
            }
        } else {
            $res .= bouton_action(_T('agenda:rubrique_desactiver_agenda'), generer_action_auteur('activer_agenda_rubrique', "-{$id_rubrique}", self()), 'ajax');
        }
        if ($voir) {
            $res .= " | <a href='" . generer_url_ecrire('evenements', "id_rubrique={$id_rubrique}") . "'>{$voir}</a>";
        }
        if ($res) {
            $out .= boite_ouvrir(_T('agenda:agenda') . http_img_pack("agenda{$statut}.png", $alt, "class='statut'", $alt), 'simple agenda-statut') . $res . boite_fermer();
        }
    } elseif ($e['type'] == 'article' and $e['edition'] == false) {
        $id_article = $flux['args']['id_article'];
        $out .= recuperer_fond('prive/objets/contenu/article-evenements', $flux['args']);
    }
    if ($out) {
        if ($p = strpos($flux['data'], '<!--affiche_milieu-->')) {
            $flux['data'] = substr_replace($flux['data'], $out, $p, 0);
        } else {
            $flux['data'] .= $out;
        }
    }
    return $flux;
}
Beispiel #24
0
function barre_onglets($rubrique, $ongletCourant, $class = "barre_onglet")
{
    include_spip('inc/presentation');
    $res = '';
    foreach (definir_barre_onglets($rubrique) as $exec => $onglet) {
        $url = $onglet->url ? $onglet->url : generer_url_ecrire($exec);
        $res .= onglet(_T($onglet->libelle), $url, $exec, $ongletCourant, $onglet->icone);
    }
    return !$res ? '' : debut_onglet($class) . $res . fin_onglet();
}
Beispiel #25
0
/**
 * Rajoute à gauche de la page d'admin des plugins un lien vers 
 * la page de CFG
 * 
 * @param  Array $flux
 * @return Array 
 */
function cfg_affiche_gauche($flux){
	if ($flux['args']['exec']=='admin_plugin'){
		$flux['data'] =
			debut_cadre_enfonce('',true)
			. icone_horizontale('CFG &ndash; '._T('configuration'), generer_url_ecrire('cfg'), _DIR_PLUGIN_CFG.'cfg-22.png', '', false)
			. fin_cadre_enfonce(true)
			. $flux['data'];
	}
	return $flux;
}
Beispiel #26
0
function barre_onglets_stat_referers() {

	$onglets = array();
	$onglets['jour']=
		  new Bouton(null, 'date_aujourdhui',
			generer_url_ecrire("statistiques_referers",""));
	$onglets['veille']=
		  new Bouton(null, 'date_hier',
			generer_url_ecrire("statistiques_referers","jour=veille"));
	return $onglets;
}
Beispiel #27
0
function exec_mots_type_dist()
{
	$id_groupe= intval(_request('id_groupe'));

	if (!$id_groupe) {
	  $type = $titre = filtrer_entites(_T('titre_nouveau_groupe'));
	  $row = array();
	} else {
		$row = sql_fetsel("id_groupe,titre", "spip_groupes_mots", "id_groupe=$id_groupe");
		if ($row) {
			$id_groupe = $row['id_groupe'];
			$type = $row['titre'];
			$titre = typo($type);
		}
	}

	if (($id_groupe AND !$row) OR
	    !autoriser($id_groupe?'modifier' : 'creer', 'groupemots', $id_groupe)) {
		include_spip('inc/minipres');
		echo minipres();
	} else {

	pipeline('exec_init',array('args'=>array('exec'=>'mots_type','id_groupe'=>$id_groupe),'data'=>''));
	$commencer_page = charger_fonction('commencer_page', 'inc');
	echo $commencer_page("&laquo; $titre &raquo;", "naviguer", "mots");
	
	echo debut_gauche('', true);

	echo pipeline('affiche_gauche',array('args'=>array('exec'=>'mots_type','id_groupe'=>$id_groupe),'data'=>''));
	echo creer_colonne_droite('', true);
	echo pipeline('affiche_droite',array('args'=>array('exec'=>'mots_type','id_groupe'=>$id_groupe),'data'=>''));
	echo debut_droite('', true);
	
	$contexte = array(
		'icone_retour'=>icone_inline(_T('icone_retour'), generer_url_ecrire("mots_tous") . "#mots_tous-$id_groupe", "groupe-mot-24.gif", "rien.gif",$GLOBALS['spip_lang_left']),
		'titre'=>$type,
		'redirect'=>generer_url_ecrire("mots_tous",""),
		'new'=>_request('new') == "oui"?"oui":$id_groupe,
		'config_fonc'=>'groupes_mots_edit_config',
	);

	echo recuperer_fond("prive/editer/groupe_mot", $contexte);

	echo pipeline('affiche_milieu',
		array('args' => array(
			'exec' => 'mots_type',
			'id_groupe' => $id_groupe
		),
		'data'=>'')
	),
	fin_gauche(),
	fin_page();
	}
}
function action_galettonuts_cron_manuel_dist()
{
    $securiser_action = charger_fonction('securiser_action', 'inc');
    $arg = $securiser_action('galettonuts-0.1');
    $voir_statut = _request('statut');
    if ($voir_statut) {
        $voir_statut = '&statut=' . $voir_statut;
    }
    include_spip('inc/galettonuts_fonctions');
    $code = (int) galettonuts_synchroniser();
    redirige_par_entete(generer_url_ecrire(_request('redirect'), 'galettonuts_synchro_ok=oui&code_retour=' . $code . $voir_statut, true));
}
function spiplistes_ajouter_onglets ($flux) {

	global $connect_statut
		, $connect_toutes_rubriques
		;

	// seul les webmestres ont acces au bouton de configuration
	if(
			$connect_statut 
		&& $connect_toutes_rubriques
	) {
		switch($flux['args']) {
			case 'configuration':
				$flux['data'][_SPIPLISTES_PREFIX] = new Bouton( 
					_DIR_PLUGIN_SPIPLISTES_IMG_PACK."courriers_listes-24.png"
					, _T("spiplistes:listes_de_diffusion_")
					, generer_url_ecrire(_SPIPLISTES_EXEC_CONFIGURE)
					)
					;
				break;
			}
	}
	
	// tous les administrateurs restreints peuvent gerer les listes de diffusion
	// Leur donner accees a tous les boutons dans "Editer"
	if(
		$connect_statut == '0minirezo'
	) {
			switch($flux['args']) {
			case 'spiplistes':
				$flux['data']['courriers_casier'] = new Bouton( 
					_DIR_PLUGIN_SPIPLISTES_IMG_PACK."stock_hyperlink-mail-and-news-24.gif"
					, _T('spiplistes:casier_a_courriers')
					, generer_url_ecrire(_SPIPLISTES_EXEC_COURRIERS_LISTE)
					)
					;
				$flux['data']['listes_toutes'] = new Bouton( 
					_DIR_PLUGIN_SPIPLISTES_IMG_PACK."reply-to-all-24.gif"
					, _T('spiplistes:listes_de_diffusion_')
					, generer_url_ecrire(_SPIPLISTES_EXEC_LISTES_LISTE)
					)
					;
				$flux['data']['abonnes_tous'] = new Bouton( 
					_DIR_PLUGIN_SPIPLISTES_IMG_PACK."addressbook-24.gif"
					, _T('spiplistes:suivi')
					, generer_url_ecrire(_SPIPLISTES_EXEC_ABONNES_LISTE)
					)
					;
				break;
		}
	}
	return ($flux);
}
/**
 * Action effectuant 1 action dans la liste des actions à réaliser
 * sur les plugins.
 *
 * Cette action sera relancée tant qu'il reste des actions à faire
 */
function action_actionner_dist()
{
    // droits
    include_spip('inc/autoriser');
    if (!autoriser('configurer', '_plugins')) {
        include_spip('inc/minipres');
        echo minipres();
        exit;
    }
    include_spip('inc/svp_actionner');
    include_spip('inc/headers');
    $actionneur = new Actionneur();
    $actionneur->get_actions();
    if ($actionneur->one_action()) {
        // si SVP a été enlevé des actifs, on redirige sur la fin...
        // sinon cette page d'action/actionner devient introuvable.
        // dans ce cas précis, les autres actions prévues venant après la desactivation de SVP
        // ne pourront être traitees... SVP n'étant plus là !
        if ($actionneur->tester_si_svp_desactive()) {
            $url = _request('redirect');
        } else {
            $url = generer_action_auteur('actionner', '', _request('redirect'));
        }
        // en mode pas à pas, on affiche un bilan entre chaque action
        // et on demande a l'utilistateur de cliquer pour realiser
        // l'action suivante.
        include_spip('inc/config');
        if (lire_config('svp/mode_pas_a_pas') == 'oui') {
            include_spip('inc/minipres');
            $pres = $actionneur->presenter_actions();
            $btn = "<a href='{$url}'>[ Action Suivante ]</a>";
            $styles = "\n\t\t\t\t<style type='text/css'>\n\t\t\t\t#minipres #actionner .fail {color:#c30000;}\n\t\t\t\t#minipres #actionner ul {margin-left: 0.5em;}\n\t\t\t\t#minipres #actionner li {list-style-type:square; margin-left: 0.5em;}\n\t\t\t\t</style>";
            echo minipres(_T('svp:installation_en_cours'), $pres . '<br /><br />' . $btn . $styles);
            die;
        }
        redirige_par_entete(str_replace('&amp;', '&', $url));
    }
    foreach ($actionneur->done as $done) {
        if ($done['todo'] == 'on') {
            if ($voir = session_get('svp_admin_plugin_voir') and $voir == 'inactif') {
                session_set('svp_admin_plugin_voir', 'actif');
            }
            break;
        }
    }
    include_spip('inc/svp_depoter_local');
    svp_actualiser_paquets_locaux();
    if (!_request('redirect')) {
        $GLOBALS['redirect'] = generer_url_ecrire('admin_plugin');
    } else {
        $GLOBALS['redirect'] = str_replace('&amp;', '&', _request('redirect'));
    }
}