В форме добавления статьи должен выводиться список со множественным выбором, в который выводятся все названия тегов из соответствующей таблицы базы данных. Формы: добавление статьи, добавление тега. 13. Портфолио с категориямиДля каждой работы храните в базе данных ее код, название файла с изображением, название работы, описание работы, сроки, в которые выполнялась работа, код категории. Можно хранить в базе данных только название файла с фотографией, а сами файлы помещать в какую-нибудь папку. Для каждой категории храните в базе данных ее код и название. Обеспечьте возможность добавления и удаления работ и категорий, просмотра списка всех категорий, просмотра списка всех работ в конкретной категории, просмотра одной работы.
При удалении записи о работе из базы данных заодно удаляйте с диска файл с изображением. Формы: добавление работы, добавление категории. 14. Система "Вопрос-ответ"Для каждого вопроса храните в базе данных его код, имя автора, текст вопроса, дату добавления. Для каждого ответа - его код, код вопроса и текст ответа. Обеспечьте возможность добавления вопроса в конкретную категорию, просмотра вопроса (с ответом, если есть ответ), удаления вопроса, ответа на вопрос (на один вопрос может быть несколько ответов), просмотра списка вопросов в конкретной категории, просмотра списка категорий, добавления и удаления категорий. Формы: добавление вопроса, добавление категории, ответ на вопрос. 15. Блог с категориямиДля каждой дневниковой записи храните в базе данных ее код, название записи, текст записи, автора записи, дату добавления записи, код категории. Для каждой категории храните в базе данных ее код и название. Обеспечьте возможность добавления и удаления записей и категорий, просмотра блога как списка всех записей, просмотра списка записей в конкретной категории, просмотра одной записи. Формы: добавление записи в блог, добавление категории. 16. Статьи с категориямиДля каждой статьи храните в базе данных ее код, автора, текст, дату добавления и код раздела. Для каждого раздела - его код, название и текстовое описание. Физически страницу на диске можно не создавать, достаточно, чтобы ее текст хранился в базе данных. Обеспечьте возможность добавления и удаления как страниц, так и разделов, просмотра статей по разделам, просмотра конкретной статьи и списка разделов. Формы: добавление статьи, добавление раздела. 17. Календарь событийДля каждого события храните в базе данных его код, описание, дату, код места проведения. Для каждого места проведения - его код, название и фотографию (можно хранить в базе данных только названия файлов с фотографиями, а сами файлы хранить в какой-нибудь папке на диске). Обеспечьте возможность создания события, создания описания места проведения, удаления события, удаления описания места проведения, просмотра списка мест проведения событий. При удалении описания места удаляйте с диска и соответствующий файл с изображением.
События должны просматриваться по одному либо в виде календаря. В случае, если на определенную дату есть события, дата в ячейке календаря должна выводиться в виде гиперссылки, при нажатии на которую загружается страница со списком всех событий, которые относятся к этой дате. Формы: добавление события, добавление места проведения. 18. Почтовая рассылкаДля каждого сообщения рассылки храните в базе данных его код, название, текст, дату добавления. Для каждого подписчика - его код, e-mail и имя. Обеспечьте возможность добавления сообщения, регистрации подписчика, удаления подписчика, просмотра списка всех сообщений и списка всех подписчиков.
При добавлении сообщения рассылки оно автоматически должно отсылаться на e-mail всем подписчикам. Формы: добавление сообщения рассылки, регистрация подписчика. 19. Регистрация пользователейДля каждого пользователя храните в базе данных его код, имя, e-mail, пароль, дату регистрации и фотографию. Храните в базе данных только название файла с фотографией, а сами файлы помещайте в какую-нибудь папку на диске. При удалении учетной записи пользователя из базы данных заодно удаляйте с диска файл с его фотографией.
Обеспечьте пользователю возможность заносить других пользователей в список друзей. Для этого создайте вторую таблицу в базе данных, со следующими полями: код записи id, код первого пользователя id1, код второго пользователя id2, подтвержденность связи isChecked. При отображении профиля пользователя должна выводиться кнопка " Добавить в друзья". При нажатии на эту кнопку во второй таблице создается запись, в которую заносятся коды обоих пользователей и 0 для признака подтвержденности связи. Обеспечьте пользователю возможность просмотра списка предложений дружбы и принятия или отклонения каждого из них. Выбрать предложения дружбы для пользователя с кодом 35 можно путем следующего SQL-запроса: