Подтвердить что ты не робот

"CMS" для одностраничного сайта?

Я собираюсь создать сайт для клиента, который состоит только из одной страницы. На странице есть только один div с редактируемым контентом; остальные могут быть жестко закодированы в файле шаблона.

Клиент хочет поведение, подобное CMS: вход в систему на сайте и редактирование одной части текста (желательно встроенной). Я обычно создаю большие сайты с Drupal, но это было бы излишним для чего-то простого.

Кто-нибудь знает о хорошем (с открытым исходным кодом) решении для такого сайта?

4b9b3361

Ответ 1

Хорошо, вот моя версия CMS. Вы можете найти все мои файлы здесь в zip-архиве: http://chechi.be/midas/simple-cms.zip.

Это страница администратора:

<?php session_start();?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>CMS</title>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>
<div id="main">
<h1>CMS</h1>
<?php
if (empty($_POST) && isset($_GET['action'])) {
        $action = $_GET['action'];
        switch ($action) {
            case 'logout':
                session_unset();
                session_destroy();
                break;
    }
}
if (!isset($_SESSION['user'])) {
    $user = '';
    $pass = '';
    if (isset($_POST['login'])) {
        $user = strtolower(trim($_POST['user']));
        $pass = $_POST['pass'];
        $errors = array();
        if ($user == '' || $user != 'admin') {
            $errors['user'] = '';
        }
        if ($pass == '' || $pass != '123456') {
            $errors['pass'] = '';
        }
        if (empty($errors)) {
            $_SESSION['user'] = $user;
        } else {
            echo '<p class="error">Please fill in your correct ';
            if (isset($errors['user']))
                echo 'username';
            if (count($errors) == 2)
                echo ' and ';
            if (isset($errors['pass']))
                echo 'password';
            echo '.</p>', "\n";
        }
    }
}
if (isset($_SESSION['user'])) {
    $user = $_SESSION['user'];
?>
<div id="headertext">
    <p class="l">You are logged in as <strong><?php echo $user?></strong>.</p>
    <p class="r"><a href="?action=logout">Logout</a></p>
</div>
<?php
    if (isset($_POST['edit'])) {
        if (file_put_contents('homecontent.txt', $_POST['homecontent']) !== FALSE)
            echo '<p class="succes">Your changes are saved.</p>', "\n";
    }
    $homecontent = file_get_contents('homecontent.txt');
?>
<form method="post" action="">
    <p>Here you can edit your homepage text:</p>
    <textarea name="homecontent" id="homecontent" rows="20" cols="55"><?php echo $homecontent?></textarea>
    <p><button type="submit" name="edit">Save changes</button></p>
</form>
<?php } else {?>
<form method="post" action="" id="login">
    <p>
        <label for="user">Username:</label><input type="text" name="user" id="user" value="<?php echo $user?>" />
    </p>
    <p>
        <label for="pass">Password:</label><input type="password" name="pass" id="pass" value="<?php echo $pass?>" />
    </p>
    <p>
        <button type="submit" name="login">Login</button>
    </p>
</form>
<?php }?>
</div>
</body>
</html>

Ответ 2

Это не должно быть большой задачей, чтобы закодировать это с нуля. Все, что вам нужно, это admin.php с некоторой аутентификацией и одной формой. Я приурочил себя и сделал это через 7 минут:

Вход и выход

if(isset($_GET['login'])) {    
    // Check user credentials from db or hardcoded variables
    if($_POST['username'] == 'user123' && $_POST['password'] == 'pass123') {
        $_SESSION['logged'] = true;
    } else {
        $loginerror = 'Invalid credentials';
    }
}

if(isset($_GET['logout'])) {
    $_SESSION = array();
    session_destroy();
}

Форма входа

if(!isset($_SESSION['logged']) || $_SESSION['logged'] !== true): ?>
    <form method="post" action="admin.php?login">
        <?php if(isset($loginerror)) echo '<p>'.$loginerror.'</p>'; ?>
        <input type="username" name="username" value="<?php isset($_POST['username']) echo $_POST['username']; ?>" />
        <input type="password" name="password" />
        <input type="submit" value="Login" />
    </form>
<?php endif;

Фактическая область администрирования

if(isset($_SESSION['logged']) && $_SESSION['logged'] === true):
    // Save contents
    if(isset($_GET['save'])) {
        file_put_contents('contents.txt', $_POST['contents']);
    }    
    // Get contents from db or file
    $contents = file_get_contents('contents.txt');
    ?>
    <a href="admin.php?logout">Logout</a>
    <form method="post" action="admin.php?save">
        <textarea name="contents"><?php echo $contents; ?></textarea>
        <input type="submit" value="Save" />
    </form>
<?php endif;

Просто соедините эти сегменты, чтобы получить полный код. Этот фрагмент кода имеет функцию аутентификации, выхода из системы и сохраняет содержимое текстового поля в файле. В качестве альтернативы вы можете изменить это, чтобы пользователи и контент находились в базе данных.

Лично мне понадобилось больше времени, чтобы найти подходящую облегченную CMS и настроить ее для работы.

Ответ 3

Мне очень нравится Zimplit для проектов, состоящих из "очень немногих страниц". У них есть блестящая концепция действительно минималистического WYSIWG-редактора, который редактирует всю страницу (а не только содержимое). И никакой базы данных, или другой трещины.

Я обнаружил, что многие клиенты могут действительно понять идею сразу.

Ответ 4

Попробуйте CushyCMS.

Ответ 5

Используйте Wordpress и создавайте простую тему. Wordpress также имеет историю статей, поэтому легко вернуться, если ошибка сделана и т.д.

Ответ 6

Мне приходят два решения:

  • WonderCMS - это самая маленькая CMS, которую вы можете себе представить (это всего лишь загрузка 11 КБ). Его концепция похожа на то, что некоторые другие опубликовали: просто логин, текстовое поле и некоторые минимальные дополнительные настройки. Вы также можете добавлять страницы и создавать простую навигацию, но это легко предотвратить.
  • OneFileCMS на самом деле не CMS (но даже меньше WonderCMS: 6KB). Это онлайновый файловый менеджер с простым текстовым редактором, который состоит из одного файла PHP. Таким образом, вы можете создать свой "шаблон" и включить один файл в подпапку, содержащую редактируемый контент. Просто поместите OneFileCMS в эту папку, и он может обрабатывать логин и редактирование.

Ответ 7

Если вам нужна простая простая страница CMS с использованием текстового файла, я бы рекомендовал BonoboCMS. Это в основном то, о чем вы говорили, и оно поддерживает Markdown.

Ответ 8

Вот один, он идеально подходит для небольших сайтов: Одна страница CMS.

Я использовал его уже много лет. WYSIWYG основан на TinyCMS, но я использую nicedit.

Ответ 9

Посмотрите TiddlyWiki. Я не уверен, что у этого есть логин и т.д., Но у него есть все основные функции небольшой CMS.

Ответ 10

Один файл CMS? AutoCMS - это cms с этим предложением, только 10kb и два файла, index.php(вызов класса) и autocms.php(php class), но если вы можете поместить содержимое index.php в autocms.php и получить один файл cms, очень быстро с минимальными требованиями, чтобы получить место в Интернете, попробуйте opensoure www.ventics.com/autocms, лицензию BSD, чтобы учиться и наслаждаться

Ответ 11

Попробуйте Atomic CMS, которая является бесплатной и открытой исходной системой управления контентом ASP.NET MVC. Это идеальное решение для сайтов с одной страницей, прост в установке, поддержке и понимании... Atomic CMS - система управления контентом

Ответ 14

Мне нравится Wordpress. Это технически "блоговое" программное обеспечение, но его очень легко распространить на красивую небольшую CMS.

Ответ 15

Это легко. Вы можете закодировать один через 10 минут (или спросить меня).

Просто страница с и администратором для редактирования text.txt.