, * #URL_ACTION_AUTEUR{supprimer_chapitre, #ID_CHAPITRE, #URL_ECRIRE{chapitres}}, * danger, <:chapitre:confirmer_supprimer_chapitre:/>})] * ] * ``` * * @example * ``` * [(#AUTORISER{supprimer, chapitre, #ID_CHAPITRE}|oui) * [(#BOUTON_ACTION{ * [(#CHEMIN_IMAGE{chapitre-del-24.png}|balise_img{<:chapitre:supprimer_chapitre:/>}|concat{' ',#VAL{<:chapitre:supprimer_chapitre:/>}|wrap{}}|trim)], * #URL_ACTION_AUTEUR{supprimer_chapitre, #ID_CHAPITRE, #URL_ECRIRE{chapitres}}, * icone s24 horizontale danger chapitre-del-24, <:chapitre:confirmer_supprimer_chapitre:/>})] * ] * ``` * * @example * ``` * if (autoriser('supprimer', 'chapitre', $id_chapitre)) { * $supprimer_chapitre = charger_fonction('supprimer_chapitre', 'action'); * $supprimer_chapitre($id_chapitre); * } * ``` * * @param null|int $arg * Identifiant à supprimer. * En absence de id utilise l'argument de l'action sécurisée. **/ function action_supprimer_chapitre_dist($arg=null) { $need_confirm = false; if (is_null($arg)){ $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); $need_confirm = true; } $arg = intval($arg); if ($need_confirm){ $ok = confirmer_supprimer_chapitre_avant_action(_T('chapitre:confirmer_supprimer_chapitre'), _T('item_oui') . '! ' . _T('chapitre:supprimer_chapitre')); } // cas suppression if (autoriser('supprimer', 'chapitre', $arg)) { if ($arg) { $objet = sql_fetsel('*', 'spip_chapitres', 'id_chapitre=' . sql_quote($arg)); $qui = (!empty($GLOBALS['visiteur_session']['id_auteur']) ? 'auteur #' . $GLOBALS['visiteur_session']['id_auteur'] : 'IP ' . $GLOBALS['ip']); spip_log("SUPPRESSION chapitre#$arg par $qui : " . json_encode($objet), "suppressions" . _LOG_INFO_IMPORTANTE); sql_delete('spip_chapitres', 'id_chapitre=' . sql_quote($arg)); // invalider le cache include_spip('inc/invalideur'); suivre_invalideur("id='chapitre/$arg'"); } else { spip_log("action_supprimer_chapitre_dist $arg pas compris"); } } } /** * Confirmer avant suppression si on arrive par un bouton action * @param string $titre * @param string $titre_bouton * @param string|null $url_action * @return bool */ function confirmer_supprimer_chapitre_avant_action($titre, $titre_bouton, $url_action=null) { if (!$url_action) { $url_action = self(); $action = _request('action'); $url_action = parametre_url($url_action, 'action', $action, '&'); } else { $action = parametre_url($url_action, 'action'); } $arg = parametre_url($url_action, 'arg'); $confirm = md5("$action:$arg:".realpath(__FILE__)); if (_request('confirm_action') === $confirm) { return true; } $url_confirm = parametre_url($url_action, "confirm_action", $confirm, '&'); include_spip("inc/filtres"); $bouton_action = bouton_action($titre_bouton, $url_confirm); $corps = "
$bouton_action
"; include_spip("inc/minipres"); echo minipres($titre,$corps); exit; }