<?php

# заголовок
define('TITLE', 'Друзья');

# определение данных
$params = PARAMS; // получение параметров
$refresh = $FUNC->random(8, true); // случайное число

# определение типа списка
$type = (isset($params['param']) && $params['param'] == 'blacklist') ? 'ignore' : 'friend';
$nav = ($type == 'friend') ? 'friends' : 'friends/blacklist'; // навигация
$delete = ($type == 'friend') ? 'delete' : 'act/delete'; // удаление

####################
####################

# очищение списка, удаление пользователя
if (((isset($params['param']) && $params['param'] == 'delete') || (isset($params['act']) &&  
$params['act'] == 'delete')) && isset($params['num']) && isset($params['token']) && $params['token'] == TOKEN) {

# фильтрация параметра, пользователь
$num = $FUNC->filter($params['num'], 'int');

# проверка на возможность удаления, в базе данных
if (db_exist($DB, 'contacts', 'id', array('id' => $num, 'user' => USER['id']))) { // проверка записи
db_delete($DB, 'contacts', array('id' => $num)); } }// удаление

####################

# очищение списка, проверка возможности
if ((isset($params['param']) && $params['param'] == 'delete') || (isset($params['act']) && 
$params['act'] == 'delete') && isset($params['token']) && $params['token'] == TOKEN) {

# проверка списка на удаление, в базе данных
if (db_exist($DB, 'contacts', 'id', array('type' => $type, 'user' => USER['id']))) $deleted = true; }

####################
####################

# определение данных, отображение
$notice = ($type == 'friend') ? 'Список друзей пуст.' : 'Черный список пуст.'; $title = ($type == 'friend') ? // уведомление
'Количество друзей' : 'В черном списке'; $link = ($type == 'friend') ? 'friends/blacklist' : 'friends'; $switch = // навигация
($type == 'friend') ? 'Черный список' : 'Мои друзья'; $icon= ($type == 'friend') ? 'ignore' : 'friend'; // заголовок, иконка

# проверка наличия, вывод списка контактов
if (!db_exist($DB, 'contacts', 'id', array('type' => $type, 'user' => USER['id']))) $empty = true; else { $bottom = true; // нижняя ссылка
$empty = false; $contacts = db_count($DB, 'contacts', 'id', array('type' => $type, 'user' => USER['id'])); // счетчик

# работа с данными, из базы данных
$dial = db_count($DB, 'contacts', 'id', array('type' => $type, 'user' => USER['id'])); $pages = ceil($dial / DATA['contact']); // страницы
if ($pages > 5) $pages = 5; if (isset($params['page'])) { $page = $FUNC->filter($params['page'], 'int'); // проверка навигации
if ($page > $pages) $page = $pages; elseif ($page < 1) $page = 1; } else $page = 1; $offset = ($page * DATA['contact']) - DATA['contact']; // определение смещения
$query = db_output($DB, 'contacts', array('id', 'whom'), array('type' => $type, 'user' => USER['id']), true, // вывод контактов из базы
'id', DATA['contact'], $offset, 'DESC'); $one = ($pages == 2) ? '<' : 1; $two = ($pages == 2) ? '>' : 2; // навигация, определение переходов

# обновление навигации, страницы
$sheet = ($page!=1) ? 'page/'.$page.'/' : false;

# разбор списка, переработка данных в массиве
$index = 0; while ($assoc = $query->fetch_assoc()) {
$list[$index] = $assoc; $index++; }

# обработка данных
foreach ($list as &$post) { $user = db_output($DB, 'users', array('nick', 'sex'), array('id' => $post['whom'])); // данные пользователя
$post['name'] = $user['nick']; $post['nick'] = $USER->nick($user['nick']); $post['icon'] = $USER->sex($user['sex']); // имя, пол, ссылка
$post['link'] = (isset($deleted)) ? '/'. $nav .'/'. $delete .'/num/'. $post['id'] .'/'. $sheet .'token/'. TOKEN : '/profile/'. $post['nick']; } } // удаление из списка

?>