Файл: admin/modules/pages.php
Строк: 246
<?php
defined('CAFE') or die (header ('Location: /'));
$_POST = clear_input ($_POST);
$_GET  = clear_input ($_GET);
check_error ();
// если ошибок нет, выполняем нужные операции
if (empty ($error)) {
    // сохраняем позиции страниц в меню
    if ($_POST['save_position']) {
        $menu_item_count = count ($_POST['id']); // определяем количество пунктов меню
        // для каждого пункта заносим номер позиции в БД
        for ($i = 0; $i <= $menu_item_count; $i++) {
            $id = $_POST['id'][$i];
            $position = $_POST['position'][$i];
            $update = "UPDATE `" . DB_PREFIX . "_pages` SET `position` = '$position' WHERE `id` = '$id'";
            make_query ($update, 'pos');
        }
    }
    // добавляем новую страницу
    if (isset($_POST['add'])) {
        clear_html ($_POST, array ($_POST['text']));
        translit   ($_POST['url'], $_POST['title']);
        timestamp  ($_POST['date']);
        $add_pages = "INSERT `" . DB_PREFIX . "_pages` (
            `date`,
            `url`, 
            `title`,
            `text`,
            `keywords`,
            `description`,
            `pid`) 
        VALUES ( 
            '" . $date . "', 
            '" . $url . "',  
            '" . $_POST['title'] . "', 
            '" . $_POST['text'] . "',
            '" . $_POST['keywords'] . "',
            '" . $_POST['description'] . "',
            '" . $_POST['pid'] . "'
            )";
        make_query ($add_pages, 'add');
    }
    // сохраняем измененную страницу
    if (isset($_POST['update'])) {
        clear_html ($_POST, array ($_POST['text']));
        translit   ($_POST['url'], $_POST['title']);
        timestamp  ($_POST['date']);
        $update_pages = "UPDATE `" . DB_PREFIX . "_pages` SET
            `date`        = '" . $date . "', 
            `url`         = '" . $url . "', 
            `title`       = '" . $_POST['title'] . "', 
            `text`        = '" . $_POST['text'] . "',
            `keywords`    = '" . $_POST['keywords'] . "', 
            `description` = '" . $_POST['description'] . "',
            `pid`         = '" . $_POST['pid'] . "' 
        WHERE `id`        = '" . $_POST['id'] . "'";
        make_query ($update_pages, 'upd');
    }
    // удаление страницы
    if ($action == 'delete') terminator ();
}
?>
    <div class="module-menu">
        <a href="/admin/index.php?section=pages&action=list" title="Список созданных страниц">Список страниц</a>
        <a href="/admin/index.php?section=pages&action=add&editor=1"  title="Добавить новую страницу">Добавить новую страницу</a>
    </div>
    <div class="module-messages">
        <?php
        print_message ();
        if (!empty ($error)) print_error ($error);
        ?>
    </div>
    <div class="module-content">
    <?php
    // выводим список страниц
    if (empty($action) || $action == 'list') {
    ?>
        <p class="section-title">Список страниц</p>
<?php
        page_limit ('15');// высчитываем начальную и конечную запись для вывода
        // поля разрешенные для сортировки
        (!in_array ($_GET['order'], array ('date', 'title', 'position'))) ? $order = 'position' : $order = $_GET['order'];
        $page_list = mysql_query ("SELECT * FROM `" . DB_PREFIX . "_pages` ORDER BY `" . $order . "` LIMIT " . $start_page . ", " . $end_page);
        // если еще не создана ни одна страница, выводим сообщение
        if (mysql_num_rows ($page_list) < '1') {
            echo '<p style="margin-right:20px">Не создано ни одной страницы. Вы можете сделать это 
            прямо сейчас. <a href="/admin/index.php?section=pages&action=add&editor=1">Создать страницу?</a></p>';
        } else {
?>
        <p>
            Сортировка: 
            <a href="/admin/index.php?section=pages&action=list&order=date">по дате</a> 
            <a href="/admin/index.php?section=pages&action=list&order=title">по алфавиту</a> 
            <a href="/admin/index.php?section=pages&action=list&order=position">без сортировки</a>
        </p>
        
        <div class="item-list">
            <script type="text/javascript">
                function position(change,name){
                    document.menu_list.elements["q"+name].value=(document.menu_list.elements["q"+name].value*1)+change
                    if(document.menu_list.elements["q"+name].value<0){
                        document.menu_list.elements["q"+name].value=0
                    }
                }
            </script>
            <form name="menu_list" action="/admin/index.php?section=pages" method="post">
<?php
            while ($rows = mysql_fetch_array ($page_list)) {
                $data[] = array (
                    'id'       => $rows['id'], 
                    'pid'      => $rows['pid'], 
                    'title'    => $rows['title'], 
                    'position' => $rows['position'], 
                    'url'      => $rows['url']);
            }
            // TODO переделать попроще
            $tree = array ();
            foreach ($data as $row) {
                $tree[(int) $row['pid']][] = $row;
            }
            function treePrint ($tree, $pid=0) {
                if (empty ($tree[$pid])) return;
                echo '                <ul>';
                foreach ($tree[$pid] as $k => $row) {
                    echo '
                    <li class="item-list-tree">
                        <div class="item-list-row">
                            <div class="item-list-title">
                                <a ';
                                if ($row['position'] < "1") {echo 'style="color:#aaa"';}
                                echo 'href="/admin/index.php?section=pages&action=view&id=' . $row['id'] . '">' . $row['title'] . '</a>
                            </div>
                            <div class="item-list-events">';
                                if ($_SESSION['status'] == '1') {
                                    echo '
                                <a href="/admin/index.php?section=pages&action=delete&id=' . $row['id'] . '">удалить</a> ';
                                }
                                echo '
                                <a href="/admin/index.php?section=pages&action=edit&editor=1&id=' . $row['id'] . '&pid=' . $row['pid'] . '">изменить</a>
                                <input type="hidden" name="id[]" value="' . $row['id'] . '">';
                                echo "<input class="item-list-number" type="button" value=" - " onclick="position(-1,'" . $row['id'] . "')">
                                <input class="item-list-number" id="q" . $row['id'] . "" name="position[]" type="text" value="" . $row['position'] . "">
                                <input class="item-list-number" type="button" value=" + " onclick="position(1,'" . $row['id'] . "')">
                            </div>
                        </div>";
                    if (isset ($tree[$row['id']]))
                        treePrint ($tree, $row['id']);
                    echo '
                    </li>';
                }
                echo '
                </ul>';
            }
            treePrint ($tree);
?>
                <p style="float:right"><input type="submit" name="save_position" value="сохранить"></p>
            </form>
<?
            // вывод пагинатора
            pager (ceil (mysql_num_rows (mysql_query ("SELECT id FROM `" . DB_PREFIX . "_pages`")) / $end_page));
        }
    }
// просмотр страницы
if ($action == 'view' && isset ($_GET['id']) && empty ($error)) {
    $view_pages = mysql_query ("SELECT * FROM `" . DB_PREFIX . "_pages` WHERE `id` = " . $_GET['id'] . " LIMIT 1");
    $view_row = mysql_fetch_array ($view_pages, MYSQL_ASSOC);
    echo '
    <a href="/admin/index.php?section=pages&action=delete&id=' . $view_row['id'] . '">удалить</a> 
    <a href="/admin/index.php?section=pages&action=edit&editor=1&id=' . $view_row['id'] . '">изменить</a> 
    <h1>' . $view_row['title'] . '</h1>
    <p>Дата размещения: ' . date ("j.m.Y H:i", $view_row['date']) . $view_row['text'];
}
// выводим форму добавления новой страницы, если выбрано добавление страницы или ее изменение
if (($action == 'add' || $action == 'edit') && empty ($error)) {
    // если выбрано изменение страницы, делаем дополнительный запрос
    if ($action == 'edit' && isset ($_GET['id']) && empty ($error)) {
        $sql_list = @mysql_query ("SELECT * FROM `" . DB_PREFIX . "_pages` WHERE `id` = " . $_GET['id'] . " LIMIT 1");
        $row = mysql_fetch_array ($sql_list, MYSQL_ASSOC);
    }
?>
        <div>
            <p class="section-title">Добавление новой страницы</p>
            <form action="/admin/index.php?section=pages" method="post">
                <p><input type="hidden" name="id"<?php if (isset ($row['id'])) {echo ' value="' . $row['id'] . '"';} ?>></p>
                <div>
                    <p class="form-title">Заголовок страницы: <br>
                    <input type="text" name="title" id="title" size="50"<?php if (isset ($row['title'])) {echo ' value="' . $row['title'] . '"';} ?>></p>
                    <p class="form-pid">Родительский раздел: <br>
                    <select size="1" name="pid">
                        <option selected value="0">/</option>
                        <?php
                        $sql_list_tree = mysql_query ("SELECT * FROM `" . DB_PREFIX . "_pages` ORDER BY `position`");
                        while ($treerows = mysql_fetch_array ($sql_list_tree)) {
                        $data[] = array (
                                'id'    => $treerows['id'], 
                                'pid'   => $treerows['pid'], 
                                'title' => $treerows['title']
                                );
                        }
                        $tree = array();
                        foreach ($data as $treerow) {
                            $tree[(int) $treerow['pid']][] = $treerow;
                        }
                        function treePrint ($tree, $pid=0) {
                            if (empty ($tree[$pid]))
                                return;
                            foreach ($tree[$pid] as $k => $treerow) {
                                if ($treerow['id'] != $_GET['id']) {
                                    echo '<option ';
                                    if ($_GET['pid'] == $treerow['id']) {echo 'selected ';}
                                    echo 'value="' . $treerow['id'] . '">' . $treerow['title'] . '</option>';
                                }
                                if (isset ($tree[$treerow['id']]))
                                    treePrint ($tree, $treerow['id']);
                            }
                            echo '</ul>';
                        }
                        treePrint($tree);
                        ?>
                    </select></p>
                </div>
                <p>Содержимое страницы:<br>
                <textarea name="text" cols=60 rows=10 id="editor"><?php echo $row['text']; ?></textarea></p>
                <script type="text/javascript">
                    var ckeditor = CKEDITOR.replace('editor', {
                        skin : 'office2003',
                        toolbar : [['Bold','Italic','Strike','-','Subscript','Superscript'],
                                  ['Undo','Redo'],
                                  ['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],
                                  ['JustifyLeft','JustifyCenter','JustifyRight'],
                                  ['Link','Unlink'],
                                  ['Maximize','ShowBlocks','Preview','Source'],'/',
                                  ['Format','Font','FontSize'],
                                  ['TextColor','BGColor'],
                                  ['Image','Table','HorizontalRule','Smiley','SpecialChar']]
                    });
                    AjexFileManager.init ( {
                        returnTo: 'ckeditor',
                        editor: ckeditor,
                        skin: 'light'
                    } );
                </script>
                <div id="fields">
                    <a style="cursor:pointer" 
                    onclick="if (document.getElementById ('addfields').style.display == 'none') {
                        document.getElementById ('addfields').style.display = 'block';
                        document.getElementById ('fields').style.display = 'none';
                    } else {
                        document.getElementById ('addfields').style.display = 'none';
                        document.getElementById ('fields').style.display = 'block';
                    }">Показать дополнительные поля</a>
                </div>
                <div style="display:none" id="addfields">
                    <a style="cursor:pointer" 
                    onclick="if (document.getElementById ('addfields').style.display == 'none') {
                        document.getElementById ('addfields').style.display = 'block';
                        document.getElementById ('fields').style.display = 'none';
                    } else {
                        document.getElementById ('addfields').style.display = 'none';
                        document.getElementById ('fields').style.display = 'block';
                    }">Скрыть дополнительные поля</a>
                    <p>Адрес страницы: <br>
                    <input type="text" name="url" id="url" size="60"<?php if (isset ($row['url'])) {echo ' value="' . $row['url'] . '"';} ?>> <a style="cursor:pointer" onclick="translit()"> автозаполнение</a></p>
                    <p>Дата добавления: <br>
                    <input type="text" name="date"<?php if (isset ($row['date'])) {echo ' value="' . date('H:i:s d.m.Y', $row['date']) . '"';} else {echo ' value="' . date ('H:i:s d.m.Y') . '"';} ?>></p>
                    <p>Ключевые слова: <br>
                    <input type="text" name="keywords" size="60"<?php if (isset ($row['keywords'])) {echo ' value="' . $row['keywords'] . '"';} ?>></p>
                    <p>Описание страницы: <br>
                    <input type="text" name="description" size="60"<?php if (isset ($row['description'])) {echo ' value="' . $row['description'] . '"';} ?>></p>
                </div>
                <p>
                <?php
                ($action == 'edit') ? $name="update" : $name="add";
                echo '<input type="submit" name="' . $name . '" value="сохранить">';
                ?>
                </p>
            </form>
        </div>
<?php
    }
?>
        </div>