En visitant ce site, vous acceptez l'utilisation de cookies afin de vous proposer les meilleurs services possibles.

    [Résolu] Modifier le lien des images en categories pour ouvrir en popup et non la page détails produits

    Plus d'informations
    il y a 11 ans 7 mois #1 par netajour
    Bonjour à tous,

    J'essaie sans succès de modifier le lien image (thumb) qui est affiché en liste par catégorie. Par défaut Virtuemart 3 fait un lien sur les images qui envoie sur la page produit.
    Je voudrais que ce lien ouvre plutot l'image en grand avec la fancy box.
    J'ai tenté de reprendre le codes de la page produits mais si j'arrive à faire le lien vers l'iumage en grand, elle s'ouvre sur une nouvelle page du navigateur et pas en pop-up.
    J'ai bien collé le code de Facy et l'appel en JHTML mais sans succès.

    Merci de votre aide.

    Connexion ou Créer un compte pour participer à la conversation.

    • studio42
    • Portrait de studio42
    • Hors Ligne
    • Modérateur
    • Modérateur
    • Dev Joomla & Virtuemart
    Plus d'informations
    il y a 11 ans 7 mois #2 par studio42
    Bonjour,
    Merci d'indiquer le lien vers une des pages de catégorie avec le code modifier, ce sera plus simple.

    Cordialement
    Patrick K.

    www.st42.fr Truc et astuce Joomla et virtuemart
    shop.st42.fr téléchargement Joomla et extension pour virtuemart
    Gratuit ! Nettoyage des medias : shop.st42.fr/fr/produits/virtuemart-netoyage-des-medias.htm Nouveau!

    Connexion ou Créer un compte pour participer à la conversation.

    Plus d'informations
    il y a 11 ans 7 mois #3 par netajour
    Bonjour et merci de votre réponse

    Cela concerne toutes les catégories comme celle ci : www.zaomakeup.com/dev/revendeurs/acces-m.../bambou/bambou-teint

    J3 & VM3 pour les versions

    Les codes :
    Page product : /components/com_virtuemart/sublayouts/products.php
    <?php
    /**
     * sublayout products
     *
     * @package	VirtueMart
     * @author Max Milbers
     * @link http://www.virtuemart.net
     * @copyright Copyright (c) 2014 VirtueMart Team. All rights reserved.
     * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL2, see LICENSE.php
     * @version $Id: cart.php 7682 2014-02-26 17:07:20Z Milbo $
     */
    
    defined('_JEXEC') or die('Restricted access');
    
    $products_per_row = $viewData['products_per_row'];
    $currency = $viewData['currency'];
    $showRating = $viewData['showRating'];
    $verticalseparator = " vertical-separator";
    echo shopFunctionsF::renderVmSubLayout('askrecomjs');
    
    $ItemidStr = '';
    $Itemid = shopFunctionsF::getLastVisitedItemId();
    if(!empty($Itemid)){
    	$ItemidStr = '&Itemid='.$Itemid;
    }
    
    foreach ($viewData['products'] as $type => $products ) {
    
    	$rowsHeight = shopFunctionsF::calculateProductRowsHeights($products,$currency,$products_per_row);
    
    	if(!empty($type) and count($products)>0){
    		$productTitle = vmText::_('COM_VIRTUEMART_'.strtoupper($type).'_PRODUCT'); ?>
    
    <div class="<?php echo $type ?>-view">
      <h4><?php echo $productTitle ?></h4>
    		<?php // Start the Output
        }
    
    	// Calculating Products Per Row
    	$cellwidth = ' width'.floor ( 100 / $products_per_row );
    
    	$BrowseTotalProducts = count($products);
    
    	$col = 1;
    	$nb = 1;
    	$row = 1;
    
    	foreach ( $products as $product ) {
    
    		// Show the horizontal seperator
    		if ($col == 1 && $nb > $products_per_row) { ?>
    	<div class="horizontal-separator"></div>
    		<?php }
    
    		// this is an indicator wether a row needs to be opened or not
    		if ($col == 1) { ?>
    	<div class="row">
    		<?php }
    
    		// Show the vertical seperator
    		if ($nb == $products_per_row or $nb % $products_per_row == 0) {
    			$show_vertical_separator = ' ';
    		} else {
    			$show_vertical_separator = $verticalseparator;
    		}
    
        // Show Products ?>
    	<div class="product vm-col<?php echo ' vm-col-' . $products_per_row . $show_vertical_separator ?>">
    		<div class="spacer">
    			<div class="vm-product-media-container">
    
    					<a title="<?php echo $product->product_name ?>" href="<?php echo $product->link.$ItemidStr; ?>"></a>
    						<?php /** @todo make image popup */
    					vmJsApi::addJScript('imagepopup',$imageJS);
    					echo $product->images[0]->displayMediaThumb ('class="imagepopup" border="0" title="' . $product->product_name . '" ', TRUE, 'class="imagepopup"');
    					?>
    					
    
    			</div>
    
    			<div class="vm-product-rating-container">
    				<?php echo shopFunctionsF::renderVmSubLayout('rating',array('showRating'=>$showRating, 'product'=>$product));
    				if ( VmConfig::get ('display_stock', 1)) { ?>
    					<span class="vmicon vm2-<?php echo $product->stock->stock_level ?>" title="<?php echo $product->stock->stock_tip ?>"></span>
    				<?php }
    				echo shopFunctionsF::renderVmSubLayout('stockhandle',array('product'=>$product));
    				?>
    			</div>
    
    
    				<div class="vm-product-descr-container-<?php echo $rowsHeight[$row]['product_s_desc'] ?>">
    					<h2><?php echo JHtml::link ($product->link.$ItemidStr, $product->product_name); ?></h2>
    					<?php if(!empty($rowsHeight[$row]['product_s_desc'])){
    					?>
    					<p class="product_s_desc">
    						<?php // Product Short Description
    						if (!empty($product->product_s_desc)) {
    							echo shopFunctionsF::limitStringByWord ($product->product_s_desc, 60, ' ...') ?>
    						<?php } ?>
    					</p>
    			<?php  } ?>
    				</div>
    
    
    			<?php //echo $rowsHeight[$row]['price'] ?>
    			<div class="vm3pr-<?php echo $rowsHeight[$row]['price'] ?>"> <?php
    				echo shopFunctionsF::renderVmSubLayout('prices',array('product'=>$product,'currency'=>$currency)); ?><br\>
    				<div class="clear"></div>
    
    			</div>
    			<?php //echo $rowsHeight[$row]['customs'] ?>
    			<div class="vm3pr-<?php echo $rowsHeight[$row]['customfields'] ?>"> <?php
    				echo shopFunctionsF::renderVmSubLayout('addtocart',array('product'=>$product,'rowHeights'=>$rowsHeight[$row])); ?>
    			</div>
    
    
    
    		</div>
    	</div>
    
    	<?php
        $nb ++;
    
          // Do we need to close the current row now?
          if ($col == $products_per_row || $nb>$BrowseTotalProducts) { ?>
        <div class="clear"></div>
      </div>
          <?php
          	$col = 1;
    		$row++;
        } else {
          $col ++;
        }
      }
    
          if(!empty($type)and count($products)>0){
            // Do we need a final closing row tag?
            //if ($col != 1) {
          ?>
        <div class="clear"></div>
      </div>
        <?php
        // }
        }
      }

    Pour moi Fancy est chargé car le bouton add to cart avec le Fancy de VM est ok.

    Merci
    Rodolphe

    Connexion ou Créer un compte pour participer à la conversation.

    • studio42
    • Portrait de studio42
    • Hors Ligne
    • Modérateur
    • Modérateur
    • Dev Joomla & Virtuemart
    Plus d'informations
    il y a 11 ans 7 mois - il y a 11 ans 7 mois #4 par studio42
    recherchez
    	jQuery(document).ready(function($) {
    		
    			$('a.ask-a-question, a.printModal, a.recommened-to-friend, a.manuModal').click(function(event){
                  event.preventDefault();
    		      $.fancybox({
    		        href: $(this).attr('href'),
    		        type: 'iframe',
    		        height: 550
    		        });
    		      });
    			
    	});
    remplacez par
    	jQuery(document).ready(function($) {
    		
    			$('a.ask-a-question, a.printModal, a.recommened-to-friend, a.manuModal, a.imagepopup').click(function(event){
                  event.preventDefault();
    		      $.fancybox({
    		        href: $(this).attr('href'),
    		        type: 'iframe',
    		        height: 550
    		        });
    		      });
    			
    	});

    la difference est a.imagepopup dans les lien à rendre en modal

    www.st42.fr Truc et astuce Joomla et virtuemart
    shop.st42.fr téléchargement Joomla et extension pour virtuemart
    Gratuit ! Nettoyage des medias : shop.st42.fr/fr/produits/virtuemart-netoyage-des-medias.htm Nouveau!
    Dernière édition: il y a 11 ans 7 mois par studio42.

    Connexion ou Créer un compte pour participer à la conversation.

    Plus d'informations
    il y a 11 ans 7 mois #5 par netajour
    C'était bien ca merci !
    A un détail prêt (je suis pénible :-)
    Comme j'essaie d'obtenir la même chose en affichage catégorie qu'en affichage détail produit.
    Seule différence subsistante : le redimensionnement de l'image dans le pop-up qui marche sur la page détail et pas en catégorie.
    Je continue de chercher et viendrait donner la soluce complète.
    Mais si vous avez une idée je suis preneur

    En tout cas MERCI !

    Connexion ou Créer un compte pour participer à la conversation.

    • studio42
    • Portrait de studio42
    • Hors Ligne
    • Modérateur
    • Modérateur
    • Dev Joomla & Virtuemart
    Plus d'informations
    il y a 11 ans 7 mois - il y a 11 ans 7 mois #6 par studio42
    Une meilleur solution, ajouter :
    		jQuery(".imagepopup").fancybox({
    			"titlePosition" 	: "inside",
    			"transitionIn"	:	"elastic",
    			"transitionOut"	:	"elastic"
    		});
    mais oubliez l'ancienne modif.

    www.st42.fr Truc et astuce Joomla et virtuemart
    shop.st42.fr téléchargement Joomla et extension pour virtuemart
    Gratuit ! Nettoyage des medias : shop.st42.fr/fr/produits/virtuemart-netoyage-des-medias.htm Nouveau!
    Dernière édition: il y a 11 ans 7 mois par studio42. Raison: typo

    Connexion ou Créer un compte pour participer à la conversation.

    Plus d'informations
    il y a 11 ans 7 mois #7 par netajour
    Merci de votre réponse.
    J'ai opté pour un non resize car effectivement je ne suis pas arrivé à intégrer vos derniers codes.
    Mais bon résultat ok il faut bien suivre ce post pour faire la même chose.
    Je précise que les appli java et autres sont appelé dans VM 3 dans le dossier /component/com_virtuemart/sublayout/aslrecomjs.php.

    Encore merci de votre aide.

    Connexion ou Créer un compte pour participer à la conversation.