if (count($outSetIssues) > 0) { $outSetIssue = $outSetIssues[0]; } else { $outSetIssue = new OutputSettingsIssue(); $outSetIssue->setOutput($outputService->findByName('Web')); $outSetIssue->setIssue($issueService->getById($issueObj->getIssueId())); $newOutputSetting = true; } $outSetIssue->setThemePath($syncRsc->getThemePath($f_theme_id)); if ($f_issue_template_id != null && $f_issue_template_id != '0') { $outSetIssue->setFrontPage($syncRsc->getResource('frontPage', $f_issue_template_id)); } else { $outSetIssue->setFrontPage(null); } if ($f_section_template_id != null && $f_section_template_id != '0') { $outSetIssue->setSectionPage($syncRsc->getResource('sectionPage', $f_section_template_id)); } else { $outSetIssue->setSectionPage(null); } if ($f_article_template_id != null && $f_article_template_id != '0') { $outSetIssue->setArticlePage($syncRsc->getResource('articlePage', $f_article_template_id)); } else { $outSetIssue->setArticlePage(null); } //@New theme management if ($changed) { } else { $errMsg = $translator->trans("Could not save the changes to the issue.", array(), 'issues'); camp_html_add_msg($errMsg); exit; }
/** * Sets the theme for all issues of the given publication * * @param $publicationId * * @param $theme * * @return bool */ public function setIssuesTheme($publicationId, Newscoop\Entity\Theme $theme, Newscoop\Entity\Theme $publicationTheme) { global $g_ado_db; $sql = $this->buildIssuesQuery($publicationId, $theme->getPath()); $issuesList = $g_ado_db->GetAll($sql); foreach ($issuesList as $issueData) { $issue = $this->getIssueService()->findById($issueData['id']); if (is_null($issue)) { continue; } $outSetIssues = $this->getOutputSettingIssueService()->findByIssue($issueData['id']); $newOutputSetting = false; if (count($outSetIssues) > 0) { $outSetIssue = $outSetIssues[0]; } else { $outSetIssue = new OutputSettingsIssue(); $outSetIssue->setOutput($this->getOutputService()->findByName('Web')); $outSetIssue->setIssue($issue); $newOutputSetting = true; } $outTh = $this->getThemeService()->getOutputSettings($publicationTheme); if (count($outTh) == 0) { return false; } $outTh = array_shift($outTh); $outSetIssue->setThemePath($this->getSyncResourceService()->getThemePath($publicationTheme->getPath())); if (!empty($issueData['issue_template'])) { $rscPath = $publicationTheme->getPath() . basename($issueData['issue_template']); if ($rscPath != $outTh->getFrontPage()->getPath()) { $outSetIssue->setFrontPage($this->getSyncResourceService()->getResource('frontPage', $rscPath)); } else { $outSetIssue->setFrontPage(null); } } else { $outSetIssue->setFrontPage(null); } if (!empty($issueData['section_template'])) { $rscPath = $publicationTheme->getPath() . basename($issueData['section_template']); if ($rscPath != $outTh->getSectionPage()->getPath()) { $outSetIssue->setSectionPage($this->getSyncResourceService()->getResource('sectionPage', $rscPath)); } else { $outSetIssue->setSectionPage(null); } } else { $outSetIssue->setSectionPage(null); } if (!empty($issueData['article_template'])) { $rscPath = $publicationTheme->getPath() . basename($issueData['article_template']); if ($rscPath != $outTh->getArticlePage()->getPath()) { $outSetIssue->setArticlePage($this->getSyncResourceService()->getResource('articlePage', $rscPath)); } else { $outSetIssue->setArticlePage(null); } } else { $outSetIssue->setArticlePage(null); } if ($newOutputSetting) { $this->getOutputSettingIssueService()->insert($outSetIssue); } else { $this->getOutputSettingIssueService()->update($outSetIssue); } } }
$issueService = $resourceId->getService(IIssueService::NAME); /* @var $issueService \Newscoop\Service\Implementation\IssueServiceDoctrine */ $outputService = $resourceId->getService(IOutputService::NAME); $syncRsc = $resourceId->getService(ISyncResourceService::NAME); $outputIssueSettings = current($outputSettingIssueService->findByIssue($issueObj->getIssueId())); /* @var $outputIssueSettings \Newscoop\Entity\Output\OutputSettingsIssue */ $publicationThemes = $themeManagementService->getThemes($publicationObj->getPublicationId()); if (!$outputIssueSettings) { if (count($publicationThemes) > 0) { $themePath = $publicationThemes[0]->getPath(); $outputIssueSettings = new OutputSettingsIssue(); $outputIssueSettings->setOutput($outputService->findByName('Web')); $outputIssueSettings->setIssue($issueService->getById($issueObj->getIssueId())); $outputIssueSettings->setThemePath($syncRsc->getThemePath($themePath)); $outputIssueSettings->setFrontPage(null); $outputIssueSettings->setSectionPage(null); $outputIssueSettings->setArticlePage(null); $outputSettingIssueService->insert($outputIssueSettings); } else { $errorStr = $translator->trans('This issue cannot be previewed. Please make sure the publication has a theme assigned.', array(), 'issues'); camp_html_display_error($errorStr, null, true); } } else { $themePath = $outputIssueSettings->getThemePath()->getPath(); } $frontPage = $outputIssueSettings->getFrontPage(); if (is_null($frontPage)) { foreach ($publicationThemes as $publicationTheme) { if ($publicationTheme->getPath() == $themePath) { $themeOutSettings = $themeManagementService->findOutputSetting($publicationTheme, $outputService->findByName('Web')); $frontPage = $themeOutSettings->getFrontPage();
$f_theme_id = $publicationThemes[0]->getPath(); } $issueObj = new Issue($f_publication_id, $f_language_id, $f_issue_number); $outSetIssues = $outputSettingIssueService->findByIssue($issueObj->getIssueId()); $newOutputSetting = false; if (count($outSetIssues) > 0) { $outSetIssue = $outSetIssues[0]; } else { $outSetIssue = new OutputSettingsIssue(); $outSetIssue->setOutput($outputService->findByName('Web')); $outSetIssue->setIssue($issueService->getById($issueObj->getIssueId())); $newOutputSetting = true; } $outSetIssue->setThemePath($syncRsc->getThemePath($f_theme_id)); $outSetIssue->setFrontPage(null); $outSetIssue->setSectionPage(null); $outSetIssue->setArticlePage(null); if (SaaS::singleton()->hasPermission('ManageIssueTemplates')) { if ($newOutputSetting) { $outputSettingIssueService->insert($outSetIssue); } else { $outputSettingIssueService->update($outSetIssue); } } //end to add default theme } else { $f_theme_id = null; } if ($created) { camp_html_add_msg(getGS("Issue created."), "ok"); camp_html_goto_page("/{$ADMIN}/issues/edit.php?Pub={$f_publication_id}&Issue={$f_issue_number}&Language={$f_language_id}");
public function setSectionPage(\Newscoop\Entity\Resource $sectionPage = NULL) { $this->__load(); return parent::setSectionPage($sectionPage); }