Pb Affichage produits (module) et lien CLICK_HERE_

  • Posts: 33
  • Thank you received: 0
11 years 5 months ago #149001

-- url of the page with the problem -- : 88.191.125.47/anoverdoseoflife/index.php/epices-condiments
-- HikaShop version -- : 2.2.3
-- Joomla version -- : 3.2.3
-- PHP version -- : 5.3.2
-- Browser(s) name and version -- : XXXXX x.x.x
-- Error-message(debug-mod must be tuned on) -- : Error_message

Bonjour.
J'ai deux questions / problèmes.
1- Le fait d'afficher l'option "Out of stock" + le bouton "Me prévenir..." décale tous les blocs produits du module.

2- Je travaille avec un template Yootheme, qui permet de charter chaque page avec un visuel différent, en s'appuyant sur les liens de menus. Sur une page produit avec la charte secondaire, quand je clique sur le bouton "me prévenir", je bascule sur la charte principale. Ca ne m"arrange pas, mais je peux éventuellement faire avec. Par contre, quand je remplis le formulaire et clique sur "revenir à la page produit, là aussi, c'est la charte principale qui est appelée.
Dans la page product.php, je voudrais au minimum modifier l'appel du lien hikashop_completeLink('product&task=show&cid='.$product->product_id.'&name='.$alias.$url_itemid) non plus vers le composant et la fiche produit, mais la page produit d'origine.
Par exemple, l'url de la page serait
/component/hikashop/produit/153-moutarde-au-vin-blanc?Itemid=167
et le lien pointe vers
/component/hikashop/produit/153-moutarde-au-vin-blanc (ne tient pas compte de la charte secondaire)

Merci pour vos lumières !

Last edit: 11 years 5 months ago by glazweb.

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

  • Posts: 12953
  • Thank you received: 1778
11 years 5 months ago #149002

Bonjour,

1. Le problème provient probablement de votre code CSS , il vous faudra donc utiliser du code CSS pour le résoudre.
Me fournir des informations sur la manière dont vous voulez que votre page s'affiche (via des captures d'écran) me serai utile pour mieux comprendre votre problème.

2. Cela fonctionne-t-il en désactivant vos modules de SEF ?

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

  • Posts: 33
  • Thank you received: 0
11 years 5 months ago #149080

Bonjour, et merci pour votre réponse.
Je pensais que le lien suffirait à constater le décalage des blocs produits.
Initialement, je veux 4 blocs par ligne. Ils s'affichent parfaitement si vous cliquez à droite sur une autre gamme de produits.
Mais quand j'active Out of stock + bouton, la hauteur du bloc concerné augmente, et décale tout l'affichage.
Je cherche de mon côté dans le CSS, mais n'ayant pas encore trouvé, je fais appel au forum Hika.

Je ne sais pas si votre remarque sur le SEF concerne le 1er ou le 2ème point.
J'ai désactivé le SEF, mais aucun changement constaté.

Merci.

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

  • Posts: 13201
  • Thank you received: 2322
11 years 5 months ago #149085

Bonjour,

1. Merci d'essayer le css suivant afin de forcer une hauteur minimale:

.hikashop_subcontainer{min-height: 220px !important; }

2. Il faut éditer la vue "product / quantity" et dans la partie hikashop_product_waitlist_main, remplacer:
echo $this->cart->displayButton(JText::_('ADD_ME_WAITLIST'),'add_waitlist',$params,hikashop_completeLink('product&task=waitlist&cid='.$this->row->product_id),'window.location=\''.str_replace("'","\'",hikashop_completeLink('product&task=waitlist&cid='.$this->row->product_id)).'\';return false;');
Par:
echo $this->cart->displayButton(JText::_('ADD_ME_WAITLIST'),'add_waitlist',$params,hikashop_completeLink('product&task=waitlist&cid='.$this->row->product_id.$this->itemid),'window.location=\''.str_replace("'","\'",hikashop_completeLink('product&task=waitlist&cid='.$this->row->product_id.$this->itemid)).'\';return false;');

The following user(s) said Thank You: glazweb

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

  • Posts: 33
  • Thank you received: 0
11 years 5 months ago #149429

Bonjour.
La modification du CSS fonctionne parfaitement ! Merci beaucoup.

Par contre, je ne sais pas si j'ai été confus dans mes explications, mais la seconde modification sur product/quantity.php ne fonctionne que partiellement.

  • Lorsque je clique maintenant sur "Me prévenir" dans le bloc produit, je conserve bien la charte secondaire pour le petit formulaire. Mais quand j'envoie les infos, je rebascule sur la charte principale.
  • Lorsque je clique maintenant sur "Me prévenir" sur la Page produit, je bascule en charte principale.
Et quand je clique soit sur "Revenir à la page du produit", soit sur le lien avec le nom du produit, je reste sur cette charte principale (cf capture jointe).
J'aurais besoin de rebasculer sur la charte secondaire. quand je clique sur n'importe lequel des deux liens, en intégrant dans l'url la variable Itemid, qui doit être celle du menu.

J'ai trouvé, je crois, les fichiers /com_hikashop/controllers/product.php et waitlist.php à modifier. mais mes compétences en php sont basiques.
Au lieu d'avoir ../produit/153-moutarde-au-vin-blanc, je dois avoir /produit/153-moutarde-au-vin-blanc/?Itemid=167

Merci d'avance.

Attachments:

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

  • Posts: 84315
  • Thank you received: 13706
  • MODERATOR
11 years 5 months ago #149468

Bonjour,

Ja peur de ne pas vous suivre. Sur quelle page le lien n'est pas bon (pouvez vous fournir une capture de la page en question et l'URL du lien qui n'est pas comme vous voulez ?) ?

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

  • Posts: 33
  • Thank you received: 0
11 years 5 months ago #149533

Bonjour, et désolé pour la confusion.
Si je clique sur le lien "Me prévenir" dans le bloc Produits (capture01), j'ai la bonne charte secondaire, grâce à votre modif de code. Merci !
Si je clique sur le lien "Me prévenir" de la page produit (capture02), j'ai la mauvaise charte. C'est un point que je voudrais corriger.

Dans les deux cas, quand je remplis le formulaire pour être prévenu, et que je le valide, j'ai la mauvaise charte.
Mais surtout, quand je clique sur un des deux liens (capture03) après envoi de la demande, j'ai la fiche produit avec la mauvaise charte.
J'obtiens ceci (capture04) alors que je voudrais ceci (capture05).
Il manque juste la chaîne ?Itemid=167 pour passer de la mauvaise à la bonne charte, mais je n'arrive pas à modifier le php.
URL des blocs Produits :
88.191.125.47/anoverdoseoflife/index.php/epices-condiments
URL de la bonne charte à obtenir après validation du formulaire :
88.191.125.47/anoverdoseoflife/index.php...vin-blanc?Itemid=167
URL actuellement obtenue après validation :
88.191.125.47/anoverdoseoflife/index.php...outarde-au-vin-blanc

Merci beaucoup pour votre aide sur mon problème.
Cordialement.

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

  • Posts: 13201
  • Thank you received: 2322
11 years 5 months ago #149641

Bonjour,

Nous avons corrigé le soucis de notre côté pour la perte de l'itemid quand on vient de la page produit.
En ce qui concerne le retour de la page de notification vers la page produit, l'itemid est bel et bien présent dans l'url.
Donc fonctionne, avez vous la dernière version des vues concernées ou aviez vous édité les vues ?

Pour corriger le 1er soucis, il faut ajouter le code;

global $Itemid;
$url_itemid = '';
if(!empty($Itemid))
	$url_itemid = '&Itemid='.$Itemid;
En haut de la vue "product / quantity" après le tag php.
Et remplacer:
echo $this->cart->displayButton(JText::_('ADD_ME_WAITLIST'),'add_waitlist',$params,hikashop_completeLink('product&task=waitlist&cid='.$this->row->product_id),'window.location=\''.str_replace("'","\'",hikashop_completeLink('product&task=waitlist&cid='.$this->row->product_id)).'\';return false;');
Par:
echo $this->cart->displayButton(JText::_('ADD_ME_WAITLIST'),'add_waitlist',$params,hikashop_completeLink('product&task=waitlist&cid='.$this->row->product_id.$url_itemid),'window.location=\''.str_replace("'","\'",hikashop_completeLink('product&task=waitlist&cid='.$this->row->product_id.$url_itemid)).'\';return false;');

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

  • Posts: 13201
  • Thank you received: 2322
11 years 5 months ago #149643

Pour être sûr d'avoir l'item id lors du retour sur la page produit, dans le fichier:
components/com_hikashop/controllers/product.php, dans la fonction "add_waitlist()" ilf faut remplacer:

$app->enqueueMessage(JText::sprintf('CLICK_HERE_TO_GO_BACK_TO_PRODUCT',hikashop_completeLink('product&task=show&cid='.$product->product_id.'&name='.$alias)));
Par:
$app->enqueueMessage(JText::sprintf('CLICK_HERE_TO_GO_BACK_TO_PRODUCT',hikashop_completeLink('product&task=show&cid='.$product->product_id.'&name='.$alias.$url_itemid)));
Et ajouter:
		$url_itemid = '';
		if(!empty($itemId))
			$url_itemid = '&Itemid='.$itemId;
Après:
$itemId = JRequest::getVar('Itemid');

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

  • Posts: 33
  • Thank you received: 0
11 years 5 months ago #150340

Bonjour.
Merci pour vos modifications personnalisées, mais elles ne fonctionnent pas pour les liens retours après validation du formulaire.

J'ai effectivement la version Business 2.0.0, de mars 2013, achetée pour un client qui avait changé d'avis ensuite. Je ne pensais pas que les vues avient autant évolué depuis.
Je pense que le plus simple, pour arrêter de vous casser les pieds et pour aller plus vite, est d'acheter la 2.3.0. Je n'ai pas fait de grosses modifs sur les fichiers originaux.
Pensez-vous vous que ces fameux liens-retours seront plus dociles avec la dernière version ?

Merci

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

  • Posts: 12953
  • Thank you received: 1778
11 years 5 months ago #150346

Bonjour,
L'avantage d'avoir une version d'Hikashop à jour est aussi d'avoir une version plus stable donc cela vous sera utile :).

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

  • Posts: 33
  • Thank you received: 0
11 years 5 months ago #150499

J'ai la dernière version, mais les modifs sont inopérantes.
Un hack a eu raison de mon problème. C'est emm... pour les MàJ futures, mais je me doute que c'est compliqué pour vous de jongler avec les paramètres de menus pour appeler différentes chartes.

Suite à la MàJ, la fenêtre d'édition du CSS est beaucoup plus petite :( (cf pièce jointe)

Quoi qu'il en soit, merci pour toute l'aide apportée !

Attachments:

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

  • Posts: 26275
  • Thank you received: 4046
  • MODERATOR
11 years 5 months ago #150641

Bonjour,

De quel hack parlez vous exactement ?
Suivant le type de modification, nous pouvons voir pour l'ajouter dans HikaShop, cela pourrait peut-être intéresser d'autres personnes.

Au niveau de la fenêtre de CSS, merci de votre retour ; nous allons regarder cela avec d'autres navigateurs.
Logiquement l'éditeur "CodeMirror" devrait être utilisé et non pas de textarea classique, c'est peut être cela qui joue.
Quoi qu'il en soit, nous allons nous y penchez dessus.

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.

  • Posts: 33
  • Thank you received: 0
11 years 5 months ago #150680

Bonjour.
Voilà le code de l'affichage product/quantity :

<?php
/**
 * @package  HikaShop for Joomla!
 * @version  2.0.0
 * @author  hikashop.com
 * @copyright  (C) 2010-2012 HIKARI SOFTWARE. All rights reserved.
 * @license  GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */

defined('_JEXEC') or die('Restricted access');
?>
<?php
global $Itemid;


$url_itemid = '';
if(!empty($this->itemid))
  $url_itemid = '&Itemid='.$this->itemid;
elseif(!empty($Itemid))
  $url_itemid = '&Itemid='.$Itemid;


      if(!isset($this->cart)) $this->cart = hikashop_get('helper.cart');
      if(!empty($this->row->has_options)){
        echo $this->cart->displayButton(JText::_('CHOOSE_OPTIONS'),'choose_options',$this->params,hikashop_completeLink('product&task=show&product_id='.$this->row->product_id.'&name='.$this->row->alias.$this->itemid.$this->category_pathway),'window.location = \''.str_replace("'","\'",hikashop_completeLink('product&task=show&product_id='.$this->row->product_id.'&name='.$this->row->alias.$this->itemid.$this->category_pathway)).'\';return false;','');
      }else{
        $config =& hikashop_config();
        $this->cart = hikashop_get('helper.cart');
        $url = '';
        if(empty($this->ajax)){
          $this->ajax = 'return hikashopModifyQuantity(\''.$this->row->product_id.'\',field,1,0,\'cart\')';
        }
        if(@$this->row->product_sale_start || empty($this->element->main)){
          $start_date = @$this->row->product_sale_start;
        }else{
          $start_date = $this->element->main->product_sale_start;
        }
        if(@$this->row->product_sale_end || empty($this->element->main)){
          $end_date = @$this->row->product_sale_end;
        }else{
          $end_date = $this->element->main->product_sale_end;
        }

        if($end_date && $end_date<time()){
          ?>
          <span class="hikashop_product_sale_end">
            <?php echo JText::_('ITEM_NOT_SOLD_ANYMORE'); ?>
          </span>
          <?php
        }elseif($start_date && $start_date>time()){
          ?>
          <span class="hikashop_product_sale_start">
            <?php
            echo JText::sprintf('ITEM_SOLD_ON_DATE',hikashop_getDate($start_date,$this->params->get('date_format','%d %B %Y')));
            ?>
          </span>
          <?php
        }elseif(!$this->params->get('catalogue') && ($this->config->get('display_add_to_cart_for_free_products') || !empty($this->row->prices))){
          if(@$this->row->product_min_per_order || empty($this->element->main)){
            $min = @$this->row->product_min_per_order;
          }else{
            $min = @$this->element->main->product_min_per_order;
          }
          if(@$this->row->product_max_per_order || empty($this->element->main)){
            $max = @$this->row->product_max_per_order;
          }else{
            $max = @$this->element->main->product_max_per_order;
          }
          if($min<=0){
            $min=1;
          }
          $formName = ',0';

          if (!$this->config->get('ajax_add_to_cart', 0) || ($this->config->get('show_quantity_field')>=2 && !@$this->element->product_id)) {
            if(empty($this->formName)) {
              if(@$this->row->product_id)
                $formName = ',\'hikashop_product_form_'.$this->row->product_id.'_'.$this->params->get('main_div_name').'\'';
              else
                $formName = ',\'hikashop_product_form_'.$this->params->get('main_div_name').'\'';
            } else {
              $formName = $this->formName;
            }
          }
          $wishlistAjax =  'if(hikashopCheckChangeForm(\'item\''.$formName.')){ return hikashopModifyQuantity(\'' . (int)@$this->row->product_id . '\',field,1' . $formName . ',\'wishlist\'); } else { return false; }';

          if($this->row->product_quantity == -1 && !empty($this->element->main) && $this->element->main->product_quantity != -1){
            $this->row->product_quantity = $this->element->main->product_quantity;
          }
          $btnType = 'add';
          if($this->row->product_quantity==-1){
          ?>
          <div class="hikashop_product_stock">
          <?php
            if($this->params->get('add_to_cart',1)){
              echo $this->cart->displayButton(JText::_('ADD_TO_CART'),'add',$this->params,$url,$this->ajax,'',$max,$min);
              $btnType = 'wish';
            }
            if($this->params->get('add_to_wishlist') && $config->get('enable_wishlist', 1)){
              echo '<div id="hikashop_add_wishlist">';
                echo $this->cart->displayButton(JText::_('ADD_TO_WISHLIST'),$btnType,$this->params,$url,$wishlistAjax,'',$max,$min,'',false);
              echo '</div>';
            }
          }elseif($this->row->product_quantity>0){
          ?>
          <div class="hikashop_product_stock">
          <?php
            echo '<span class="hikashop_product_stock_count">'.JText::sprintf('X_ITEMS_IN_STOCK',$this->row->product_quantity).'</span><br/>';
            if($config->get('button_style','normal')=='css'){
              echo '<br />';
            }
            if($max<=0 || $max>$this->row->product_quantity) $max = $this->row->product_quantity;
            if($this->params->get('add_to_cart',1)){
              echo $this->cart->displayButton(JText::_('ADD_TO_CART'),'add',$this->params,$url,$this->ajax,'',$max,$min);
              $btnType = 'wish';
            }
            if($this->params->get('add_to_wishlist')  && $config->get('enable_wishlist', 1)){
              echo '<div id="hikashop_add_wishlist">';
                echo $this->cart->displayButton(JText::_('ADD_TO_WISHLIST'),$btnType,$this->params,$url,$wishlistAjax,'',$max,$min,'',false);
              echo '</div>';
            }
          }else{
            ?>
          <div class="hikashop_product_no_stock">
          <?php
            echo JText::_('NO_STOCK');
            $waitlist = $this->config->get('product_waitlist',0);
            if(hikashop_level(1) && ($waitlist==2 || ($waitlist==1 && (!empty($this->element->main->product_waitlist) || !empty($this->element->product_waitlist))))){ ?>
              </div><div id="hikashop_product_waitlist_main" class="hikashop_product_waitlist_main">
              <?php
              $empty='';
              jimport('joomla.html.parameter');
              $params = new HikaParameter($empty);
            /* MODIF */
            echo $this->cart->displayButton(JText::_('ADD_ME_WAITLIST'),'add_waitlist',$params,hikashop_completeLink('product&task=waitlist&cid='.$this->row->product_id.$url_itemid),'window.location=\''.str_replace("'","\'",hikashop_completeLink('product&task=waitlist&cid='.$this->row->product_id.$url_itemid)).'\';return false;');


            }
            if($this->params->get('add_to_wishlist')  && $config->get('enable_wishlist', 1)){
              echo '<div id="hikashop_add_wishlist">';
                echo $this->cart->displayButton(JText::_('ADD_TO_WISHLIST'),'add',$this->params,$url,$wishlistAjax,'',@$this->row->product_max_per_order,1,'',false);
              echo '</div>';
            }
          }?>
          </div>
        <?php
        }
      }
        ?>

En pj, le fichier component/com_hikashop/controllers/product.php

Je serais content que vous puissiez l'intégrer, pour faire évoluer Hika. Ce serait un juste retour des choses que je fasse avancer votre magnifique composant.

Attachments:

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

Time to create page: 0.106 seconds
Powered by Kunena Forum