- Posts: 211
- Thank you received: 9
Affichage en front-end d'un produit non publié
6 years 1 month ago #322848
by NosyWeb
Affichage en front-end d'un produit non publié was created by NosyWeb
-- url of the page with the problem -- :
nwd2.cloudaccess.host/produits-comtois
-- HikaShop version -- : 4.3.0
-- Joomla version -- : 3.9.20
Bonjour,
Avant de publier sur le site un nouveau produit, est-il possible de l'afficher pour validation avant publication.
J'ai essayé d'afficher un produit non publié, en me connectant an tant que super admin, sans succès.
Cette demande est assez importante car nous développons un process qui se déclenche dès la publication d'un produit.
Merci d'avance.
Salutations.
-- HikaShop version -- : 4.3.0
-- Joomla version -- : 3.9.20
Bonjour,
Avant de publier sur le site un nouveau produit, est-il possible de l'afficher pour validation avant publication.
J'ai essayé d'afficher un produit non publié, en me connectant an tant que super admin, sans succès.
Cette demande est assez importante car nous développons un process qui se déclenche dès la publication d'un produit.
Merci d'avance.
Salutations.
Please Log in or Create an account to join the conversation.
6 years 1 month ago #322861
by nicolas
Replied by nicolas on topic Affichage en front-end d'un produit non publié
Bonjour,
Il n'y a pas d'option pour cela. L'affichage d'un produit non publié est complètement bloqué sur le frontend.
Pour changer cela, il faudrait changer le code:
en:
dans le fichier components/com_hikashop/views/product/view.html.php sachant qu'il faut définir $is_admin à true ou false en fonction de la situation (genre en vérifiant les groupes utilisateur de l'utilisateur en cours).
Il n'y a pas d'option pour cela. L'affichage d'un produit non publié est complètement bloqué sur le frontend.
Pour changer cela, il faudrait changer le code:
Code:
$filters = array(
'pr.product_id = ' . $product_id,
'pr.product_related_type = ' . $database->Quote('options'),
'p.product_published = 1',
'(p.product_sale_start = \'\' OR p.product_sale_start <= '.time().')',
'(p.product_sale_end = \'\' OR p.product_sale_end > '.time().')'
);
Code:
$filters = array(
'pr.product_id = ' . $product_id,
'pr.product_related_type = ' . $database->Quote('options'),
'(p.product_sale_start = \'\' OR p.product_sale_start <= '.time().')',
'(p.product_sale_end = \'\' OR p.product_sale_end > '.time().')'
);
if(!$is_admin) $filters[] = 'p.product_published = 1';
The following user(s) said Thank You: NosyWeb
Please Log in or Create an account to join the conversation.
6 years 1 month ago #322868
by NosyWeb
Replied by NosyWeb on topic Affichage en front-end d'un produit non publié
Merci Nicolas, je transmets à notre développeur.
Bonne journée.
Bonne journée.
The following user(s) said Thank You: Philip
Please Log in or Create an account to join the conversation.
6 years 1 month ago - 6 years 1 month ago #322976
by NosyWeb
Replied by NosyWeb on topic Affichage en front-end d'un produit non publié
Bonjour Nicolas,
(c'est Marc)
J'ai tenté d'appliquer la soluce ci-dessus, mais ca ne semble pas avoir d'effet !?
Dans notre cas, nous avons besoin qu'un admin puisse voir en front tous ses produits (même si dépubliés)
1- dans la liste des produits d'une categorie
2- et aussi dans le detail de la fiche produit
Pour le point 1, j'ai une solution en ajoutant un plugin sur l'event de la view product :
$app->triggerEvent( 'onBeforeProductListingLoad', array( & $filters, & $order, & $view, & $select, & $select2, & $a, & $b, & $on) );
et en modifiant le $filters dans le plugin (puisque passé par référence).
Pour le point 2, la solution proposée ne semble pas marcher.
Il semble que Hikashop renvoie vers la page 404, avant d'accéder à la view, comme si un controle Hikashop detectait que le produit est dépublié et donc pas accessible !?
- as-tu une suggestion pour pour m'aider a trouver le code qui effectue cette redirection 404 ?
Merci d'avance.
(c'est Marc)
J'ai tenté d'appliquer la soluce ci-dessus, mais ca ne semble pas avoir d'effet !?
Dans notre cas, nous avons besoin qu'un admin puisse voir en front tous ses produits (même si dépubliés)
1- dans la liste des produits d'une categorie
2- et aussi dans le detail de la fiche produit
Pour le point 1, j'ai une solution en ajoutant un plugin sur l'event de la view product :
$app->triggerEvent( 'onBeforeProductListingLoad', array( & $filters, & $order, & $view, & $select, & $select2, & $a, & $b, & $on) );
et en modifiant le $filters dans le plugin (puisque passé par référence).
Pour le point 2, la solution proposée ne semble pas marcher.
Il semble que Hikashop renvoie vers la page 404, avant d'accéder à la view, comme si un controle Hikashop detectait que le produit est dépublié et donc pas accessible !?
- as-tu une suggestion pour pour m'aider a trouver le code qui effectue cette redirection 404 ?
Merci d'avance.
Last edit: 6 years 1 month ago by NosyWeb.
Please Log in or Create an account to join the conversation.
6 years 1 month ago #322983
by nicolas
Replied by nicolas on topic Affichage en front-end d'un produit non publié
Bonjour,
Le soucis n'est pas la redirection 404.
Elle est effectuée par le code:
dans product / show.php car les données du produit demandé n'ont pas pu être chargées dans le view.html.php
Donc à mon avis, le soucis c'est que la valeur de $is_admin dans mon exemple de code à modifier n'a pas été initialisée correctement auparavant.
Le soucis n'est pas la redirection 404.
Elle est effectuée par le code:
Code:
if(empty($this->element)) {
if($this->config->get('404_when_product_not_found',1)){
throw new Exception(JText::_('PRODUCT_NOT_FOUND'), 404);
echo '</div>';
return;
}
$app->enqueueMessage(JText::_('PRODUCT_NOT_FOUND'));
hikashop_setPageTitle(JText::_('PRODUCT_NOT_FOUND'));
echo '</div>';
return;
}
Donc à mon avis, le soucis c'est que la valeur de $is_admin dans mon exemple de code à modifier n'a pas été initialisée correctement auparavant.
Please Log in or Create an account to join the conversation.
Time to create page: 0.219 seconds