Pdf indexer et multi critere

  • Posts: 178
  • Thank you received: 0
2 years 10 months ago #333134

-- HikaShop version -- : 4.4.2
-- Joomla version -- : 3.9.27

Hello je voudrais savoir si a votre avis c'est viable comme solution
Actuellement j'ai un client qui vend des pdf a l'unité via un combo foireux....
J2store pour la vente
Edocman pour la stokage et l'indexation pdf
K2 pour les champs et la recherche
Je pense que je pourrais créer le tout en un seul hikashop
1 pdf = produit
Ajout de champs et de la recherche multicritere via les champs de hikabuissness
Ajout d'un indexeur de contenu dans les pdf
Viable avec hikashop ?
Merci par avance

Please Log in or Create an account to join the conversation.

  • Posts: 81540
  • Thank you received: 13071
  • MODERATOR
2 years 10 months ago #333135

Bonjour,

Oui, cela me semble tout a fait faisable avec HikaShop.
Pour l'indexeur de contenu des PDFs, vous pourriez simplement faire un plugin HikaShop implémentant les évènements onAfterProductUpdate / onAfterProductCreate qui utiliserait une librairie du genre www.phpclasses.org/package/8908-PHP-Conv...F-to-plain-text.html pour parser les fichiers du produit pour mettre le contenu dans un champs personnalisé de la table "produit" et de type "texte". Un plugin comme cela nécessiterait quelques dizaines de lignes de code tout au plus, donc rien de très compliqué pour un développeur PHP.
Ainsi, vous pourriez simplement sélectionner ce champs personnalisé en plus dans le filtre de recherche d'HikaShop.

Please Log in or Create an account to join the conversation.

  • Posts: 178
  • Thank you received: 0
2 years 10 months ago #333137

cool je vais checker ca
faudrait que je vois avec le dev pour que l'indexation ce fasse à l'import (on parle de la récupération de 20 ans de pdf de recherche)
avec ce seul champs texte on peut faire en sorte que le champs de recherche tape dedans ?
est ce compatible avec le finder de joomla ?
on peut facilement monté un filtrage multi critére avec la buissnes (genre liste déroulante dans les année et dans un champs auteur ou autre ect) ?

Last edit: 2 years 10 months ago by micker.

Please Log in or Create an account to join the conversation.

  • Posts: 81540
  • Thank you received: 13071
  • MODERATOR
2 years 10 months ago #333140

Bonjour,

Nous allons justement rajouter des triggers à notre système d'import dans la prochaine version d'HikaShop qui sortira dans quelques jours. Donc il suffira de rajouter le trigger de l'import au plugin pour gérer aussi le parsing des fichiers durant l'import CSV.
Donc cela ne sera pas un souci.
Par contre, je parle ici de la recherche multi critère avec le système de filtres d'HikaShop Business :
www.hikashop.com/support/documentation/1...-filter-listing.html
Il permet "genre liste déroulante dans les année et dans un champs auteur ou autre ect".
Le système "smart search" / "finder" de Joomla ne tapera pas dans le champ personnalisé par contre.
Vous avez alors deux solutions si vous voulez utiliser le finder:
- soit vous mettez le texte des fichiers dans la description des produits, et vous créer un champ personnalisé pour la description, et ainsi il suffira d'un petit override de la page produit pour afficher le contenu du champ à la place de la description.
- soit il va falloir importer les données dans le finder de Joomla, et ce n'est pas simple, mais quand même faisable pour un développeur chevronné.
Mais notez que le finder n'est pas vraiment fait pour la recherche multi critère. Il y a moyen de faire des choses avec, mais c'est assez complexe. Il sera plus simple d'utiliser le système de filtres dans HikaShop.

Please Log in or Create an account to join the conversation.

  • Posts: 178
  • Thank you received: 0
2 years 9 months ago #334559

ok cool !

Please Log in or Create an account to join the conversation.

  • Posts: 178
  • Thank you received: 0
2 years 5 months ago #336873

Hello juste une question quand on enregistre l'article y a t il une méthode déjà commentée (ou mise en place par hika pour enregistrer les données parsés lors de l'analyse pdf pour l'intégrer dans un champ custom produit ?
Merci

Please Log in or Create an account to join the conversation.

  • Posts: 81540
  • Thank you received: 13071
  • MODERATOR
2 years 5 months ago #336879

Bonjour,

Oui. Vous pouvez faire comme ceci dans une plugin du groupe HikaShop:

public function onBeforeProductCreate(&$product, &$do) {
  // parse PDF with your code
  // add the parsed data in a custom product field with the column name xxx:
  $product->xxx = $dataString;
}
public function onBeforeProductUpdate(&$product, &$do) {
 return $this->onBeforeProductCreate($product, $do);
}

Please Log in or Create an account to join the conversation.

  • Posts: 178
  • Thank you received: 0
2 years 5 months ago #336911

Je me pose des questions (si je peu abusé sur les conseil) :
- j'ai pas trouvé la liaision entre le fichier et la produit en bdd c'est stoké comment ?
- au niveau de l'envenement de l'enregistrement du produit, lupload du fichier et le scan vous recommander quel evenement car j'ai trouvé un plugin qui permet de voir les evenement de hikashop mais il ne marche pas en j4
Merci

Please Log in or Create an account to join the conversation.

  • Posts: 81540
  • Thank you received: 13071
  • MODERATOR
2 years 5 months ago #336915

Bonjour,

1. Vous n'avez pas dit comment vous liez un PDF à un produit donc difficile de vous dire quoi faire dans la base de données.
Si vous utilisez un champ personnalisé de la table "produit" et de type "ajax file" pour permettre l'upload de ces PDFs pour les produits, alors le nom du fichier est stocké dans la table hikashop_product dans la colonne du même nom que le nom de colonne configurée dans le champ personnalisé.
Si vous utilisez l'interface dans la section "Images & Fichiers" de l'interface des produits, alors le nom du fichier est stocké dans la table hikashop_file avec file_ref_id contenant l'id du produit.
Dans les deux cas précédents, les fichiers sont stockés dans media/com_hikashop/upload/safe/ à moins que vous ayez changé le chemin par défaut dans la configuration HikaShop.
Et si vous utilisez autre chose pour lier produits et fichiers, alors je ne sais pas.

2. Je vous ai mis les deux évènements à implémenter dans mon précédent message: www.hikashop.com/forum/install-update/90...-critere.html#336879

Please Log in or Create an account to join the conversation.

  • Posts: 178
  • Thank you received: 0
2 years 4 months ago #338089

Bon on a avancer sur le plugin et on va importer beaucoup de fichier dans notre hikashop
l'objectif maintenant serait de pouvoir faire une action de masse pour lancer le plugin indexer ... mais on ne trouve pas la solution
notre plugin utilise "onAfterProductCreate" et "onAfterProductUpdate", j'aimerais lancer ma fonction "indexFile($element)" en action de masse, qui prend donc en paramètre la variable &$element disponible depuis ces évènements qui me permet de récupérer le fichier lié au produit actuel via son id.
est-il possible de récupérer le produit dans l'action de masse et comment faire? j'aimerais utiliser le dispatcher pour appeler la fonction de mon plugin $dispatcher->trigger('indexFile', product);

Merci

Please Log in or Create an account to join the conversation.

  • Posts: 81540
  • Thank you received: 13071
  • MODERATOR
2 years 4 months ago #338093

Bonjour,

Il n'y a pas de mécanisme dans le système d'action de masse qui permette d'appeler onAfterProductUpdate sur les produits existants.

Le plus simple, c'est d'éditer une vue via Display>Views (par exemple product / listing.php pour le backend) et de rajouter ce code au début:

<?php
$db = JFactory::getDBO();
$db->setQuery("SELECT * FROM #__hikashop_product');
$products = $db->loadObjectList();
$productClass = hikashop_get('class.product');
JPluginHelper::importPlugin('hikashop');
$app = JFactory::getApplication();
foreach($products as $p) {
	$app->triggerEvent('onAfterProductUpdate', array( &$p ));
}
?>
Ensuite, il faut afficher la page de la vue (donc le listing des produits du backend) et cela va charger tous les produits et appeler la fonction onAfterProductUpdate de votre plugin.

Please Log in or Create an account to join the conversation.

  • Posts: 178
  • Thank you received: 0
2 years 4 months ago #338108

ok je vais checker ca !
MErci

Please Log in or Create an account to join the conversation.

  • Posts: 178
  • Thank you received: 0
2 years 2 months ago #339089

hello le plugin rox bien mais pour le fait de generer l'indexation de masse j'ai une question
comment on peut récupérer le même objet que l'on obtient dans le &$element dans la méthode onAfterProductUpdate dans une vue, car je n'ai pas la propriété files que j'utilise pour l'indexation des pdf, quand j'utilise $productClass->getProduct($id). j'ai un file_path mais ce n'est pas ce qu'il me faudrait.



merci encore pour l'aide

Attachments:

Please Log in or Create an account to join the conversation.

  • Posts: 81540
  • Thank you received: 13071
  • MODERATOR
2 years 2 months ago #339111

Bonjour,

Au lieu de :

$db = JFactory::getDBO();
$db->setQuery("SELECT * FROM #__hikashop_product');
$products = $db->loadObjectList();
$productClass = hikashop_get('class.product');
JPluginHelper::importPlugin('hikashop');
$app = JFactory::getApplication();

foreach($products as $p) {
 	$product = $productClass->getProduct($p->product_id);
	$app->triggerEvent('onAfterProductUpdate', array( &$product ));
}
vous pouvez faire:
$productClass = hikashop_get('class.product');
JPluginHelper::importPlugin('hikashop');
$app = JFactory::getApplication();
$productClass->getProducts();
foreach($productClass->all_products as $p) {
	$app->triggerEvent('onAfterProductUpdate', array( &$p ));
}
dans $p->files, vous aurez un array d'objets avec les attributs file_path, file_id, file_type, file_name, etc.
Vous aurez plus de données du produit dans $p, avec moins de requêtes que si vous utilisez getProduct dans le foreach.
getProducts, c'est la fonction de que utilisons pour l'export des données des produits don c'est plutôt complet.

Please Log in or Create an account to join the conversation.

  • Posts: 188
  • Thank you received: 7
  • Hikashop Business
2 years 2 months ago #339115

SUper merci

Please Log in or Create an account to join the conversation.

Time to create page: 0.103 seconds
Powered by Kunena Forum