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


Просмотр средней оценки




После оценивания хотя бы одним человеком доступна статистика в виде прогрессбара:

Рисунок 39

Пользователь, поставивший оценку, теперь будет видеть ее на месте формы.


 

Друзья

Для связывания пользователей служит связь «друг». Каждый пользователь может добавить к себе в список друзей интересных ему людей. Список друзей контролируется контроллером friends и моделью friends_model.

Для того, чтобы пользователю добавиться в друзья необходимо для начала отправить заявку, которую другой пользователь должен подтвердить.

Контроллер предоставляет следующие интерфейсы для управления друзьями:

Действие Метод
Просмотр друзей пользователя user
Запросы в мои друзья requests
Отправленные мной заявки my_requests
Добавление в друзья add
Удаление из друзей delete
Принятие заявки accept
Отвержение заявки decline
Отменна заявки abort

Тогда, структура контроллера будет иметь вид:

/**

* Контроллер друзей

*/

class Friends extends MY_Controller

{

public function __construct()

{

parent::__construct();

}

 

/**

* Вывод списка друзей

*/

public function index() {}

 

/**

* Просмотр друзей пользователя

*/

public function user( $id = null ) {}

 

/**

* Запросы в друзья

*/

public function requests() {}

 

/**

* Отправленные мной заявки

*/

public function my_requests() {}

 

/**

* Добавление в друзья

*/

public function add( $user_id ) {}

 

/**

* Удаление из друзей

*/

public function delete( $user_id ) {}

 

/**

* Принятие заявки

*/

public function accept( $request_id ) {}

 

/**

* Отвержение заявки

*/

public function decline( $request_id ) {}

 

/**

* Отмена заявки

*/

public function abort( $request_id ) {}

}

Модель friends_model имеет следующие методы по выборке данных о друзьях:

/**

* Получение информации о связи

*/

public function get_friend($where)

{

$res = $this->db->get_where(FRIENDS_TABLE, $where)->result_array();

return $res ? $res[0] : array();

}

 

 

/**

* Получение списка друзей пользователя

*/

public function get_friends( $id = null )

{

$friends = FRIENDS_TABLE;

$users = USERS_TABLE;

 

$q1 = $this->db

->select(" F.friend2 AS friend,

F.confirmed,

U.name")

->from("$friends F")

->join("$users U", "F.friend2 = U.id")

->where("F.friend1 = $id")

->where("F.confirmed = 1")

->get()->result_array();

 

$q2 = $this->db



->select(" F.friend1 AS friend,

F.confirmed,

U.name")

->from("$friends F")

->join("$users U", "F.friend1 = U.id")

->where("F.friend2 = $id")

->where("F.confirmed = 1")

->get()->result_array();

 

$res = array_merge($q1, $q2);

 

$friends = array();

 

// Преобразовываем результат

foreach ( $res as $value )

{

$tmp = array();

foreach ( $value as $k => $v )

{

$tmp[$k] = $v;

}

$friends[$value['friend']] = $tmp;

}

 

return $friends;

}

 

/**

* Проверка дружбы

*/

public function is_friend( $user_id, $friend_id )

{

$friends = FRIENDS_TABLE;

$res = $this->db

->select("id")

->from("$friends")

->where(

"(friend1 = $user_id AND

friend2 = $friend_id AND

confirmed = 1)"

)

->or_where(

"(friend1 = $friend_id AND

friend2 = $user_id AND

confirmed = 1)"

)->get()->result_array();

return $res ? true : false;

}

 

/**

* Количество друзей

*/

public function get_friends_count( $user_id )

{

$friends = FRIENDS_TABLE;

$res = $this->db

->select("COUNT(id) AS friends_count")

->from("$friends")

->where(

"( friend1 = $user_id OR friend2 = $user_id ) AND confirmed = 1")

->get()->result_array();

return $res ? $res[0]['friends_count'] : 0;

}

 

/**

* Заявки в друзья к пользователю

*/

public function get_requests( $user_id )

{

$friends = FRIENDS_TABLE;

$users = USERS_TABLE;

 

$res = $this->db

->select(" F.id AS request_id,

F.friend1 AS user_id,

U.name AS user_name,

F.date")

->from("$friends F")

->join("$users U", "F.friend1 = U.id")

->where(array(

"confirmed" => "0",

"friend2" => $user_id

))

->get()->result_array();

 

return $res;

}

 

/**

* Отправленные пользователем заявки

*/

public function get_my_requests( $user_id )

{

$friends = FRIENDS_TABLE;

$users = USERS_TABLE;

 

$res = $this->db

->select(" F.id AS request_id,

F.friend2 as user_id,

U.nam as user_name,

F.date")

->from("$friends F")

->join("$users U", "F.friend2 = U.id")

->where(array(

"confirmed" => "0",

"friend1" => $user_id

))

->get()->result_array();

 

return $res;

}

Эти методы вызываются не только из контроллера friends, но и из других контроллеров.





Читайте также:


Рекомендуемые страницы:


Читайте также:
Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней...
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...



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

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

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

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

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

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



(0.01 сек.)