array( * 'resize' => array(200, null), * ), * 'medium' => array( * 'resize' => array(800, null), * ) * ); */ public $versions; /** @var boolean does images in gallery need names */ public $name; /** @var boolean does images in gallery need descriptions */ public $description; /** @var boolean does images in gallery need links */ public $link=false; public function run() { $name = CHtml::resolveName($this->model, $this->attribute); $value = $this->model->{$this->attribute}; if (empty($value)) { $gallery = new Gallery(); $gallery->name = $this->name; $gallery->description = $this->description; $gallery->link = $this->link; $gallery->versions = $this->versions; $gallery->save(); $value = $gallery->id; } else { $gallery = Gallery::model()->findByPk((int)$value); $changed = false; if ($gallery->name != (bool)$this->name) { $changed = true; } if ($gallery->description != (bool)$this->description) { $changed = true; } if ($gallery->link != (bool)$this->link) { $changed = true; } if ($gallery->versions_data != serialize($this->versions)) { $changed = true; } if ($changed) { foreach ($gallery->galleryPhotos as $photo) { $photo->removeImages(); } $gallery->name = $this->name; $gallery->description = $this->description; $gallery->link = $this->link; $gallery->versions = $this->versions; $gallery->save(); foreach ($gallery->galleryPhotos as $photo) { $photo->updateImages(); } } } // CVarDumper::dump($gallery,10,true);exit(); echo CHtml::hiddenField($name, $value); $this->widget('GalleryManager', array( 'gallery' => $gallery, 'htmlOptions' => $this->htmlOptions, )); } }