public function editAction() { $this->view->title = "Modification d'un texte"; if ($this->view->aclIsAllowed('text', 'edit', true)) { $_blockID = $this->_getParam('blockID'); $_pageid = $this->_getParam('pageID'); $_id = $this->_getParam('ID'); $base_dir = $this->getFrontController()->getBaseUrl(); $blockText = new Text(); $select = $blockText->select(); $select->where('TD_BlockID = ?', $_blockID); $select->where('TD_LanguageID = ?', $this->_currentEditLanguage); $block = $blockText->fetchRow($select); $blockSelect = new Blocks(); $selectBloc = $blockSelect->select()->setIntegrityCheck(false)->from('Blocks')->where('B_ID = ?', $_blockID)->join('PagesIndex', 'PI_PageID = B_PageID')->where('PI_LanguageID = ?', $block['TD_LanguageID']); // If block doesn't exist, creates it. if (empty($block)) { $block = $blockText->createRow(array('TD_BlockID' => $_blockID, 'TD_LanguageID' => $this->_currentEditLanguage)); $block->save(); // load it $block = $blockText->fetchRow($select); } if ($_id) { $returnLink = "{$base_dir}/text/index/list-approbation-request/"; } else { $returnLink = "{$base_dir}/page/index/index/ID/{$_pageid}"; } $form = new FormText(array('baseDir' => $base_dir, 'pageID' => $_pageid, 'cancelUrl' => $returnLink, 'toApprove' => $block["TD_ToApprove"])); if (!$this->_request->isPost()) { $block_data = empty($block) ? array() : $block->toArray(); $blockData = $blockSelect->fetchRow($selectBloc); $block_data['PI_PageTitle'] = $blockData['PI_PageTitle']; $form->populate($block_data); } else { $formData = $this->_request->getPost(); if ($form->isValid($formData)) { if (isset($_POST['submitSaveSubmit'])) { $block['TD_ToApprove'] = 1; //header("location:".$returnLink); } elseif (isset($_POST['submitSaveReturnWriting'])) { $block['TD_ToApprove'] = 0; //header("location:".$returnLink); } elseif (isset($_POST['submitSaveOnline'])) { $block['TD_OnlineTitle'] = $formData['TD_DraftTitle']; $block['TD_OnlineText'] = $formData['TD_DraftText']; $block['TD_ToApprove'] = 0; //header("location:".$returnLink); // index the new text if block online $blockData = $blockSelect->fetchRow($selectBloc); if ($blockData['B_Online'] == 1 && $blockData['PI_Status'] == 1) { $indexData['pageID'] = $blockData['B_PageID']; $indexData['moduleID'] = $blockData['B_ModuleID']; $indexData['contentID'] = $block['TD_ID']; $indexData['languageID'] = $block['TD_LanguageID']; $indexData['title'] = $blockData['PI_PageTitle']; $indexData['text'] = ''; $indexData['link'] = ''; $indexData['contents'] = $blockData['PI_PageTitle'] . " " . $block['TD_OnlineText']; $indexData['action'] = 'update'; Cible_FunctionsIndexation::indexation($indexData); } } else { $returnLink = ""; } $block['TD_DraftTitle'] = $formData['TD_DraftTitle']; $block['TD_DraftText'] = $formData['TD_DraftText']; $block->save(); $oPage = new PagesObject(); $pageData['P_ID'] = $_pageid; $pageData['PI_PageTitle'] = $formData['PI_PageTitle']; $oPage->save($_pageid, $pageData, $this->_currentEditLanguage); //if($returnLink <> "") //$this->_redirect("/page/index/index/ID/$_pageid"); } } $this->view->assign('form', $form); $this->view->assign('pageId', $_pageid); $this->view->assign('onlineTitle', isset($block['TD_OnlineTitle']) ? $block['TD_OnlineTitle'] : ''); $this->view->assign('onlineText', isset($block['TD_OnlineText']) ? $block['TD_OnlineText'] : ''); } }
protected function deleteBlock($blockID) { /* * ******************************* */ /* DELETE ROW IN BLOCK TABLE */ /* * ******************************* */ // define block $block = new Blocks(); $where = 'B_ID = ' . $blockID; // get informations of the block to delete $blockDetails = $block->fetchRow($where); $position = $blockDetails->B_Position; $pageID = $blockDetails->B_PageID; // delete the block $block->delete($where); /* * ******************************* */ /* DELETE ROWS IN BLOCKINDEX TABLE */ /* * ******************************* */ // define blockIndex $blockIndex = new BlocksIndex(); $where = 'BI_BlockID = ' . $blockID; // delete all blockIndex $blockIndex->delete($where); /* * ******************************* */ /* UPDATE POSITION ON BLOCK TABLE */ /* * ******************************* */ // update position of all block in the same page $db = Zend_Registry::get("db"); $where = "(B_Position > " . $position . ") AND B_PageID = " . $pageID; $db->update('Blocks', array('B_Position' => new Zend_Db_Expr('B_Position - 1')), $where); /* * ******************************* */ /* DELETE ROWS IN PARAMETERS TABLE */ /* * ******************************* */ $blockParameters = new Parameters(); $where = 'P_BlockID = ' . $blockID; $blockParameters->delete($where); }