Magento Forum

   
Custom filters on custom collection
 
ZuRuK
Jr. Member
 
Total Posts:  2
Joined:  2012-01-04
 

Bonjour à tous,

Je cherche à créer une page sur mon site Magento “www.mon-site.com/collection” qui afficherait une collection de produits correspondant à une catégorie précise avec les toolbar (haut et bas) et les filtres en haut (catégories).

Voici ce que j’ai fait :

app/code/local/E2p/CustomCatalogSearch/Block/Layer/View.php pour “charger” le block “Shop by” :

<?php
class E2p_CustomCatalogSearch_Block_Layer_View extends Mage_Catalog_Block_Layer_View
{
}

app/code/local/E2p/CustomCatalogSearch/Block/Collection.php pour charger la collection de produits :

<?php
class E2p_CustomCatalogSearch_Block_Collection extends Mage_Catalog_Block_Product_List
{
}

app/code/local/E2p/CustomCatalogSearch/controllers/IndexController.php pour charger le layout :

<?php
class E2p_CustomCatalogSearch_IndexController extends Mage_Core_Controller_Front_Action
{
    
public function indexAction()
    
{
         
        $this
->loadLayout();     
        
$this->renderLayout();
    
}
}

?>

app/code/local/E2p/CustomCatalogSearch/etc/config.xml :

<?xml version="1.0"?>
<config>
    <
modules>
        <
E2p_CustomCatalogSearch>
            <
version>0.1.0</version>
        </
E2p_CustomCatalogSearch>
    </
modules>
    <global>
        <
blocks>
            <
catalog>
                <
rewrite>
                     <
layer_view>E2p_CustomCatalogSearch_Block_Layer_View</layer_view>
                </
rewrite>
            </
catalog>
            <
collection>
                <class>
E2p_CustomCatalogSearch_Block</class>
            </
collection>
        </
blocks>
        <
models>
            <
collection>
                <class>
E2p_CustomCatalogSearch_Model</class>
                <
resourceModel>collection_mysql4</resourceModel>
            </
collection>
            <
collection_mysql4>
                <class>
E2p_CustomCatalogSearch_Model_Mysql4</class>
                <
entities>
                    <
collection>
                        <
table>collection</table>
                    </
collection>
                </
entities>
            </
collection_mysql4>
        </
models>
        <
helpers>
            <
collection>
                <class>
E2p_CustomCatalogSearch_Helper</class>
            </
collection>
        </
helpers>
        <
resources>
            <
collection_setup>
                <
setup>
                    <
module>E2p_CustomCatalogSearch</module>
                </
setup>
                <
connection>
                    <use>
core_setup</use>
                </
connection>
            </
collection_setup>
            <
collection_write>
                <
connection>
                    <use>
core_write</use>
                </
connection>
            </
collection_write>
            <
collection_read>
                <
connection>
                    <use>
core_read</use>
                </
connection>
            </
collection_read>
        </
resources>
    </global>
    <
frontend>
        <
routers>
            <
collection>
                <use>
standard</use>
                <
args>
                    <
module>E2p_CustomCatalogSearch</module>
                    <
frontName>collection</frontName>
                </
args>
            </
collection>
        </
routers>
        <
layout>
            <
updates>
                <
collection>
                    <
file>collection.xml</file>
                </
collection>
            </
updates>
        </
layout>
    </
frontend>
</
config>

app/code/local/E2p/CustomCatalogSearch/Helper/Data.php :

<?php

class E2p_CustomCatalogSearch_Helper_Data extends Mage_Core_Helper_Abstract
{

}
/code]

app
/design/frontend/e2p/default/template/e2p/layer/collection.phtml :

[code]
<?php 
echo $this->getMessagesBlock()->getGroupedHtml() ?>
<?php 
$collection 
$this->getLoadedProductCollection()
                ;
?>
<div class="page-title">
    <
h1><?php echo $this->__('My Collection'?></h1>
</
div>
<?php echo $this->getToolbarHtml(); ?>
<?php 
if($collection->getSize()): ?>
<table class="data-table" id="my-custom-table">
    <
thead>
        <
tr>
            <
th><?php echo $this->__('Image'?></th>
            <
th><?php echo $this->__('ID #'?></th>
            <
th><?php echo $this->__('Title'?></th>
            <
th><span class="nobr"><?php echo $this->__('Created'?></span></th>
        </
tr>
    </
thead>
    <
tbody>
        
<?php $_odd ''?>
        <?php 
foreach ($collection as $_obj): ?>
        
<tr>
            <
td><img src="<?php echo $this->helper('catalog/image')->init($_obj, 'image')->resize(120)?>" /></td>
            <
td><?php echo $_obj->getData('sku'); ?></td>
            <
td><a href="<?php echo $_obj->getData('url_key') ?>"><span class="nobr"><?php echo $_obj->getData('name'); ?></span></a></td>
            <
td><?php echo $_obj->getData('short_description'); ?></td>
        </
tr>
        
<?php endforeach; ?>
    
</tbody>
</
table>
<
script type="text/javascript">decorateTable('my-custom-table');</script>
<?php 
echo $this->getPagerHtml(); ?>
<?php 
else: ?>
    
<p><?php echo $this->__('The collection is empty.'); ?></p>
<?php endif ?>
<div class="toolbar-bottom">
    
<?php echo $this->getToolbarHtml(); ?>
</div>

Le problème, c’est que la page “www.mon-site.com/collection” ne me montre que les produits qui n’appartiennent pas à une catégorie.
Et lorsque je surcharge la fonction “_getProductCollection()” dans Collection.php, du coup ce sont les toolbar et les filtres qui ne sont plus en adéquation avec les produits affichés.

Pouvez-vous m’aider pour y voir plus clair ?

Merci d’avance.

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
    Back to top