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
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
Cette astuce fonctionne encore sur une 3.9 :
Super !!!
Pièces jointes :
- Capturedcran2016-05-1000.07.49.png (90.8 KB)
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
Bonjour
Pouvez mettre en ligne votre fichier list.php ?
N oubliez pas de le zipper
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/
list.zip (10 KB)
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)
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
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
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
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.
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.
@+