/** * Save settings. */ function execute() { $plugin =& $this->plugin; $journalId = $this->journalId; $css = ''; // Header and footer colours $customThemeHeaderColour = $this->getData('customThemeHeaderColour'); $plugin->updateSetting($journalId, 'customThemeHeaderColour', $customThemeHeaderColour, 'string'); $css .= "#header {background-color: {$customThemeHeaderColour};}\n"; $css .= "#footer {background-color: {$customThemeHeaderColour};}\n"; $css .= "table.listing tr.fastTracked {background-color: {$customThemeHeaderColour};}\n"; // Link colours $customThemeLinkColour = $this->getData('customThemeLinkColour'); $plugin->updateSetting($journalId, 'customThemeLinkColour', $customThemeLinkColour, 'string'); $css .= "a {color: {$customThemeLinkColour};}\n"; $css .= "a:link {color: {$customThemeLinkColour};}\n"; $css .= "a:active {color: {$customThemeLinkColour};}\n"; $css .= "a:visited {color: {$customThemeLinkColour};}\n"; $css .= "a:hover {color: {$customThemeLinkColour};}\n"; $css .= "input.defaultButton {color: {$customThemeLinkColour};}\n"; // Background colours $customThemeBackgroundColour = $this->getData('customThemeBackgroundColour'); $plugin->updateSetting($journalId, 'customThemeBackgroundColour', $customThemeBackgroundColour, 'string'); $css .= "body {background-color: {$customThemeBackgroundColour};}\n"; $css .= "input.defaultButton {background-color: {$customThemeBackgroundColour};}\n"; // Foreground colours $customThemeForegroundColour = $this->getData('customThemeForegroundColour'); $plugin->updateSetting($journalId, 'customThemeForegroundColour', $customThemeForegroundColour, 'string'); $css .= "body {color: {$customThemeForegroundColour};}\n"; $css .= "input.defaultButton {color: {$customThemeForegroundColour};}\n"; import('classes.file.PublicFileManager'); $fileManager = new PublicFileManager(); $customThemePerJournal = $this->getData('customThemePerJournal'); if (!$customThemePerJournal && !$this->_canUsePluginPath()) { $customThemePerJournal = true; } $plugin->updateSetting($journalId, 'customThemePerJournal', $customThemePerJournal, 'boolean'); if ($customThemePerJournal) { $fileManager->writeJournalFile($journalId, $this->plugin->getStylesheetFilename(), $css); } else { $fileManager->writeFile(dirname(__FILE__) . '/' . $this->plugin->getStylesheetFilename(), $css); } }