Afficher le "store" selectionne dans un module perso de l'admin (1 lecteur(s)) (1) Invité(s)
 | | |
|
SUJET: Afficher le "store" selectionne dans un module perso de l'admin
|
bractar
Expert Boarder
Messages: 115
|
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.
|
|
|
|
|
|
|
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 ?
|
|
|
|
|
bractar
Expert Boarder
Messages: 115
|
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.
|
|
|
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.
|
bractar
Expert Boarder
Messages: 115
|
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.
|
|
|
|
|
bractar
Expert Boarder
Messages: 115
|
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;
}
}
|
|
|
|
|
|
bractar
Expert Boarder
Messages: 115
|
Re:Afficher le Il y a 1 Année, 11 Mois
|
Karma: 0
|
une petite aide? 
|
|
|
|
|
|
 | | |
|