|
Навигация
|
Главная » Sql Создаем раздел "Новости"Источник: webscript Дмитрий Астраков В этой статье я хочу рассказать вам как создать на php и базе данных MySQL создать раздел "Новости" для своего сайта. В написании раздела Новостей нет ничего сложного - тут главное, как и в любом другом проекте написать ТЗ.Итак: определимся с тем, что мы хотим от раздела Новостей.
/inc/vars.php - файл в котором объявлены основные переменные (константы) - они общие для всего сайта /inc/template.inc - шаблонизатор /news/photos/ - папка с фотографиями новостей /news/template/template.html - дизайн шаблон /news/install.php - файл инсталлирующий базу данных /news/index.php - клиентская часть модуля новостей /news/administrating.php - "админская" часть модуля новостей Думаю эта модель оптимально подходит под определение "модульность" сайта. К каждому модулю "инклюдятся" базовые файлы/inc/vars.php и /inc/template.inc. Шаблонизатор тут я не выкладываю - так как вы можете использовать любой шаблонизатор. Дизайн-шаблон так же не описывается - так как это может быть просто пустой файл, в котором присутствует код {MAIN} - контент и {TITLE} - заголовок страницы. Приступим к написанию модуля. Для этого определим базовые переменные Файл базовых переменных и функций /inc/vars.php // переменные базы данных $DBAdress = "127.0.0.1"; $userName = "user"; $userPass = "pass"; $DBName = "my_db"; // логин, пароль администратора $LOGIN = "admin"; $PASSWD = "111"; /********************************************************** * AUTH functions - функции авторизации (для модуля администрирования) * открывает сессию и помещает ее ИД в куку * приравнивает переменной $auth значение "1" и помещает ее в сессию * **********************************************************/ function setAuth(){ $auth = 1; @session_start(); session_register("auth"); global $HTTP_SESSION_VARS; $HTTP_SESSION_VARS["auth"] = 1; $PHPSESSID = session_id(); @setcookie("PHPSESSID" , "$PHPSESSID" , time() + 3600*24*3); if(session_is_registered("auth")){ return $auth; } return 0; } /* function testAuth() - проверяет была ли произведена авторизация в системе и возвращает булевы значения */ function testAuth(){ @session_start(); global $HTTP_SESSION_VARS; if (session_is_registered("authPrice")){ $auth = $HTTP_SESSION_VARS["auth"]; return 1; }else{ session_destroy(); return 0; } } /* function destroyAuth() - уничтожает авторизацию пользователя */ function destroyAuth(){ session_start(); session_destroy(); @setcookie("PHPSESSID" , "1" , time() - 60*60*24); } /******************************************************************************************************** * Function importVars(); - полезная функция, она объединяет переменыне переданные * методами POST, GET в один массив *********************************************************************************************************/ function importVars(){ global $HTTP_GET_VARS; global $HTTP_POST_VARS; $EXT_VARS[0] = 0; while(list($key , $value) = each($HTTP_GET_VARS)){ $EXT_VARS[$key] = $value; } reset($HTTP_GET_VARS); while(list($key , $value) = each($HTTP_POST_VARS)){ $EXT_VARS[$key] = $value; } reset($HTTP_POST_VARS); return $EXT_VARS; } ?> Что ж, базовые переменные и функции, которые к слову нам пригодятся и для других модулей нашего сайта мы определили. Теперь напишем инсталляционный скрипт (который уже будет использовать наш "файл переменных"). Инсталляционный файл /news/install.php Этот файл создает в базе данных нужную нам таблицу. Файл крайне прост, поэтому не будем останавливаться на его описании подробно - в нем всего лишь присоединяется файл переменных, затем осуществляется установка соединения с базой данных, затем создается нужная нам таблица, и потом закрывается соединение с БД - вот и все: /************************************************** * Include files **************************************************/ include "../inc/vars.php"; /************************************************** * MySQL connect **************************************************/ $pdb = mysql_connect($DBAdress , $userName , $userPass); mysql_select_db($DBName , $pdb) or die("Can't select DB"); if(!$pdb){ echo "connect is not sucsesfull!\n"; } /************************************************** * Create Table tblNews **************************************************/ $result = mysql_query("CREATE TABLE tblNews ( id integer PRIMARY KEY AUTO_INCREMENT, date char(15), subject char(255), shortCont TEXT, news TEXT, photo char(255), author char(255) );"); mysql_close($pdb); ?> Администрирование модуля Новостей /news/administrating.php В разделе администратора должна быть проверка логина и пароля администратора (авторизация) а так же возможность добавлять, исправлять или удалять новости и добавлять к ним фотографии. Рассмотрим это модуль: adm.zip - размер административного файла более 700 строк кода, поэтому я вынес его в отдельный файл - скачав его, Вы сможете легко во всем разобраться, так как в файле присутствуют все необходимые коментарии! С самым сложным, мы разобрались - мы создали модуль администрирования новостей для нашего сайта. Теперь добавим парочку тройку новостей и перейдем к написанию клиентской части! Клиентская часть /news/index.php Наша клиентская часть должна выводить список всех новостей, разбивая его на страницы, в соответствии с датой новости, а так же в случае выбора конкретной новости - показывать ее целиком с фотографией. Что ж, приступим: inxex.zip - размер клиентской чайсти более 400 строк кода, поэтому я вынес его в отдельный файл - скачав его, Вы сможете легко во всем разобраться, так как в файле присутствуют все необходимые коментарии! Моделирование групп объектов в Oracle. Процедура RAISE_APPLICATION_ERROR. Запрос совпадающих и наиболее близких строк. Mastering Oracle PL/SQL: Эффективная обработка данных. Мониторинг заданий в Oracle. Главная » Sql |
© 2024 Team.Furia.Ru.
Частичное копирование материалов разрешено. |