Мегаобучалка Главная | О нас | Обратная связь


Добавление комментариев



2015-11-07 628 Обсуждений (0)
Добавление комментариев 0.00 из 5.00 0 оценок




Добавление комментариев осуществляется через форму добавления нового комментария, расположенную на странице просмотра информации о фотографии. Форма отсылает текст и, если нужно, 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. В контроллере определены следующие действия:

Действие Метод
Оценить фотографию evaluate

Следовательно, структура контроллера 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-11-07 628 Обсуждений (0)
Добавление комментариев 0.00 из 5.00 0 оценок









Обсуждение в статье: Добавление комментариев

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (628)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.005 сек.)