public function edit($pageArray) { $pageId = isset($pageArray['id']) ? $pageArray['id'] : $pageArray['page_id']; if (!$pageId) { throw new Digitalus_Exception($this->view->getTranslation('Invalid Page: No key found for id')); } else { unset($pageArray['page_id']); $name = ''; if (isset($pageArray['name'])) { $name = $pageArray['name']; unset($pageArray['name']); } //save the page details $currentPage = $this->find($pageId)->current(); if (!$currentPage) { throw new Digitalus_Exception($this->view->getTranslation('Could not load page')); } else { $currentPage->name = $name; $currentPage->save(); } //page language if (isset($pageArray['language']) && !empty($pageArray['language'])) { $language = $pageArray['language']; } else { $siteSettings = new Model_SiteSettings(); $language = $this->getDefaultLanguage(); } // page label $label = null; if (isset($pageArray['label']) && !empty($pageArray['label'])) { $label = $pageArray['label']; } // page headline $headline = null; if (isset($pageArray['headline']) && !empty($pageArray['headline'])) { $headline = $pageArray['headline']; } //update the content $pageNode = new Model_PageNode(); if (count($pageArray) > 0) { foreach ($pageArray as $node => $content) { if (!in_array($node, $this->_ignoredFields) && !empty($content) && '' != $content) { $pageNode->set($pageId, $node, $content, $language, $label, $headline); } } } $this->_flushCache(); return $this->open($pageId, $language); } }