getParameter('ids'); $q = Doctrine_Query::create() ->from('Item i') ->whereIn('i.id', $ids); foreach ($q->execute() as $item) { $item->is_published = 1; $item->save(); } $this->getUser()->setFlash('notice', 'Dražené předměty byly zveřejněny.'); $this->redirect('@item'); } public function executeBatchUnpublish(sfWebRequest $request) { $ids = $request->getParameter('ids'); $q = Doctrine_Query::create() ->from('Item i') ->whereIn('i.id', $ids); foreach ($q->execute() as $item) { $item->is_published = 0; $item->save(); } $this->getUser()->setFlash('notice', 'Dražené předměty byly skryty.'); $this->redirect('@item'); } public function executeBatchDates(sfWebRequest $request) { $ids = $request->getParameter('ids'); $this->forward('item', 'dates'); } public function executeDates(sfWebRequest $request) { $this->ids = $request->getParameter('ids'); $this->form = new DatesForm(); } public function executeDates_save(sfWebRequest $request) { $ids = $request->getParameter('ids'); $time_start = $request->getParameter('time_start'); $time_end = $request->getParameter('time_end'); if (!empty($time_start) || !empty($time_end)) { $q = Doctrine_Query::create() ->from('Item i') ->whereIn('i.id', explode(',', $ids)); foreach ($q->execute() as $item) { if (!empty($time_start)) $item->time_start = date('Y-m-d H:i:s', strtotime($time_start)); if (!empty($time_end)) $item->time_end = date('Y-m-d H:i:s', strtotime($time_end)); $item->save(); } $this->getUser()->setFlash('notice', 'Data byla nastavena.'); $this->redirect('@item'); } } public function executeBatchCategories(sfWebRequest $request) { $ids = $request->getParameter('ids'); $this->forward('item', 'categories'); } public function executeCategories(sfWebRequest $request) { $this->ids = $request->getParameter('ids'); $this->form = new CategoriesForm(); } public function executeCategories_save(sfWebRequest $request) { $ids = $request->getParameter('ids'); $category_id = $request->getParameter('category_id'); if (!empty($category_id)) { $q = Doctrine_Query::create() ->from('Item i') ->whereIn('i.id', explode(',', $ids)); foreach ($q->execute() as $item) { $item->category_id = $category_id; $item->save(); } $this->getUser()->setFlash('notice', 'Kategorie byla nastavena.'); } $this->redirect('@item'); } public function executeOld_data(sfWebRequest $request) { $items = Doctrine::getTable('Item') ->createQuery() ->where('kind_id = 2') ->execute(); foreach($items AS $item) { $item->updated_at = date('Y-m-d H:i:s'); $item->save(); } } public function executeSet_paging(sfWebRequest $request) { $max_per_page = $request->getParameter('max_per_page'); $this->getUser()->setAttribute('admin_max_per_page', $max_per_page); $this->redirect('@item'); } protected function processForm(sfWebRequest $request, sfForm $form) { $values = $request->getParameter($form->getName()); $files = $request->getFiles($form->getName()); $FILES = $files; unset($files['image']); $form->bind($values, $files); if ($form->isValid()) { $notice = $form->getObject()->isNew() ? 'The item was created successfully.' : 'The item was updated successfully.'; $item = $form->save(); if (!empty($FILES) && $FILES['image']['size'] > 0) { $filename = $item->slug."-".$item->id.'-'.time().".jpg"; $img = new sfThumbnail(800, 600, true, false, 85); $img->loadFile($FILES['image']['tmp_name']); $img->save(sfConfig::get('sf_upload_dir').'/items/image/'.$filename, 'image/jpeg'); $thumb = new sfThumbnail(200, 200, true, false, 85); $thumb->loadFile($FILES['image']['tmp_name']); $thumb->save(sfConfig::get('sf_upload_dir').'/items/preview/'.$filename, 'image/jpeg'); $item->image = $filename; $item->save(); } $this->dispatcher->notify(new sfEvent($this, 'admin.save_object', array('object' => $item))); if ($request->hasParameter('_save_and_add')) { $this->getUser()->setFlash('notice', $notice.' You can add another one below.'); $this->redirect('@item_new'); } else { $this->getUser()->setFlash('notice', $notice); $this->redirect(array('sf_route' => 'item_edit', 'sf_subject' => $item)); } } else { $this->getUser()->setFlash('error', 'The item has not been saved due to some errors.', false); } } }