Bienvenue, Invité
Merci de vous identifier ou de vous inscrire.    Mot de passe perdu?

Afficher le "store" selectionne dans un module perso de l'admin
(1 lecteur(s)) (1) Invité(s)
Aller en basPage: 1
SUJET:

Afficher le "store" selectionne dans un module perso de l'admin

#28388
bractar
Expert Boarder
Messages: 115
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur

Afficher le "store" selectionne dans un module perso de l'admin

Il y a 1 Année, 11 Mois
Karma: 0  
Bonjour,
j'ai cree (avec module creator) un module perso appelle "team".
J'ai 2 bases de donnees (team et team_store). Tout fonctionne bien (creation, mise a jour, lien avec les stores...)
Mais dans ma page qui liste les different enregistrements j'ai le code suivant:

Code :


  public function __construct()
  {
      parent::__construct();
      $this->setId('teamGrid');
      $this->setDefaultSort('team_sort');
      $this->setDefaultDir('ASC');
      $this->setSaveParametersInSession(true);
  }

  protected function _prepareCollection()
  {
      $collection = Mage::getModel('team/team')->getCollection();
      $this->setCollection($collection);
      return parent::_prepareCollection();
  }

protected function _prepareColumns(){
//...
        if(!Mage::app()->isSingleStoreMode()){
            $this->addColumn('store_id', array(
                'header'        => Mage::helper('team')->__('Store View'),
                'index'         => 'store_id',
                'type'          => 'store',
                'store_all'     => true,
                'store_view'    => true,
                'sortable'      => false,
                'filter_condition_callback'
                                => array($this, '_filterStoreCondition'),
            ));
        }
//...
}

    protected function _filterStoreCondition($collection, $column)
    {
        if (!$value = $column->getFilter()->getValue()) {
            return;
        }

        $this->getCollection()->addStoreFilter($value);
    }



Mon probleme est que dans la colonne "Store View", il est toujours affiche la valeur de defaut (All Store Views) au lieu des stores selectionnes.

Merci d'avance pour votre aide.
 
L'administrateur a désactivé l'accès public en écriture.
#28393
Pyksel
Platinum Boarder
Messages: 1401
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Sexe: Masculin lapierredelune blog.magentoo.fr pyksel@live.fr Lieu: Nice Date anniversaire: 12/09

Re:Afficher le

Il y a 1 Année, 11 Mois
Karma: 19  
J'ai pas tout saisi. Le but de ton module est de fair quoi et où ? Etendre le module d'affichae des magasins ?
 
L'administrateur a désactivé l'accès public en écriture.
#28395
bractar
Expert Boarder
Messages: 115
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur

Re:Afficher le

Il y a 1 Année, 11 Mois
Karma: 0  
Le but du module n'a pas d'importance dans ce cas.

Par contre j'ai oublie ou etait place le code publie.
il se trouve dans /app/code/local/[perso]/Team/Block/Adminhtml/Team/Grid.php

C'est la page qui affiche la liste des objets "Team" crees

Dans mon cas, j'ai un probleme avec le champ

Code :


            $this->addColumn('store_id', array(
                'header'        => Mage::helper('team')->__('Store View'),
                'index'         => 'store_id',
                'type'          => 'store',
                'store_all'     => true,
                'store_view'    => true,
                'sortable'      => false,
                'filter_condition_callback'
                                => array($this, '_filterStoreCondition'),
            ));



qui ne donne pas la valeur enregistree

J'ai egalement essaye ce code qui ne renvoit rien:

Code :

            $this->addColumn('websites',
                array(
                    'header'=> Mage::helper('team')->__('Websites'),
                    'width' => '100px',
                    'sortable'  => false,
                    'index'     => 'websites',
                    'type'      => 'options',
                    'options'   => Mage::getModel('core/website')->getCollection()->toOptionHash(),
            ));

 
Dernière édition: 11/03/10 à  01:58 Par bractar.
L'administrateur a désactivé l'accès public en écriture.
#28397
Pyksel
Platinum Boarder
Messages: 1401
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Sexe: Masculin lapierredelune blog.magentoo.fr pyksel@live.fr Lieu: Nice Date anniversaire: 12/09

Re:Afficher le

Il y a 1 Année, 11 Mois
Karma: 19  
Et la collection elle retourne quoi ? car si la collection ne retourne rien, c'est normal que les colonnes soient vides... Un test sur le resultat de la collection à été fait ? Car avant d'accuser la colone, il faut déjà mettre en examen la collection ;) ;) ;)
 
Dernière édition: 11/03/10 à  02:19 Par Pyksel.
L'administrateur a désactivé l'accès public en écriture.
#28400
bractar
Expert Boarder
Messages: 115
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur

Re:Afficher le

Il y a 1 Année, 11 Mois
Karma: 0  
La collection retourne bien les autres champs mais en effet, je ne suis pas sur d'avoir fait un lien avec la table du store. Je verifierai ca dans peu de temps.
 
L'administrateur a désactivé l'accès public en écriture.
#28467
bractar
Expert Boarder
Messages: 115
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur

Re:Afficher le

Il y a 1 Année, 11 Mois
Karma: 0  
je ne comprends pas trop comment faire.
voici mon code de Collection.php
j'espere que vous pourrez m'aider


Code :


class PowerBalance_Team_Model_Mysql4_Team_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
{
    public function _construct()
    {
        parent::_construct();
        $this->_init('team/team');
    }

    public function addStoreFilter($store, $withAdmin = true)
    {
        if ($store instanceof Mage_Core_Model_Store) {
            $store = array($store->getId());
        }

        $this->getSelect()->join(
            array('store_table' => $this->getTable('team/team_store')),
            'main_table.team_id = store_table.team_id',
            array()
        )
        ->where('store_table.store_id in (?)', ($withAdmin ? array(0, $store) : $store))
        ->group('main_table.team_id');

        return $this;
    }

public function addEnabledFilter() {
$this->getSelect()->where('status = (?)', 1);
return $this;
}
}


 
L'administrateur a désactivé l'accès public en écriture.
#28587
bractar
Expert Boarder
Messages: 115
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur

Re:Afficher le

Il y a 1 Année, 11 Mois
Karma: 0  
une petite aide?
 
L'administrateur a désactivé l'accès public en écriture.
Revenir en hautPage: 1
Modérateur: admin, Narno, Gabriiiel, CaPiT