Новичок
Покинул форум
Сообщений всего: 50
Дата рег-ции: Окт. 2010
Помог: 0 раз(а)
|
Давно интересуюсь, но из тех, что находил, одни либо слишком навороченные, либо недоделанные. Даже сложилось ощущение, что авторы начинают изучение php с написания такого движка, на середине понимают, что бд лучше и бросают, переходят на mysql. Я тоже решил попробовать, так как пока тоже новичок... не могу сказать, что получается сделать так как хотелось... вернее, пока есть только идея.
Хочу поделится, потому что может у кого-то есть похожие идеи, реализованные или в стадии. Пока получилось так:
файл config.php (пароли и имя пользователя)
Файл adminka.php
CODE ( htmlphp):
скопировать код в буфер обмена
<?php include 'config.php'; //Контрольный вопос $askss = array( 'В каком году основан город Москва?'=>'1147', 'Как называется наша планета?'=> 'Земля', 'Кто светит нам утром в окно?'=> 'Солнце'); if (isset($askss[$_GET['ques']]) && $askss[$_GET['ques']] == $_GET['thekey']) { chkod (); } else { echo "<p align=center><b>Следует правильно ответить на контрольный вопрос<b></p>"; } //Проверка заполнены ли поля function chkod () { include 'confnews.php'; if (($_GET[user_login]!='') && ($_GET[user_pass]!='')) { chus (); }else { } } //Проверка имени и пароля function chus () { if (($_GET[user_login]!=username) || ($_GET[user_pass]!=password)) { echo "<b>Неудачно</b>"; } else { echo "<b>Вы вошли в систему</b>"; mkdirr (); } } //Функция проверки создания текущей папки (по году) для базы новостей function mkdirr () { $mkdrr="news/".date('Y')."/".date('n')."/"; addnew (); } else { addnew (); } } // добавление новостей function addnew () { echo "<form action method=post> Заголовок<br> <input type='headl' name='headl' value='' size='60' maxlength='200'><br Новость<br> <textarea name='text' rows='10' cols='60' value=''></textarea> <input type=submit name=sav value='добавить новость'> </form>"; //Проверка заполнена ли поля для предотвращения пустой отравки if (isset($_POST['sav'])) { postnew (); } else { echo "Not saved"; } } //Сама отрправка function postnew () { $text=($_POST['text']); if (($_POST['text'] = '') || ($_POST['headl'] = '')) { echo "Не заполнены поля"; } else { } } echo "<br>Новости <br><form action method=GET> <input type=text name='user_login' size='10' maxlength='30' value=''> <input type=password name=user_pass size=10 maxlength=15 value=''>"; echo "<table width=350><tr><td width=350>$fraf</td></tr></table>"; echo "<br><input type='hidden' name='ques' value='".($fraf)."' size=50> <input type='text' name='thekey' value=''></br> <input type='submit' size=8 value=Войти> </form>"; ?>
(Добавление)
С выводом новостей мне менее всего понятно... пока сделал так, что новости выводятся только за один месяц,
в случае отсутствия новостей, выводятся за предыдущей, далее не выводятся (я сделал так с учетом того, что новости пишутся не чаще одного раза в день в небольшом объеме)
Простейший поиск тоже сделал, а также вывод по месяцам за текущий год, но проблема возникла, когда я подумал о нормальной пагинации, честно говоря не появилось идей, как уже с учетом такого вывода реализовать человеческий постраничный вывод.
Да, чуть не забыл, заголовок новости - это имея файла с прилепленной к нему датой, что избежать совпадений имен.
файл news.php
CODE ( htmlphp):
скопировать код в буфер обмена
<?php //Функция вывода(поиска) по году и дате function letop () { $ddta=($_GET['letop']); $mdir="news/"; $slsh="/"; $ldir="/*"; $arFiless = glob($mdir.$ddta.$ldir); foreach($arFiless as $filenam) { echo "<p align=left><br></br>"; echo "<b>$filenam</b>"; echo $filenam . "\n"; echo "</a>"; echo "<br>$homm"; } } $month = array( 1=>'Январь', 2=>'Февраль', 3=>'Март', 4=>'Апрель', 5=>'Май', 6=>'Июнь', 7=>'Июль', 8=>'Август', 9=>'Сентябрь', 10=>'Октябрь', 11=>'Ноябрь', 12=>'Декабрь'); foreach ( $month as $k=>$v ) { echo "<a href=?mn=$k> " .$v." </a>"; } //Вывод сообщений (по текущему году и месяцу) $mdir="news/"; $slsh="/"; $ldir="/*"; $arFiles = glob($mdir.$datty.$slsh.$dattm.$ldir); foreach($arFiles as $filename) { echo "<p align=left><br></br>"; echo "<b>"; echo $filename . "\n"; echo "</b><br>$hom"; } //Проверка, надены ли файлы за текущий год и месяй, если нет вывод за прошлый $mindat=--$dattm; $arFiless = glob($mdir.$datty.$slsh.$mindat.$ldir); foreach($arFiless as $filenam) { echo "<p align=left><br></br>"; echo "<b>"; echo $filenam . "\n"; echo "</b><br>$hom"; } } //Поиск за прошлый год, если новостей нет за январь (не очень удачный вариант, вероятно) $mingod=--$datty; $arFiless = glob($mdir.$mingod.$slsh."12".$ldir); foreach($arFiless as $filenam) { echo "<p align=left><br></br>"; echo "<b>"; echo $filenam . "\n"; echo "</b><br>$hom"; } } echo "<form action method='get'> <p align=left> Введите год и месяц: <input type='letop' name='letop' value='2010/01'><input type='submit' value='искать в новостях'></form>"; if (isset($_GET['letop'])) { letop (); } //Вывод по месяцам if (isset($_GET['mn'])) { echo "Архивные записи..."; $kb=($_GET['mn']); $mdirr="news/"; $slsh="/"; $ldirr="/*"; $arFilesss = glob($mdirr.$datty1.$slsh.$kb.$ldirr); foreach($arFilesss as $filenamm) { echo "<p align=left><br></br>"; echo "<b>$filenamm</b>"; echo $filenamm . "\n"; echo "</a>"; echo "<br>$hommm"; } } ?>
В общем буду рад критике, предложениям, идеям, особенно касательно постраничного вывода и т.д.(Отредактировано автором: 15 Октября, 2010 - 17:08:24)
|