1
0
mirror of https://github.com/til-schneider/slim-wiki.git synced 2025-03-15 06:49:37 +01:00

Faking "create new article" in demo mode

This commit is contained in:
til-schneider 2016-02-02 14:46:04 +01:00
parent c5ec51530c
commit 7617b353f7
2 changed files with 24 additions and 5 deletions

View File

@ -68,10 +68,19 @@ class EditorService {
$articleFilename .= '.md';
}
$markdownText = $pageTitle . "\n" . str_repeat('=', strlen($pageTitle)) . "\n\n"
. $this->context->getI18n()['createArticle.content'];
$markdownText = $this->getNewArticleMarkdown($pageTitle);
return $this->saveArticle($articleFilename, $markdownText);
$config = $this->context->getConfig();
if ($config['demoMode']) {
return $this->previewArticle($articleFilename, $markdownText);
} else {
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`

View File

@ -106,7 +106,7 @@ class Main {
if ($fatalErrorMessage != null) {
$fatalErrorMessage = $this->context->getI18n()['error.editingArticleFailed'] . '<br/>' . $fatalErrorMessage;
$mode = 'error';
} else if (! $renderService->articleExists($articleFilename)) {
} else if (! $renderService->articleExists($articleFilename) && ! $config['demoMode']) {
$mode = 'createArticle';
$showCreateUserButton = false;
}
@ -131,7 +131,17 @@ class Main {
$data['articleFilename'] = $articleFilename;
if ($mode == 'view' || $mode == 'edit') {
$articleMarkdown = file_get_contents($this->context->getArticleBaseDir() . $articleFilename);
if ($renderService->articleExists($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['articleHtml'] = $renderService->renderMarkdown($articleMarkdown, $mode == 'edit');
}