Exemplo n.º 1
0
 /**
  * Generate a page manifest.
  *
  * @param integer $pageId
  * @return array | false
  */
 protected function _generateManifest($pageId)
 {
     $page = new Object_Page($pageId);
     if (!$page->getId()) {
         return false;
     }
     $pageVersion = $page->getMostLatestApprovedVersionAsActive();
     $version = $pageVersion ? $pageVersion->version : false;
     $cloudFileContainer = $pageVersion ? $pageVersion->cloud_file_container : $page->cloud_file_container;
     if ($cloudFileContainer) {
         $files = $page->getCloudFilePaths($version, $cloudFileContainer);
     } else {
         // Get the files
         $files = $this->_folderFilePaths($page->getStaticContentFolder() . DS . $page->page_id, $page->page_id . '.html');
     }
     // Prepare the pdf templates
     $pdfTemplateRows = Repo_PagePdfTemplate::getInstance()->getPagePdfTemplates($page->getId());
     $pdfTemplates = array();
     if ($pdfTemplateRows && $pdfTemplateRows->count()) {
         foreach ($pdfTemplateRows as $_tRow) {
             $_template = new Object_PdfTemplate($_tRow->id);
             $pdfTemplates[] = array('id' => $_template->getId(), 'name' => $_template->name, 'tokens' => $_template->getTokens(), 'preview' => $_template->getManifestPreviewFilePath());
         }
     }
     return array('version' => $pageVersion ? $pageVersion->version : $page->version, 'id' => $page->page_id, 'uid' => $page->id, 'legalPageUid' => (int) $page->legal_page_id > 0 ? (int) $page->legal_page_id : '', 'linkedPageUids' => $page->getManifestPageGroupPages(), 'title' => $page->name, 'fileType' => 'htmlEdge', 'type' => 'html', 'typename' => $page->type, 'baseHost' => $page->getBaseHost($cloudFileContainer), 'baseUri' => $page->getBaseUrl($version), 'hash' => Manager_Page_StaticContent::getPageFolderName($page->page_id, $version), 'instructions' => $page->description ? $page->description : '', 'description' => $page->internal_desc ? $page->internal_desc : '', 'navigation' => array(), 'language' => $page->page_language, 'defaultPath' => $page->page_id . '.html', 'width' => $page->getWidth(), 'height' => $page->getHeight(), 'transcript' => $page->transcript ? $page->transcript : '', 'audio' => $page->audio_url, 'filePaths' => $files, 'navigation' => $page->navigation ? unserialize($page->navigation) : array(), 'content_type' => $page->content_type ? Repo_Page::$contentTypeLabels[$page->content_type] : Repo_Page::$contentTypeLabels[Repo_Page::PAGE_CONTENT_TYPE_DEFAULT], 'editor_behaviors' => $page->editor_behaviors ? $page->editor_behaviors : '', 'pdf_templates' => $pdfTemplates, 'tags' => $page->getTags());
 }
Exemplo n.º 2
0
 /**
  * Page detail page: edit/delete functionality.
  *
  * It is the central place for a page object.
  */
 public function pageDetailAction()
 {
     $id = $this->_request->getParam('id');
     $page = new Object_Page($id);
     $pageId = $page->getId();
     if (empty($pageId)) {
         // No page defined, redirec to list page.
         $this->_redirect('/admin/client/page');
         return false;
     }
     // Whenever a page is visited, refresh the thumb.
     $page->refreshThumb();
     $form = new Form_Admin_Client_Page(false, array('page' => $page));
     // Check for page update
     if ($this->_request->isPost()) {
         $params = $this->_request->getPost();
         if ($params['form-object-tag-list']) {
             Repo_TagEntity::getInstance()->removeEntityTags($id, 'page');
             $tags = Zend_Json::decode($params['form-object-tag-list']);
             if (!empty($tags[0])) {
                 Repo_TagEntity::getInstance()->addEntityTags($page->client_id, $tags, 'page', $id);
                 $this->view->updateMessage = "Tags saved";
             }
         } else {
             if ($form->isValid($params)) {
                 // Update page if necessary
                 $form->updatePage($page);
                 $form->updatePageNavigation($page);
                 $form->setPage($page);
                 $form->updateStaticContent($pageId, true);
             } else {
                 $form->populate($params);
             }
         }
     }
     $this->view->lang = $page->getPageLanguage();
     $this->view->page = $page;
     $this->view->client = new Object_Client($page->client_id);
     $this->view->form = $form;
     // Survey ad page questions
     $this->view->surveyQuestions = Repo_Survey::getInstance()->getSurveyQuestions();
     $this->view->pageQuestions = Repo_PageQuestion::getInstance()->getPageQuestionGroup($pageId);
     // Extra js for file upload
     $this->view->headScript()->prependFile('/js/libraries/jquery/jquery.fileupload.js');
     $this->view->headScript()->prependFile('/js/libraries/jquery/jquery.iframe-transport.js');
     $this->view->headLink()->appendStylesheet('/css/jquery.fileupload.css');
     // get tags
     $this->view->tagTree = Repo_Tag::getInstance()->getTagTree($page->client_id);
     $this->view->assetTags = Manager_Tag_Helper::getInstance()->getTagIds("page", $id);
     $this->view->assetTagNames = $page->getTags();
     //Tag management js
     $this->view->headScript()->prependFile('/js/managers/TagManager.js');
     // js for list sort and search
     $this->view->headScript()->prependFile('/js/libraries/list/list.min.js');
     // Page navigation
     $this->view->headScript()->prependFile('/js/PageNavigationUi.js');
     // Page pdf template
     $this->view->pagePdfTemplates = Repo_PagePdfTemplate::getInstance()->getPagePdfTemplates($pageId);
     // Page versions
     $this->view->pageVersions = Repo_PageVersion::getInstance()->getPageVersions($pageId);
 }