16 import(
'lib.pkp.classes.plugins.ThemePlugin');
23 'https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700,700i|Spectral:400,400i,700,700i',
24 array(
'baseUrl' =>
''));
27 $this->
addStyle(
'app-css',
'resources/dist/app.min.css');
28 $this->
addStyle(
'less',
'resources/less/import.less');
31 $this->
addStyle(
'htmlGalley',
'templates/plugins/generic/htmlArticleGalley/css/default.css', array(
'contexts' =>
'htmlGalley'));
34 $this->
addScript(
'app-js',
'resources/dist/app.min.js');
40 $this->
addOption(
'sectionDescriptionSetting',
'FieldOptions', array(
41 'label' => __(
'plugins.themes.immersion.options.sectionDescription.label'),
42 'description' => __(
'plugins.themes.immersion.options.sectionDescription.description'),
47 'label' => __(
'plugins.themes.immersion.options.sectionDescription.disable'),
51 'label' => __(
'plugins.themes.immersion.options.sectionDescription.enable'),
56 $this->
addOption(
'journalDescription',
'FieldOptions', array(
57 'label' => __(
'plugins.themes.immersion.options.journalDescription.label'),
58 'description' => __(
'plugins.themes.immersion.options.journalDescription.description'),
63 'label' => __(
'plugins.themes.immersion.options.journalDescription.disable'),
67 'label' => __(
'plugins.themes.immersion.options.journalDescription.enable'),
72 $this->
addOption(
'journalDescriptionColour',
'FieldColor', array(
73 'label' => __(
'plugins.themes.immersion.options.journalDescriptionColour.label'),
74 'description' => __(
'plugins.themes.immersion.options.journalDescriptionColour.description'),
78 $this->
addOption(
'immersionAnnouncementsColor',
'FieldColor', array(
79 'label' => __(
'plugins.themes.immersion.announcements.colorPick'),
101 $this->
addStyle(
'spectrum',
'/resources/dist/spectrum-1.8.0.css', [
102 'contexts' =>
'backend-manageIssues',
104 $this->
addScript(
'spectrum',
'/resources/dist/spectrum-1.8.0.js', [
105 'contexts' =>
'backend-manageIssues',
114 return __(
'plugins.themes.immersion.name');
122 return __(
'plugins.themes.immersion.description');
147 $templateMgr = $args[0];
148 $template = $args[1];
151 if ($template !==
'frontend/pages/issue.tpl' && $template !==
'frontend/pages/indexJournal.tpl')
return false;
157 if ($template ===
'frontend/pages/indexJournal.tpl') {
158 $issue = $issueDao->getCurrent($journal->getId(),
true);
160 $issue = $templateMgr->get_template_vars(
'issue');
163 if (!$issue)
return false;
165 $publishedSubmissionsInSection = $templateMgr->get_template_vars(
'publishedSubmissions');
168 $immersionSectionColors = $issue->getData(
'immersionSectionColor');
170 $sections = $sectionDao->getByIssueId($issue->getId());
171 $lastSectionColor =
null;
174 $sectionDescriptionSetting = $this->
getOption(
'sectionDescriptionSetting');
178 $contextId = $context ? $context->getId() : 0;
179 $browseBySectionSettings = $pluginSettingsDAO->getPluginSettings($contextId,
'browsebysectionplugin');
182 foreach ($publishedSubmissionsInSection as $sectionId => $publishedArticlesBySection) {
183 foreach ($sections as $section) {
184 if ($section->getId() == $sectionId) {
186 $publishedSubmissionsInSection[$sectionId][
'section'] = $section;
187 $publishedSubmissionsInSection[$sectionId][
'sectionColor'] = $immersionSectionColors[$sectionId];
190 $isSectionDark =
false;
191 if ($immersionSectionColors[$sectionId] && $this->
isColourDark($immersionSectionColors[$sectionId])) {
192 $isSectionDark =
true;
194 $publishedSubmissionsInSection[$sectionId][
'isSectionDark'] = $isSectionDark;
197 if ($sectionDescriptionSetting ==
'enable' && $browseBySectionSettings[
'enabled'] && $section->getData(
'browseByDescription', $locale)) {
198 $publishedSubmissionsInSection[$sectionId][
'sectionDescription'] = $section->getData(
'browseByDescription', $locale);
202 if ($publishedSubmissionsInSection[$sectionId][
'articles'] && $immersionSectionColors[$sectionId]) {
203 $lastSectionColor = $immersionSectionColors[$sectionId];
209 $templateMgr->assign(array(
210 'publishedSubmissions' => $publishedSubmissionsInSection,
211 'lastSectionColor' => $lastSectionColor
226 $templateMgr = $args[0];
227 $template = $args[1];
229 if ($template !==
'frontend/pages/indexJournal.tpl')
return false;
235 $announcementsIntro = $journal->getLocalizedData(
'announcementsIntroduction');
236 $immersionAnnouncementsColor = $this->
getOption(
'immersionAnnouncementsColor');
238 $isAnnouncementDark =
false;
239 if ($immersionAnnouncementsColor && $this->
isColourDark($immersionAnnouncementsColor)) {
240 $isAnnouncementDark =
true;
243 $templateMgr->assign(array(
244 'announcementsIntroduction'=> $announcementsIntro,
245 'isAnnouncementDark' => $isAnnouncementDark,
246 'immersionAnnouncementsColor' => $immersionAnnouncementsColor
260 $templateMgr = $args[0];
265 if (!defined(
'SESSION_DISABLE_INIT')) {
269 $locales = $journal->getSupportedLocaleNames();
271 $locales =
$request->getSite()->getSupportedLocaleNames();
275 $loginUrl =
$request->url(
null,
'login',
'signIn');
280 $orcidImageUrl = $this->
getPluginPath() .
'/templates/images/orcid.png';
283 $templateMgr->assign(
'immersionHomepageImage', $journal->getLocalizedSetting(
'homepageImage'));
286 $templateMgr->assign(array(
287 'languageToggleLocales' => $locales,
288 'loginUrl' => $loginUrl,
289 'orcidImageUrl' => $orcidImageUrl
304 $templateMgr = $args[0];
305 $template = $args[1];
307 if ($template !=
"frontend/pages/indexJournal.tpl")
return false;
309 $journalDescriptionColour = $this->
getOption(
'journalDescriptionColour');
310 $isJournalDescriptionDark =
false;
311 if ($journalDescriptionColour && $this->
isColourDark($journalDescriptionColour)) {
312 $isJournalDescriptionDark =
true;
315 $templateMgr->assign(array(
316 'showJournalDescription' => $this->
getOption(
'journalDescription'),
317 'journalDescriptionColour' => $journalDescriptionColour,
318 'isJournalDescriptionDark' => $isJournalDescriptionDark
333 $fields[] =
'immersionSectionColor';
346 $issueForm = $args[0];
347 $issueForm->setData(
'immersionSectionColor', $issueForm->issue->getData(
'immersionSectionColor'));
360 $issueForm =& $args[0];
363 $issueForm->setData(
'immersionSectionColor',
$request->getUserVar(
'immersionSectionColor'));
377 $issueForm = $args[0];
387 $issue->setData(
'immersionSectionColor', $issueForm->getData(
'immersionSectionColor'));
390 $issueDao->updateObject($issue);
403 $issueForm = $args[0];
406 if ($issueForm->issue) {
410 $sections = $sectionDao->getByIssueId($issueForm->issue->getId());
414 $templateMgr->assign(
'sections', $sections);
426 $templateMgr = $args[0];
427 $template = $args[1];
431 if ($template !==
'plugins/plugins/generic/htmlArticleGalley/generic/htmlArticleGalley:display.tpl')
return false;
433 $articleArrays = $templateMgr->get_template_vars(
'article');
436 $boolEmbeddedCss =
false;
437 foreach ($articleArrays->getGalleys() as $galley) {
438 if ($galley->getFileType() ===
'text/html') {
439 $submissionFile = $galley->getFile();
442 import(
'lib.pkp.classes.submission.SubmissionFile');
443 $embeddableFiles = array_merge(
444 $submissionFileDao->getLatestRevisions($submissionFile->getSubmissionId(), SUBMISSION_FILE_PROOF),
445 $submissionFileDao->getLatestRevisionsByAssocId(ASSOC_TYPE_SUBMISSION_FILE, $submissionFile->getFileId(), $submissionFile->getSubmissionId(), SUBMISSION_FILE_DEPENDENT)
448 foreach ($embeddableFiles as $embeddableFile) {
449 if ($embeddableFile->getFileType() ==
'text/css') {
450 $boolEmbeddedCss =
true;
457 $templateMgr->assign(array(
458 'boolEmbeddedCss' => $boolEmbeddedCss,
459 'themePath' =>
$request->getBaseUrl() .
"/" . $this->getPluginPath(),