public function searchUser($mWhat, $sWhere, $iGroupId, $iBanned, $bCount, $sOrderBy, $sSort, $iOffset, $iLimit)
 {
     $bCount = (bool) $bCount;
     $iOffset = (int) $iOffset;
     $iLimit = (int) $iLimit;
     $sSqlLimit = !$bCount ? ' LIMIT :offset, :limit' : '';
     $sSqlSelect = !$bCount ? 'm.*, g.name AS membershipName' : 'COUNT(m.profileId) AS totalUsers';
     $sSqlQuery = !empty($iBanned) ? '(ban = 1) AND ' : '';
     $sSqlQuery .= $sWhere === 'all' ? '(m.username LIKE :what OR m.email LIKE :what OR m.firstName LIKE :what OR m.lastName LIKE :what OR m.ip LIKE :what)' : '(m.' . $sWhere . ' LIKE :what)';
     $sSqlOrder = SearchCoreModel::order($sOrderBy, $sSort);
     $rStmt = Db::getInstance()->prepare('SELECT ' . $sSqlSelect . ' FROM' . Db::prefix('Members') . 'AS m INNER JOIN ' . Db::prefix('Memberships') . 'AS g ON m.groupId = g.groupId LEFT JOIN' . Db::prefix('MembersInfo') . 'AS i ON m.profileId = i.profileId WHERE (username <> \'' . PH7_GHOST_USERNAME . '\') AND (m.groupId = :groupId) AND ' . $sSqlQuery . $sSqlOrder . $sSqlLimit);
     $rStmt->bindValue(':what', '%' . $mWhat . '%', \PDO::PARAM_STR);
     $rStmt->bindParam(':groupId', $iGroupId, \PDO::PARAM_INT);
     if (!$bCount) {
         $rStmt->bindParam(':offset', $iOffset, \PDO::PARAM_INT);
         $rStmt->bindParam(':limit', $iLimit, \PDO::PARAM_INT);
     }
     $rStmt->execute();
     if (!$bCount) {
         $oRow = $rStmt->fetchAll(\PDO::FETCH_OBJ);
         Db::free($rStmt);
         return $oRow;
     } else {
         $oRow = $rStmt->fetch(\PDO::FETCH_OBJ);
         Db::free($rStmt);
         return (int) $oRow->totalUsers;
     }
 }
 /**
  * Browse Subscribers.
  *
  * @param mixed (integer for profile ID or string for a keyword) $mLooking
  * @param boolean $bCount Put 'true' for count the subscribers or 'false' for the result of subscribers.
  * @param string $sOrderBy
  * @param string $sSort
  * @param integer $iOffset
  * @param integer $iLimit
  * @return mixed (integer for the number subscribers returned or string for the subscribers list returned)
  */
 public function browse($mLooking, $bCount, $sOrderBy, $sSort, $iOffset, $iLimit)
 {
     $bCount = (bool) $bCount;
     $iOffset = (int) $iOffset;
     $iLimit = (int) $iLimit;
     $sSqlLimit = !$bCount ? ' LIMIT :offset, :limit' : '';
     $sSqlSelect = !$bCount ? '*' : 'COUNT(profileId) AS totalUsers';
     $sSqlWhere = ctype_digit($mLooking) ? ' WHERE profileId = :looking' : ' WHERE name LIKE :looking OR email LIKE :looking OR ip LIKE :looking';
     $sSqlOrder = SearchCoreModel::order($sOrderBy, $sSort);
     $rStmt = Db::getInstance()->prepare('SELECT ' . $sSqlSelect . ' FROM' . Db::prefix('Subscribers') . $sSqlWhere . $sSqlOrder . $sSqlLimit);
     ctype_digit($mLooking) ? $rStmt->bindValue(':looking', $mLooking, \PDO::PARAM_INT) : $rStmt->bindValue(':looking', '%' . $mLooking . '%', \PDO::PARAM_STR);
     if (!$bCount) {
         $rStmt->bindParam(':offset', $iOffset, \PDO::PARAM_INT);
         $rStmt->bindParam(':limit', $iLimit, \PDO::PARAM_INT);
     }
     $rStmt->execute();
     if (!$bCount) {
         $mData = $rStmt->fetchAll(\PDO::FETCH_OBJ);
     } else {
         $oRow = $rStmt->fetch(\PDO::FETCH_OBJ);
         $mData = (int) $oRow->totalUsers;
         unset($oRow);
     }
     Db::free($rStmt);
     return $mData;
 }
 /**
  * Gets Viewed Profile.
  *
  * @param mixed (integer for visitor ID or string for a keyword) $mLooking
  * @param boolean $bCount Put 'true' for count visitors or 'false' for the result of visitors.
  * @param string $sOrderBy
  * @param string $sSort
  * @param integer $iOffset
  * @param integer $iLimit
  * @return mixed (object | integer) object for the visitors list returned or integer for the total number visitors returned.
  */
 public function get($mLooking, $bCount, $sOrderBy, $sSort, $iOffset, $iLimit)
 {
     $bCount = (bool) $bCount;
     $iOffset = (int) $iOffset;
     $iLimit = (int) $iLimit;
     $sSqlLimit = !$bCount ? 'LIMIT :offset, :limit' : '';
     $sSqlSelect = !$bCount ? '*' : 'COUNT(who.profileId) AS totalVisitors';
     $sSqlWhere = ctype_digit($mLooking) ? '(who.visitorId = :looking)' : '(m.username LIKE :looking OR m.firstName LIKE :looking OR m.lastName LIKE :looking OR m.email LIKE :looking)';
     $sSqlOrder = SearchCoreModel::order($sOrderBy, $sSort);
     $rStmt = Db::getInstance()->prepare('SELECT ' . $sSqlSelect . ' FROM' . Db::prefix('MembersWhoViews') . 'AS who LEFT JOIN ' . Db::prefix('Members') . 'AS m ON who.visitorId = m.profileId WHERE (who.profileId = :profileId) AND ' . $sSqlWhere . $sSqlOrder . $sSqlLimit);
     $rStmt->bindValue(':profileId', $this->_iProfileId, \PDO::PARAM_INT);
     ctype_digit($mLooking) ? $rStmt->bindValue(':looking', $mLooking, \PDO::PARAM_INT) : $rStmt->bindValue(':looking', '%' . $mLooking . '%', \PDO::PARAM_STR);
     if (!$bCount) {
         $rStmt->bindParam(':offset', $iOffset, \PDO::PARAM_INT);
         $rStmt->bindParam(':limit', $iLimit, \PDO::PARAM_INT);
     }
     $rStmt->execute();
     if (!$bCount) {
         $oRow = $rStmt->fetchAll(\PDO::FETCH_OBJ);
         Db::free($rStmt);
         return $oRow;
     } else {
         $oRow = $rStmt->fetch(\PDO::FETCH_OBJ);
         Db::free($rStmt);
         return (int) $oRow->totalVisitors;
     }
 }
 /**
  * Gets Viewed Profile.
  *
  * @param string $sGender Constant (self::ALL, self::COUPLE, self::MALE, self::FEMALE). Default: self::ALL
  * @param boolean $bCount Put TRUE for count birthdays or FALSE for the result of birthdays. Default: TRUE
  * @param string $sOrderBy Default: SearchCoreModel::LAST_ACTIVITY
  * @param string $sSort Default: SearchCoreModel::DESC
  * @param integer $iOffset Default: NULL
  * @param integer $iLimit Default: NULL
  * @return mixed (object | integer) object for the birthdays list returned or integer for the total number birthdays returned.
  */
 public function get($sGender = self::ALL, $bCount = false, $sOrderBy = SearchCoreModel::LAST_ACTIVITY, $sSort = SearchCoreModel::DESC, $iOffset = null, $iLimit = null)
 {
     $bIsLimit = null !== $iOffset && null !== $iLimit;
     $bIsSex = $sGender !== self::ALL;
     $bCount = (bool) $bCount;
     $iOffset = (int) $iOffset;
     $iLimit = (int) $iLimit;
     $sSqlLimit = !$bCount && $bIsLimit ? 'LIMIT :offset, :limit' : '';
     $sSqlSelect = !$bCount ? '*' : 'COUNT(profileId) AS totalBirths';
     $sSqlWhere = $bIsSex ? ' AND (sex = :sex) ' : '';
     $sSqlOrder = SearchCoreModel::order($sOrderBy, $sSort);
     $rStmt = Db::getInstance()->prepare('SELECT ' . $sSqlSelect . ' FROM' . Db::prefix('Members') . 'WHERE (username <> \'' . PH7_GHOST_USERNAME . '\') AND (groupId=\'2\') AND (birthDate LIKE :date)' . $sSqlWhere . $sSqlOrder . $sSqlLimit);
     $rStmt->bindValue(':date', '%' . (new CDateTime())->get()->date('-m-d'), \PDO::PARAM_STR);
     if ($bIsSex) {
         $rStmt->bindValue(':sex', $sGender, \PDO::PARAM_STR);
     }
     if (!$bCount && $bIsLimit) {
         $rStmt->bindParam(':offset', $iOffset, \PDO::PARAM_INT);
         $rStmt->bindParam(':limit', $iLimit, \PDO::PARAM_INT);
     }
     $rStmt->execute();
     if (!$bCount) {
         $oRow = $rStmt->fetchAll(\PDO::FETCH_OBJ);
         Db::free($rStmt);
         return $oRow;
     } else {
         $oRow = $rStmt->fetch(\PDO::FETCH_OBJ);
         Db::free($rStmt);
         return (int) $oRow->totalBirths;
     }
 }
 public function get($sTitle = null, $iGameId = null, $iOffset, $iLimit, $sOrder = SearchCoreModel::NAME)
 {
     $iOffset = (int) $iOffset;
     $iLimit = (int) $iLimit;
     $sOrderBy = SearchCoreModel::order($sOrder, SearchCoreModel::DESC);
     $sSqlGameId = !empty($iGameId) ? ' WHERE title LIKE :title AND gameId =:gameId ' : '';
     $rStmt = Db::getInstance()->prepare('SELECT * FROM' . Db::prefix('Games') . $sSqlGameId . $sOrderBy . 'LIMIT :offset, :limit');
     isset($sTitle, $iGameId) ? $rStmt->bindValue(':title', $sTitle . '%', \PDO::PARAM_STR) : '';
     isset($sTitle, $iGameId) ? $rStmt->bindValue(':gameId', $iGameId, \PDO::PARAM_INT) : '';
     $rStmt->bindParam(':offset', $iOffset, \PDO::PARAM_INT);
     $rStmt->bindParam(':limit', $iLimit, \PDO::PARAM_INT);
     $rStmt->execute();
     $oData = !empty($iGameId) ? $rStmt->fetch(\PDO::FETCH_OBJ) : $rStmt->fetchAll(\PDO::FETCH_OBJ);
     Db::free($rStmt);
     return $oData;
 }
 /**
  * Gets all blog posts.
  *
  * @param integer $iOffset
  * @param integer $iLimit
  * @param string $sOrder A constant: SearchCoreModel::CREATED (default value) or SearchCoreModel::UPDATED
  * @return string
  */
 public function getPosts($iOffset, $iLimit, $sOrder = SearchCoreModel::CREATED)
 {
     // We do not have a long duration of the cache for the changes of positions to be easily updated on the list of Blogs of the home page.
     $this->cache->start(self::CACHE_GROUP, 'posts' . $iOffset . $iLimit . $sOrder, 3600);
     if (!($oData = $this->cache->get())) {
         $iOffset = (int) $iOffset;
         $iLimit = (int) $iLimit;
         $sOrderBy = SearchCoreModel::order($sOrder, SearchCoreModel::DESC);
         $rStmt = Db::getInstance()->prepare('SELECT * FROM' . Db::prefix('Blogs') . $sOrderBy . 'LIMIT :offset, :limit');
         $rStmt->bindParam(':offset', $iOffset, \PDO::PARAM_INT);
         $rStmt->bindParam(':limit', $iLimit, \PDO::PARAM_INT);
         $rStmt->execute();
         $oData = $rStmt->fetchAll(\PDO::FETCH_OBJ);
         Db::free($rStmt);
         $this->cache->put($oData);
     }
     return $oData;
 }
 /**
  * Gets all note posts.
  *
  * @param integer $iOffset
  * @param integer $iLimit
  * @param string $sOrder A constant: SearchCoreModel::CREATED (default value) or SearchCoreModel::UPDATED
  * @param integer $iApproved (0 = Unmoderated | 1 = Approved | NULL = unmoderated and approved) Default 1
  * @return string
  */
 public function getPosts($iOffset, $iLimit, $sOrder = SearchCoreModel::CREATED, $iApproved = 1)
 {
     $this->cache->enabled(false);
     // Disabled the cache (if you have a few notes, you can enable it to improve performance).
     // We do not have a long duration of the cache for the changes of positions to be easily updated on the list of Notes of the home page.
     $this->cache->start(self::CACHE_GROUP, 'posts' . $iOffset . $iLimit . $sOrder . $iApproved, 3600);
     if (!($oData = $this->cache->get())) {
         $iOffset = (int) $iOffset;
         $iLimit = (int) $iLimit;
         $sSqlApproved = isset($iApproved) ? ' WHERE approved = :approved' : '';
         $sOrderBy = SearchCoreModel::order($sOrder, SearchCoreModel::DESC);
         $rStmt = Db::getInstance()->prepare('SELECT n.*, m.username, m.firstName, m.sex FROM' . Db::prefix('Notes') . ' AS n INNER JOIN ' . Db::prefix('Members') . 'AS m ON n.profileId = m.profileId' . $sSqlApproved . $sOrderBy . 'LIMIT :offset, :limit');
         $rStmt->bindParam(':offset', $iOffset, \PDO::PARAM_INT);
         $rStmt->bindParam(':limit', $iLimit, \PDO::PARAM_INT);
         if (isset($iApproved)) {
             $rStmt->bindParam(':approved', $iApproved, \PDO::PARAM_INT);
         }
         $rStmt->execute();
         $oData = $rStmt->fetchAll(\PDO::FETCH_OBJ);
         Db::free($rStmt);
         $this->cache->put($oData);
     }
     return $oData;
 }
 /**
  * Get the users from the location data.
  *
  * @param string $sCountry
  * @param string $sCity
  * @param boolean $bCount
  * @param string $sOrder
  * @param integer $iOffset
  * @param integer $iLimit
  * @return mixed (object | integer) object for the users list returned or integer for the total number users returned.
  */
 public function getGeoProfiles($sCountry, $sCity, $bCount, $sOrder, $iOffset, $iLimit)
 {
     $bCount = (bool) $bCount;
     $iOffset = (int) $iOffset;
     $iLimit = (int) $iLimit;
     $sOrder = !$bCount ? SearchCoreModel::order($sOrder, SearchCoreModel::DESC) : '';
     $sSqlLimit = !$bCount ? 'LIMIT :offset, :limit' : '';
     $sSqlSelect = !$bCount ? '*' : 'COUNT(m.profileId) AS totalUsers';
     $sSqlCity = !empty($sCity) ? 'AND (city LIKE :city)' : '';
     $rStmt = Db::getInstance()->prepare('SELECT ' . $sSqlSelect . ' FROM' . Db::prefix('Members') . 'AS m LEFT JOIN' . Db::prefix('MembersInfo') . 'AS i ON m.profileId = i.profileId WHERE (username <> \'' . PH7_GHOST_USERNAME . '\')
         AND (country = :country) ' . $sSqlCity . ' AND (username IS NOT NULL) AND (firstName IS NOT NULL) AND (sex IS NOT NULL) AND (matchSex IS NOT NULL) AND (country IS NOT NULL) AND (city IS NOT NULL) AND (groupId = 2)' . $sOrder . $sSqlLimit);
     $rStmt->bindParam(':country', $sCountry, \PDO::PARAM_STR, 2);
     !empty($sCity) ? $rStmt->bindValue(':city', '%' . $sCity . '%', \PDO::PARAM_STR) : '';
     if (!$bCount) {
         $rStmt->bindParam(':offset', $iOffset, \PDO::PARAM_INT);
         $rStmt->bindParam(':limit', $iLimit, \PDO::PARAM_INT);
     }
     $rStmt->execute();
     if (!$bCount) {
         $oRow = $rStmt->fetchAll(\PDO::FETCH_OBJ);
         Db::free($rStmt);
         return $oRow;
     } else {
         $oRow = $rStmt->fetch(\PDO::FETCH_OBJ);
         Db::free($rStmt);
         return (int) $oRow->totalUsers;
     }
 }
Exemple #9
0
 /**
  * @param mixed (integer for post ID or string for a keyword) $mLooking
  * @param boolean $bCount Put 'true' for count the notes or 'false' for the result of notes.
  * @param string $sOrderBy
  * @param string $sSort
  * @param integer $iOffset
  * @param integer $iLimit
  * @param integer $iApproved (0 = Unmoderated | 1 = Approved | NULL = unmoderated and approved) Default 1
  * @return mixed (integer for the number notes returned or string for the notes list returned)
  */
 public function search($mLooking, $bCount, $sOrderBy, $sSort, $iOffset, $iLimit, $iApproved = 1)
 {
     $bCount = (bool) $bCount;
     $iOffset = (int) $iOffset;
     $iLimit = (int) $iLimit;
     $sSqlApproved = isset($iApproved) ? ' AND (approved = :approved)' : '';
     $sSqlOrder = SearchCoreModel::order($sOrderBy, $sSort, 'n');
     $sSqlLimit = !$bCount ? 'LIMIT :offset, :limit' : '';
     $sSqlSelect = !$bCount ? 'n.*, m.username, m.firstName, m.sex' : 'COUNT(noteId) AS totalNotes';
     $sSqlWhere = ctype_digit($mLooking) ? ' WHERE (noteId = :looking)' : ' WHERE (postId LIKE :looking OR pageTitle LIKE :looking OR content LIKE :looking OR tags LIKE :looking OR username LIKE :looking OR firstName LIKE :looking OR lastName LIKE :looking)';
     $rStmt = Db::getInstance()->prepare('SELECT ' . $sSqlSelect . ' FROM' . Db::prefix('Notes') . 'AS n INNER JOIN' . Db::prefix('Members') . 'AS m ON n.profileId = m.profileId' . $sSqlWhere . $sSqlApproved . $sSqlOrder . $sSqlLimit);
     ctype_digit($mLooking) ? $rStmt->bindValue(':looking', $mLooking, \PDO::PARAM_INT) : $rStmt->bindValue(':looking', '%' . $mLooking . '%', \PDO::PARAM_STR);
     if (isset($iApproved)) {
         $rStmt->bindParam(':approved', $iApproved, \PDO::PARAM_INT);
     }
     if (!$bCount) {
         $rStmt->bindParam(':offset', $iOffset, \PDO::PARAM_INT);
         $rStmt->bindParam(':limit', $iLimit, \PDO::PARAM_INT);
     }
     $rStmt->execute();
     if (!$bCount) {
         $mData = $rStmt->fetchAll(\PDO::FETCH_OBJ);
         Db::free($rStmt);
     } else {
         $oRow = $rStmt->fetch(\PDO::FETCH_OBJ);
         Db::free($rStmt);
         $mData = (int) $oRow->totalNotes;
         unset($oRow);
     }
     return $mData;
 }
Exemple #10
0
 public function search($mLooking, $bCount, $sOrderBy, $sSort, $iOffset, $iLimit, $iProfileId = null, $sType = 'all')
 {
     $bCount = (bool) $bCount;
     $iOffset = (int) $iOffset;
     $iLimit = (int) $iLimit;
     $sSqlLimit = !$bCount ? ' LIMIT :offset, :limit' : '';
     $sSqlSelect = !$bCount ? '*' : 'COUNT(messageId) AS totalMails';
     $sSqlFind = ' ' . (ctype_digit($mLooking) ? '(messageId = :looking)' : '(title LIKE :looking OR message LIKE :looking OR username LIKE :looking OR firstName LIKE :looking OR lastName LIKE :looking)');
     $sSqlOrder = SearchCoreModel::order($sOrderBy, $sSort);
     switch ($sType) {
         case self::INBOX:
             $sSql = 'msg.sender = m.profileId WHERE (msg.recipient = :profileId) AND (NOT FIND_IN_SET(\'recipient\', msg.toDelete)) AND';
             break;
         case self::OUTBOX:
             $sSql = 'msg.recipient = m.profileId WHERE (msg.sender = :profileId) AND (NOT FIND_IN_SET(\'sender\', msg.toDelete)) AND';
             break;
         case self::TRASH:
             $sSql = 'msg.sender = m.profileId WHERE (msg.recipient = :profileId) AND (FIND_IN_SET(\'recipient\', msg.trash)) AND (NOT FIND_IN_SET(\'recipient\', msg.toDelete)) AND';
             break;
         default:
             // All messages
             $sSql = 'msg.sender = m.profileId WHERE ';
     }
     $rStmt = Db::getInstance()->prepare('SELECT ' . $sSqlSelect . ' FROM' . Db::prefix('Messages') . 'AS msg LEFT JOIN ' . Db::prefix('Members') . 'AS m ON ' . $sSql . $sSqlFind . $sSqlOrder . $sSqlLimit);
     ctype_digit($mLooking) ? $rStmt->bindValue(':looking', $mLooking, \PDO::PARAM_INT) : $rStmt->bindValue(':looking', '%' . $mLooking . '%', \PDO::PARAM_STR);
     if (!empty($iProfileId)) {
         $rStmt->bindParam(':profileId', $iProfileId, \PDO::PARAM_INT);
     }
     if (!$bCount) {
         $rStmt->bindParam(':offset', $iOffset, \PDO::PARAM_INT);
         $rStmt->bindParam(':limit', $iLimit, \PDO::PARAM_INT);
     }
     $rStmt->execute();
     if (!$bCount) {
         $mData = $rStmt->fetchAll(\PDO::FETCH_OBJ);
     } else {
         $oRow = $rStmt->fetch(\PDO::FETCH_OBJ);
         $mData = (int) $oRow->totalMails;
         unset($oRow);
     }
     Db::free($rStmt);
     return $mData;
 }
Exemple #11
0
 /**
  * "Get" and "Find" "Friends" or "Mutual Friends"
  *
  * @param integer $iIdProfileId User ID
  * @param integer $iFriendId Enter a user Friend ID to find a mutual friend in the friends list or null = the whole list. Default is NULL
  * @param mixed (integer for profile ID or string for a keyword) $mLooking
  * @param boolean $bCount Put 'true' for count friends or 'false' for the result of friends
  * @param string $sOrderBy
  * @param string $sSort
  * @param integer $iOffset
  * @param integer $iLimit
  * @param mixed (integer or string) $mPending 'all' = approved and pending, 1 = approved or 0 = pending friend requests. Default value is 'all'
  * @return mixed (integer for the number friends returned or string for the friends list returned)
  */
 public function get($iIdProfileId, $iFriendId = null, $mLooking, $bCount, $sOrderBy, $sSort, $iOffset, $iLimit, $mPending = 'all')
 {
     $bCount = (bool) $bCount;
     $iOffset = (int) $iOffset;
     $iLimit = (int) $iLimit;
     $sSqlLimit = !$bCount ? 'LIMIT :offset, :limit' : '';
     $sSqlSelect = !$bCount ? '(f.profileId + f.friendId - :profileId) AS fdId, f.*, m.username, m.firstName, m.sex' : 'COUNT(f.friendId) AS totalFriends';
     $sSqlWhere = !empty($iFriendId) ? 'f.profileId IN
        (SELECT * FROM (SELECT (m.profileId)
        FROM ' . Db::prefix('MembersFriends') . ' AS m
        WHERE (m.friendId IN(:profileId, :friendId))
        UNION ALL
            SELECT (f.friendId) FROM ' . Db::prefix('MembersFriends') . ' AS f
            WHERE (f.profileId IN(:profileId, :friendId))) AS fd
            GROUP BY fd.profileId HAVING COUNT(fd.profileId) > 1)' : '(f.profileId = :profileId OR f.friendId = :profileId)';
     $sSqlSearchWhere = ctype_digit($mLooking) ? '(m.profileId = :profileId AND f.friendId= :profileId) OR (m.profileId = :friendId OR f.friendId= :friendId)' : '(m.username LIKE :looking OR m.firstName LIKE :looking OR m.lastName LIKE :looking OR m.email LIKE :looking)';
     $sSqlOrder = SearchCoreModel::order($sOrderBy, $sSort);
     $rStmt = Db::getInstance()->prepare('SELECT ' . $sSqlSelect . ' FROM' . Db::prefix('MembersFriends') . 'AS f INNER JOIN' . Db::prefix('Members') . 'AS m ON m.profileId = (f.profileId + f.friendId - :profileId) WHERE ' . $sSqlWhere . ' AND ' . $sSqlSearchWhere . $sSqlOrder . $sSqlLimit);
     $rStmt->bindValue(':profileId', $iIdProfileId, \PDO::PARAM_INT);
     ctype_digit($mLooking) ? $rStmt->bindValue(':looking', $mLooking, \PDO::PARAM_INT) : $rStmt->bindValue(':looking', '%' . $mLooking . '%', \PDO::PARAM_STR);
     if (!empty($iFriendId)) {
         $rStmt->bindValue(':friendId', $iFriendId, \PDO::PARAM_INT);
     }
     if ($mPending != 'all') {
         $rStmt->bindValue(':pending', $mPending, \PDO::PARAM_INT);
     }
     if (!$bCount) {
         $rStmt->bindParam(':offset', $iOffset, \PDO::PARAM_INT);
         $rStmt->bindParam(':limit', $iLimit, \PDO::PARAM_INT);
     }
     $rStmt->execute();
     if (!$bCount) {
         $mData = $rStmt->fetchAll(\PDO::FETCH_OBJ);
         Db::free($rStmt);
     } else {
         $oRow = $rStmt->fetch(\PDO::FETCH_OBJ);
         Db::free($rStmt);
         $mData = (int) $oRow->totalFriends;
         unset($oRow);
     }
     return $mData;
 }
 public function search($mLooking, $bCount, $sOrderBy, $sSort, $iOffset, $iLimit, $iApproved = 1)
 {
     $bCount = (bool) $bCount;
     $iOffset = (int) $iOffset;
     $iLimit = (int) $iLimit;
     $sSqlOrder = SearchCoreModel::order($sOrderBy, $sSort);
     $sSqlLimit = !$bCount ? 'LIMIT :offset, :limit' : '';
     $sSqlSelect = !$bCount ? '*' : 'COUNT(p.pictureId) AS totalPictures';
     $sSqlWhere = ctype_digit($mLooking) ? ' WHERE p.pictureId = :looking' : ' WHERE p.title LIKE :looking OR p.description LIKE :looking';
     $rStmt = Db::getInstance()->prepare('SELECT p.*, a.name, m.username, m.firstName, m.sex FROM' . Db::prefix('Pictures') . 'AS p INNER JOIN' . Db::prefix('AlbumsPictures') . 'AS a ON p.albumId = a.albumId INNER JOIN' . Db::prefix('Members') . 'AS m ON p.profileId = m.profileId' . $sSqlWhere . ' AND p.approved=:approved' . $sSqlOrder . $sSqlLimit);
     ctype_digit($mLooking) ? $rStmt->bindValue(':looking', $mLooking, \PDO::PARAM_INT) : $rStmt->bindValue(':looking', '%' . $mLooking . '%', \PDO::PARAM_STR);
     $rStmt->bindValue(':approved', $iApproved, \PDO::PARAM_INT);
     if (!$bCount) {
         $rStmt->bindParam(':offset', $iOffset, \PDO::PARAM_INT);
         $rStmt->bindParam(':limit', $iLimit, \PDO::PARAM_INT);
     }
     $rStmt->execute();
     if (!$bCount) {
         $mData = $rStmt->fetchAll(\PDO::FETCH_OBJ);
         Db::free($rStmt);
     } else {
         $oRow = $rStmt->fetch(\PDO::FETCH_OBJ);
         Db::free($rStmt);
         $mData = (int) @$oRow->totalPictures;
         unset($oRow);
     }
     return $mData;
 }
 /**
  * Search Topics.
  *
  * @param mixed (integer for Topic ID or string for a keyword) $mLooking
  * @param boolean $bCount Put 'true' for count the topics or 'false' for the result of topics.
  * @param string $sOrderBy
  * @param string $sSort
  * @param integer $iOffset
  * @param integer $iLimit
  * @return mixed (integer for the number topics returned or string for the topics list returned)
  */
 public function search($mLooking, $bCount, $sOrderBy, $sSort, $iOffset, $iLimit)
 {
     $bCount = (bool) $bCount;
     $iOffset = (int) $iOffset;
     $iLimit = (int) $iLimit;
     $sSqlOrder = SearchCoreModel::order($sOrderBy, $sSort, 't');
     $sSqlLimit = !$bCount ? 'LIMIT :offset, :limit' : '';
     $sSqlSelect = !$bCount ? 'f.*, f.createdDate AS forumCreatedDate, f.updatedDate AS forumUpdatedDate, t.*, m.username, m.firstName, m.sex' : 'COUNT(t.topicId) AS totalTopics';
     $sSqlWhere = ctype_digit($mLooking) ? ' WHERE t.topicId = :looking ' : ' WHERE t.message LIKE :looking OR t.title LIKE :looking OR m.username LIKE :looking';
     $rStmt = Db::getInstance()->prepare('SELECT ' . $sSqlSelect . ' FROM' . Db::prefix('Forums') . 'AS f INNER JOIN' . Db::prefix('ForumsTopics') . 'AS t ON f.forumId = t.forumId LEFT JOIN' . Db::prefix('Members') . ' AS m ON t.profileId = m.profileId' . $sSqlWhere . $sSqlOrder . $sSqlLimit);
     ctype_digit($mLooking) ? $rStmt->bindValue(':looking', $mLooking, \PDO::PARAM_INT) : $rStmt->bindValue(':looking', '%' . $mLooking . '%', \PDO::PARAM_STR);
     if (!$bCount) {
         $rStmt->bindParam(':offset', $iOffset, \PDO::PARAM_INT);
         $rStmt->bindParam(':limit', $iLimit, \PDO::PARAM_INT);
     }
     $rStmt->execute();
     if (!$bCount) {
         $mData = $rStmt->fetchAll(\PDO::FETCH_OBJ);
         Db::free($rStmt);
     } else {
         $oRow = $rStmt->fetch(\PDO::FETCH_OBJ);
         Db::free($rStmt);
         $mData = (int) $oRow->totalTopics;
         unset($oRow);
     }
     return $mData;
 }