Добавление комментариев
Добавление комментариев осуществляется через форму добавления нового комментария, расположенную на странице просмотра информации о фотографии. Форма отсылает текст и, если нужно, E-mail в контроллер comments в метод add: /** * Добавление комментария */ public function add( $photo_id ) { // Проверка существования фотографии $photo = $this->photos_model->get_photo( $photo_id ); if ( ! $photo ) $this->setError("Фотографии с номером <b>$photo_id</b> нет", "photos");
if ( $this->input->post("submit") ) { // Если пользователь авторизован if ( $this->user ) $comment['user_id'] = $this->user['id']; else { $comment['guest_email'] = $this->input->post("guest_email"); if ( $comment['guest_email'] == "" ) { $this->setError( "Пожалуйста, укажите свой E-mail", "photos/photo/$photo_id" ); } }
$comment['photo_id'] = $photo_id; $comment['text'] = $this->input->post("text"); $comment['date'] = date("Y-m-d H:i:s");
if ( $comment['text'] == "" ) $this->setError( "Пожалуйста, введите текст комментария", "photos/photo/$photo_id" );
if ( $this->db_model->insert(COMMENTS_TABLE, $comment) ) $this->setMessage("Комментарий добавлен", "photos/photo/$photo_id"); else $this->setError( "Произошла ошибка при добавлении комментария", "photos/photo/$photo_id" ); } }
Внешний вид формы добавления комментария: Рисунок 35 Если добавление комментария произошло успешно, то система выдает сообщение: Или, если пользователь-гость: Рисунок 36 Просмотр комментариев Просмотр комментариев осуществляется на странице просмотра фотографии. Комментарии разбиты на страницы по значению, определенному в свойстве контроллера photos $_comments_per_page.
Внешний вид панели комментариев: Рисунок 37
Оценки Каждая фотография может быть оценена пользователем по 5-тибальной шкале и притом единожды. За управление оценками отвечает контроллер marks и модель marks_model. В контроллере определены следующие действия:
Следовательно, структура контроллера marks будет следующей: /** * Контроллер оценок */ class Marks extends MY_Controller { public function __construct() { parent::__construct(); }
/** * Оценивание фотографии */ public function evaluate( $photo_id ) {} } Также модель marks_model определяет следующие методы по выборке данных об оценках: /** * Получение средней оценки фотографии */ public function get_avg_mark( $photo_id ) { $this->db->where("photo_id", $photo_id); $this->db->select_avg('mark'); $res = $this->db->get(MARKS_TABLE); $mark = $res->result_array(); return $mark[0]['mark'] ? $mark[0]['mark'] : 0; }
/** * Получение оценки пользователя */ public function get_mark( $photo_id, $user_id ) { $where = array( 'user_id' => $user_id, 'photo_id' => $photo_id ); $this->db->where($where); $res = $this->db->get(MARKS_TABLE); $mark = $res->result_array(); return $mark ? $mark[0] : 0; }
Оценивание фотографии Форма оценивания располагается на странице просмотра фотографии. Ее внешний вид: Рисунок 38 После отправки формы система оповещает о результате:
Популярное: Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение... Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... ©2015-2020 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (623)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |