public function getDiffObject($original) { require_once 'Text/Diff.php'; require_once 'Text/Diff/Renderer/inline.php'; $diffObject = new SxCms_Page_Revision(); $renderer = new Text_Diff_Renderer_inline(); $titleDiff = new Text_Diff('auto', array(array($original->getTitle()), array($this->getTitle()))); $titleDiff = $renderer->render($titleDiff) ? $renderer->render($titleDiff) : array_pop($titleDiff->getOriginal()); $summaryDiff = new Text_Diff('auto', array(array($original->getSummary()), array($this->getSummary()))); $summaryDiff = $renderer->render($summaryDiff) ? $renderer->render($summaryDiff) : array_pop($summaryDiff->getOriginal()); $summaryDiff = html_entity_decode($summaryDiff); $contentDiff = new Text_Diff('auto', array(array($original->getContent()), array($this->getContent()))); $contentDiff = $renderer->render($contentDiff) ? $renderer->render($contentDiff) : array_pop($contentDiff->getOriginal()); $contentDiff = html_entity_decode($contentDiff); $sourceDiff = new Text_Diff('auto', array(array($original->getSource()), array($this->getSource()))); $sourceDiff = $renderer->render($sourceDiff) ? $renderer->render($sourceDiff) : array_pop($sourceDiff->getOriginal()); $linkDiff = new Text_Diff('auto', array(array($original->getLink()), array($this->getLink()))); $linkDiff = $renderer->render($linkDiff) ? $renderer->render($linkDiff) : array_pop($linkDiff->getOriginal()); $diffObject->setLanguage($this->getLanguage())->setTitle($titleDiff)->setSummary($summaryDiff)->setContent($contentDiff)->setSource($sourceDiff)->setLink($linkDiff)->setApproved($this->isApproved()); return $diffObject; }
public function wizardNotesAction() { $wizard = new Zend_Session_Namespace('Cms_PageWizard'); $this->view->page = $wizard->page; $notes = ''; $revision = new SxCms_Page_Revision(); if ($wizard->page->getId() === false) { $notes = $this->admin_tmx->_('newpagecreated'); $revision->setApproved(true); } $revision->setNotes($notes); if ($this->getRequest()->isPost() or isset($wizard->settings)) { $lng = $wizard->page->getLanguage(); $wizard->page->save(); if (isset($wizard->settings)) { $wizard->unsetAll(); $this->_helper->redirector->gotoSimple('wizard-done', 'page'); } if ($wizard->page->getId() === false) { $config = Zend_Registry::get('config'); foreach ($config->system->language as $lng => $slng) { $revision->setNotes($this->_getParam('notes'))->setLanguage($lng)->setTitle($wizard->page->getTitle())->setTitleFallback($wizard->page->hasTitleFallback())->setSummary($wizard->page->getSummary())->setSummaryFallback($wizard->page->hasSummaryFallback())->setContent($wizard->page->getContent())->setContentFallback($wizard->page->hasContentFallback())->setSource($wizard->page->getSource())->setSourceFallback($wizard->page->hasSourceFallback())->setLink($wizard->page->getLink())->setLinkFallback($wizard->page->hasLinkFallback())->setPageId($wizard->page->getId())->setInvisible($wizard->page->getInvisible())->setSeoTitle($wizard->page->getSeoTitle())->setSeoTags($wizard->page->getSeoTags())->setSeoDescription($wizard->page->getSeoDescription())->save(); if (!$this->_getParam('revision')) { $revision->setApproved(true); } if (!$revision->isApproved()) { $revision->warnLiveVersion(); } else { $revision->approve(); } } } else { $revision->setNotes($this->_getParam('notes'))->setLanguage($lng)->setTitle($wizard->page->getTitle())->setTitleFallback($wizard->page->hasTitleFallback())->setSummary($wizard->page->getSummary())->setSummaryFallback($wizard->page->hasSummaryFallback())->setContent($wizard->page->getContent())->setContentFallback($wizard->page->hasContentFallback())->setSource($wizard->page->getSource())->setSourceFallback($wizard->page->hasSourceFallback())->setLink($wizard->page->getLink())->setLinkFallback($wizard->page->hasLinkFallback())->setPageId($wizard->page->getId())->setInvisible($wizard->page->getInvisible())->setSeoTitle($wizard->page->getSeoTitle())->setSeoTags($wizard->page->getSeoTags())->setSeoDescription($wizard->page->getSeoDescription())->save(); if (!$this->_getParam('revision')) { $revision->setApproved(true); } if (!$revision->isApproved()) { $revision->warnLiveVersion(); } else { $revision->approve(); } } $wizard->unsetAll(); $this->_helper->redirector->gotoSimple('wizard-done', 'page'); } $this->view->revision = $revision; $this->view->messages = Sanmax_MessageStack::getInstance('SxCms_Page'); }
public function addRevision(SxCms_Page_Revision $rev) { $this->revisions[$rev->getId()] = $rev; return $this; }
public function getPageRevisions($pageId, $language = 'nl') { $db = Zend_Registry::get('db'); $select = $db->select()->from(array('p' => 'Page'), array('*'))->join(array('t' => 'PageRev'), 'p.page_id = t.page_id')->where('p.page_id = ?', $pageId)->where('t.language = ?', $language)->order('t.revision_id DESC'); $stmt = $db->query($select); $result = $stmt->fetchAll(); $revisions = array(); foreach ($result as $revision) { $rev = new SxCms_Page_Revision(); $rev->setFromArray($revision); $revisions[$rev->getId()] = $rev; } return $revisions; }