Skip to content

Commit eea5684

Browse files
committed
Page save check if backup (revisions) folder is writable, check if start template exists.
Fix for missing separator for backup file path #141 (comment)
1 parent f9a9d97 commit eea5684

File tree

1 file changed

+25
-7
lines changed

1 file changed

+25
-7
lines changed

admin/controller/editor/editor.php

+25-7
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ private function backup($page) {
248248
$base = str_replace('/admin', '', PUBLIC_THEME_PATH) . 'themes/' . $this->getTheme() . '/';
249249
$content = preg_replace('/<base(.*)href=["\'](.*?)["\'](.*?)>/', '<base$1href="' . $base . '"$3>', $content);
250250

251-
return file_put_contents($backupFolder . $backupName, $content);
251+
return @file_put_contents($backupFolder . $backupName, $content);
252252
}
253253
}
254254

@@ -517,7 +517,16 @@ function save() {
517517
$themeFolder = $this->getThemeFolder();
518518

519519
if ($startTemplateUrl) {
520-
$html = file_get_contents($themeFolder . DS . $startTemplateUrl);
520+
$startTemplate = $themeFolder . DS . $startTemplateUrl;
521+
522+
if (file_exists($startTemplate)) {
523+
if (! ($html = @file_get_contents($startTemplate)) ) {
524+
$text .= sprintf(__('%s is not readable!'), $startTemplate);
525+
}
526+
} else {
527+
$text .= sprintf(__('%s does not exist!'), $startTemplate);
528+
}
529+
521530
$html = preg_replace('@<base href[^>]+>@', '<base href="' . $baseUrl . '">', $html);
522531
}
523532

@@ -538,10 +547,17 @@ function save() {
538547
}
539548

540549
if (! $startTemplateUrl) {
541-
if ($this->backup($file)) {
550+
$backupFolder = $themeFolder . DS . 'backup' . DS;
551+
552+
if (is_writable($backupFolder)) {
553+
if ($this->backup($file)) {
554+
} else {
555+
$success = false;
556+
$text .= __('Error saving revision!') . "\n";
557+
}
542558
} else {
543559
$success = false;
544-
$text .= __('Error saving backup!') . "\n";
560+
$text .= sprintf(__('%s folder not writable!'), $theme . DS . 'backup') . "\n";
545561
}
546562
}
547563

@@ -573,7 +589,7 @@ function save() {
573589
}
574590

575591
if ($html) {
576-
if (file_put_contents($fileName, $html)) {
592+
if (@file_put_contents($fileName, $html)) {
577593
$globalOptions = [];
578594
//keep css inline for email templates
579595
if (strpos($fileName, '/email/') !== false) {
@@ -586,11 +602,13 @@ function save() {
586602
$text .= __('File saved!');
587603
} else {
588604
if (! is_writable($fileName)) {
589-
$text .= sprintf(__('%s is not writable!'), $fileName);
605+
$text .= sprintf(__('%s is not writable!'), $file);
606+
} else {
607+
$text .= sprintf(__('Error saving %s!'), $file);
590608
}
591609
}
592610
} else {
593-
$text .= sprintf(__('Page html empty!'), $fileName);
611+
$text .= __('Page html empty!');
594612
}
595613

596614
$cssFile = DS . 'css' . DS . 'custom.css';

0 commit comments

Comments
 (0)