<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>Frédéric MARTINEZ - Freelance MAGENTO &#187; catégories</title>
	<atom:link href="http://www.martinez-frederic.fr/tag/categories/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.martinez-frederic.fr</link>
	<description>Freelance Magento Toulouse - Entrepreneur</description>
	<lastBuildDate>Wed, 01 Feb 2012 11:54:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Lister les catégories (et les sous-catégories) sous Magento</title>
		<link>http://www.martinez-frederic.fr/2009/06/23/lister-les-categories-et-les-sous-categories-sous-magento/</link>
		<comments>http://www.martinez-frederic.fr/2009/06/23/lister-les-categories-et-les-sous-categories-sous-magento/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 08:07:22 +0000</pubDate>
		<dc:creator>Frédéric Martinez</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[catégories]]></category>
		<category><![CDATA[Listing]]></category>
		<guid isPermaLink="false">http://martinez-frederic.fr/developpement/?p=152</guid>
		<description><![CDATA[Le listing de catégories sous Magento fonctionne de 2 façons. Soit on affiche les sous-catégories d&#8217;une catégorie donnée (par son Identifiant) Soit on affiche les sous-catégories de la catégorie courante (problème quand on se trouve sur la page d&#8217;accueil par exemple) Etape 1 : Affichage des sous-catégories d&#8217;une catégorie donnée Bien souvent, on veut afficher [...]]]></description>
			<content:encoded><![CDATA[<p>Le listing de catégories sous Magento fonctionne de 2 façons.</p>
<ol>
<li>Soit on affiche les sous-catégories d&#8217;une catégorie donnée (par son Identifiant)</li>
<li>Soit on affiche les sous-catégories de la catégorie courante (problème quand on se trouve sur la page d&#8217;accueil par exemple)</li>
</ol>
<h3><span id="more-152"></span>Etape 1 : Affichage des sous-catégories d&#8217;une catégorie donnée</h3>
<p>Bien souvent, on veut afficher les catégories principales (qui sont alors les sous-catégories de la catégorie RACINE).</p>
<p>On repère d&#8217;abord l&#8217;ID de la catégorie racine. Normalement, c&#8217;est 2. (Vérifiez dans Admin &gt; Catalogue &gt; Gérer les catégories &gt; Cliquez sur la catégorie voulue)</p>
<h4>1) Si on veut afficher les sous-catégories de la catégorie racine :</h4>
<pre class="brush: php; title: ;">
&lt;?php
// Récupération de la catégorie racine
$idCategorie = 2;
$_helper = $this-&gt;helper('catalog/output');
// Récupération de la liste des sous catégories de la racine
$sousCategories2 = Mage::getModel('catalog/category')-&gt;getCategories( $idCategorie, 1, 'true|position' );
$sousCategories = $sousCategories2-&gt;getNodes();
// Pour chaque catégorie
foreach($sousCategories as $row):
$_category = Mage::getModel('catalog/category')-&gt;load($row); ?&gt;
&lt;?php if ($_category-&gt;getIsActive()):?&gt;
&lt;div class=&quot;footer_categorie&quot;&gt;
&lt;h4&gt;
&lt;a href=&quot;&lt;?php echo Mage::getModel('catalog/category')-&gt;load($row)-&gt;getUrl(); ?&gt;&quot; title=&quot;&lt;?php echo $_helper-&gt;categoryAttribute($_category, $this-&gt;htmlEscape($_category-&gt;getName()), 'name'); ?&gt;&quot;&gt;&lt;?php echo $_helper-&gt;categoryAttribute($_category, $this-&gt;htmlEscape($_category-&gt;getName()), 'name'); ?&gt;&lt;/a&gt;
&lt;/h4&gt;
&lt;/div&gt;
&lt;?php endif; ?&gt;
&lt;?php endforeach; ?&gt;
</pre>
<p><span style="font-family: Georgia; line-height: 19px; white-space: normal; font-size: 13px; ">Cela donnera :</span></p>
<p>Cat 1<br />
Cat 2<br />
Cat 3<br />
&#8230;</p>
<h4>2) Si on veut afficher les sous-catégories et les sous-sous catégories de la catégorie racine (triées comme dans l&#8217;admin), comme par exemple :</h4>
<p>Cat 1</p>
<ul>
<li>Sous Cat 1-1</li>
<li>Sous Cat 1-2</li>
</ul>
<p>Cat 2</p>
<ul>
<li>Sous Cat 2-1</li>
<li>Sous Cat 2-2</li>
<li>&#8230;</li>
</ul>
<p>&#8230;</p>
<p>On effectue 2 boucles :</p>
<pre class="brush: php; title: ;">&lt;?php
// Récupération de la catégorie racine
$idCategorie = 2;
$_helper = $this-&gt;helper('catalog/output');
// Récupération de la liste des sous catégories de la racine
$sousCategories2 = Mage::getModel('catalog/category')-&gt;getCategories( $idCategorie, 1, 'true|position' );
$sousCategories = $sousCategories2-&gt;getNodes();
// Pour chaque catégorie
foreach($sousCategories as $row):
$_category = Mage::getModel('catalog/category')-&gt;load($row); ?&gt;
&lt;?php if ($_category-&gt;getIsActive()):?&gt;
&lt;div class=&quot;footer_categorie&quot;&gt;
&lt;h4&gt;
&lt;a href=&quot;&lt;?php echo Mage::getModel('catalog/category')-&gt;load($row)-&gt;getUrl(); ?&gt;&quot; title=&quot;&lt;?php echo $_helper-&gt;categoryAttribute($_category, $this-&gt;htmlEscape($_category-&gt;getName()), 'name'); ?&gt;&quot;&gt;&lt;?php echo $_helper-&gt;categoryAttribute($_category, $this-&gt;htmlEscape($_category-&gt;getName()), 'name'); ?&gt;&lt;/a&gt;
&lt;/h4&gt;
&lt;?php if ($_category-&gt;hasChildren()): ?&gt;
&lt;ul&gt;
&lt;?php
// Récupération de la liste des sous-sous catégories
$sousSousCategories2 = Mage::getModel('catalog/category')-&gt;getCategories( $_category-&gt;getId(), 1, 'true|position' );
$sousSousCategories = $sousSousCategories2-&gt;getNodes();
// Pour chaque sous-catégorie
foreach($sousSousCategories as $row_sub):
$_sub_category = Mage::getModel('catalog/category')-&gt;load($row_sub);
if ($_sub_category-&gt;getIsActive()): ?&gt;
&lt;li&gt;
&lt;a href=&quot;&lt;?php echo Mage::getModel('catalog/category')-&gt;load($row_sub)-&gt;getUrl(); ?&gt;&quot; title=&quot;&lt;?php echo $_helper-&gt;categoryAttribute($_sub_category, $this-&gt;htmlEscape($_sub_category-&gt;getName()), 'name'); ?&gt;&quot;&gt;&lt;?php echo $_helper-&gt;categoryAttribute($_sub_category, $this-&gt;htmlEscape($_sub_category-&gt;getName()), 'name'); ?&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;?php endif; ?&gt;
&lt;?php endforeach; ?&gt;
&lt;/ul&gt;
&lt;?php endif; ?&gt;
&lt;/div&gt;
&lt;?php endif; ?&gt;
&lt;?php endforeach; ?&gt;
</pre>
<h3>Etape 2 : Afficher les sous-catégories de la catégorie courante (avec un compteur du nombre de produit et l&#8217;image correspondante)</h3>
<p>Pour l&#8217;affichage des sous-catégories de la catégorie courante (à insérer dans un view.phtml ou list.phtml qui seront interprétés uniquement dans une page de catégorie), on peut utiliser cette méthode :</p>
<pre class="brush: php; title: ;">
/**
* Affiche la liste des sous catégories, ainsi que les sous-sous catégories
*/
// Récupération de la catégorie courante
$current_cat = Mage::registry('current_category');
// Récupération de la liste des sous catégories
$children = $current_cat-&gt;getChildrenCategories();
// Pour chaque catégorie
foreach ($children as $sub)
{
// Recharge la sous-catégorie (feinte)
$sub-&gt;load($sub-&gt;getId());
// Affichage du nom de la catégorie
echo '&lt;h2&gt;'. $sub-&gt;getName(). '&lt;/h2&gt;';
// Affichage de l'image
echo '&lt;img src=&quot;' .$sub-&gt;getImageUrl(). '&quot; alt=&quot;'. $sub-&gt;getName(). '_image&quot; /&gt;';
// Récupération de la liste des sous-sous catégories
$sub_children = $sub-&gt;getChildrenCategories();
foreach ($sub_children as $sub_sub)
{
echo '&lt;h3&gt;&lt;a href=&quot;' , $sub_sub-&gt;getUrl() , '&quot;&gt;' , $sub_sub-&gt;getName() , ' (', $sub_sub-&gt;getProductCount() ,')&lt;/a&gt;&lt;/h3&gt;';
}
echo '&lt;hr&gt;';
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.martinez-frederic.fr/2009/06/23/lister-les-categories-et-les-sous-categories-sous-magento/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
