«CMS» для одностраничного сайта? [закрыто]

Да, однако вам нужно установить флаги Binding для поиска частных полей (если вы ищете члена вне экземпляра класса).

Необходимый флаг привязки: System. Reflection.BindingFlags.NonPublic

18
задан marcvangend 31 December 2009 в 13:25
поделиться

8 ответов

Хорошо, вот моя версия 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>
13
ответ дан 30 November 2019 в 06:39
поделиться

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

Login and logout

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();
}

Login form

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;

Actual admin area

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 и настроить ее на работу.

16
ответ дан 30 November 2019 в 06:39
поделиться

Try CushyCMS.

2
ответ дан 30 November 2019 в 06:39
поделиться

Посмотрите на TiddlyWiki . Я не уверен, есть ли в нем средства для входа в систему и т.д., но в нем есть все основные особенности маленькой CMS.

.
1
ответ дан 30 November 2019 в 06:39
поделиться

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

.
1
ответ дан 30 November 2019 в 06:39
поделиться

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

.
0
ответ дан 30 November 2019 в 06:39
поделиться

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

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

.
-1
ответ дан 30 November 2019 в 06:39
поделиться

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

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

5
ответ дан 30 November 2019 в 06:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: