ГЛАВА 2 СПЕЦИАЛЬНАЯ ЧАСТЬ
2.1 Предметная область и требования к сайту
Информационный портал должен обладать удобным, и интуитивно понятным дизайном. Кроме этого на будущую популярность, сайта в не меньшей мере влияет его содержание.
Не актуальные повторяющиеся темы уже размещенные на десятках сайтов не будут способствовать увеличению постоянной аудитории. Вместе с этим скопированные с других сайтов статьи не принесут посетителей с поисковых систем, так как они отслеживают первоисточник и уникальность статьи, и подобное копирование может привести даже к блокировке сайта в поисковой выдаче.
В данной дипломной работе, для приближения к достижению целей, в пользовательскую часть сайта должны бать внедрены возможности:
- Возможность комментирования статей.
- Возможность регистрации на сайте
- Возможность осуществления поиска по сайту.
- Возможность восстановления пароля.
- Возможность изменения пароля.
Пользовательская часть сайта состоит из шести основных блоков:
- Шапка сайта.
- Блок навигации.
- Блок авторизации.
- Блок поиска.
- Блок основного содержания.
Эти блоки формируются на сайте средствами языка программирования php.
Шапка сайта одинаковая для всех страниц сайта, она содержит в себе название сайта и текст, наиболее полно отражающий идею сайта.
В блок навигации выводятся из базы данных все рубрики сайта в виде ссылок, на них.
Блок авторизации предназначен для авторизации пользователя путем ввода регистрационных данных: логина и пароля. Также в этом блоке есть ссылки на восстановление пароля и регистрации. После того как пользователь пройдёт авторизацию, а пройдёт он её если введенные им данные совпадают с данными которые он указал при регистрации в этом блоке будет отображаться имя логин и ссылки на страницу профиля и выхода с сайта. Пока пользователь будет авторизован, он будет иметь возможность оставлять комментарии без ввода защитного кода. Идентификация пользователя будет осуществляться на основе записанных в его браузер cookie файлах.
Блок поиска предназначен для отправки ключевого слова или символа по которому будет, происходит поиск в новостях сайта. Этот запрос отправляется в GET переменной в файл обработчик.
Описанные выше блоки не меняют своё содержание на всех страницах сайта, при посещении пользователем сайта. В процессе перехода по ссылкам меняется только блок с основным содержанием.
Блок с основным содержанием формируется в файлах, которые непосредственно производят вывод информации в браузер, на всех страницах сайта.
На главной странице index.php в блоке основного содержания выводится краткое описание последних новостей с ссылками на них, дата добавление, автор и рубрика.
На странице авторизации login.php в блоке основного содержания отображается форма с двумя полями, для ввода логина и пароля, и кнопка, активирующая эту форму. А так же две ссылки, на регистрацию и восстановление пароля.
На странице регистрации registration.php в блоке основного содержания отображается форма, состоящая из семи полей: логин, пароль, имя, email, секретный вопрос, и поля для ввода кода с картинки. При правильном заполнении этих полей в браузер выводится сообщение об успешной регистрации пользователя.
На странице поиска search.php в блоке основного содержания отображаются новости, которые соответствуют указанному в блоке поиска поисковому запросу.
На странице вывода новостей категории view_cat.php в блоке основного содержания отображаются новости выбранной категории.
На странице вывода полной новости view_post.php в блоке основного содержания отображается полная новость. Кроме этого отображаются и все комментарии к этой новости с формой добавления комментариев. В этом блоке для отправки комментариев нужно зарегистрироваться.
2.2 Разработка базы данных для сайта
Для создания перспективного, расширяемого и эффективного информационного портала, первым делом нужно подготовить «ядро», а именно базу данных для проекта. База данных для сайта - это место на веб-сервере, где хранится контент веб-ресурса. Каждая база состоит из таблиц, в которой размещены записи — кортежи данных. Таблицы связаны специальными отношениями, поэтому с записями можно работать: объединять, сортировать, делать выборку посредством указания одного запроса. Современные веб-ресурсы используют базы данных для своего функционирования.
Рассмотрим структуру базы данных, представленную на рисунке 1.
Рисунок 1 – Структура базы данных
База данных состоит из таблиц: posts, term, user, comment. Каждая из таблиц, в свою очередь, имеет определенную структуру. Рассмотрим каждую таблицу подробнее.
Каждая таблица имеет свои атрибуты. На рисунке 2 представлена таблица posts.
Рисунок 2 – Структура таблицы posts
Все таблицы сделаны при помощи инструмента PhpMyAdmin предназначенный для управления СУБДMySQL через web-интерфейс.
- id – код, который помогает идентифицировать запись. Поле является первичным.
- post_author – код автора записи.
- post_date – Дата публикации записи.
- post_content – Основной текст записи. Задается в типе text(текст). Не может быть пустым.
- post_title – заголовки статьи.
- post_name – имя статьи.
- post_modified – дата изменения статьи.
- post_type – рубрика, к которой относится статья.
- post_mime_type – изображения поста.
- comment_count – количество комментариев к статье.
Таблица term необходима для хранения данных о рубриках к которым относятся статьи. На рисунке 3 представлена таблица term.
Рисунок 3 – Структура таблицы term
- term_id – код, который помогает идентифицировать рубрику. Поле является первичным.
- name – название рубрики.
- slug – ссылка на рубрику.
На рисунке 4 представлена таблица user. Эта таблица хранит в себе данные о зарегистрированных пользователях.
Рисунок 4 – Структура таблицы user
- ID - код, который помогает идентифицировать рубрику. Поле является первичным.
- user_login – логин пользователя, содержимое данного поля будет отображаться на комментариях оставленных пользователем.
- user_pass – пароль пользователя.
- user_email – email адрес пользователя.
- user_status – статус пользователя, администратор или обычный пользователь.
- user_registered – дата регистрации пользователя.
На рисунке 5 представлена таблица comment. В этой таблице хранятся данные о комментариях оставленных пользователями.
Рисунок 5 – Структура таблицы comment
- comment_ID - код, который помогает идентифицировать комментарий. Поле является первичным.
- user_id– код, который помогает идентифицировать пользователя.
- comment_post_ID – код, который помогает идентифицировать статью к которой был оставлен комментарий.
- comment_author –логин автора комментария.
- comment_author_email – emai адрес пользователя, который оставил комментарий.
- comment_date – дата публикации комментария.
- comment_content – содержимое комментария.