<?php

if (!defined("_ECRIRE_INC_VERSION")) return;	#securite

global $balise_FORMULAIRE_ADMIN_collecte ;
$balise_FORMULAIRE_ADMIN_collecte = array();

# on ne peut rien dire au moment de l'execution du squelette

function balise_FORMULAIRE_ADMIN_stat($args, $filtres) {
	return $args;
}

# les boutons admin sont mis d'autorite si absents
# donc une variable statique controle si FORMULAIRE_ADMIN a ete vu.
# Toutefois, si c'est le debuger qui appelle,
# il peut avoir recopie le code dans ses donnees et il faut le lui refounir.
# Pas question de recompiler: ca fait boucler !
# Le debuger transmet donc ses donnees, et cette balise y retrouve son petit.

function balise_FORMULAIRE_ADMIN_dyn($float='', $debug='') {
	global $var_preview, $use_cache, $forcer_debug;
	global $id_article, $id_breve, $id_rubrique, $id_mot, $id_auteur;
	static $dejafait = false;

	if ($GLOBALS['flag_preserver'] || !$GLOBALS['spip_admin'])
		return '';

	if (!is_array($debug)) {
		if ($dejafait)
			return '';
	} else {
		if ($dejafait) {
			$res = '';
			foreach($debug['sourcefile'] as $k => $v) {
				if (strpos($v,'formulaire_admin.') !== false)
					return $debug['resultat'][$k . 'tout'];
			}
			return '';
		}
	}
	$dejafait = true;

	// repartir de zero pour les boutons car clean_link a pu etre utilisee
	$link = new Link();
	$link->delVar('var_mode');
	$link->delVar('var_mode_objet');
	$link->delVar('var_mode_affiche');
	$action = $link->getUrl();
	$action = ($action . ((strpos($action, '?') === false) ? '?' : '&'));

	// Ne pas afficher le bouton 'Modifier ce...' si l'objet n'existe pas
	foreach (array('article', 'breve', 'rubrique', 'mot', 'auteur') as $type) {
		$id_type = 'id_'.$type;
		if (!($$id_type = intval($$id_type)
		AND $s = spip_query(
		"SELECT $id_type FROM spip_${type}s WHERE $id_type=".$$id_type)
		AND spip_num_rows($s)))
			$$id_type=0;
		else {
			$objet_affiche = $type;
			break;
		}
	}

	// Bouton statistiques
	if (lire_meta("activer_statistiques") != "non" 
	AND $id_article
	AND !$var_preview
	AND ($GLOBALS['auteur_session']['statut'] == '0minirezo')) {
		if ($s = spip_query("SELECT id_article
		FROM spip_articles WHERE statut='publie'
		AND id_article = $id_article")
		AND spip_fetch_array($s)) {
			include_local ("inc-stats.php3");
			$r = afficher_raccourci_stats($id_article);
			$visites = $r['visites'];
			$popularite = $r['popularite'];
			$statistiques = 'statistiques_visites.php3?'; # lien si connecte
		}
	}

	// Bouton de debug
	$debug = (
		($forcer_debug
		OR $GLOBALS['bouton_admin_debug']
		OR ($GLOBALS['var_mode'] == 'debug'
			AND $GLOBALS['_COOKIE']['spip_debug']
		)) AND ($GLOBALS['code_activation_debug'] == 'oui'
			OR $GLOBALS['auteur_session']['statut'] == '0minirezo')
		AND !$var_preview
	) ? 'debug' : '';

	// hack - ne pas avoir la rubrique si un autre bouton est deja present
	if ($id_article OR $id_breve) unset ($id_rubrique);

	// Pas de "modifier ce..." ? -> donner "acces a l'espace prive"
	if (!($id_article || $id_rubrique || $id_auteur || $id_breve || $id_mot))
		$ecrire = 'ecrire';

	// Bouton "preview" si l'objet demande existe et est previsualisable
	if (!$GLOBALS['var_preview'] AND (
	((lire_meta('preview')=='1comite'
		AND $GLOBALS['auteur_session']['statut'] =='1comite')
	OR (lire_meta('preview')<>''
		AND $GLOBALS['auteur_session']['statut'] =='0minirezo'))
	)) {
		if ($objet_affiche == 'article'
		OR $objet_affiche == 'breve'
		OR $objet_affiche == 'rubrique')
			if (spip_num_rows(spip_query(
			"SELECT id_$objet_affiche FROM spip_".$objet_affiche."s
			WHERE id_$objet_affiche=".${"id_".$objet_affiche}."
			AND statut IN ('prop', 'prive')")))
				$preview = 'preview';
	}

	return array('formulaire_admin', 0,
			array(
				'id_article' => $id_article,
				'id_rubrique' => $id_rubrique,
				'id_auteur' => $id_auteur,
				'id_breve' => $id_breve,
				'id_mot' => $id_mot,
				'ecrire' => $ecrire,
				'action' => $action,
				'preview' => $preview,
				'debug' => $debug,
				'popularite' => ceil($popularite),
				'statistiques' => $statistiques,
				'visites' => intval($visites),
				'use_cache' => ($use_cache ? ' *' : ''),
				'floatdiv' => $float
			)
		);
}
?>
