2009-05-10 10:50:39 +03:00
|
|
|
|
<?php
|
2008-09-21 09:36:57 +03:00
|
|
|
|
/*-------------------------------------------------------
|
|
|
|
|
*
|
|
|
|
|
* LiveStreet Engine Social Networking
|
|
|
|
|
* Copyright © 2008 Mzhelskiy Maxim
|
|
|
|
|
*
|
|
|
|
|
*--------------------------------------------------------
|
|
|
|
|
*
|
|
|
|
|
* Official site: www.livestreet.ru
|
|
|
|
|
* Contact e-mail: rus.engine@gmail.com
|
|
|
|
|
*
|
|
|
|
|
* GNU General Public License, version 2:
|
|
|
|
|
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
|
|
|
|
*
|
|
|
|
|
---------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Обработка статистики юзеров, т.е. УРЛа вида /people/
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
class ActionPeople extends Action {
|
2009-02-14 13:56:04 +02:00
|
|
|
|
/**
|
|
|
|
|
* Главное меню
|
|
|
|
|
*
|
|
|
|
|
* @var unknown_type
|
|
|
|
|
*/
|
|
|
|
|
protected $sMenuHeadItemSelect='people';
|
2010-05-18 16:10:56 +03:00
|
|
|
|
|
|
|
|
|
protected $sMenuItemSelect='people';
|
2008-09-21 09:36:57 +03:00
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Инициализация
|
|
|
|
|
*
|
|
|
|
|
*/
|
2010-02-06 02:09:44 +02:00
|
|
|
|
public function Init() {
|
2008-09-21 09:36:57 +03:00
|
|
|
|
$this->SetDefaultEvent('good');
|
2009-11-23 16:01:48 +02:00
|
|
|
|
$this->Viewer_AddHtmlTitle($this->Lang_Get('people'));
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Регистрируем евенты
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
protected function RegisterEvent() {
|
|
|
|
|
$this->AddEvent('good','EventGood');
|
|
|
|
|
$this->AddEvent('bad','EventBad');
|
2009-01-20 21:45:16 +02:00
|
|
|
|
$this->AddEvent('online','EventOnline');
|
2009-06-13 00:54:04 +03:00
|
|
|
|
$this->AddEvent('new','EventNew');
|
|
|
|
|
|
|
|
|
|
$this->AddEventPreg('/^country$/i','/^.+$/i','/^(page(\d+))?$/i','EventCountry');
|
|
|
|
|
$this->AddEventPreg('/^city$/i','/^.+$/i','/^(page(\d+))?$/i','EventCity');
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**********************************************************************************
|
|
|
|
|
************************ РЕАЛИЗАЦИЯ ЭКШЕНА ***************************************
|
|
|
|
|
**********************************************************************************
|
|
|
|
|
*/
|
|
|
|
|
|
2009-01-24 00:46:27 +02:00
|
|
|
|
/**
|
|
|
|
|
* Показывает юзеров по стране
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
protected function EventCountry() {
|
|
|
|
|
if (!($oCountry=$this->User_GetCountryByName(urldecode($this->getParam(0))))) {
|
2009-04-07 17:59:43 +03:00
|
|
|
|
return parent::EventNotFound();
|
2009-01-24 00:46:27 +02:00
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Получаем статистику
|
|
|
|
|
*/
|
|
|
|
|
$this->GetStats();
|
|
|
|
|
/**
|
|
|
|
|
* Передан ли номер страницы
|
|
|
|
|
*/
|
2009-06-13 00:54:04 +03:00
|
|
|
|
$iPage=$this->GetParamEventMatch(1,2) ? $this->GetParamEventMatch(1,2) : 1;
|
2009-01-24 00:46:27 +02:00
|
|
|
|
/**
|
|
|
|
|
* Получаем список юзеров
|
2009-06-13 00:54:04 +03:00
|
|
|
|
*/
|
2009-08-20 10:43:06 +03:00
|
|
|
|
$aResult=$this->User_GetUsersByCountry($oCountry->getName(),$iPage,Config::Get('module.user.per_page'));
|
2009-01-24 00:46:27 +02:00
|
|
|
|
$aUsersCountry=$aResult['collection'];
|
|
|
|
|
/**
|
|
|
|
|
* Формируем постраничность
|
|
|
|
|
*/
|
2009-08-20 10:43:06 +03:00
|
|
|
|
$aPaging=$this->Viewer_MakePaging($aResult['count'],$iPage,Config::Get('module.user.per_page'),4,Router::GetPath('people').$this->sCurrentEvent.'/'.$oCountry->getName());
|
2009-01-24 00:46:27 +02:00
|
|
|
|
/**
|
|
|
|
|
* Загружаем переменные в шаблон
|
|
|
|
|
*/
|
|
|
|
|
if ($aUsersCountry) {
|
|
|
|
|
$this->Viewer_Assign('aPaging',$aPaging);
|
|
|
|
|
}
|
|
|
|
|
$this->Viewer_Assign('oCountry',$oCountry);
|
|
|
|
|
$this->Viewer_Assign('aUsersCountry',$aUsersCountry);
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Показывает юзеров по городу
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
protected function EventCity() {
|
|
|
|
|
if (!($oCity=$this->User_GetCityByName(urldecode($this->getParam(0))))) {
|
2009-04-07 17:59:43 +03:00
|
|
|
|
return parent::EventNotFound();
|
2009-01-24 00:46:27 +02:00
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Получаем статистику
|
|
|
|
|
*/
|
|
|
|
|
$this->GetStats();
|
|
|
|
|
/**
|
|
|
|
|
* Передан ли номер страницы
|
|
|
|
|
*/
|
2009-06-13 00:54:04 +03:00
|
|
|
|
$iPage=$this->GetParamEventMatch(1,2) ? $this->GetParamEventMatch(1,2) : 1;
|
2009-01-24 00:46:27 +02:00
|
|
|
|
/**
|
|
|
|
|
* Получаем список юзеров
|
2009-06-13 00:54:04 +03:00
|
|
|
|
*/
|
2009-08-20 10:43:06 +03:00
|
|
|
|
$aResult=$this->User_GetUsersByCity($oCity->getName(),$iPage,Config::Get('module.user.per_page'));
|
2009-01-24 00:46:27 +02:00
|
|
|
|
$aUsersCity=$aResult['collection'];
|
|
|
|
|
/**
|
|
|
|
|
* Формируем постраничность
|
|
|
|
|
*/
|
2009-08-20 10:43:06 +03:00
|
|
|
|
$aPaging=$this->Viewer_MakePaging($aResult['count'],$iPage,Config::Get('module.user.per_page'),4,Router::GetPath('people').$this->sCurrentEvent.'/'.$oCity->getName());
|
2009-01-24 00:46:27 +02:00
|
|
|
|
/**
|
|
|
|
|
* Загружаем переменные в шаблон
|
|
|
|
|
*/
|
|
|
|
|
if ($aUsersCity) {
|
|
|
|
|
$this->Viewer_Assign('aPaging',$aPaging);
|
|
|
|
|
}
|
|
|
|
|
$this->Viewer_Assign('oCity',$oCity);
|
|
|
|
|
$this->Viewer_Assign('aUsersCity',$aUsersCity);
|
|
|
|
|
}
|
2009-01-20 21:45:16 +02:00
|
|
|
|
/**
|
|
|
|
|
* Показываем последних на сайте
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
protected function EventOnline() {
|
2009-08-08 12:33:32 +03:00
|
|
|
|
/**
|
|
|
|
|
* Последние по визиту на сайт
|
|
|
|
|
*/
|
|
|
|
|
$aUsersLast=$this->User_GetUsersByDateLast(15);
|
|
|
|
|
$this->Viewer_Assign('aUsersLast',$aUsersLast);
|
2009-01-20 21:45:16 +02:00
|
|
|
|
/**
|
|
|
|
|
* Получаем статистику
|
|
|
|
|
*/
|
|
|
|
|
$this->GetStats();
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Показываем новых на сайте
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
protected function EventNew() {
|
2009-08-08 12:33:32 +03:00
|
|
|
|
/**
|
|
|
|
|
* Последние по регистрации
|
|
|
|
|
*/
|
|
|
|
|
$aUsersRegister=$this->User_GetUsersByDateRegister(15);
|
|
|
|
|
$this->Viewer_Assign('aUsersRegister',$aUsersRegister);
|
2009-01-20 21:45:16 +02:00
|
|
|
|
/**
|
|
|
|
|
* Получаем статистику
|
|
|
|
|
*/
|
|
|
|
|
$this->GetStats();
|
|
|
|
|
}
|
2008-09-21 09:36:57 +03:00
|
|
|
|
/**
|
|
|
|
|
* Показываем хороших юзеров
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
protected function EventGood() {
|
|
|
|
|
/**
|
|
|
|
|
* Получаем статистику
|
|
|
|
|
*/
|
|
|
|
|
$this->GetStats();
|
|
|
|
|
/**
|
|
|
|
|
* Получаем хороших юзеров
|
|
|
|
|
*/
|
|
|
|
|
$this->GetUserRating('good');
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливаем шаблон вывода
|
|
|
|
|
*/
|
|
|
|
|
$this->SetTemplateAction('index');
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Показываем плохих юзеров
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
protected function EventBad() {
|
|
|
|
|
/**
|
|
|
|
|
* Получаем статистику
|
|
|
|
|
*/
|
|
|
|
|
$this->GetStats();
|
|
|
|
|
/**
|
|
|
|
|
* Получаем хороших юзеров
|
|
|
|
|
*/
|
|
|
|
|
$this->GetUserRating('bad');
|
|
|
|
|
/**
|
|
|
|
|
* Устанавливаем шаблон вывода
|
|
|
|
|
*/
|
|
|
|
|
$this->SetTemplateAction('index');
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Получение статистики
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
protected function GetStats() {
|
|
|
|
|
/**
|
|
|
|
|
* Статистика кто, где и т.п.
|
|
|
|
|
*/
|
|
|
|
|
$aStat=$this->User_GetStatUsers();
|
|
|
|
|
/**
|
|
|
|
|
* Загружаем переменные в шаблон
|
|
|
|
|
*/
|
|
|
|
|
$this->Viewer_Assign('aStat',$aStat);
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Получаем список юзеров
|
|
|
|
|
*
|
|
|
|
|
* @param unknown_type $sType
|
|
|
|
|
*/
|
|
|
|
|
protected function GetUserRating($sType) {
|
|
|
|
|
/**
|
|
|
|
|
* Передан ли номер страницы
|
|
|
|
|
*/
|
2009-06-13 00:54:04 +03:00
|
|
|
|
$iPage=preg_match("/^page(\d+)$/i",$this->getParam(0),$aMatch) ? $aMatch[1] : 1;
|
2008-09-21 09:36:57 +03:00
|
|
|
|
/**
|
|
|
|
|
* Получаем список юзеров
|
2009-06-13 00:54:04 +03:00
|
|
|
|
*/
|
2009-08-20 10:43:06 +03:00
|
|
|
|
$aResult=$this->User_GetUsersRating($sType,$iPage,Config::Get('module.user.per_page'));
|
2008-09-21 09:36:57 +03:00
|
|
|
|
$aUsersRating=$aResult['collection'];
|
|
|
|
|
/**
|
|
|
|
|
* Формируем постраничность
|
|
|
|
|
*/
|
2009-08-20 10:43:06 +03:00
|
|
|
|
$aPaging=$this->Viewer_MakePaging($aResult['count'],$iPage,Config::Get('module.user.per_page'),4,Router::GetPath('people').$this->sCurrentEvent);
|
2008-09-21 09:36:57 +03:00
|
|
|
|
/**
|
|
|
|
|
* Загружаем переменные в шаблон
|
|
|
|
|
*/
|
|
|
|
|
if ($aUsersRating) {
|
|
|
|
|
$this->Viewer_Assign('aPaging',$aPaging);
|
|
|
|
|
}
|
|
|
|
|
$this->Viewer_Assign('aUsersRating',$aUsersRating);
|
|
|
|
|
}
|
2009-02-14 13:56:04 +02:00
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Выполняется при завершении работы экшена
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
public function EventShutdown() {
|
|
|
|
|
/**
|
|
|
|
|
* Загружаем в шаблон необходимые переменные
|
|
|
|
|
*/
|
2010-02-06 11:04:36 +02:00
|
|
|
|
$this->Viewer_Assign('sMenuHeadItemSelect',$this->sMenuHeadItemSelect);
|
2010-05-18 16:10:56 +03:00
|
|
|
|
$this->Viewer_Assign('sMenuItemSelect',$this->sMenuItemSelect);
|
2009-02-14 13:56:04 +02:00
|
|
|
|
}
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
|
|
|
|
?>
|