public function save(Doctrine_Connection $conn = null) { $slug = Magic::slugify($this->getTitle()); if ($this->isNew()) { $i = 0; do { $i++; $q = Doctrine::getTable('Event')->findOneBySlug($slug); if (!$q) { break; } else { $slug = Magic::slugify($this->getTitle()); $slug .= $i; } } while ($i); $this->setSlug($slug); } elseif ($slug != $this->getSlug()) { $i = 0; do { $i++; $q = Doctrine::getTable('Event')->findOneBySlug($slug); if (!$q) { $this->setSlug($slug); break; } else { if ($slug == $this->getSlug()) { break; } else { $slug = Magic::slugify($this->getTitle()); $slug .= $i; } } } while ($i); } if ($this->get('sticky') == 'no') { $this->set('sticky', 1000); } parent::save($conn); $config = sfConfig::get('app_sfDoctrineJCroppablePlugin_models'); $dir = sfConfig::get('sf_upload_dir') . DIRECTORY_SEPARATOR . $config['Events']['directory']; $image = $this->getImageSrc('mugshot', 'original'); if ($this->getMugshot() != '') { $arr_filename = explode('.', $this->getMugshot()); $filename = $arr_filename[0] . '_original.' . $arr_filename[1]; $file = $dir . DIRECTORY_SEPARATOR . $filename; if (is_file($file)) { $dims = array(array('w' => 950, 'h' => 534), array('w' => 720, 'h' => 405), array('w' => 250, 'h' => 141)); $size = getimagesize($file); $img = new sfImage($file, $size['mime']); foreach ($dims as $dim) { $img->resize($dim['w'], $dim['h']); $img->setQuality(90); $img->saveAs($dir . '/' . $arr_filename[0] . '_' . $dim['w'] . 'x' . $dim['h'] . '.jpg'); } } } }
/** * Additional save functionality, e.g. update search index * * @param mixed $connection provide a database connection * @return QubitInformationObject self-reference */ public function save($connection = null) { // TODO $cleanInformationObject = $this->informationObject->clean; $cleanInformationObjectId = $this->__get('informationObjectId', array('clean' => true)); parent::save($connection); if ($this->indexOnSave) { if ($this->informationObjectId != $cleanInformationObjectId && null !== QubitInformationObject::getById($cleanInformationObjectId)) { QubitSearch::updateInformationObject(QubitInformationObject::getById($cleanInformationObjectId)); } if (isset($this->informationObject)) { QubitSearch::updateInformationObject($this->informationObject); } } return $this; }