/** * Traitement de l'upload d'un logo * * Il est affecte au site si la balise n'est pas dans une boucle, * sinon a l'objet concerne par la boucle ou indiquee par les parametres d'appel * * @param string $objet Objet SPIP auquel sera lie le document (ex. article) * @param int $id_objet Identifiant de l'objet * @param string $retour Url de redirection apres traitement * @param array $options Tableau d'option (exemple : image_reduire => 50) * @return array Retour des traitements */ function formulaires_editer_logo_traiter_dist($objet, $id_objet, $retour = '', $options = array()) { $res = array('editable' => ' '); // pas dans une boucle ? formulaire pour le logo du site // dans ce cas, il faut chercher un 'siteon0.ext' if (!$objet) { $objet = 'site'; } include_spip("action/editer_logo"); // effectuer la suppression si demandee d'un logo $on = _request('supprimer_logo_on'); if ($on or _request('supprimer_logo_off')) { logo_supprimer($objet, $id_objet, $on ? 'on' : 'off'); $res['message_ok'] = ''; // pas besoin de message : la validation est visuelle set_request('logo_up', ' '); } else { $sources = formulaire_editer_logo_get_sources(); foreach ($sources as $etat => $file) { if ($file and $file['error'] == 0) { if ($err = logo_modifier($objet, $id_objet, $etat, $file)) { $res['message_erreur'] = $err; } else { $res['message_ok'] = ''; } // pas besoin de message : la validation est visuelle set_request('logo_up', ' '); } } } // Invalider les caches de l'objet include_spip('inc/invalideur'); suivre_invalideur("id='{$objet}/{$id_objet}'"); if ($retour) { $res['redirect'] = $retour; } return $res; }
/** * Traitement de l'upload d'un logo * * Il est affecte au site si la balise n'est pas dans une boucle, * sinon a l'objet concerne par la boucle ou indiquee par les parametres d'appel * * @param string $objet * @param integer $id_objet * @param string $retour * @return Array */ function formulaires_editer_logo_traiter_dist($objet, $id_objet, $retour = '') { $res = array('editable' => ' '); // pas dans une boucle ? formulaire pour le logo du site // dans ce cas, il faut chercher un 'siteon0.ext' if (!$objet) { $objet = 'site'; } $objet = objet_type($objet); $_id_objet = id_table_objet($objet); // supprimer l'ancien logo puis copier le nouveau include_spip('inc/chercher_logo'); include_spip('inc/flock'); $type = type_du_logo($_id_objet); $chercher_logo = charger_fonction('chercher_logo', 'inc'); // effectuer la suppression si demandee d'un logo $on = _request('supprimer_logo_on'); if ($on or _request('supprimer_logo_off')) { $logo = $chercher_logo($id_objet, $_id_objet, $on ? 'on' : 'off'); if ($logo) { spip_unlink($logo[0]); } $res['message_ok'] = ''; // pas besoin de message : la validation est visuelle } else { include_spip('action/iconifier'); $ajouter_image = charger_fonction('spip_image_ajouter', 'action'); $sources = formulaire_editer_logo_get_sources(); foreach ($sources as $etat => $file) { if ($file and $file['error'] == 0) { $logo = $chercher_logo($id_objet, $_id_objet, $etat); if ($logo) { spip_unlink($logo[0]); } $ajouter_image($type . $etat . $id_objet, " ", $file); $res['message_ok'] = ''; // pas besoin de message : la validation est visuelle } } } if ($retour) { include_spip('inc/headers'); $res['redirect'] = parametre_url($retour, 'var_mode', 'calcul'); } return $res; }