/** * Creates or updates a pagdiv element in the DB. * This is used in the page edition when editing an element inline. * URL : /adminpages/services/savediv/format/json * @return void */ public function savedivAction() { $divs = new Pagdivspage(); $request = $this->getRequest(); /* * @change GDE - 05/2014 - Content Translation * Load translation */ $this->contentTranslate = new Translate_Content_Content(); $status = 0; if ($divs->checkRightFromId($request->id, $this->_config->db->safinstances_id, $this->eModule) || $request->id == 0) { try { $isNewRow = false; if ($request->id > 0) { $div = $divs->fetchRow('id=' . $request->id); $div->datemodified = new Zend_Db_Expr("NOW()"); } else { $isNewRow = true; $div = $divs->createRow(); $div->datecreated = new Zend_Db_Expr("NOW()"); $div->content_type_label = $request->content_type_label; $div->save(); // Create record on database } if (isset($request->status)) { $div->status = $request->status; } if (isset($request->order)) { $div->order = $request->order; } if ($div->status == 'draft') { if (isset($request->content)) { /* * @change GDE - 05/2014 - Content Translation * Save translation of content (on native table for default language and on translation table for others) */ $div->content_draft = $this->contentTranslate->translate($div->content_draft, $request->content, $div->id, 'draft'); } if (isset($request->params)) { $div->params_draft = $request->params; } } else { /* * @change GDE - 05/2014 - Content Translation * Save translation of content (on native table for default language and on translation table for others) */ $div->content_draft = $this->contentTranslate->translate($div->content_draft, '', $div->id, 'draft'); if (isset($request->content)) { /* * @change GDE - 05/2014 - Content Translation * Save translation of content (on native table for default language and on translation table for others) */ $div->content = $this->contentTranslate->translate($div->content, $request->content, $div->id); } if (isset($request->params)) { $div->params = $request->params; } } $div->save(); if ($isNewRow) { if ($this->eModule == 'pages') { $cors = new PagstructurePagdivs(); } $cor = $cors->createRow(); if ($this->eModule == 'pages') { $cor->pagstructure_id = $request->pagstructureid; } $cor->pagdivs_id = $div->id; $cor->save(); } /* * GDE : 27/08/2010 * Add trace of current action */ if ($this->eModule == 'pages') { $orderPage = new Pagstructure(); $orderPage->saveLastupdateContent($request->pagstructureid, $div->status == 'draft' ? false : true); $rowSetPage = $orderPage->find($request->pagstructureid); $rowPage = $rowSetPage->current(); // suffix label for tracing $suffixMessage = ' [' . $rowPage->label . ']'; // clean cache for parent page PagstructureOp::cleanPageCache($request->pagstructureid); // re-index the page if ($div->status == 'published') { //Sydney_Search_Indexation_Pages_Update::execute($po->pagstructureid,$this); } $module = 'adminpages'; $traceMessageUpdate = 'trace.event.update_content_page'; $traceMessageCreate = 'trace.event.create_content_page'; } $action = 'updatecontent'; $traceMessage = $traceMessageUpdate; if ($isNewRow) { $action = 'createcontent'; $traceMessage = $traceMessageCreate; } Sydney_Db_Trace::add($traceMessage . $suffixMessage, $module, Sydney_Tools::getTableName($div), $action, $div->id, $request->pagstructureid); $msg = 'Element saved.'; //.'ID of the element '.$div->id; $status = 1; $dbId = $div->id; } catch (Exception $e) { $msg = 'Error while saving the element in the database!' . $e->getMessage(); $status = 0; } } else { $msg = 'Access rights error'; $status = 0; $dbId = 0; } $this->view->ResultSet = array('message' => $msg, 'status' => $status, 'dbid' => $dbId, 'modal' => false); }