(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Создаем раздел "Новости"

Источник: webscript
Дмитрий Астраков

В этой статье я хочу рассказать вам как создать на php и базе данных MySQL создать раздел "Новости" для своего сайта. В написании раздела Новостей нет ничего сложного - тут главное, как и в любом другом проекте написать ТЗ.

Итак: определимся с тем, что мы хотим от раздела Новостей.

  1. Раздел "Новости" должен находиться в папке "/news/" относительно корневого каталога сайта
  2. Новости должны характеризоваться следующими полями: "Дата", "Тема", "Краткое содержание", "Новость", "Автор\источник"
  3. Новости должны иметь клиентскую часть. Клиентская часть должна выводить новости в порядке обратном их добавлению (последний-первый) и разбивать их на страницы по 20 новостей на страницу со ссылкой на предыдущую страницу, следующую страницу и 10 страниц вперед. При клике на конкретную новость должна выводиться новость полностью. В случае, если к новости была добавлена фотография, то при просмотре новости должна выводиться фотография. Фотография должна в случае необходимости подгоняться под ширину 400 пикселей (если она большей ширины).
  4. У Новостей должен быть модуль администрирования - модуль администрирования должен позволять администратору авторизоваться в системе вводя логин и пароль администратора. Так же раздел администрирования должен предоставлять возможность администратору добавлять новости либо изменять\удалять уже имеющиеся. Должна быть возможность добавлять к новости фотографию. Должно быть разбитие имеющихся новостей на страницы в соответствии с датой их добавления (последний-первый).

В общих чертах мы определились с техническим заданием. Теперь давайте спроектируем архитектуру модуля. Предлагаю слудующую:

/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 строк кода, поэтому я вынес его в отдельный файл - скачав его, Вы сможете легко во всем разобраться, так как в файле присутствуют все необходимые коментарии!

Ссылки по теме


 Распечатать »
 Правила публикации »
  Обсудить материал в конференции Microsoft »
Обсудить материал в конференции Дизайн, графика, обработка изображений »
Написать редактору 
 Рекомендовать » Дата публикации: 10.08.2012 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft Windows Professional 10, Электронный ключ
Microsoft 365 Business Standard (corporate)
Microsoft 365 Apps for business (corporate)
Microsoft 365 Business Basic (corporate)
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год.
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
Новые программы для Windows
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Ищу программиста для написания программы (73)
Ищу программиста ,владеющего Вижуал Бэйсик и программированием в Экселе, для написания...
 
Нормальные казино в 2021 году (12)
После долгих поисков все таки смог найти хорошие игровухи, хотя и ушла куча времени, пока я...
 
Как выводить деньги в лучших казино? (9)
Порой игрок казино из рейтинга 2021 https://casino2021.net/ все сделал точно, заявка на вывод...
 
Топ рейтинг слотов 2021 года (5)
Среди огромного выбора азартных слотов...
 
Живые игры в казино с видеослотами (6)
В дополнение к существующим отношениям Pragmatic Play...
 
 
 



    
rambler's top100 Rambler's Top100