writeJournalFile() public méthode

Write a file to a journals's public directory.
public writeJournalFile ( $journalId, $destFileName, $contents ) : boolean
$journalId int
$destFileName string the destination file name
$contents string the contents to write to the file
Résultat boolean
 function handleArticleCoverNode(&$journal, &$coverNode, &$article, &$errors, $isCommandLine)
 {
     $errors = array();
     $hasErrors = false;
     $journalSupportedLocales = array_keys($journal->getSupportedLocaleNames());
     // => journal locales must be set up before
     $journalPrimaryLocale = $journal->getPrimaryLocale();
     $locale = $coverNode->getAttribute('locale');
     if ($locale == '') {
         $locale = $journalPrimaryLocale;
     } elseif (!in_array($locale, $journalSupportedLocales)) {
         $errors[] = array('plugins.importexport.native.import.error.coverLocaleUnsupported', array('issueTitle' => $issue->getIssueIdentification(), 'locale' => $locale));
         return false;
     }
     $article->setShowCoverPage(1, $locale);
     if ($node = $coverNode->getChildByName('altText')) {
         $article->setCoverPageAltText($node->getValue(), $locale);
     }
     if ($node = $coverNode->getChildByName('image')) {
         import('classes.file.PublicFileManager');
         $publicFileManager = new PublicFileManager();
         $newName = 'cover_article_' . $article->getId() . "_{$locale}" . '.';
         if ($href = $node->getChildByName('href')) {
             $url = $href->getAttribute('src');
             if ($isCommandLine || NativeImportDom::isAllowedMethod($url)) {
                 if ($isCommandLine && NativeImportDom::isRelativePath($url)) {
                     // The command-line tool does a chdir; we need to prepend the original pathname to relative paths so we're not looking in the wrong place.
                     $url = PWD . '/' . $url;
                 }
                 $originalName = basename($url);
                 $newName .= $publicFileManager->getExtension($originalName);
                 if (!$publicFileManager->copyJournalFile($journal->getId(), $url, $newName)) {
                     $errors[] = array('plugins.importexport.native.import.error.couldNotCopy', array('url' => $url));
                     $hasErrors = true;
                 }
                 $article->setFileName($newName, $locale);
                 $article->setOriginalFileName($publicFileManager->truncateFileName($originalName, 127), $locale);
             }
         }
         if ($embed = $node->getChildByName('embed')) {
             if (($type = $embed->getAttribute('encoding')) !== 'base64') {
                 $errors[] = array('plugins.importexport.native.import.error.unknownEncoding', array('type' => $type));
                 $hasErrors = true;
             } else {
                 $originalName = $embed->getAttribute('filename');
                 $newName .= $publicFileManager->getExtension($originalName);
                 $article->setFileName($newName, $locale);
                 $article->setOriginalFileName($publicFileManager->truncateFileName($originalName, 127), $locale);
                 if ($publicFileManager->writeJournalFile($journal->getId(), $newName, base64_decode($embed->getValue())) === false) {
                     $errors[] = array('plugins.importexport.native.import.error.couldNotWriteFile', array('originalName' => $originalName));
                     $hasErrors = true;
                 }
             }
         }
         // Store the image dimensions.
         list($width, $height) = getimagesize($publicFileManager->getJournalFilesPath($journal->getId()) . '/' . $newName);
         $article->setWidth($width, $locale);
         $article->setHeight($height, $locale);
     }
     if ($hasErrors) {
         return false;
     }
     return true;
 }
 /**
  * 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);
     }
 }