Affichage image produit dans la liste des produits

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

Bonsoir,

C’est noté, je pense m’y mettre dans le courant du mois de Juin ou Juillet car comme la prochaine version 14 est freezer il n’y aura pas d’amélioration pour celle-ci mais je vais tenter pour la prochaine.

Cordialement,
Gaëtan.

Bonjour,
J’ai essayé plusieurs fois avec ces codes ça ne marche toujours pas
je deviens fou.

image

J’ai la version 13.04

Merci

Bonjour
Moi je suis devenu fou à force de sujet sans question précise. Mais je me suis fais une raison donc tout va mieux.
@+

Je mets le code je modifié comme indiqué dans le message en mettant le bon répertoire et ça ne marche toujours pas.
Peut-être que ça ne fonctionne pas pour ma version actuelle?

// Photos
$url_webserver = ‹ https:// ›; //url of your dolibarr server
$dir_product = ‹  ›; //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

J’avais compris ça :wink:
Le code en l’état ne peut pas fonctionner. Si dossier documents est hors zone web (la bonne méthode pour la sécurité) ça ne fonctionne pas.
Qu’avez-vous mis pour le dossier produits ?
@+

Et les chemins commençant par /htdocs je mets celui de mon installation donc d/

Savez vous me dire où se trouve mon erreur ?

J’ai trouvé l’informations suivantes et ça fonctionne.
Il suffit de mettre le fichier dans /"« dossier d’installation dolibarr »"/product/list.php
Faites d’abord une sauvegarde du fichier ou renommer le en list.php.back

image

https://github.com/futurehousestore/Dolibarr_product_list/blob/develop/htdocs/product/list.php

L’infos se trouve sur cette adresse

https://www.dolibarr.org/forum/t/solved-product-pictures-in-product-list/15930/4

Ma version dolibarr c’est 14.01

1 « J'aime »


Bonjour, tout le monde cela fait 3 jours que j’essaye mais impossible d’y parvenir.
Quelqu’un pourrez m’aider s’il vous plaît ?

Bonjour,

Votre installation a un double dossier /dolibarr/htdocs.
Mais le script lui a seulement /htdocs

Soit vous modifiez le script, soit vous supprimez le dossier /dolibarr/