/** * @param $mapping * @return Team */ public function wrap($mapping) { $result = parent::wrap(array('id', 'name', 'education', 'city'), 'team', $mapping); $this->setContestantA(Butler::getORMManager()->createMember()->wrap($mapping, 'teamcontestanta')); $this->setContestantB(Butler::getORMManager()->createMember()->wrap($mapping, 'teamcontestantb')); $this->setContestantC(Butler::getORMManager()->createMember()->wrap($mapping, 'teamcontestantc')); $this->setHead(Butler::getORMManager()->createMember()->wrap($mapping, 'teamhead')); $this->setCoach(Butler::getORMManager()->createMember()->wrap($mapping, 'teamcoach')); return $result; }
protected function safe($fieldNames) { foreach ($fieldNames as $_ => $fieldName) { if ('string' == gettype($this->{$fieldName})) { $value = preg_replace(array('/\\"/'), array('"'), $this->{$fieldName}); if (get_magic_quotes_gpc()) { $value = stripslashes($value); } $this->{$fieldName} = Butler::getSQLWrapper()->safe($value); } else { if ('object' == gettype($this->{$fieldName})) { $class = new ReflectionClass($this->{$fieldName}); if ($class->hasMethod('safe')) { $this->{$fieldName}->safe(); } } } } return $this; }
<?php require_once dirname(__FILE__) . '/../../config/require.php'; // только авторизованные пользователи могут делать это =) if (1 != $authorized) { authorize(); } if (-1 == $curteamid) { fail(_error_cannot_update_team_you_have_no_team); } if (isset($_POST['btnTeamUpdate'])) { $mapping = $_POST; $members = array('contestanta', 'contestantb', 'contestantc', 'head', 'coach'); foreach ($members as $_ => $member) { if (isset($mapping['team' . $member . 'memberuserid']) && !$mapping['team' . $member . 'memberuserid']) { $mapping['team' . $member . 'membername'] = $mapping['team' . $member . 'memberuseridEdit']; } elseif (isset($mapping['team' . $member . 'memberuserid'])) { $mapping['team' . $member . 'memberusernickname'] = $mapping['team' . $member . 'memberuseridEdit']; } } if (!updateTeam($mapping)) { data('message', $messages[_error_team_has_not_been_updated]); data('team', Butler::getORMManager()->createTeam()->wrap($mapping)->safe()->unsafe()); } else { data('message', $messages[_success_team_has_been_updated]); data('team', getTeam($curteamid)); } } else { data('team', getTeam($curteamid)); } template('teamupdate', $data);
/** * @param $personalInfo PersonalInfo * @return bool */ function updateTeam($mapping) { $team = Butler::getORMManager()->createTeam()->wrap($mapping)->safe(); return Butler::getDBFacade()->updateTeam($team) && !Butler::getDBFacade()->selectTeamById($team->getId())->isEmpty(); }
/** * Discover and reflect services and their methods * * @link http://php.net/reflection * @see Butler::factory() * @return array */ public function reflectServices() { $ref = new ReflectionClass('Butler'); $path = preg_replace('/\\.php$/', '', $ref->getFileName()); $allServices = array(); $services = array(); $ignore = array('butler', 'Common', 'Exception', '.svn', 'Serialize'); if ($handle = opendir($path)) { while (false !== ($file = readdir($handle))) { if (!is_dir($file) && preg_match('/^[a-z].*\\.php$/i', $file)) { $file = ereg_replace('\\.php', '', $file); if (!in_array($file, $ignore)) { $services[] = "{$file}"; } } } closedir($handle); } foreach ($services as $s) { $service = Butler::factory($s); $refl = new ReflectionClass($service); $methods = array(); foreach ($refl->getMethods() as $method) { if ($method->isPublic() && substr($method->name, 0, 2) != '__') { $methods[] = $method->getName(); } } $allServices[] = array('name' => $s, 'method' => $methods); } return array('service' => $allServices); }
/** * @param $userId int * @return bool */ function createPersonalInfo($userId) { return !Butler::getDBFacade()->createPersonalInfoByUserId($userId)->isEmpty(); }
function queryUsers($query) { return Butler::getDBFacade()->queryUsersByNickName($query); }
/** * @param $mapping * @return User */ public function wrap($mapping, $prefix = '') { $result = parent::wrap(array('id', 'nickname', 'info', 'city', 'studyplace', 'division', 'tatarstan'), 'user', $mapping, $prefix); $this->personalInfo = Butler::getORMManager()->createPersonalInfo()->wrap($mapping, $prefix . 'user'); return $result; }
/** * @param $personalInfo PersonalInfo * @return bool */ function updatePersonalInfo($mapping) { $personalInfo = Butler::getORMManager()->createPersonalInfo()->wrap($mapping)->safe(); return Butler::getDBFacade()->updatePersonalInfo($personalInfo) && !Butler::getDBFacade()->selectPersonalInfoByUserId($personalInfo->getUserId())->isEmpty(); }
function selectPersonalInfo($userId) { return Butler::getDBFacade()->selectPersonalInfoByUserId($userId); }
/** * @param $team Team * @return mixed */ public function updateTeam($team) { Butler::getSQLWrapper()->begin(); $result = Butler::getSQLWrapper()->query(Butler::getQueryManager()->getUpdateTeamSQL($team)); Butler::getSQLWrapper()->end(); if ($result) { if (!$team->getContestantA()->getName() && $team->getContestantA()->getUser()->isEmpty()) { $result = $result && $this->deleteMember($team->getContestantA()); } else { $result = $result && $this->updateTeamMember($team->getContestantA()); } if (!$team->getContestantB()->getName() && $team->getContestantB()->getUser()->isEmpty()) { $result = $result && $this->deleteMember($team->getContestantB()); } else { $result = $result && $this->updateTeamMember($team->getContestantB()); } if (!$team->getContestantC()->getName() && $team->getContestantC()->getUser()->isEmpty()) { $result = $result && $this->deleteMember($team->getContestantC()); } else { $result = $result && $this->updateTeamMember($team->getContestantC()); } if (!$team->getCoach()->getName() && $team->getCoach()->getUser()->isEmpty()) { $result = $result && $this->deleteMember($team->getCoach()); } else { $result = $result && $this->updateTeamMember($team->getCoach()); } if (!$team->getHead()->getName() && $team->getHead()->getUser()->isEmpty()) { $result = $result && $this->deleteMember($team->getHead()); } else { $result = $result && $this->updateTeamMember($team->getHead()); } } return $result; }
/** * @param $userId int * @return bool */ function checkCreatePersonalInfo($userId) { return Butler::getDBFacade()->selectPersonalInfoByUserId($userId)->isEmpty(); }
/** * @param $mapping * @return Member */ public function wrap($mapping, $prefix = '') { $result = parent::wrap(array('id', 'name', 'role', 'teamid'), 'member', $mapping, $prefix); $this->user = Butler::getORMManager()->createUser()->wrap($mapping, $prefix . 'member'); return $result; }
function getProblems($contestId) { return Butler::getDBFacade()->selectProblemsByContestId($contestId); }
<?php require_once dirname(__FILE__) . '/../../config/require.php'; Header('Content-Type: application/json; charset=cp1251'); if (isset($_GET['callback'])) { echo $_GET['callback'] . '('; } echo Butler::getDBFacade()->now(); if (isset($_GET['callback'])) { echo ')'; }
function getStatus($contestId, $since = 0) { return Butler::getDBFacade()->selectStatusByContestId($contestId, $since); }
function getUsers() { return Butler::getDBFacade()->selectUsers(); }
<?php require_once dirname(__FILE__) . '/../../config/require.php'; // только авторизованные пользователи могут делать это =) if (1 != $authorized) { authorize(); } if (!_permission_allow_update_team_info && 1 != $is_admin) { fail(_error_no_permission_to_update_team_info); } if (!isset($_POST['btnUpdatePersInfo'])) { fail(_error_request_method_post_expected); } if (!updatePersonalInfo($_POST)) { data('message', $messages[_error_persinfo_has_not_been_updated]); data('persInfo', Butler::getORMManager()->createPersonalInfo()->wrap($_POST)); } else { data('message', $messages[_success_persinfo_has_been_updated]); data('persInfo', selectPersonalInfo($curuserid)); } data('changepassword', '0'); getUserInfo($curuserid); template('changeinfo', $data);
<?php require_once 'Butler.php'; Butler::dispatch();
function getInvitedTeams() { return Butler::getDBFacade()->selectInvitedTeams(); }