Skip to content
Extraits de code Groupes Projets
Valider a7af879d rédigé par esj's avatar esj
Parcourir les fichiers

decongestion de spip_image grace au script generique spip_action.php

parent 64a3dbfd
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -315,6 +315,7 @@ ecrire/inc_recherche.php -text
ecrire/inc_rubriques_edit.php -text
ecrire/inc_sites_edit.php -text
ecrire/inc_sites_tous.php -text
ecrire/inc_spip_action_iconifier.php -text
ecrire/inc_spip_action_purger.php -text
ecrire/inc_spip_action_test_dirs.php -text
ecrire/inc_spip_cal.php -text
......
......@@ -63,18 +63,19 @@ function afficher_boite_logo($type, $id_objet, $id, $texteon, $texteoff, $redire
if ($spip_display != 4) {
include_ecrire('inc_session');
echo "<p>";
debut_cadre_relief("image-24.gif");
echo "<div class='verdana1' style='text-align: center;'>";
$desc = decrire_logo($logon);
afficher_logo($logon, $texteon, $desc, $id_objet, $id, $redirect);
afficher_logo($logon, $texteon, $desc, $redirect);
if ($desc AND $texteoff) {
echo "<br /><br />";
$desc = decrire_logo($logoff);
afficher_logo($logoff, $texteoff, $desc, $id_objet, $id, $redirect);
afficher_logo($logoff, $texteoff, $desc, $redirect);
}
echo "</div>";
fin_cadre_relief();
echo "</p>";
......@@ -82,12 +83,10 @@ function afficher_boite_logo($type, $id_objet, $id, $texteon, $texteoff, $redire
}
function afficher_logo($racine, $titre, $logo, $id_objet, $id, $redirect) {
function afficher_logo($racine, $titre, $logo, $redirect) {
global $connect_id_auteur;
global $clean_link, $spip_lang_right;
include_ecrire('inc_session');
if (!$redirect) $redirect = $clean_link->getUrl();
echo "<b>";
......@@ -98,32 +97,31 @@ function afficher_logo($racine, $titre, $logo, $id_objet, $id, $redirect) {
if ($logo) {
list ($fichier, $taille) = $logo;
$hash = calculer_action_auteur("effacer $fichier");
$hash = calculer_action_auteur("iconifier $fichier");
echo "<p><center><div><a href='"._DIR_IMG.$fichier."'>";
echo reduire_image_logo(_DIR_IMG.$fichier, 170);
echo "</a></div>";
echo debut_block_invisible(md5($titre));
echo $taille;
echo "\n<br />[<a href='", generer_url_public("spip_image", "$id_objet=$id&action=effacer&doc=$fichier&hash_id_auteur=$connect_id_auteur&hash=$hash&redirect=".urlencode($redirect)), "'>",_T('lien_supprimer'),"</a>]";
echo "\n<br />[<a href='", generer_url_public('spip_action.php', "action=iconifier&doc=$fichier&hash_id_auteur=$connect_id_auteur&hash=$hash&redirect=".urlencode($redirect)), "'>",_T('lien_supprimer'),"</a>]";
echo fin_block();
echo "</center></p>";
}
else {
$hash = calculer_action_auteur("ajouter $racine");
$hash = calculer_action_auteur("iconifier $racine");
echo debut_block_invisible(md5($titre));
echo "\n\n<form action='" . generer_url_public("spip_image","") . "' method='POST'
echo "\n\n<form action='" . generer_url_public('spip_action.php') . "' method='POST'
ENCTYPE='multipart/form-data'>
<div>";
echo "\n<INPUT NAME='redirect' TYPE=Hidden VALUE='$redirect' />";
echo "\n<INPUT NAME='$id_objet' TYPE=Hidden VALUE='$id' />";
echo "\n<INPUT NAME='hash_id_auteur' TYPE=Hidden VALUE='$connect_id_auteur' />";
echo "\n<INPUT NAME='hash' TYPE=Hidden VALUE='$hash' />";
echo "\n<INPUT NAME='action' TYPE=Hidden VALUE='ajouter' />";
echo "\n<INPUT NAME='doc' TYPE=Hidden VALUE='$racine' />";
echo "\n<input name='redirect' type='hidden' value='$redirect' />";
echo "\n<input name='hash_id_auteur' type='hidden' value='$connect_id_auteur' />";
echo "\n<input name='hash' type='hidden' value='$hash' />";
echo "\n<input name='action' type='hidden' value='iconifier' />";
echo "\n<input name='doc' type='hidden' value='$racine' />";
echo "\n"._T('info_telecharger_nouveau_logo')."<br />";
echo "\n<INPUT NAME='image' type='File' class='forml' style='font-size:9px;' SIZE=15>";
echo "\n<input name='image' type='File' class='forml' style='font-size:9px;' size='15'>";
echo "<div align='", $GLOBALS['spip_lang_right'], "'>";
echo "\n<input name='sousaction1' type='submit' value='",
_T('bouton_telecharger'),
......
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2006 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return;
include_ecrire("inc_session"); # verifier_action_auteur
function spip_action_iconifier_dist()
{
global $action, $hash, $hash_id_auteur, $doc, $image;
if (!verifier_action_auteur("$action $doc", $hash, $hash_id_auteur))
die ($action . '!!!');
if ($_SERVER['REQUEST_METHOD'] == 'POST')
spip_image_ajouter_dist();
else spip_image_effacer_dist();
$link = new Link(_DIR_RESTREINT_ABS . $GLOBALS['redirect']);
redirige_par_entete($link->getUrl($GLOBALS['ancre']));
}
function spip_image_effacer_dist() {
global $doc;
if (!strstr($doc, ".."))
@unlink(_DIR_IMG . $doc);
}
//
// Ajouter un logo
//
// $source = $_FILES[0]
// $dest = arton12.xxx
function spip_image_ajouter_dist() {
global $sousaction2, $source, $doc;
include_ecrire('inc_getdocument');
if (!$sousaction2) {
if (!$_FILES) $_FILES = $GLOBALS['HTTP_POST_FILES'];
$source = (is_array($_FILES) ? array_pop($_FILES) : "");
}
if ($source) {
$f =_DIR_DOC . $doc . '.tmp';
if (!is_array($source))
// fichier dans upload/
$source = @copy(_DIR_TRANSFERT . $source, $f);
else {
// Intercepter une erreur a l'envoi
if (check_upload_error($source['error']))
$source ="";
else
// analyse le type de l'image (on ne fait pas confiance au nom de
// fichier envoye par le browser : pour les Macs c'est plus sur)
$source = deplacer_fichier_upload($source['tmp_name'], $f);
}
}
if (!$source)
spip_log("pb de copie pour $f");
else {
$size = @getimagesize($f);
$type = decoder_type_image($size[2], true);
if ($type) {
$poids = filesize($f);
if (_LOGO_MAX_SIZE > 0
AND $poids > _LOGO_MAX_SIZE*1024) {
@unlink ($f);
check_upload_error(6,
_T('info_logo_max_poids',
array('maxi' => taille_en_octets(_LOGO_MAX_SIZE*1024),
'actuel' => taille_en_octets($poids))));
}
if (_LOGO_MAX_WIDTH * _LOGO_MAX_HEIGHT
AND ($size[0] > _LOGO_MAX_WIDTH
OR $size[1] > _LOGO_MAX_HEIGHT)) {
@unlink ($f);
check_upload_error(6,
_T('info_logo_max_taille',
array(
'maxi' =>
_T('info_largeur_vignette',
array('largeur_vignette' => _LOGO_MAX_WIDTH,
'hauteur_vignette' => _LOGO_MAX_HEIGHT)),
'actuel' =>
_T('info_largeur_vignette',
array('largeur_vignette' => $size[0],
'hauteur_vignette' => $size[1]))
)));
}
@rename ($f, _DIR_DOC . $doc . ".$type");
}
else {
@unlink ($f);
check_upload_error(6,
_T('info_logo_format_interdit',
array ('formats' => 'GIF, JPG, PNG'))
);
}
}
}
?>
......@@ -68,102 +68,6 @@ function spip_image_joindre_dist()
redirige_par_entete($link->getUrl($ancre));
}
//
// Ajouter un logo
//
// $source = $_FILES[0]
// $dest = arton12.xxx
function spip_image_ajouter_dist() {
global $sousaction2, $source, $doc;
global $action, $hash, $hash_id_auteur;
if (!verifier_action_auteur("$action $doc", $hash, $hash_id_auteur))
die ($action . '!!!');
include_ecrire('inc_getdocument');
if (!$sousaction2) {
if (!$_FILES) $_FILES = $HTTP_POST_FILES;
$source = (is_array($_FILES) ? array_pop($_FILES) : "");
}
if ($source) {
$f =_DIR_DOC . $doc . '.tmp';
if (!is_array($source))
// fichier dans upload/
$source = @copy(_DIR_TRANSFERT . $source, $f);
else {
// Intercepter une erreur a l'envoi
if (check_upload_error($source['error']))
$source ="";
else
// analyse le type de l'image (on ne fait pas confiance au nom de
// fichier envoye par le browser : pour les Macs c'est plus sur)
$source = deplacer_fichier_upload($source['tmp_name'], $f);
}
}
if (!$source)
spip_log("pb de copie pour $f");
else {
$size = @getimagesize($f);
$type = decoder_type_image($size[2], true);
if ($type) {
$poids = filesize($f);
if (_LOGO_MAX_SIZE > 0
AND $poids > _LOGO_MAX_SIZE*1024) {
@unlink ($f);
check_upload_error(6,
_T('info_logo_max_poids',
array('maxi' => taille_en_octets(_LOGO_MAX_SIZE*1024),
'actuel' => taille_en_octets($poids))));
}
if (_LOGO_MAX_WIDTH * _LOGO_MAX_HEIGHT
AND ($size[0] > _LOGO_MAX_WIDTH
OR $size[1] > _LOGO_MAX_HEIGHT)) {
@unlink ($f);
check_upload_error(6,
_T('info_logo_max_taille',
array(
'maxi' =>
_T('info_largeur_vignette',
array('largeur_vignette' => _LOGO_MAX_WIDTH,
'hauteur_vignette' => _LOGO_MAX_HEIGHT)),
'actuel' =>
_T('info_largeur_vignette',
array('largeur_vignette' => $size[0],
'hauteur_vignette' => $size[1]))
)));
}
@rename ($f, _DIR_DOC . $doc . ".$type");
}
else {
@unlink ($f);
check_upload_error(6,
_T('info_logo_format_interdit',
array ('formats' => 'GIF, JPG, PNG'))
);
}
}
$link = new Link(_DIR_RESTREINT_ABS . $GLOBALS['redirect']);
redirige_par_entete($link->getUrl($GLOBALS['ancre']));
}
function spip_image_effacer_dist() {
global $action, $hash, $hash_id_auteur, $doc;
if (!verifier_action_auteur("$action $doc", $hash, $hash_id_auteur))
die ($action . '!!!');
if (!strstr($doc, ".."))
@unlink(_DIR_IMG . $doc);
$link = new Link(_DIR_RESTREINT_ABS . $GLOBALS['redirect']);
redirige_par_entete($link->getUrl($GLOBALS['ancre']));
}
//
// Creation automatique de vignette
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter