mirror of
https://github.com/til-schneider/slim-wiki.git
synced 2025-08-05 16:17:29 +02:00
Faking "create new article" in demo mode
This commit is contained in:
@@ -68,11 +68,20 @@ class EditorService {
|
|||||||
$articleFilename .= '.md';
|
$articleFilename .= '.md';
|
||||||
}
|
}
|
||||||
|
|
||||||
$markdownText = $pageTitle . "\n" . str_repeat('=', strlen($pageTitle)) . "\n\n"
|
$markdownText = $this->getNewArticleMarkdown($pageTitle);
|
||||||
. $this->context->getI18n()['createArticle.content'];
|
|
||||||
|
|
||||||
|
$config = $this->context->getConfig();
|
||||||
|
if ($config['demoMode']) {
|
||||||
|
return $this->previewArticle($articleFilename, $markdownText);
|
||||||
|
} else {
|
||||||
return $this->saveArticle($articleFilename, $markdownText);
|
return $this->saveArticle($articleFilename, $markdownText);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getNewArticleMarkdown($pageTitle) {
|
||||||
|
return $pageTitle . "\n" . str_repeat('=', strlen($pageTitle)) . "\n\n"
|
||||||
|
. $this->context->getI18n()['createArticle.content'];
|
||||||
|
}
|
||||||
|
|
||||||
// Used in demo-mode instead of `saveArticle`
|
// Used in demo-mode instead of `saveArticle`
|
||||||
public function previewArticle($articleFilename, $markdownText) {
|
public function previewArticle($articleFilename, $markdownText) {
|
||||||
|
@@ -106,7 +106,7 @@ class Main {
|
|||||||
if ($fatalErrorMessage != null) {
|
if ($fatalErrorMessage != null) {
|
||||||
$fatalErrorMessage = $this->context->getI18n()['error.editingArticleFailed'] . '<br/>' . $fatalErrorMessage;
|
$fatalErrorMessage = $this->context->getI18n()['error.editingArticleFailed'] . '<br/>' . $fatalErrorMessage;
|
||||||
$mode = 'error';
|
$mode = 'error';
|
||||||
} else if (! $renderService->articleExists($articleFilename)) {
|
} else if (! $renderService->articleExists($articleFilename) && ! $config['demoMode']) {
|
||||||
$mode = 'createArticle';
|
$mode = 'createArticle';
|
||||||
$showCreateUserButton = false;
|
$showCreateUserButton = false;
|
||||||
}
|
}
|
||||||
@@ -131,7 +131,17 @@ class Main {
|
|||||||
$data['articleFilename'] = $articleFilename;
|
$data['articleFilename'] = $articleFilename;
|
||||||
|
|
||||||
if ($mode == 'view' || $mode == 'edit') {
|
if ($mode == 'view' || $mode == 'edit') {
|
||||||
|
if ($renderService->articleExists($articleFilename)) {
|
||||||
$articleMarkdown = file_get_contents($this->context->getArticleBaseDir() . $articleFilename);
|
$articleMarkdown = file_get_contents($this->context->getArticleBaseDir() . $articleFilename);
|
||||||
|
} else if ($config['demoMode']) {
|
||||||
|
// Open a fake "new article" for demo mode
|
||||||
|
|
||||||
|
// We have no real page title here -> Create one from the file name
|
||||||
|
$pageTitle = str_replace('_', ' ', end($requestPathArray));
|
||||||
|
|
||||||
|
$editorService = $this->context->getEditorService();
|
||||||
|
$articleMarkdown = $editorService->getNewArticleMarkdown($pageTitle);
|
||||||
|
}
|
||||||
$data['articleMarkdown'] = $articleMarkdown;
|
$data['articleMarkdown'] = $articleMarkdown;
|
||||||
$data['articleHtml'] = $renderService->renderMarkdown($articleMarkdown, $mode == 'edit');
|
$data['articleHtml'] = $renderService->renderMarkdown($articleMarkdown, $mode == 'edit');
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user