Subversion Repositories Sites.tela-botanica.org

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4 david 1
<?php
2
 
3
if (!defined("_ECRIRE_INC_VERSION")) return;	#securite
4
 
5
global $balise_FORMULAIRE_ADMIN_collecte ;
6
$balise_FORMULAIRE_ADMIN_collecte = array();
7
 
8
# on ne peut rien dire au moment de l'execution du squelette
9
 
10
function balise_FORMULAIRE_ADMIN_stat($args, $filtres) {
11
	return $args;
12
}
13
 
14
# les boutons admin sont mis d'autorite si absents
15
# donc une variable statique controle si FORMULAIRE_ADMIN a ete vu.
16
# Toutefois, si c'est le debuger qui appelle,
17
# il peut avoir recopie le code dans ses donnees et il faut le lui refounir.
18
# Pas question de recompiler: ca fait boucler !
19
# Le debuger transmet donc ses donnees, et cette balise y retrouve son petit.
20
 
21
function balise_FORMULAIRE_ADMIN_dyn($float='', $debug='') {
22
  global $var_preview, $use_cache, $forcer_debug, $xhtml;
23
	global $id_article, $id_breve, $id_rubrique, $id_mot, $id_auteur, $id_syndic;
24
	static $dejafait = false;
25
 
26
	if (!$GLOBALS['spip_admin'])
27
		return '';
28
 
29
	if (!is_array($debug)) {
30
		if ($dejafait)
31
			return '';
32
	} else {
33
		if ($dejafait) {
34
			$res = '';
35
			foreach($debug['sourcefile'] as $k => $v) {
36
				if (strpos($v,'formulaire_admin.') !== false)
37
					return $debug['resultat'][$k . 'tout'];
38
			}
39
			return '';
40
		}
41
	}
42
	$dejafait = true;
43
 
44
	// repartir de zero pour les boutons car clean_link a pu etre utilisee
45
	$link = new Link();
46
	$link->delVar('var_mode');
47
	$link->delVar('var_mode_objet');
48
	$link->delVar('var_mode_affiche');
49
	$action = $link->getUrl();
50
	$action = ($action . ((strpos($action, '?') === false) ? '?' : '&'));
51
 
52
	// Ne pas afficher le bouton 'Modifier ce...' si l'objet n'existe pas
53
	foreach (array('article', 'breve', 'rubrique', 'mot', 'auteur', 'syndic') as $type) {
54
		$id_type = id_table_objet($type);
55
		if (!($$id_type = intval($$id_type)
56
		AND $s = spip_query(
57
		"SELECT $id_type FROM spip_".table_objet($type)."
58
		WHERE $id_type=".$$id_type)
59
		AND spip_num_rows($s)))
60
			$$id_type=0;
61
		else {
62
			$objet_affiche = $type;
63
			break;
64
		}
65
	}
66
 
67
	// Bouton statistiques
68
	if (lire_meta("activer_statistiques") != "non"
69
	AND $id_article
70
	AND !$var_preview
71
	AND ($GLOBALS['auteur_session']['statut'] == '0minirezo')) {
72
		if ($s = spip_query("SELECT id_article
73
		FROM spip_articles WHERE statut='publie'
74
		AND id_article = $id_article")
75
		AND spip_fetch_array($s)) {
76
			include_local ("inc-stats.php3");
77
			$r = afficher_raccourci_stats($id_article);
78
			$visites = $r['visites'];
79
			$popularite = $r['popularite'];
80
			$statistiques = 'statistiques_visites.php3?'; # lien si connecte
81
		}
82
	}
83
 
84
	// Bouton de debug
85
	$debug = (($forcer_debug
86
		   OR $GLOBALS['bouton_admin_debug']
87
		   OR ($GLOBALS['var_mode'] == 'debug'
88
		       AND $GLOBALS['_COOKIE']['spip_debug']))
89
		  AND ($GLOBALS['code_activation_debug'] == 'oui'
90
		       OR $GLOBALS['auteur_session']['statut'] == '0minirezo')
91
		  AND !$var_preview
92
	) ? 'debug' : '';
93
	$analyser = !$xhtml ? "" :
94
	  (($xhtml === 'spip_sax') ?
95
	   ($action . "var_mode=debug&var_mode_affiche=validation") :
96
	   $GLOBALS['xhtml_check']); // cas tidy
97
	// hack - ne pas avoir la rubrique si un autre bouton est deja present
98
	if ($id_article OR $id_breve) unset ($id_rubrique);
99
 
100
	// Pas de "modifier ce..." ? -> donner "acces a l'espace prive"
101
	if (!($id_article || $id_rubrique || $id_auteur || $id_breve || $id_mot || $id_syndic))
102
		$ecrire = 'ecrire';
103
 
104
	// Bouton "preview" si l'objet demande existe et est previsualisable
105
	if (!$GLOBALS['var_preview'] AND (
106
	((lire_meta('preview')=='1comite'
107
		AND $GLOBALS['auteur_session']['statut'] =='1comite')
108
	OR (lire_meta('preview')<>''
109
		AND $GLOBALS['auteur_session']['statut'] =='0minirezo'))
110
	)) {
111
		if ($objet_affiche == 'article'
112
		OR $objet_affiche == 'breve'
113
		OR $objet_affiche == 'rubrique'
114
		OR $objet_affiche == 'syndic')
115
			if (spip_num_rows(spip_query(
116
			"SELECT id_$objet_affiche FROM spip_".table_objet($objet_affiche)."
117
			WHERE ".id_table_objet($objet_affiche)."=".$$id_type."
118
			AND statut IN ('prop', 'prive')")))
119
				$preview = 'preview';
120
	}
121
 
122
	return array('formulaire_admin', 0,
123
			array(
124
				'id_article' => $id_article,
125
				'id_rubrique' => $id_rubrique,
126
				'id_auteur' => $id_auteur,
127
				'id_breve' => $id_breve,
128
				'id_mot' => $id_mot,
129
				'id_syndic' => $id_syndic,
130
				'ecrire' => $ecrire,
131
				'action' => $action,
132
				'preview' => $preview,
133
				'debug' => $debug,
134
				'popularite' => ceil($popularite),
135
				'statistiques' => $statistiques,
136
				'visites' => intval($visites),
137
				'use_cache' => ($use_cache ? ' *' : ''),
138
				'divclass' => $float,
139
				'analyser' => $analyser,
140
				'xhtml_error' => $GLOBALS['xhtml_error']
141
			)
142
		);
143
}
144
?>