Effacer images reliées aux catégories/produits

  • Posts: 465
  • Thank you received: 18
  • Hikashop Business
8 years 2 months ago #250576

-- HikaShop version -- : 2.6.3
-- Joomla version -- : 3.6.2
-- PHP version -- : 7.0.11

Bonjour,
nous allons effectuer une grosse réorganisation da notre boutique, beaucoup de catégories et d’articles vont disparaître définitivement. Outre le travail de redirection à effectuer, quelle est la meilleure démarche pour effacer définitivement les images de la base de données et chez notre hébergeur?
J’ai essayé de voir les options qu’offrent “les actions en masse”, mais je ne trouve pas vraiment le filtre qui pourrait convenir.

Merci de m’éclaircir à ce sujet. :)

Last edit: 8 years 2 months ago by kilou.

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

  • Posts: 846
  • Thank you received: 92
8 years 2 months ago #250596

bonjour
Ce qui est sur est que la base de donnée ne contient que des liens vers les images et pas les images ( base64 ou autre codec).
Les liens vers les images sont insérer dans le back end depuis la page des produits donc normalement elle se trouvent dans la table associé .
Un upload de l image biere1.png montre sa localisation <img src="../images/com_hikashop/upload/thumbnails/100x100/biere1_19465.png" alt="biere1.png"> donc image 299x284 devient 100x94 . Donc pas vraiment un upload mais aussi une convertion !!

en backend on a pour editer l image le lien Administrator/index.php?option=com_hikashop&ctrl=product&task=selectimage&cid=17&pid=10&tmpl=component
Les valeurs cid=17 et pid=10 correspond au colonnes file_id et file_ref_id de la table *_hikashop_file



Ce fichier image provient de l'interface Gui backend product donc la table *_hikashop_product
on voit que le pid =*_hikashop_file.file_ref_id = *_hikashop_product.product.is



Maintenant au niveau haut niveau hikashop doit proposer des outils plus simple utilisant ces champs .
Et je ne vois rien au niveau de mass_action



A) la logique si elle est exacte ( prise ne compte d'une seule image par produit) est qu'il faut agir au niveau des 2 tables
*_hikashop_product => ajouter une colonne remove et mettre à 1 tous les product_id a supprimer
*_hikashop_file => supprimer toutes les lignes ou file_ref_id=product_id en utilisant une requête SQL
croisé entre les 2 tables .



B ) précaution avant de faire la suite
-faites un backup des 2 tables au cas ou
-changer mon prefix ici josthe par celui utilisé dans votre base de donnée
-il y a peut être pas un seul critère à prendre en compte ( d 'autres critères ?) ..... LA personne chez hikashop à l'origine de la construction des tables et des interdépendances ( intégrité) doit pouvoir vous dire cela .....

C) pour les fichiers locaux images il suffit d utiliser un script ( python , php, powershell) avec une requête SQL qui sélectionne le nom des fichiers images présent dans la base de données et delete ces fichiers dans le répertoire . ce script est a lancé avant le précédent car utilise la colonne temporaire remove=1.

SELECT josthe_hikashop_product.product_id, josthe_hikashop_file.file_ref_id, josthe_hikashop_file.file_path
FROM josthe_hikashop_product
INNER JOIN josthe_hikashop_file ON josthe_hikashop_product.product_id = josthe_hikashop_file.file_ref_id
WHERE (josthe_hikashop_product.remove)='1'


D ) on enlève la ligne contenant un lien vers les images
DELETE josthe_hikashop_product, josthe_hikashop_file
FROM josthe_hikashop_product
INNER JOIN josthe_hikashop_file ON josthe_hikashop_product.product_id = josthe_hikashop_file.file_ref_id
WHERE (josthe_hikashop_product.remove)='1'


Cordialement

Attachments:
Last edit: 8 years 2 months ago by lionel75.
The following user(s) said Thank You: kilou

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

  • Posts: 465
  • Thank you received: 18
  • Hikashop Business
8 years 2 months ago #250601

Bonjour et merci pour l’intérêt à mon problème.
Ça me semble bien laborieux pour une simple élimination d’une catégorie… étrange qu’il n’y ait pas une action toute faite pour ce genre d’opération :blink:

L’idéal serait: on élimine une catégorie (ou tout simplement un article) et tout ce qui se réfère à cette catégorie (ou à cet article), c'est-à-dire images et textes associés seraient effacés dans les dossiers et sous-dossiers chez l’hébergeur.
Idem pour la base de données, après élimination d’une catégorie ou d’un article toute référence à cet élément serait nettoyée dans la base de données… mais bon là je rêve… ? :side:

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

  • Posts: 846
  • Thank you received: 92
8 years 2 months ago #250602

Bonjour
Non vous ne révez pas ....tout est possible avec le code php ( voir hikashop :) )
Le titre de votre question ne correspond pas au contenu de votre question . Votre question ne parle pas de catégorie et donc je répond exactement au contenu de votre question qui il est vrai doit être précisée ( elle l'était dans le titre ) .
Votre titre est Effacer des images reliées aux catégories/articles . Le titre du post est hors sujet car les produits dans hikashop qui possèdent des images ne sont pas des articles . En effet les catégories d'un article joomla n 'a pas de relatio navec les catégories d'un produit hikashop . Me contredire si j 'affirme cela !

Je décris ici la logique de mon raisonnement dans le contexte hikashop ( on est sur un forum hikashop pas sur un forum joomla ) mais bon vous souhaitez le résultat ( SQL +php ) .
Sinon écrire un script php et 2 requête SQL ( code ici ) n'est pas trop difficile , un peu plus si vous l'intégrez à hikashop mass action . Je pense que mon raisonnement doit pouvoir s intégrer à un code php ( mass action = php ) . J'attends comme vous la réponse de hikashop sur ce sujet ..........mais la réponse devrait être simple mass action n 'est fait que pour fonctionner avec les produits hikashop et les categories de produit d hikashop ......pas les articles joomla et les categories d'article joomla !!!

La documentation hikashop couvre le sujet sur comment créer une instance de mass action en utilisant le backend joomla ( de façon graphique , clic o drome ) et il doit exister une documentation sur l API php pour ajouter d'autre action a mass action en codant même si je pense que la partie du forum appelée mass action est faite pour ça . En effet après recherche un post aborde le sujet et la réponse ( php API mass action) est la ! Il suffit d ajouter de nouvelles options ( php code) appelées template dans la documentation d'hikashop au niveau des différentes étapes de mass action gui : triggers, filters , actions. ...bonne lecture ( programmation)




cordialement

Attachments:
Last edit: 8 years 2 months ago by lionel75.

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

  • Posts: 465
  • Thank you received: 18
  • Hikashop Business
8 years 2 months ago #250603

oui en effet j’ai mal formulé ma question que je viens de rectifier.
La démarche que vous avez transcrite dans votre réponse m’intéresse aussi, mais le php n’étant pas ma tasse de té j’attends un deuxième avis d’Hikashop sur ce sujet.

merci ;)

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

  • Posts: 846
  • Thank you received: 92
8 years 2 months ago #250604

vous voulez dire SQL et php et joomla php API et hikashop php API ne sont pas votre tasse de thé ?
Il y a 2 concepts pour php : langage et API . Pour SQL je distingue 3 concepts le SQL textuel , raster , geometry .
Sinon pour category il faut utiliser la table *_hikashop_category ou hikashop ajouter le concept de hiéarchie de catégorie indépendant de la hiéarchie de catégorie de joomla article ( ARghh h !!!!!!! ) . il faut donc savoir si en sélectionant un catégorie enfant on détruit aussi les catégories parents !!! J'ai observé le code joomla ( provenant de hikashop ) qui il me semble permet facilement de gérer des tables ayant des colonnes identiques .

Last edit: 8 years 2 months ago by lionel75.

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

  • Posts: 465
  • Thank you received: 18
  • Hikashop Business
8 years 2 months ago #250606

oui, je ne suis pas trop à l'aise avec ces langages.
Je vais de toute façon bien lire la documentation d'Hikashop.

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

  • Posts: 26159
  • Thank you received: 4028
  • MODERATOR
8 years 2 months ago #250610

Bonjour,

@lionel75 - Merci de votre aide ; malheureusement vous êtes parti un peu trop loin pour quelque chose de très simple.
Afin que l'équipe de support puisse faire son travail correctement ; merci d'arrêter de modifier sans cesse vos propre messages. Cela a des effets de bord désagréables avec notre système de ticket et vont avoir une tendance à grandement retarder le traitement du message.

@kilou - HikaShop supprime automatiquement les images qui ne sont plus du tout utilisées lors de la suppression d'un produit (et logiquement d'une catégorie également).
Si un produit est le seul (ou dernier) à utiliser une image et que vous supprimez ce produit, l'image sera également supprimée.

Pour ce qui est des miniatures, vous pouvez simplement supprimer les répertoires une fois le ménage terminé et vous aurez une petite session de re-génération de miniatures.

Cordialement,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.
The following user(s) said Thank You: kilou

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

  • Posts: 465
  • Thank you received: 18
  • Hikashop Business
8 years 2 months ago #250659

Bonjour,
... merci, c'est exactement ce que je voulais m'entendre dire :)

Edit: Avec cette manœuvre qu'on ne peut plus simple, est-ce que la base de données est elle aussi nettoyée?

Last edit: 8 years 2 months ago by kilou.

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

  • Posts: 82906
  • Thank you received: 13378
  • MODERATOR
8 years 2 months ago #250669

Bonjour,

Oui, pas de soucis.

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

  • Posts: 846
  • Thank you received: 92
8 years 2 months ago #250687

@nicolas ,
je me doutais bien que j'étais trop bas niveau ( ou a coté de la plaque ...) .Mais bon , ce que vous écrivez est t il dans la documentation hikashop ?

cordialement

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

  • Posts: 26159
  • Thank you received: 4028
  • MODERATOR
8 years 2 months ago #250725

Bonjour,

S'il y avait une page documentation expliquant exactement ce processus, vous pouvez être certain que Nicolas aurait fournit un lien.

Cordialement,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

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

Time to create page: 0.113 seconds
Powered by Kunena Forum