コード例 #1
0
 public function signupAction()
 {
     $form = new AccountForm();
     $request = $this->getRequest();
     if ($request->isPost()) {
         $user = new User();
         $form->setInputFilter($user->getInputFilter());
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $user->exchangeArray($form->getData());
             $username = $this->getUserTable()->getUserByName($user->username);
             if (!empty($username)) {
                 $this->redirect()->toRoute('user', array('action' => 'signup'));
                 echo '<div class="alert alert-error">
                             <button type="button" class="close" data-dismiss="alert">&times;</button>
                             <h4>Warning!</h4>
                             User already exist!.
                         </div>';
             } else {
                 $this->getUserTable()->createAccount($user);
                 $this->redirect()->toRoute('user');
             }
         }
     }
     return array('form' => $form);
 }
コード例 #2
0
 protected function createUser(array $data)
 {
     $user = new User();
     $user->exchangeArray($data);
     $user->setPassword($data['password']);
     $user->setRegisterDate();
     $userTable = $this->getServiceLocator()->get('UserTable');
     $userTable->saveUser($user);
     return true;
 }
コード例 #3
0
 private function getUser($id)
 {
     $userData = $this->userMapper->getUserById($id);
     if (!$userData) {
         return null;
     }
     $user = new User();
     $user->exchangeArray($userData);
     return $user;
 }
コード例 #4
0
ファイル: UserTest.php プロジェクト: NgocHoan9002/qluser_zend
 public function testGetArrayCopyReturnsAnArrayWithPropertyValues()
 {
     $user = new User();
     $data = array('userId' => 123, 'firstName' => 'Ho', 'lastName' => 'Kiet', 'email' => '*****@*****.**', 'password' => '123', 'role' => 'Operator', 'activated' => 1);
     $user->exchangeArray($data);
     $copyArray = $user->getArrayCopy();
     $this->assertSame($data['userId'], $copyArray['userId'], '"userId" was not set correctly');
     $this->assertSame($data['firstName'], $copyArray['firstName'], '"firstName" was not set correctly');
     $this->assertSame($data['lastName'], $copyArray['lastName'], '"lastName" was not set correctly');
     $this->assertSame($data['email'], $copyArray['email'], '"email" was not set correctly');
     $this->assertSame($data['password'], $copyArray['password'], '"password" was not set correctly');
     $this->assertSame($data['role'], $copyArray['role'], '"role" was not set correctly');
     $this->assertSame($data['activated'], $copyArray['activated'], '"activated" was not set correctly');
 }
コード例 #5
0
 public function testSaveUserWillUpdateExistingUsersIfTheyAlreadyHaveAnId()
 {
     $userData = array('userId' => 125, 'firstName' => 'Ho', 'lastName' => 'Kiet', 'email' => '*****@*****.**', 'password' => '123', 'role' => 'Operator', 'activated' => 1);
     $user = new User();
     $user->exchangeArray($userData);
     $resultSet = new ResultSet();
     $resultSet->setArrayObjectPrototype(new User());
     $resultSet->initialize(array($user));
     $mockTableGateway = $this->getMock('Zend\\Db\\TableGateway\\TableGateway', array('select', 'update'), array(), '', false);
     $mockTableGateway->expects($this->once())->method('select')->with(array('userId' => 125))->will($this->returnValue($resultSet));
     $mockTableGateway->expects($this->once())->method('update')->with(array('userId' => 125, 'firstName' => 'Ho', 'lastName' => 'Kiet', 'email' => '*****@*****.**', 'password' => '123', 'role' => 'Operator', 'activated' => 1));
     $userTable = new UserTable($mockTableGateway);
     $userTable->saveUser($user);
 }
コード例 #6
0
 public function indexAction()
 {
     $form = new \Admin\Form\Subject\CategoryFilter($this->getServiceLocator());
     $form->setData($this->params()->fromQuery());
     $this->getViewModel()->setVariable('form', $form);
     if ($form->isValid()) {
         $user = new User();
         $user->exchangeArray($form->getData());
         $userMapper = $this->getServiceLocator()->get('User\\Model\\UserMapper');
         /** @var $userMapper \User\Model\UserMapper */
         $paginator = $userMapper->search($user);
         $this->getViewModel()->setVariable('paginator', $paginator);
     }
     return $this->getViewModel();
 }
コード例 #7
0
 public function addAction()
 {
     $form = new UserForm();
     $form->get('submit')->setValue('Add');
     $request = $this->getRequest();
     if ($request->isPost()) {
         $user = new User();
         $form->setInputFilter($user->getInputFilter());
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $user->exchangeArray($form->getData());
             $this->getUserTable()->saveUser($user);
             return $this->redirect()->toRoute('user');
         }
     }
     return array('form' => $form);
 }
コード例 #8
0
 public function addAction()
 {
     $form = new \Admin\Form\Expert\Expert($this->getServiceLocator());
     if ($this->getRequest()->isPost()) {
         $form->setData($this->getRequest()->getPost());
         if ($form->isValid()) {
             $data = $form->getData();
             $user = new User();
             $user->exchangeArray($data);
             /** @var \User\Model\UserMapper $userMapper */
             $userMapper = $this->getServiceLocator()->get('User\\Model\\UserMapper');
             $user->setRole(User::ROLE_MENTOR);
             $userMapper->updateUser($user);
             /** @var \Subject\Model\SubjectMapper $subjectMapper */
             $subjectMapper = $this->getServiceLocator()->get('Subject\\Model\\SubjectMapper');
             $subjectIds = explode(',', $data['subjectId']);
             foreach ($subjectIds as $subjectId) {
                 $subject = new Subject();
                 $subject->setId($subjectId);
                 if ($subjectMapper->get($subject)) {
                     $subjectNames[] = $subject->getName();
                     $expertSubject = new Expert\Subject();
                     $expertSubject->setExpertId($user->getId());
                     $expertSubject->setSubjectId($subjectId);
                     $expertSubject->setCreatedById($this->user()->getIdentity());
                     $expertSubject->setCreatedDateTime(DateBase::getCurrentDateTime());
                     /** @var \Expert\Model\Expert\SubjectMapper $expertSubjectMapper */
                     $expertSubjectMapper = $this->getServiceLocator()->get('Expert\\Model\\Expert\\SubjectMapper');
                     $expertSubjectMapper->save($expertSubject);
                 }
             }
             if ($form->get('afterSubmit')->getValue()) {
                 return $this->redirect()->toUrl($form->get('afterSubmit')->getValue());
             }
         }
     }
     $this->getViewModel()->setVariable('form', $form);
     return $this->getViewModel();
 }
コード例 #9
0
 public function addAction()
 {
     //        $user_session = new \Zend\Session\Container('user');
     //        if ($user_session->email == null) {
     //            return $this->redirect()->toRoute('signin', array(
     //                        'action' => 'signin'
     //            ));
     //        }
     //        if ($user_session->role == 'Operator') {
     //            return array('error' => 'You don\'t have permission to do this action');
     //        }
     $auth = new \Zend\Authentication\AuthenticationService();
     if ($auth->hasIdentity()) {
         $user = $auth->getIdentity();
     } else {
         return $this->redirect()->toRoute('signin', array('action' => 'index'));
     }
     if ($user->role == 'Operator') {
         //$this->flashMessenger()->addMessage('You don\'t have permission to do this action');
         //$this->redirect()->toRoute('add');
         return array('error' => 'You don\'t have permission to do this action');
     }
     $form = new UserForm(null, $user->role);
     $form->get('submit')->setValue('Add');
     $request = $this->getRequest();
     if ($request->isPost()) {
         $user = new User();
         $form->setInputFilter($user->getInputFilter());
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $user->exchangeArray($form->getData());
             $this->getUserTable()->saveUser($user);
             return $this->redirect()->toRoute('user');
         } else {
             echo "Fail to add new user";
         }
     }
     return array('form' => $form, 'flashMessages' => $this->flashMessenger()->getMessages());
 }
コード例 #10
0
ファイル: UserController.php プロジェクト: projectHN/mentor
 public function ajaxsigninAction()
 {
     /** @var \Zend\Http\Request $request */
     $request = $this->getRequest();
     if ($request->isPost()) {
         $user = new User();
         /* @var $userMapper \User\Model\UserMapper */
         $userMapper = $this->getServiceLocator()->get('User\\Model\\UserMapper');
         /* @var $serviceUser \User\Service\User */
         $serviceUser = $this->getServiceLocator()->get('User\\Service\\User');
         $data = $request->getPost();
         $user->exchangeArray((array) $data);
         if (count($error = $serviceUser->validateSigninInfo($user))) {
             return new JsonModel(array('code' => 0, 'message' => $error));
         }
         return new JsonModel(array('code' => 1, 'user' => $serviceUser->getUser()->toStd()));
     }
     return null;
 }
コード例 #11
0
 /**
  * @author DuongNQ
  * @param \Expert\Model\Expert\Subject $expertsub
  */
 public function search($expertsub, $options)
 {
     $select = $this->getDbSql()->select(array('es' => self::TABLE_NAME));
     if ($expertsub->getSubjectId()) {
         $select->where(['es.subjectId' => $expertsub->getSubjectId()]);
     }
     if ($expertsub->getOption('subjectIds')) {
         $select->where(['es.subjectId' => $expertsub->getOption('subjectIds')]);
     }
     $select->order(['es.id' => 'DESC']);
     $select->group('es.expertId');
     //        vdump($this->getDbSql()->buildSqlString($select));die;
     $paginator = $this->preparePaginator($select, $options, new Subject());
     $userIds = array();
     $users = array();
     /** @var \Expert\Model\Expert\Subject $es */
     foreach ($paginator as $es) {
         $userIds[] = $es->getExpertId();
     }
     $subjects = $this->fetchAllSubject($expertsub->addOption('expertIds', $userIds));
     if ($userIds) {
         $select = $this->getDbSql()->select(['u' => UserMapper::TABLE_NAME]);
         $select->where(['u.id' => $userIds]);
         $query = $this->getDbSql()->buildSqlString($select);
         $result = $this->getDbAdapter()->query($query, Adapter::QUERY_MODE_EXECUTE);
         if (count($result)) {
             $resultArray = $result->toArray();
             foreach ($resultArray as $u) {
                 $user = new User();
                 $users[$u['id']] = $user->exchangeArray($u);
             }
         }
     }
     /** @var \Expert\Model\Expert\Subject $expertsub */
     foreach ($paginator->getCurrentModels() as $expertsub) {
         $userId = $expertsub->getExpertId();
         $expertsub->addOption('subject', isset($subjects[$userId]) ? $subjects[$userId] : null);
         $expertsub->addOption('user', isset($users[$userId]) ? $users[$userId] : null);
     }
     return $paginator;
 }
コード例 #12
0
 /**
  * @author DuongNQ
  * @param \Expert\Model\Expert $exp
  */
 public function search($exp, $options)
 {
     $select = $this->getDbSql()->select(array('e' => self::TABLE_NAME));
     $select->order(['e.id' => 'DESC']);
     $paginator = $this->preparePaginator($select, $options, new Expert());
     $userIds = array();
     $users = array();
     /** @var Expert/Model/Expert $expert */
     foreach ($paginator as $expert) {
         $userIds[] = $expert->getId();
     }
     if ($userIds) {
         $select = $this->getDbSql()->select(['u' => UserMapper::TABLE_NAME]);
         $select->where(['u.id' => $userIds]);
         $query = $this->getDbSql()->buildSqlString($select);
         $result = $this->getDbAdapter()->query($query, Adapter::QUERY_MODE_EXECUTE);
         if (count($result)) {
             $resultArray = $result->toArray();
             foreach ($resultArray as $u) {
                 $user = new User();
                 $users[$u['id']] = $user->exchangeArray($u);
             }
         }
     }
     /** @var /Expert/Model/Expert $expert */
     foreach ($paginator->getCurrentModels() as $expert) {
         $userId = $expert->getId();
         $expert->addOption('user', isset($users[$userId]) ? $users[$userId] : null);
     }
     return $paginator;
 }
コード例 #13
0
ファイル: UserMapper.php プロジェクト: NguyenQuiDuong/Funix
 /**
  * @return array|null
  * @param \User\Model\User $user
  * todo l?y user theo email và activeCode
  */
 public function getUserNotActive($user)
 {
     if (!$user->getEmail() || !$user->getActiveKey()) {
         return null;
     }
     $select = $this->getDbSql()->select(array('u' => self::TABLE_NAME));
     $select->where(['email' => $user->getEmail(), 'activeKey' => $user->getActiveKey()]);
     $select->limit(1);
     $query = $this->getDbSql()->buildSqlString($select);
     $results = $this->getDbAdapter()->query($query, Adapter::QUERY_MODE_EXECUTE);
     if ($results->count()) {
         $data = $results->current();
         $user->exchangeArray((array) $results->current());
         return $user;
     }
     return null;
 }
コード例 #14
0
 public function editAction()
 {
     $this->accessRights(13);
     //Accept Parent Module, Return Main Menu Lists with Active Menu Indicator
     $this->childModuleAccessRights(24, 'edit');
     //Accept Child Module ID & it's Actions: add, edit, view, disable
     $msgs = '';
     //Get user id and validate
     $id = (int) $this->params()->fromRoute('id', 0);
     if (!$id) {
         return $this->redirect()->toRoute('user', array('action' => 'add'));
     }
     //Generate Adapter
     $this->adapter = $this->getServiceLocator()->get('Zend\\Db\\Adapter\\Adapter');
     // Get the User with the specified id.  An exception is thrown
     // if it cannot be found, in which case go to the index page.
     try {
         $user_data = $this->getUserTable()->getUser($this->adapter, $id);
         //Get user data
     } catch (\Exception $ex) {
         return $this->redirect()->toRoute('user', array('action' => 'index'));
     }
     $from = (array) $user_data;
     $form = new UserEditForm($this->adapter);
     $form->setData($user_data);
     //Update record after data posting
     $request = $this->getRequest();
     if ($request->isPost()) {
         $form->setData($request->getPost());
         //get previously posted data
         //Check if user is trying to update a password
         if ($request->getPost('password') != $request->getPost('confirm_password')) {
             $msgs = 'Set new password and confirm new password fields doesn\'t match.';
         } else {
             //Update user credentials
             $user = new User();
             $form->setInputFilter($user->getInputFilter());
             $form->setData($request->getPost());
             $form->isValid();
             //Save to Audit Trail
             //prepare audit trail parameters
             $to = $this->getRequest()->getPost()->toArray();
             $diff = array_diff_assoc($to, $from);
             //User Role Update
             if (array_key_exists("role_id", $diff)) {
                 $from_role_name = (array) $this->getRoleTable()->getRole($this->adapter, $from['role_id']);
                 $from['role_name'] = $from_role_name['role_name'];
                 $to_role_name = (array) $this->getRoleTable()->getRole($this->adapter, $to['role_id']);
                 $to['role_name'] = $to_role_name['role_name'];
                 $diff_role_name = (array) $this->getRoleTable()->getRole($this->adapter, $to['role_id']);
                 $diff['role_name'] = $diff_role_name['role_name'];
             }
             //Company Update
             if (array_key_exists("company_id", $diff)) {
                 $from_company_name = (array) $this->getCompanyTable()->getCompany($from['company_id']);
                 $from['company_name'] = $from_company_name['company_name'];
                 $to_company_name = (array) $this->getCompanyTable()->getCompany($to['company_id']);
                 $to['company_name'] = $to_company_name['company_name'];
                 $diff_company_name = (array) $this->getCompanyTable()->getCompany($to['company_id']);
                 $diff['company_name'] = $diff_company_name['company_name'];
             }
             unset($diff['submit'], $diff['app_user_credentials_id'], $diff['user_detail_id'], $diff['role_id'], $diff['company_id'], $diff['password'], $diff['confirm_password']);
             //Remove IDs
             $changes = $this->prepare_modified_data($from, $to, $diff);
             $this->save_to_audit_trail($to['username'], $changes['pre'], $changes['post'], 'edit', 24);
             // end audit trail parameters
             $user->exchangeArray($request->getPost());
             $this->getUserTable()->saveUser($request->getPost());
             $user_data = $this->getUserTable()->getUser($this->adapter, $id);
             //Get user data
             //Verify if admin had reset a user password
             $this->passwordHadBeenChanged('Newswire Password Reset', $request->getPost(), $request->getPost('email'));
             //Redirect to index
             $this->flashMessenger()->addMessage(['content' => $request->getPost('username') . ' has been updated!', 'type' => 'success']);
             $this->redirect()->toRoute('user');
         }
     }
     $view = new ViewModel(array('form' => $form, 'msgs' => $msgs, 'users' => $this->getUserTable()->fetchAll($this->adapter), 'companies' => $this->getUserTable()->getAllCompany($this->adapter), 'action' => 'edit', 'user_id' => $id, 'user_data' => $user_data, 'tab_menus' => $this->getTabMenu('User & Role'), 'access_rights' => $this->getSubModuleAccessRights(24)));
     $view->setTemplate('user/index');
     return $view;
 }
コード例 #15
0
 /**
  *
  * @param \User\Model\User $item
  * @param unknown $options
  */
 public function search($item, $options)
 {
     $select = $this->getDbSql()->select(array('u' => self::TABLE_NAME));
     if ($item->getId()) {
         $select->where(['u.id' => $item->getId()]);
     }
     if ($item->getUsername()) {
         $select->where(['(u.username LIKE ? OR u.fullName LIKE ?)' => ['%' . $item->getUsername() . '%', '%' . $item->getUsername() . '%']]);
     }
     if ($item->getEmail()) {
         $select->where(['(u.email LIKE ?)' => '%' . $item->getEmail() . '%']);
     }
     if ($item->getActive()) {
         if ($item->getActive() > 0) {
             $select->where(['u.active' => 1]);
         } else {
             $select->where(['(u.active IS NULL OR u.active != ?)' => 1]);
         }
     }
     if ($item->getRole()) {
         $select->where(['u.role' => $item->getRole()]);
     }
     $select->order(['u.id' => 'DESC']);
     /* $query = $this->getDbSql()->buildSqlString($select);
        vdump($query);die; */
     $paginator = $this->preparePaginator($select, $options, new User());
     $userIds = [];
     $districIds = [];
     $cityIds = [];
     $ids = [];
     foreach ($paginator as $user) {
         /*@var $user \User\Model\User */
         if ($user->getCreatedById()) {
             $userIds[$user->getCreatedById()] = $user->getCreatedById();
         }
         if ($user->getDistrictId()) {
             $districIds[$user->getDistrictId()] = $user->getDistrictId();
         }
         if ($user->getCityId()) {
             $cityIds[$user->getCityId()] = $user->getCityId();
         }
         $ids[] = $user->getId();
     }
     $dbAdapter = $this->getDbAdapter();
     $users = [];
     if (count($userIds)) {
         $select = $this->getDbSql()->select(array('u' => self::TABLE_NAME));
         $select->where(['u.id' => $userIds]);
         $query = $this->getDbSql()->buildSqlString($select);
         $rows = $dbAdapter->query($query, $dbAdapter::QUERY_MODE_EXECUTE);
         if ($rows->count()) {
             foreach ($rows as $row) {
                 $createdBy = new User();
                 $createdBy->exchangeArray((array) $row);
                 $users[$createdBy->getId()] = $createdBy;
             }
         }
     }
     $cities = [];
     if (count($cityIds)) {
         $select = $this->getDbSql()->select(array('c' => \Address\Model\CityMapper::TABLE_NAME));
         $select->where(['id' => $cityIds]);
         $query = $this->getDbSql()->buildSqlString($select);
         $rows = $dbAdapter->query($query, $dbAdapter::QUERY_MODE_EXECUTE);
         if ($rows->count()) {
             foreach ($rows as $row) {
                 $city = new \Address\Model\City();
                 $city->exchangeArray((array) $row);
                 $cities[$city->getId()] = $city;
             }
         }
     }
     $districs = [];
     if (count($districIds)) {
         $select = $this->getDbSql()->select(array('c' => \Address\Model\DistrictMapper::TABLE_NAME));
         $select->where(['id' => $districIds]);
         $query = $this->getDbSql()->buildSqlString($select);
         $rows = $dbAdapter->query($query, $dbAdapter::QUERY_MODE_EXECUTE);
         if ($rows->count()) {
             foreach ($rows as $row) {
                 $distric = new \Address\Model\District();
                 $distric->exchangeArray((array) $row);
                 $districs[$distric->getId()] = $distric;
             }
         }
     }
     if (count($paginator->getCurrentModels())) {
         foreach ($paginator->getCurrentModels() as $user) {
             if ($user->getCreatedById() && isset($users[$user->getCreatedById()])) {
                 $user->addOption('createdBy', $users[$user->getCreatedById()]);
             }
             if ($user->getCityId() && isset($cities[$user->getCityId()])) {
                 $user->setCity($cities[$user->getCityId()]);
             }
             if ($user->getDistrictId() && isset($districs[$user->getDistrictId()])) {
                 $user->setDistrict($districs[$user->getDistrictId()]);
             }
         }
     }
     return $paginator;
 }
コード例 #16
0
ファイル: ReportMapper.php プロジェクト: NguyenQuiDuong/Funix
 /**
  * @param $option
  */
 public function reportemployee($option)
 {
     $select = $this->getDbSql()->select(['ca' => self::TABLE_NAME]);
     $select->columns(['callcenter', 'mentor', 'count' => new Expression('COUNT(ca.id)'), 'rating' => new Expression('AVG(ca.rating)'), 'createdDate', 'createdDateTime', 'endedDate', 'endedDateTime', 'time' => new Expression('Sum(TIMESTAMPDIFF(MINUTE,`createdDateTime`,`endedDateTime`))')]);
     $select->where(['endedDate IS NOT NULL', 'endedDateTime IS NOT NULL']);
     if ($option['fromDate']) {
         $select->where(['ca.endedDate >= ?' => $option['fromDate']]);
     }
     if ($option['toDate']) {
         $select->where(['ca.endedDate <= ?' => $option['toDate']]);
     }
     if ($option['username']) {
         $predicateSet = new PredicateSet();
         $predicateSet->addPredicate(new Like('ca.callcenter', '%' . $option['username'] . '%'), $predicateSet::OP_OR);
         $predicateSet->addPredicate(new Like('ca.mentor', '%' . $option['username'] . '%'), $predicateSet::OP_OR);
         $select->where($predicateSet);
         //
         //            $select->where([
         //                'ca.callcenter LIKE ?' => '%'.$option['username'].'%',
         //                'ca.mentor LIKE ?' => '%'.$option['username'].'%'
         //            ],Predicate::OP_AND);
     }
     if ($option['role'] == User::ROLE_MENTOR) {
         $select->where(['ca.mentor IS NOT NULL', 'ca.callcenter IS NULL']);
     }
     if ($option['role'] == User::ROLE_CALLCENTER) {
         $select->where(['ca.callcenter IS NOT NULL', 'ca.mentor IS NULL']);
     }
     $select->group(['endedDate', 'callcenter', 'mentor']);
     if (isset($option['sort']) && $option['sort']) {
         $sort = $option['sort'];
         $select->order([$sort['sort'] . ' ' . $sort['dir']]);
     } else {
         $select->order(['endedDate DESC']);
     }
     $query = $this->getDbSql()->buildSqlString($select);
     $rows = $this->getDbAdapter()->query($query, Adapter::QUERY_MODE_EXECUTE);
     $result = [];
     $data = [];
     $usernames = [];
     $users = [];
     if (count($rows)) {
         foreach ($rows as $row) {
             if ($row['callcenter'] != null) {
                 $usernames[] = $row['callcenter'];
             }
             if ($row['mentor'] != null) {
                 $usernames[] = $row['mentor'];
             }
             $data[] = $row;
         }
         $select1 = $this->getDbSql()->select(['u' => UserMapper::TABLE_NAME]);
         $select1->where(['u.username' => $usernames]);
         $query1 = $this->getDbSql()->buildSqlString($select1);
         $rows1 = $this->getDbAdapter()->query($query1, Adapter::QUERY_MODE_EXECUTE);
         if (count($rows1)) {
             foreach ($rows1 as $r) {
                 $u = new User();
                 $u->exchangeArray((array) $r);
                 $users[$u->getUsername()] = $u;
             }
         }
         $checkDate = '';
         foreach ($data as $row) {
             $timediff = '';
             if ($row['endedDate'] != $checkDate) {
                 $checkDate = $row['endedDate'];
                 $createdDatetime = new \DateTime($row['createdDateTime']);
                 $endDatetime = new \DateTime($row['endedDateTime']);
                 $timediff = date_diff($createdDatetime, $endDatetime)->format('%i');
             } else {
                 $createdDatetime = new \DateTime($row['createdDateTime']);
                 $endDatetime = new \DateTime($row['endedDateTime']);
                 $timediff += date_diff($createdDatetime, $endDatetime)->format('%i');
             }
             $result[$row['endedDate']][] = ['rating' => $row['rating'], 'count' => $row['count'], 'user' => $row['callcenter'] ? $users[$row['callcenter']] : $users[$row['mentor']], 'time' => $row['time']];
         }
     }
     return $result;
 }
コード例 #17
0
 public function addAction()
 {
     /** @var \Zend\Http\Request $request */
     $request = $this->getRequest();
     $sl = $this->getServiceLocator();
     /* @var $cityMapper \Address\Model\CityMapper */
     $cityMapper = $sl->get('Address\\Model\\CityMapper');
     $city = new \Address\Model\City();
     /* @var $districtMapper \Address\Model\DistrictMapper */
     $districtMapper = $sl->get('Address\\Model\\DistrictMapper');
     $district = new \Address\Model\District();
     $districts = array();
     if (!!($cityId = $request->getPost('cityId'))) {
         $district->setCityId($cityId);
         $districts = $districtMapper->fetchAll($district);
     }
     $form = new \System\Form\User\Add($this->getServiceLocator());
     $form->setCities($city->toSelectBoxArray($cityMapper->fetchAll()));
     $form->setDistricts($district->toSelectBoxArray($districts));
     if ($this->getRequest()->isPost()) {
         $data = $this->getRequest()->getPost();
         $form->setData($data);
         if ($form->isValid()) {
             $user = new User();
             $user->exchangeArray($form->getData());
             $user->setSalt($user->generateSalt());
             $user->setPassword($user->createPassword());
             if (!$user->getRole()) {
                 $user->setRole(User::ROLE_GUEST);
             }
             if ($user->getBirthdate()) {
                 $user->setBirthdate(DateBase::toCommonDate($user->getBirthdate()));
             }
             $user->setActive(1);
             $user->setCreatedById($this->user()->getIdentity());
             $user->setCreatedDate(DateBase::getCurrentDate());
             $user->setCreatedDateTime(DateBase::getCurrentDateTime());
             $userMapper = $this->getServiceLocator()->get('\\User\\Model\\UserMapper');
             $userMapper->save($user);
             if ($form->get('afterSubmit')->getValue()) {
                 return $this->redirect()->toUrl($form->get('afterSubmit')->getValue());
             }
         }
     }
     $viewModel = new ViewModel();
     $viewModel->setVariable('form', $form);
     return $viewModel;
 }