/** * @return int */ public function createBrowsing() { $userHostAddress = $_SERVER['REMOTE_ADDR']; $userAgent = $_SERVER['HTTP_USER_AGENT']; $id = $this->_getBrowsingId($userHostAddress, $userAgent); if ($id == 0) { $query = 'insert into browsings (userhostaddress, useragent)' . ' values (:userhostaddress, :useragent);'; $params = array(); $params['userhostaddress'] = $userHostAddress; $params['useragent'] = $userAgent; $stmt = parent::prepare($query); $stmt->execute($params); $stmt = parent::query('select max(id) from browsings'); $id = $stmt->fetchColumn(); } return $id; }
/** * @param $pageId * @param $parentId * @param $browsingId * @param $userId * @param $body * @return string */ public function createCommentOnPage($pageId, $parentId, $browsingId, $userId, $body) { $query = 'insert into commentsonpage (page_id, parent_id, parent_ids, browsing_id, user_id, body, created_date, edit_date)' . ' values (:page_id, :parent_id, :parent_ids, :browsing_id, :user_id, :body, :created_date, :edit_date);'; $params = array(); $params['page_id'] = $pageId; $params['parent_id'] = $parentId; $parentIds = array(); if ($parentId != null) { $commentOnPageEntity = $this->getCommentOnPage($parentId); $parentIds = $commentOnPageEntity->parentIds; array_push($parentIds, $parentId); } $params['parent_ids'] = implode('|', $parentIds); $params['browsing_id'] = $browsingId; $params['user_id'] = $userId; $params['body'] = $body; $params['created_date'] = (new \DateTime())->format('Y-m-d H:i:s'); $params['edit_date'] = '2000-01-01 00:00:00'; $stmt = parent::prepare($query); $stmt->execute($params); $stmt = parent::query('select max(id) from commentsonpage'); return $stmt->fetchColumn(); }
/** * @return array */ public function getRoles() { $roleEntities = array(); $sqlProperty = implode(', ', RoleEntity::$SQL_PROPERTY); $stmt = parent::query("select {$sqlProperty} from roles"); while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) { $roleEntity = new RoleEntity($row); $roleEntities[$roleEntity->id] = $roleEntity; } return $roleEntities; }
/** * @param $parentIds * @return array */ public function getParentPages($parentIds) { $pageEntities = array(); if (count($parentIds) > 0) { $parentIdsJoin = implode(',', $parentIds); $sqlProperty = implode(', ', PageEntity::$SQL_PROPERTY); $stmt = parent::query("select {$sqlProperty} from pages where has_page=1 and id in ({$parentIdsJoin}) order by id"); while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) { $pageEntity = new PageEntity($row); $pageEntities[$pageEntity->id] = $pageEntity; } } return $pageEntities; }
/** * @param $roleNames * @return array */ public function getUsersWithRolesByRoles($roleNames) { $userEntities = array(); $sqlProperty = implode(', ', UserEntity::$SQL_PROPERTY); $roleNamesJoin = "'" . implode("', '", $roleNames) . "'"; $stmt = parent::query("select {$sqlProperty} from users u" . ' inner join usersinroles ur on ur.user_id=u.id' . ' inner join roles r on r.id=ur.role_id' . " where r.name in ({$roleNamesJoin})" . ' group by u.id'); while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) { $userEntity = new UserEntity($row); $userEntities[$userEntity->id] = $userEntity; } return $userEntities; }