/** * */ public function linkPagdivsToFolderAction() { array_walk($this->jsonstr, create_function('&$v,$k', '$v = str_replace("structure_","",$v);')); $oLinkFolder = new PagstructurePagdivs(); $oLinkFolder->setPagdivsLinkedToSafe($this->fileid, $this->jsonstr); $this->_setDataMsg('OK, link recorded', 1); }
/** * * delete all contents of page $pageid * @param $pageId id of the pagstructure * @param $rollback determine if the content are deleted or restored */ public function deleteContentFromPage($pageId, $rollback = false) { // search all content from page $PageDiv = new PagstructurePagdivs(); $selector = $PageDiv->select()->from(Sydney_Tools::getTableName($PageDiv), 'pagdivs_id')->where('pagstructure_id = ' . $pageId); $rowset = $PageDiv->fetchAll($selector)->toArray(); $listContentId = Sydney_Tools::implode(',', $rowset); // delete content if (!empty($listContentId)) { if ($this->isLogicalDelete()) { return $this->update(array('isDeleted' => !$rollback), 'id IN (' . $listContentId . ')'); } else { return $this->delete('id IN (' . $listContentId . ')'); } } return false; }
/** * 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); }
/** * * @param Integer $dbid the div id you want to put offline/online * @return Mixed On success a string with the new status (offline/online). false on error. */ public static function duplicate($pageDivId = 0, $nodeId = 0, $order = -1) { // On construit le nouveau pagdiv (on en récupère l'id) $newId = Pagdivs::duplicate($pageDivId); $realOrder = null; /* Si c'est -1 c'est que "duplicate" est appelée sans passer de order * Par défaut order = 0 alors * Ces 2 cas ($order = -1|0) ne devrait théoriquement arriver que pour les pagstructur_pagdiv * qui n'ont pas d'order donc pour les anciens sites */ if ($order == -1) { // Cas mauvais il ne devrait plus être possible de le faire :( // Possible lorsqu'on duplique un type de contenu (texte ou autre) // TODO $realOrder = 0; } elseif ($order == 0) { // on récupère l'order fictif (propre à la classe) $realOrder = self::getFictivePagDivsOrder(); } else { $realOrder = $order; } // Link to pagstructure $linkContentToPage = new PagstructurePagdivs(); $linkContentToPage->insert(array('pagstructure_id' => $nodeId, 'pagdivs_id' => $newId, 'order' => $realOrder)); return $newId; }