コード例 #1
0
ファイル: do_edit.php プロジェクト: alvsgithub/Newscoop
    $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;
}
// The tricky part - language ID and URL name must be unique.
$conflictingIssues = Issue::GetIssues($f_publication_id, $f_new_language_id, null, $f_url_name, null, false, null, true);
$conflictingIssue = array_pop($conflictingIssues);
// If it conflicts with another issue
if ($errorMsg = camp_is_issue_conflicting($f_publication_id, $f_issue_number, $f_new_language_id, $f_url_name, true)) {
コード例 #2
0
ファイル: ThemeUpgrade.php プロジェクト: nidzix/Newscoop
 /**
  * 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);
         }
     }
 }
コード例 #3
0
ファイル: preview.php プロジェクト: sourcefabric/newscoop
/* @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();
        }
コード例 #4
0
ファイル: do_add_new.php プロジェクト: nidzix/Newscoop
    }
    $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}");
} else {
 public function setArticlePage(\Newscoop\Entity\Resource $articlePage = NULL)
 {
     $this->__load();
     return parent::setArticlePage($articlePage);
 }