示例#1
0
 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);
     }
 }