New: Possibilit de supprimer une photo produit

This commit is contained in:
Laurent Destailleur 2005-06-29 01:14:52 +00:00
parent 5b727e25eb
commit 32a2413fab
2 changed files with 104 additions and 8 deletions

View File

@ -1029,6 +1029,7 @@ class Product
* \param nbmax Nombre maximum de photos (0=pas de max)
* \param nbbyrow Nombre vignettes par ligne (si mode vignette)
* \return int Nombre de photos affichées
* \todo A virer, seule la methode avec size=0 sert encore.
*/
function show_photos($sdir,$size=0,$nbmax=0,$nbbyrow=5)
{
@ -1057,6 +1058,7 @@ class Product
$photo_vignette=eregi_replace($regs[0],'',$photo)."_small".$regs[0];
}
if ($nbbyrow && $nbphoto == 1) print '<table width="100%" valign="top" align="center" border="0" cellpadding="2" cellspacing="2">';
if ($nbbyrow && ($nbphoto % $nbbyrow == 1)) print '<tr align=center valign=middle border=1>';
@ -1076,6 +1078,7 @@ class Product
if ($nbbyrow) print '</td>';
if ($nbbyrow && ($nbphoto % $nbbyrow == 0)) print '</tr>';
}
if ($size == 0) // Format origine
@ -1102,6 +1105,51 @@ class Product
return $nbphoto;
}
/**
* \brief Retourne tableau de toutes les photos du produit
* \param dir Répertoire à scanner
* \param nbmax Nombre maximum de photos (0=pas de max)
* \return array Tableau de photos
*/
function liste_photos($dir,$nbmax=0)
{
$nbphoto=0;
$tabobj=array();
if (file_exists($dir))
{
$handle=opendir($dir);
while (($file = readdir($handle)) != false)
{
if (is_file($dir.$file))
{
$nbphoto++;
$photo = $file;
// On determine nom du fichier vignette
$photo_vignette='';
if (eregi('(\.jpg|\.bmp|\.gif|\.png|\.tiff)$',$photo,$regs)) {
$photo_vignette=eregi_replace($regs[0],'',$photo)."_small".$regs[0];
}
// Objet
$obj->photo=$photo;
if ($photo_vignette && is_file($photo_vignette)) $obj->photo_vignette=$photo_vignette;
else $obj->photo_vignette="";
$tabobj[$nbphoto-1]=$obj;
// On continue ou on arrete de boucler ?
if ($nbmax && $nbphoto >= $nbmax) break;
}
}
closedir($handle);
}
return $tabobj;
}
}
?>

View File

@ -49,7 +49,7 @@ $types[1] = $langs->trans("Service");
* Actions
*/
if ( $_POST["sendit"] && defined('MAIN_UPLOAD_DOC') && MAIN_UPLOAD_DOC == 1)
if ($_POST["sendit"] && defined('MAIN_UPLOAD_DOC') && MAIN_UPLOAD_DOC == 1)
{
if ($_GET["id"])
{
@ -64,10 +64,16 @@ if ( $_POST["sendit"] && defined('MAIN_UPLOAD_DOC') && MAIN_UPLOAD_DOC == 1)
}
}
if ($_GET["action"] == 'delete' && $_GET["file"])
{
unlink($conf->produit->dir_output."/".$_GET["file"]);
}
/*
*
*/
llxHeader("","",$langs->trans("CardProduct0"));
@ -186,16 +192,58 @@ if ($_GET["id"])
print '</form>';
}
// Affiche photos
if ($_GET["action"] != 'ajout_photo') {
//print '<br>';
//print '<div class="photo">';
$nbphoto=$product->show_photos($conf->produit->dir_output,1,0,5);
if ($_GET["action"] != 'ajout_photo')
{
$nbphoto=0;
$nbbyrow=5;
$pdir = get_exdir($product->id) . $product->id ."/photos/";
$dir = $conf->produit->dir_output . '/'. $pdir;
print '<br><table width="100%" valign="top" align="center" border="0" cellpadding="2" cellspacing="2">';
foreach ($product->liste_photos($dir) as $obj)
{
$nbphoto++;
if ($nbphoto < 1) print $langs->trans("NoPhotoYet")."<br><br>";
//print '</div>';
// if ($nbbyrow && $nbphoto == 1) print '<table width="100%" valign="top" align="center" border="0" cellpadding="2" cellspacing="2">';
if ($nbbyrow && ($nbphoto % $nbbyrow == 1)) print '<tr align=center valign=middle border=1>';
if ($nbbyrow) print '<td width="'.ceil(100/$nbbyrow).'%" class="photo">';
print '<a href="'.DOL_URL_ROOT.'/viewimage.php?modulepart=product&file='.urlencode($pdir.$obj->photo).'" alt="Taille origine" target="_blank">';
// Si fichier vignette disponible, on l'utilise, sinon on utilise photo origine
if ($obj->photo_vignette) $filename=$obj->photo_vignette;
else $filename=$obj->photo;
print '<img border="0" height="120" src="'.DOL_URL_ROOT.'/viewimage.php?modulepart=product&file='.urlencode($pdir.$filename).'">';
print '</a>';
print '<br>'.$langs->trans("File").': '.dolibarr_trunc($filename,16);
if ($user->rights->produit->creer)
{
print '<br>'.'<a href="'.$_SERVER["PHP_SELF"].'?id='.$_GET["id"].'&amp;action=delete&amp;file='.urlencode($pdir.$filename).'">'.img_delete().'</a>';
}
if ($nbbyrow) print '</td>';
if ($nbbyrow && ($nbphoto % $nbbyrow == 0)) print '</tr>';
}
// Ferme tableau
while ($nbphoto % $nbbyrow)
{
print '<td width="'.ceil(100/$nbbyrow).'%">&nbsp;</td>';
$nbphoto++;
}
if ($nbphoto < 1)
{
print '<tr align=center valign=middle border=1><td class="photo">';
print "<br>".$langs->trans("NoPhotoYet")."<br><br>";
print '</td></tr></table>';
}
print '</table>';
}
}
}