Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

Afficher le chemin des catégories dans le fil d’ariane des fiches produits MAIS PAS DANS l’url produit
 
elvisesteban
Jr. Member
 
Total Posts:  3
Joined:  2008-11-18
 

Bonjour à tous,

Je cherche (désespérément) à afficher le fil d’Ariane complet (chemin des catégories) sur mes fiches produits tout en conservant l’url courte, sans les catégories (cad que la fiche produit est à la racine du site).

Magento permet de gérer cela mais cela impacte les 2 en même temps (url et fil d’ariane) :

> Système > Configuration > Catalogue > Optimisations pour les moteurs de recherche > Utiliser le chemin de catégorie dans les URLs produit (Oui ou Non)

Si je mets “Oui” : J’ai le fil d’ariane complet comme je veux mais une url à rallonge
Si je mets “Non” : j’ai le fil d’ariane court (comme je ne veux pas) et une url courte

Je voudrais donc savoir comment faire pour avoir dans tous les cas un fil d’ariane complet sur les fiches produits tout en conservant l’url produit à la racine (j’ai mis NON pour avoir l’url courte).

J’imagine qu’une modification sur le fichier breadcrumbs.phtml s’impose mais je suis très très limité en php.
(app/design/frontend/default/default/template/page/html/breadcrumbs.phtml)

Merci d’avance pour votre aide !

PS : j’ai un magento 1.2.1.2

Elvis.

-------
Contenu du fichier breadcrumbs.phtml :

<?php if($crumbs && is_array($crumbs)): ?>
<h4 class="no-display"><?php echo $this->__("You're currently on:") ?></h4>
<ul class="breadcrumbs">
<?php foreach($crumbs as $_crumbName=>$_crumbInfo): ?>
<li class="<?php echo $_crumbName ?>">
<?php if($_crumbInfo['link']): ?>
<a href="<?php echo $_crumbInfo['link'] ?>” title="<?php echo $_crumbInfo['title'] ?>"><?php echo $_crumbInfo['label'] ?></a>
<?php elseif($_crumbInfo['last']): ?>
<strong><?php echo $_crumbInfo['label'] ?></strong>
<?php else: ?>
<?php echo $_crumbInfo['label'] ?>
<?php endif; ?>
</li>
<?php if(!$_crumbInfo['last']): ?>
<li> / </li>
<?php endif; ?>
<?php endforeach; ?>
</ul>
<?php endif; ?>

--------------

 
Magento Community Magento Community
Magento Community
Magento Community
 
Aurelien26
Jr. Member
 
Total Posts:  3
Joined:  2010-04-28
 

Voici une “solution” pour une version 1.4.1

J’ai juste rajouté le code ci dessous :

$categoriesIds $product->getCategoryIds();

if($category != null && $categoriesIds[2]){
            $category 
Mage::getModel('catalog/category')->load($categoriesIds[2]);
        
}

<?php
if ($product Mage::registry('current_product')) {
    $categories 
$product->getCategoryCollection()->load();
    
    
$categoriesIds $product->getCategoryIds();
    
    if(
$categories{
        
foreach ($categories as $category)
        
{
            
if($category{
                $category 
Mage::getModel('catalog/category')->load($category->getId());
                break;
            
}
        }
        
        
if($category != null && $categoriesIds[2]){
            $category 
Mage::getModel('catalog/category')->load($categoriesIds[2]);
        
}
    }

    $lastCrumbName 
$product->getName();
    
$lastCategoryAdjust 0;
}
else {
    
if($category Mage::registry('current_category')) {
        $lastCrumbName 
$category->getName();
    
}
    $lastCategoryAdjust 
1;
}

if($category{
    
if($path $category->getPath()) {
        $path 
explode('/'$path);
        
$crumbs = array('home' => array('label' => 'Accueil',
                        
'title' => 'Home',
                        
'link' => Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB),
                        
'first' => true,
                        
'last' => false
        
));
        for(
$i 2$i count($path) - $lastCategoryAdjust$i++) {
            $cur_category 
Mage::getModel('catalog/category')->load($path[$i]);
            if(
$cur_category && $cur_category->getIsActive()) {
                $crumbs[
'category' $path[$i]] = array('label' =>  $cur_category->getName(),
                                  
'title' => $cur_category->getName(),
                                  
'link' => $cur_category->getUrl(),
                                  
'first' => false,
                                  
'last' => false
                
);
            
}
        }
        $crumbs[
'current'= array('label' => $lastCrumbName,
                       
'title' => '',
                       
'link' => '',
                       
'first' => false,
                       
'last' => true
        
);
    
}
}
?> 

<?php 
if($crumbs && is_array($crumbs)): ?>
<h1>
<
div class="breadcrumbs">
    <
ul>
        
<?php foreach($crumbs as $_crumbName=>$_crumbInfo): ?>
            
<li class="<?php echo $_crumbName ?>">
            
<?php if($_crumbInfo['link']): ?>
                
<a href="<?php echo $_crumbInfo['link'] ?>" title="<?php echo $this->htmlEscape($_crumbInfo['title']) ?>"><?php echo $this->htmlEscape($_crumbInfo['label']?></a>
            
<?php elseif($_crumbInfo['last']): ?>
                
<strong><?php echo $this->htmlEscape($_crumbInfo['label']?></strong>
            
<?php else: ?>
                <?php 
echo $this->htmlEscape($_crumbInfo['label']?>
            <?php 
endif; ?>
            <?php 
if(!$_crumbInfo['last']): ?>
                
<span>> </span>
            
<?php endif; ?>
            
</li>
        
<?php endforeach; ?>
    
</ul>
</
div>
</
h1>
<?php endif; ?>
 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top