public function executeGNoticies(sfWebRequest $request) { $this->setLayout('gestio'); $this->IDS = $this->getUser()->getSessionPar('idS'); //Inicialitzem el formulari de cerca $this->CERCA = $this->getUser()->ParReqSesForm($request, 'cerca', array('text' => '', 'select' => 0)); if (!isset($this->CERCA['select'])) { $this->CERCA = array('text' => '', 'select' => 0); $this->getUser()->setSessionPar('cerca', $this->CERCA); } $this->FCerca = new CercaTextChoiceForm(); $this->FCerca->setChoice(array(0 => 'Actuals', 1 => 'Totes')); $this->FCerca->bind($this->CERCA); $this->PAGINA = $request->getParameter('p', 1); $this->IDN = $request->getParameter('idn'); $this->accio = $request->getParameter('accio'); $this->MODE = 'CERCA'; if ($request->isMethod('POST')) { if ($request->hasParameter('BNOU')) { $this->accio = 'N'; } if ($request->hasParameter('BSAVE')) { $this->accio = 'S'; } elseif ($request->hasParameter('BDELETE')) { $this->accio = 'D'; } elseif ($request->hasParameter('BEDIT')) { $this->accio = 'E'; } } switch ($this->accio) { case 'CC': $this->getUser()->addLogAction('inside', 'gNoticies'); $this->CERCA = $this->getUser()->ParReqSesForm($request, 'cerca', array('text' => '', 'select' => 0)); break; case 'N': $this->FORMULARI = NoticiesPeer::initialize(0, $this->IDS); $this->MODE = 'FORMULARI'; break; case 'E': $this->FORMULARI = NoticiesPeer::initialize($this->IDN, $this->IDS); $this->MODE = 'FORMULARI'; break; case 'S': $RS = $request->getParameter('noticies'); $this->IDN = $RS['idNoticia']; $this->FORMULARI = NoticiesPeer::initialize($this->IDN, $this->IDS); $this->FORMULARI->bind($RS, $request->getFiles('noticies')); if ($this->FORMULARI->isValid()) { $this->FORMULARI->save(); $this->getUser()->addLogAction($this->accio, 'gNoticies', $this->FORMULARI->getObject()); $this->redirect('gestio/gNoticies?accio=CC'); } $this->MODE = 'FORMULARI'; break; case 'D': $RS = $request->getParameter('noticies'); $this->IDN = $RS['idNoticia']; $this->FORMULARI = NoticiesPeer::initialize($this->IDN, $this->IDS); $this->FORMULARI->getObject()->setActiu(false)->save(); $this->getUser()->addLogAction($this->accio, 'gNoticies', $this->FORMULARI->getObject()); break; //Order Down. Movem la fila un lloc avall. //Order Down. Movem la fila un lloc avall. case 'O': $IDN = $request->getParameter('idN'); $UP = $request->getParameter('UP', 0); NoticiesPeer::setNewOrder($IDN, $UP, $this->IDS); break; } $this->NOTICIES = NoticiesPeer::getNoticies($this->CERCA['text'], $this->PAGINA, false, $this->CERCA['select'], $this->IDS); }