- Posts: 694
- Thank you received: 34
Effacer images reliées aux catégories/produits
10 years 1 week ago - 10 years 1 week ago #250576
by kilou
Effacer images reliées aux catégories/produits was created by kilou
-- 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.
-- 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: 10 years 1 week ago by kilou.
Please Log in or Create an account to join the conversation.
10 years 1 week ago - 10 years 1 week ago #250596
by lionel75
Replied by lionel75 on topic Effacer définitivement les images
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
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
Attachment not found
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
Attachment not found
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
Attachment not found
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 .
Attachment not found
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
Last edit: 10 years 1 week ago by lionel75.
The following user(s) said Thank You: kilou
Please Log in or Create an account to join the conversation.
10 years 1 week ago #250601
by kilou
Replied by kilou on topic Effacer définitivement les images
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:
Ç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.
10 years 1 week ago - 10 years 1 week ago #250602
by lionel75
Replied by lionel75 on topic Effacer définitivement les images
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
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)
Attachment not found
cordialement
Last edit: 10 years 1 week ago by lionel75.
Please Log in or Create an account to join the conversation.
10 years 1 week ago #250603
by kilou
Replied by kilou on topic Effacer définitivement les images
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
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.
10 years 1 week ago - 10 years 1 week ago #250604
by lionel75
Replied by lionel75 on topic Effacer définitivement les images
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 .
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: 10 years 1 week ago by lionel75.
Please Log in or Create an account to join the conversation.
10 years 1 week ago #250606
by kilou
Replied by kilou on topic Effacer définitivement les images
oui, je ne suis pas trop à l'aise avec ces langages.
Je vais de toute façon bien lire la documentation d'Hikashop.
Je vais de toute façon bien lire la documentation d'Hikashop.
Please Log in or Create an account to join the conversation.
10 years 1 week ago #250610
by Jerome
Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.
Replied by Jerome on topic Effacer définitivement les images
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,
@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.
The following user(s) said Thank You: kilou
Please Log in or Create an account to join the conversation.
10 years 1 week ago - 10 years 1 week ago #250659
by kilou
Replied by kilou on topic Effacer définitivement les images
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?
... 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: 10 years 1 week ago by kilou.
Please Log in or Create an account to join the conversation.
10 years 1 week ago #250669
by nicolas
Replied by nicolas on topic Effacer définitivement les images
Bonjour,
Oui, pas de soucis.
Oui, pas de soucis.
Please Log in or Create an account to join the conversation.
10 years 1 week ago #250687
by lionel75
Replied by lionel75 on topic Effacer définitivement les images
@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
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.
10 years 1 week ago #250725
by Jerome
Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.
Replied by Jerome on topic Effacer définitivement les images
Bonjour,
S'il y avait une page documentation expliquant exactement ce processus, vous pouvez être certain que Nicolas aurait fournit un lien.
Cordialement,
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.
Please Log in or Create an account to join the conversation.
Time to create page: 0.231 seconds