Witam.
Styworzyłem portlet, który w widoku
http://....../pobrania/index.php
wyświetla w bocznym div’ie odpowiednią listę z kategoriami pobrań. Standardowo po odpaleniu widoku widoczne są wszystkie rekordy (i to jest OK) we wszystkich kategoriach. Portlet ma służyć jako filtr.
W modelu pobrania dodałem:
public function getUrl2()
{
return Yii::app()->createUrl('pobrania/index2', array(
'category'=>$this->typpobrania_id,
));
}
public function search2()
{
$criteria=new CDbCriteria;
$criteria->compare('id',$this->id);
$criteria->compare('nazwa',$this->nazwa,true);
$criteria->compare('file',$this->file,true);
$criteria->compare('create_time',$this->create_time);
$criteria->compare('update_time',$this->update_time);
$criteria->condition = "typpobrania_id = 2";
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
}
W kontrolerze pobrania dodałem:
public function actionIndex2()
{
$model=new Pobrania('search2');
$model->unsetAttributes();
if(isset($_GET['Pobrania']))
$model->attributes=$_GET['Pobrania'];
$this->render('index2',array(
'dataProvider'=>$model->search2(),
'model'=>$model)
);
}
- uprawnienia do "index2" w public function accessRules()
Stworzyłem w widoku pobrania plik index2.php ze standardową zawartością:
<?php
$this->breadcrumbs=array(
'Pobrania',
);
$this->menu=array(
array('label'=>'Dodaj pobranie', 'url'=>array('create')),
array('label'=>'Zarządzaj pobraniami', 'url'=>array('admin')),
);
?>
<h1>Pobrania</h1>
<?php $this->widget('zii.widgets.CListView', array(
'dataProvider'=>$dataProvider,
'itemView'=>'_view',
)); ?>
Rzecz polega na tym, iż kiedy kliknę na pozycję z listy portletu to przybiera ona postać:
http://......./index.php?r=pobrania/index2&category=2
i teraz chodzi o to aby wartość parametru "category" przekazać do modelu do funkcji search2() w miejsce $criteria->condition = "typpobrania_id = 2";, aby lista wyświetlanych pozycji była dynamiczna w zależności od tego którą pozycję kliknę z portletu.
W przypadku kiedy mam jak teraz na stałe zdefiniowaną wartość parametru "category" to co kolwiek kliknę to oczywiście zawsze dostaje to samo.
Próbowałem z "$_GET", ale chyba coś nie tak.