Activité du site

Pages vues depuis Novembre 2002 : 14 210 156

  • Nb. de Membres : 7 436
  • Nb. d'Articles : 670
  • Nb. de Forums : 47
  • Nb. de Sujets : 9
  • Nb. de Critiques : 17

Top 10  Statistiques

Modéré par : Boris 
Index du Forum » » [Archives] Modules en général » » [[Archives] Images et vidéos] [[Archives] Images et vidéos] [TD-Galerie] TD Gallerie - Permettre l'u
Auteur[[Archives] Images et vidéos] [[Archives] Images et vidéos] [TD-Galerie] TD Gallerie - Permettre l'u
Elkashir
8  

Elkashir
  Posté : 21-01-2009 15:02

-: Les Modules de Tribal-Dolphin :- 
SujetTD Gallerie - Permettre l'upload des jpeg et png 
Module TD-Galerie  
Système d'Exploitation Windows 
Votre version de PHP 
Version NPDS (voir statistiques du site) 
Type de problème 
Description du problèmeCeci n'est pas un problème, mais plutotla méthode que j'ai utiliser pour permettre d'uploader des images en png et jpeg avec TD-Gallerie

1)PRemière étape coté administration

Ouvrir admin/adm_func.php
Trouver la fonction AddImgs ligne 303
et remplacer la fonction par celle-ci

function AddImgs($imgscat,$newcard1,$newdesc1,$newcard2,$newdesc2,$newcard3,$newdesc3,$n ewcard4,$newdesc4,$newcard5,$newdesc5) {
global $language, $MaxSizeImg, $MaxSizeThumb, $ModPath, $ModStart, $NPDS_Prefix;
!include!_once("modules/upload/lang/upload.lang-$language.php");
!include!_once("modules/upload/clsUpload.php");

$year = date("Y"); $month = date("m"); $day = date("d");
$hour = date("H"); $min = date("i"); $sec = date("s");

$i=1;
while($i <= 5) {
$img = "newcard$i";
$tit = "newdesc$i";
if (!empty($$img)) {
$newimg = stripslashes(removeHack($$img));
if (!empty($$tit)) {
$newtit = addslashes(removeHack($$tit));
} else {
$newtit = "";
}
$upload = new Upload();
$upload->maxupload_size=200000*100;
$origin_filename = trim($upload->getFileName("newcard".$i));
$filename_ext = strtolower(substr(strrchr($origin_filename, "."),1));

if ( ($filename_ext=="jpg") or ($filename_ext=="gif") or ($filename_ext=="jpeg") or ($filename_ext=="png") ) {
$newfilename = $year.$month.$day.$hour.$min.$sec."-".$i.".".$filename_ext;
if ($upload->saveAs($newfilename,"modules/$ModPath/imgs/", "newcard".$i,true)) {
if ((function_exists('gd_info')) or extension_loaded('gd')) {
@CreateThumb($newfilename, "modules/$ModPath/imgs/", "modules/$ModPath/imgs/", $MaxSizeImg, $filename_ext);
@CreateThumb($newfilename, "modules/$ModPath/imgs/", "modules/$ModPath/mini/", $MaxSizeThumb, $filename_ext);
}

if (sql_query("INSERT INTO ".$NPDS_Prefix."tdgal_img VALUES ('','$imgscat','$newfilename','$newtit','','0','0')")) {
echo "".adm_gal_trans("Image ajoutée avec succès")."
";
} else {
echo "".adm_gal_trans("Impossible d'ajouter l'image en BDD")."
";
@unlink ("modules/$ModPath/imgs/$newfilename");
@unlink ("modules/$ModPath/mini/$newfilename");
}
} else {
echo "".$upload->errors."
";
}
} else {
if ($filename_ext!="")
echo "".adm_gal_trans("Ce fichier n'est pas un fichier jpg,jpeg,png ou gif")."
";
}
}
$i++;
}
}

Ensuite trouvez la fonction CreateThumb ligne 1224
et rempalcer là par celle-ci

function CreateThumb($Image, $Source, $Destination, $Max, $ext) {
if ($ext=="gif") {
if (function_exists("imagecreatefromgif"))
$src=@imagecreatefromgif($Source.$Image);
}
if ($ext=="png") {
if (function_exists("imagecreatefrompng"))
$src=@imagecreatefrompng($Source.$Image);
}
if ($ext=="jpg" || $ext="jpeg") {
$src=@imagecreatefromjpeg($Source.$Image);
}
if ($src) {
$size = getimagesize($Source.$Image);
$h_i = $size[1]; //hauteur
$w_i = $size[0]; //largeur

if (($h_i > $Max) || ($w_i > $Max)) {
if ($h_i > $w_i) {
$convert = $Max/$h_i;
$h_i = $Max;
$w_i = ceil($w_i*$convert);
} else {
$convert = $Max/$w_i;
$w_i = $Max;
$h_i = ceil($h_i*$convert);
}
}

if (function_exists("imagecreatetruecolor")) {
$im = @imagecreatetruecolor($w_i, $h_i);
} else {
$im = @imagecreate($w_i, $h_i);
}

@imagecopyresized($im, $src, 0, 0, 0, 0, $w_i, $h_i, $size[0], $size[1]);
@imageinterlace ($im,1);
if ($ext=="gif") {
@imagegif($im, $Destination.$Image);
}
if ($ext=="png") {
@imagepng($im, $Destination.$Image);
}
if ($ext=="jpg" || $ext="jpeg") {
@imagejpeg($im, $Destination.$Image, 100);
}
@chmod($Dest.$Image,0766);
}
}

Ensuite il faut en faire de même dans le fichier gal_func

Remplacer AddImgs ligne 1040 par

function AddImgs($imgscat,$newcard1,$newdesc1,$newcard2,$newdesc2,$newcard3,$newdesc3,$n ewcard4,$newdesc4,$newcard5,$newdesc5,$user_connecte) {
global $language, $MaxSizeImg, $MaxSizeThumb, $ModPath, $ModStart, $NPDS_Prefix, $ThisFile, $adminmail, $nuke_url, $notif_admin;
!include!_once("modules/upload/lang/upload.lang-$language.php");
!include!_once("modules/upload/clsUpload.php");

$newdesc1=$newdesc1.gal_trans(" proposé par ").$user_connecte;
$newdesc2=$newdesc2.gal_trans(" proposé par ").$user_connecte;
$newdesc3=$newdesc3.gal_trans(" proposé par ").$user_connecte;
$newdesc4=$newdesc4.gal_trans(" proposé par ").$user_connecte;
$newdesc5=$newdesc5.gal_trans(" proposé par ").$user_connecte;

$year = date("Y"); $month = date("m"); $day = date("d");
$hour = date("H"); $min = date("i"); $sec = date("s");

echo "";
echo "";
echo "
 ".gal_trans("Accueil")." | ".gal_trans("Proposer des images")."

    ";
    $soumission=false;
    $i=1;
    while($i <= 5) {
    $img = "newcard$i";
    $tit = "newdesc$i";
    if (!empty($$img)) {
    $newimg = stripslashes(removeHack($$img));
    if (!empty($$tit)) {
    $newtit = addslashes(removeHack($$tit));
    } else {
    $newtit = "";
    }
    $upload = new Upload();
    $upload->maxupload_size=200000*100;
    $origin_filename = trim($upload->getFileName("newcard".$i));
    $filename_ext = strtolower(substr(strrchr($origin_filename, "."),1));

    if ( ($filename_ext=="jpg") or ($filename_ext=="gif") or ($filename_ext=="jpeg") or ($filename_ext=="png") ) {
    $newfilename = $year.$month.$day.$hour.$min.$sec."-".$i.".".$filename_ext;
    if ($upload->saveAs($newfilename,"modules/$ModPath/imgs/", "newcard".$i,true)) {
    if ((function_exists('gd_info')) or extension_loaded('gd')) {
    @CreateThumb($newfilename, "modules/$ModPath/imgs/", "modules/$ModPath/imgs/", $MaxSizeImg, $filename_ext);
    @CreateThumb($newfilename, "modules/$ModPath/imgs/", "modules/$ModPath/mini/", $MaxSizeThumb, $filename_ext);
    }
    if (sql_query("INSERT INTO ".$NPDS_Prefix."tdgal_img VALUES ('','$imgscat','$newfilename','$newtit','','0','1')")) {
    echo "
  • ".gal_trans("Photo envoyée avec succés, elle sera traitée par le webmaster")." : $origin_filename
  • ";
    $soumission=true;
    } else {
    echo "
  • ".gal_trans("Impossible d'ajouter l'image en BDD")." : $origin_filename
  • ";
    @unlink ("modules/$ModPath/imgs/$newfilename");
    @unlink ("modules/$ModPath/mini/$newfilename");
    }
    } else {
    echo "
  • ".$upload->errors."
  • ";
    }
    } else {
    if ($filename_ext!="")
    echo "
  • ".gal_trans("Ce fichier n'est pas un fichier jpg,jpeg,png ou gif")." : $origin_filename
  • ";
    }
    }
    $i++;
    }
    echo "
";
if ($notif_admin and $soumission) {
$subject=gal_trans("Nouvelle soumission de Photos");
$message=gal_trans("Des photos viennent d'être proposées dans la galerie photo du site ").$nuke_url.gal_trans(" par ").$user_connecte;
send_email($adminmail, $subject, $message, "", true, "text");
}
}

Et CreateThumb ligne 1108 par

function CreateThumb($Image, $Source, $Destination, $Max, $ext) {
if ($ext=="gif") {
if (function_exists("imagecreatefromgif"))
$src=@imagecreatefromgif($Source.$Image);
}
if ($ext=="png") {
if (function_exists("imagecreatefrompng"))
$src=@imagecreatefrompng($Source.$Image);
}
if ($ext=="jpg" || $ext="jpeg") {
$src=@imagecreatefromjpeg($Source.$Image);
}
if ($src) {
$size = getimagesize($Source.$Image);
$h_i = $size[1]; //hauteur
$w_i = $size[0]; //largeur

if (($h_i > $Max) || ($w_i > $Max)) {
if ($h_i > $w_i) {
$convert = $Max/$h_i;
$h_i = $Max;
$w_i = ceil($w_i*$convert);
} else {
$convert = $Max/$w_i;
$w_i = $Max;
$h_i = ceil($h_i*$convert);
}
}

if (function_exists("imagecreatetruecolor")) {
$im = @imagecreatetruecolor($w_i, $h_i);
} else {
$im = @imagecreate($w_i, $h_i);
}

@imagecopyresized($im, $src, 0, 0, 0, 0, $w_i, $h_i, $size[0], $size[1]);
@imageinterlace ($im,1);
if ($ext=="gif") {
@imagegif($im, $Destination.$Image);
}
if ($ext=="png") {
@imagepng($im, $Destination.$Image);
}
if ($ext=="jpg" || $ext="jpeg") {
@imagejpeg($im, $Destination.$Image, 100);
}
@chmod($Dest.$Image,0766);
}
}

Et voila ;) 
notification par Email
..::..

  Profil
Jireck
2520       
 Modules Team

Jireck
  Posté : 21-01-2009 15:30

Coool

je n'est pas vérifier ton code mais il serait plus simple si on pouvait le download ou le visualiser correctement.... afin de prendre la total ampleur

  Profil  www
colonelwog
1485       
 Modules Team

colonelwog
  Posté : 22-01-2009 07:28

oui cela m'interresse car depuis que ie gere les png ^^....

  Profil  E-mail  www
Elkashir
8  

Elkashir
  Posté : 22-01-2009 10:47

Je ferai un meilleur post un peu plus tard, j'éprouve un petit souci avec la création des miniatures en png et gif.
Les fonctions marchent (les utilisants sur un autre projet) mais il ne veux pas me crée les gif/png dans les minis, en tout cas l'upload en général lui passe :)

Je travail aussi sur event-call, car il ne fonctionne pas chez moi (IE ne trouve pas la page)

  Profil
Jireck
2520       
 Modules Team

Jireck
  Posté : 22-01-2009 17:24

Citation : Elkashir 

Je ferai un meilleur post un peu plus tard, j'éprouve un petit souci avec la création des miniatures en png et gif.
Les fonctions marchent (les utilisants sur un autre projet) mais il ne veux pas me crée les gif/png dans les minis, en tout cas l'upload en général lui passe :)

Je travail aussi sur event-call, car il ne fonctionne pas chez moi (IE ne trouve pas la page) 


Je suis en train de faire une nouvelle version d'event call

  Profil  www
Elkashir
8  

Elkashir
  Posté : 23-01-2009 09:50

Al elle m'intéresse grandement, j'avouerai que je trouve pas le souci de ce module, me dire que la page est introuvable alors que jy accède est étrange.
J'ai rajouter des balises <?php à la place des <? mais non ca passe pas.

  Profil
Elkashir
8  

Elkashir
  Posté : 27-01-2009 11:23

Donc voila j'ai fini le debug au niveau de l'upload des gif et png
il y a une légère perte sur les gif et png à cause de la transparence (qui devient noir et dont ensuite je rend transparent donc ca crée une bordure noir partout) mais j'ai pas trouvé comment la changer

La seule fonction à changer est CreateThumb :


// CreateThumb($newfilename, "modules/$ModPath/imgs/", "modules/$ModPath/mini /", $MaxSizeThumb, $filename_ext);
function CreateThumb($Image, $Source, $Destination, $Max, $ext) {
   if ($ext == "gif"){
         $src=imagecreatefromgif($Source.$Image);
   }
   if ($ext == "png"){
         $src=imagecreatefrompng($Source.$Image);
   }
   if ($ext == "jpg" || $ext == "jpeg"){
      $src=imagecreatefromjpeg($Source.$Image);
   }
    $size = getimagesize($Source.$Image);
    $h_i = $size[1]; //hauteur
    $w_i = $size[0]; //largeur
    if (($h_i > $Max) || ($w_i > $Max)) {
        if ($h_i > $w_i) {
            $convert = $Max/$h_i;
            $h_i = $Max;
            $w_i = ceil($w_i*$convert);
        }
        else {
            $convert = $Max/$w_i;
            $w_i = $Max;
            $h_i = ceil($h_i*$convert);
        }
    }
    // si le fichier est un .gif
    if ($ext == "gif"){
        $fichier_reduit = imagecreate($w_i, $h_i);
        $fond_blanc = imagecolorallocate($fichier_reduit, 255, 255, 255);
        $fichier_larg_red = imagesx($fichier_reduit);
        $fichier_haut_red = imagesy($fichier_reduit);
        imagecopyresampled($fichier_reduit, $src, 0, 0, 0, 0, $fichier_larg_r ed, $fichier_haut_red, $size[0], $size[1]);
        imagecolortransparent($fichier_reduit, $fond_blanc);
        imagegif($fichier_reduit, $Destination.$Image);
    }
    // si le fichier est un .jpg / .jpeg
    if ($ext=="jpg" || $ext=="jpeg"){
        $qualite=80;                  
        $fichier_reduit = imagecreatetruecolor($w_i, $h_i);
        $fichier_larg_red = imagesx($fichier_reduit);
        $fichier_haut_red = imagesy($fichier_reduit);
        imagecopyresampled($fichier_reduit, $src, 0, 0, 0, 0, $fichier_larg_r ed, $fichier_haut_red, $size[0], $size[1]);
        imagejpeg($fichier_reduit, $Destination.$Image, $qualite);
    }                            
    // si le fichier est un .png
    if ($ext=="png"){
        $fichier_reduit = imagecreatetruecolor($w_i, $h_i);
        $fichier_larg_red = imagesx($fichier_reduit);
        $fichier_haut_red = imagesy($fichier_reduit);
        imagecopyresampled($fichier_reduit, $src, 0, 0, 0, 0, $fichier_larg_r ed, $fichier_haut_red, $size[0], $size[1]);
        $fond_noir = imagecolorallocate($fichier_reduit, 0, 0, 0);
        imagecolortransparent($fichier_reduit, $fond_noir);
        imagepng($fichier_reduit, $Destination.$Image);
    }
}


dans admin/adm_func.php et /gal_func.php

Cordialement.

Message édité par : Elkashir / 27-01-2009 11:27


  Profil
Jireck
2520       
 Modules Team

Jireck
  Posté : 27-01-2009 12:46

je prends a titre perso....

p'ter que ma version sera l'officiel plus tard...

  Profil  www
lopez
1894       
 Modules Team

lopez
  Posté : 27-01-2009 22:17

Merci Elkashir pour ta contribution en tout cas

Message édité par : lopez / 27-01-2009 22:18


  Profil  www
colonelwog
1485       
 Modules Team

colonelwog
  Posté : 31-12-2009 10:03

du nouveau la dessus ?

  Profil  E-mail  www
lopez
1894       
 Modules Team

lopez
  Posté : 31-12-2009 16:18

Non, faudrait voir pour intégrer çà ...

  Profil  www
colonelwog
1485       
 Modules Team

colonelwog
  Posté : 31-12-2009 17:31

perso j'ai tester et c'est ok car maintenant avec ie 8 qui prends en charge les png comme ff il etait temps ...

  Profil  E-mail  www
Sauter à :