/** * Préparer le contexte d'environnement pour les boutons * * Permettra d'afficher le bouton 'Modifier ce...' s'il y a un * `$id_XXX` défini globalement par `spip_register_globals` * * @note * Attention à l'ordre dans la boucle: * on ne veut pas la rubrique si un autre bouton est possible * * @return array * Tableau de l'environnement calculé **/ function admin_objet() { include_spip('inc/urls'); $env = array(); $trouver_table = charger_fonction('trouver_table', 'base'); $objets = urls_liste_objets(false); $objets = array_diff($objets, array('rubrique')); $objets = array_reverse($objets); array_unshift($objets, 'rubrique'); foreach ($objets as $obj) { $type = $obj; if ($type == objet_type($type, false) and $_id_type = id_table_objet($type) and isset($GLOBALS['contexte'][$_id_type]) and $id = $GLOBALS['contexte'][$_id_type] and !is_array($id) and $id = intval($id)) { $id = sql_getfetsel($_id_type, table_objet_sql($type), "{$_id_type}=" . intval($id)); if ($id) { $env[$_id_type] = $id; $env['objet'] = $type; $env['id_objet'] = $id; $env['voir_' . $obj] = str_replace('&', '&', generer_url_entite($id, $obj, '', '', false)); if ($desc = $trouver_table(table_objet_sql($type)) and isset($desc['field']['id_rubrique']) and $type != 'rubrique') { unset($env['id_rubrique']); unset($env['voir_rubrique']); if (admin_preview($type, $id, $desc)) { $env['preview'] = parametre_url(self(), 'var_mode', 'preview', '&'); } } } } } return $env; }
function admin_objet() { include_spip('inc/urls'); $env = array(); foreach (array('mot','auteur','rubrique','breve','article','syndic'=>'site') as $id => $obj) { if (is_int($id)) $id = $obj; $_id_type = id_table_objet($id); if (isset($GLOBALS['contexte'][$_id_type]) AND $id_type = $GLOBALS['contexte'][$_id_type]) { $id_type = sql_getfetsel($_id_type, table_objet_sql($id), "$_id_type=".intval($id_type)); if ($id_type) { $env[$_id_type] = $id_type; $env['objet'] = $id; $env['id_objet'] = $id_type; $g = 'generer_url_ecrire_'.$obj; $env['voir_'.$obj] = str_replace('&', '&', $g($id_type, '','', 'prop')); if ($id == 'article' OR $id == 'breve') { unset($env['id_rubrique']); unset($env['voir_rubrique']); if ($l = admin_stats($id, $id_type, $var_preview)) { $env['visites'] = $l[0]; $env['popularite'] = $l[1]; $env['statistiques'] = $l[2]; } if (admin_preview($id, $id_type)) $env['preview']=parametre_url(self(),'var_mode','preview','&'); } } } } return $env; }