Affichage image produit dans la liste des produits

Salut,
je voudrais afficher les images produits dans le menu list afin de bien saisir le produit.
j’ai essay aver la methode show_photos du fichier fiche mais j’ ai pas reussi a l’utilisiee :frowning:

liste_2015-06-11.png

si possible je voudrais savoir comment l’utiliser et si il y’ a une meilleur solution ca serais tres gentil .

Merci
tarekm

merci
cbon c resolut :wink:

tarekm

Comment tu la fait ?? :slight_smile:

il faut changer le ficher list.php (Produit)

et on ajoute tout simplement

print ‹ <td > ›.$product_static->show_photos($conf->product->multidir_output[1],1,2,0,0,0,50).’</td>’;
dans la boucle qui va afficher les produits.

bon chance

1 « J'aime »

Cette astuce fonctionne encore sur une 3.9 :

Super !!!

Pièces jointes :

Hello,

J’apporte ma maigre contribution car je cherchais le moyen de faire la même chose

Pour ce faire j’ai ajouté le code suivant, attention je ne suis pas développeur donc ça piquera peut-être aux yeux de certains.

J’ai uniquement modifié le fichier list.php situé dans /htdocs/product

En bleu mes modifications :

Tout d’abord, le titre de colonne, évidemment, il est fixe dans le cas ci-dessous

if (! empty($arrayfields['p.label']['checked']))  print_liste_field_titre($arrayfields['p.label']['label'], $_SERVER["PHP_SELF"],"p.label","",$param,"",$sortfield,$sortorder);

print_liste_field_titre(« Photos »);

if (! empty($arrayfields['p.fk_product_type']['checked']))  print_liste_field_titre($arrayfields['p.fk_product_type']['label'], $_SERVER["PHP_SELF"],"p.fk_product_type","",$param,"",$sortfield,$sortorder);

Ensuite, l’affichage des photos des produits
Vu que j’ai ajouté le titre de la colonne entre « label » et « fk_product_type », je place ma modification au même endroit
J’ai repris les photos contenue dans le répertoire thumb et j’ai tjs pris l’élément 2

// Photos
$dir_product = '/volume1/web/dolibarr_test/documents/produit'; //folder where are the pictures
$subdir_product = $product_static->ref; //product reference
$path_pictures = $dir_product .'/'.$subdir_product.'/thumbs'; //format the path
$files_pictures = scandir($path_pictures); //scan all the file located in the path
$img_product='https://<url of my dolibarr>/htdocs/viewimage.php?modulepart=product&entity=1&file=/'.urlencode($subdir_product).'/thumbs/'.$files_pictures[2]; //the whole path to the picture, change with the url of your dolibarr server
print '<td><img src='.$img_product.'></td>'; //display the picture

Edit : testé sous dolibarr 7 et 8

1 « J'aime »

Bonjour
Pouvez mettre en ligne votre fichier list.php ?
N oubliez pas de le zipper :wink:

Merci

Voici un aperçu de ce que cela donne et le zip du fichier

Attention:
- il faut bien modifier l’url de votre serveur web, remplacer <url of my dolibarr>
- remplacer également le contenu de la variable $dir_product par le répertoire physique de votre installation
- le fichier « list.php » est à sauver dans /htdocs/product/

dolibarr_photo_liste_produits.png

list.zip (10 KB)

2 « J'aime »

Bon, je viens de corriger un scénario que j’avais oublié :

- Si le répertoire ou sont stocké les « thumbs » n’existait pas, il y avait une erreur
- j’ai également ajouté un test si l’image existe, sinon je et une url factice
- j’ai également attribué une variable pour l’url du web serveur

le nouveau code :

// Photos
$url_webserver = 'https://<your dolibarr url>'; //url of your dolibarr server
$dir_product = '<your dolibarr path to product folder>'; //path to the product folder (e.g. /volume1/web/dolibarr_test/documents/produit)
			
$subdir_product = $product_static->ref; //get the product reference
$path_pictures = $dir_product .'/'.$subdir_product.'/thumbs'; //format the whole path on disk
						
if (is_dir($path_pictures)) {
    	$files_pictures = scandir($path_pictures); //scan all file in the folder         
}
			
if (! empty($files_pictures[2]))
{
	$img_product=$url_webserver.'/htdocs/viewimage.php?modulepart=product&entity=1&file=/'.urlencode($subdir_product).'/thumbs/'.$files_pictures[2]; //format the path to the picture, we took the third file
}
else
{
	$img_product=$url_webserver.'/htdocs/viewimage.php?modulepart=product&entity=1&file=none'; //if there is no picture available
}
			
print '<td><img src='.$img_product.'></td>'; //display the picture

Donc il suffit de modifier les deux variables suivantes :
$url_webserver = ‹ https://<your dolibarr url> ›; //url of your dolibarr server
$dir_product = ‹ <your dolibarr path to product folder> ›; //path to the product folder (e.g. /volume1/web/dolibarr_test/documents/produit)

Voici le nouveaux zip

list_2018-09-05.zip (10.1 KB)

2 « J'aime »

Bonjour,

Est ce que ce modif très utile est toujours viable sur la version 13.0.2 ? J’ai récemment installé DoliWamp et j’aimerais ajouté un côté visuel sur la liste des produits.

Merci

Bonsoir,

Vu les modifications qu’il y a eu dans le code du fichier entre septembre 2018 et la version 13.0.2 je dirais que ça a peu de chance de fonctionner, par contre il existe peut-être un module ou un paramètre avancé pour avoir les photos dans la liste des produits car la photo est présent lors du survole de la référence.

Ça doit donc pouvoir être facilement intégré, soit avec un extrafield soit une modification du code pour rajouter un paramètre à mettre dans Accueil–>Configuration–>Divers pour afficher ou non la photo des produits.

Si ça n’hésites pas et si il y a de la demande il peut être envisagé de financer un développement partagé.

Cordialement,
Gaëtan.

j’ai depuis remodifié ma page, la version actuelle sur laquelle je tourne est 12.0.4

Il faudrait que je teste en 13

Bonjour,

Avez-vous la possibilité de mettre à disposition la version modifiée ici ou via github ?

Cordialement,
Gaëtan.

Hello,

Pour la colonne supplémentaire avec les photos dans la liste voici mon code

Titre de la colonne (j’ai choisi de la mettre entre « Label » et « Type », le titre est fixe

if (!empty($arrayfields['p.label']['checked'])) {
    print_liste_field_titre($arrayfields['p.label']['label'], $_SERVER["PHP_SELF"], "p.label", "", $param, "", $sortfield, $sortorder);
}
// Photos
print_liste_field_titre("Photos");
if (!empty($arrayfields['p.fk_product_type']['checked'])) {
    print_liste_field_titre($arrayfields['p.fk_product_type']['label'], $_SERVER["PHP_SELF"], "p.fk_product_type", "", $param, "", $sortfield, $sortorder);
}

Affichage des photos : entre les balises « Label » et « Type », j’ai créé mon label « Photo » pour correspondre au placement du titre de la colonne

// Label
	if (!empty($arrayfields['p.label']['checked']))
	{
		print '<td class="tdoverflowmax200">'.dol_trunc($obj->label, 80).'</td>';
		if (!$i) $totalarray['nbfield']++;
	}

		// Photos
		$url_webserver = 'https://<your dolibarr url>'; //url of your dolibarr server
		$dir_product = '<your dolibarr path to product folder>'; //path to the product folder
		
		$subdir_product = $product_static->ref; //get the product reference
		$path_pictures = $dir_product .'/'.$subdir_product.'/thumbs'; //format the whole path on disk
					
		if (is_dir($path_pictures)) {
			$files_pictures = scandir($path_pictures); //scan all file in the folder         
		}
		
		if (! empty($files_pictures[2]))
		{
			$img_product=$url_webserver.'/htdocs/viewimage.php?modulepart=product&entity=1&file=/'.urlencode($subdir_product).'/thumbs/'.$files_pictures[2]; //format the path to the picture, we took the third file
		}
		else
		{
			$img_product=$url_webserver.'/htdocs/viewimage.php?modulepart=product&entity=1&file=none'; //if there is no picture available
		}
		
		print '<td><img src="'.$img_product.'"></td>'; //display the picture

	// Type
3 « J'aime »

Re,

Merci beaucoup ça pourra certainement servir à d’autres.

Je n’ai pas encore eu le temps de vérifier si nous pouvions l’avoir déjà directement dans Dolibarr, sinon pouvez-vous faire une PR sur le github de Dolibarr ?

Sinon je peux m’en occuper en vous créditant bien sur.

Cordialement,
Gaëtan.

J’ai essayé de le faire une fois et visiblement je ne m’y suis pas bien pris
J’ai un peu du mal avec github car je ne suis pas développeur mais je me débrouille un peu en PHP

Donc si tu veux le faire, n’hésites pas, le partage est le but dans ce type de logiciel :wink:

Re,

Personnellement je passe directement par l’interface web sans avoir besoin de paramétrer git sur mon poste.

C’est noté, je termines un script d’installation de Dolibarr et de la base de démo pour un hébergement OVH mutualisé et je regardes ce que je peux faire.

Amicalement,
Gaëtan.

Même si je suis heureux de faire partie de cette conversation, hélas mes compétences sont limitées au niveau d’un utilisateur banal alors je voulais juste vous remercier pour vos efforts.

Bonjour,

@nickdavies je viens de regarder, il y a déjà l’affichage de la photo des produits en survolant chaque référence ça peut-être une solution ou alors il vous faut l’affichage dans la liste ?

@eljub je vais regarder comment l’implémenter, voir également sur le Dolistore si il n’y a pas quelque chose de déjà fait, je vais sans doute modifier le code afin de reprendre celui qui sert à l’affichage de la photo lors du survol de la référence, je te tiens au courant ici.

Amicalement,
Gaëtan.

@gmilad pas de soucis mon code n’est certainement pas parfait, j’ai fais avec le peu de connaissance que j’ai

J’ai d’ailleurs mes des infos en dur ce qui n’est pas très pro :wink:

Perso, je préfère avoir la photo dans la liste en plus du survol