/**
  *
  */
 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);
 }
Exemple #2
0
 /**
  *
  * 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);
 }
Exemple #4
0
 /**
  *
  * @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;
 }