Quantcast
Channel: Tópicos
Viewing all articles
Browse latest Browse all 14700

[AJUDA] Como aparecer apenas users com o email activado.

$
0
0
Nao sou o autor deste codigo*

Boa noite P@P, gostaria que me ajudassem a aparecer só os users que activaram a sua conta pelo email.

Código (PHP):
<?php

/**
* OverviewModel
* Handles data for overviews (pages that show user profiles / lists)
*/
class OverviewModel
{
        /**
         * Constructor, expects a Database connection
         * @param Database $db The Database object
         */
        public function __construct(Database $db)
        {
                $this->db = $db;
        }

        /**
         * Gets an array that contains all the users in the database. The array's keys are the user ids.
         * Each array element is an object, containing a specific user's data.
         * @return array The profiles of all users
         */
        public function getAllUsersProfiles()
        {
                $sth = $this->db->prepare("SELECT user_id, user_name, user_email, user_active, user_has_avatar FROM users");
                $sth->execute();

                $all_users_profiles = array();

                foreach ($sth->fetchAll() as $user) {
                        // a new object for every user. This is eventually not really optimal when it comes
                        // to performance, but it fits the view style better
                        $all_users_profiles[$user->user_id] = new stdClass();
                        $all_users_profiles[$user->user_id]->user_id = $user->user_id;
                        $all_users_profiles[$user->user_id]->user_name = $user->user_name;
                        $all_users_profiles[$user->user_id]->user_email = $user->user_email;

                        if (USE_GRAVATAR) {
                                $all_users_profiles[$user->user_id]->user_avatar_link =
                                        $this->getGravatarLinkFromEmail($user->user_email);
                        } else {
                                $all_users_profiles[$user->user_id]->user_avatar_link =
                                        $this->getUserAvatarFilePath($user->user_has_avatar, $user->user_id);
                        }

                        $all_users_profiles[$user->user_id]->user_active = $user->user_active;
                }
                return $all_users_profiles;
        }

        /**
         * Gets a user's profile data, according to the given $user_id
         * @param int $user_id The user's id
         * @return object/null The selected user's profile
         */
        public function getUserProfile($user_id)
        {
                $sql = "SELECT user_id, user_name, user_email, user_active, user_has_avatar
                                FROM users WHERE user_id = :user_id";
                $sth = $this->db->prepare($sql);
                $sth->execute(array(':user_id' => $user_id));

                $user = $sth->fetch();
                $count =  $sth->rowCount();

                if ($count == 1) {
                        if (USE_GRAVATAR) {
                                $user->user_avatar_link = $this->getGravatarLinkFromEmail($user->user_email);
                        } else {
                                $user->user_avatar_link = $this->getUserAvatarFilePath($user->user_has_avatar, $user->user_id);
                        }
                } else {
                        $_SESSION["feedback_negative"][] = FEEDBACK_USER_DOES_NOT_EXIST;
                }

                return $user;
        }

        /**
         * Gets a gravatar image link from given email address
         *
         * Gravatar is the #1 (free) provider for email address based global avatar hosting.
         * The URL (or image) returns always a .jpg file !
         * For deeper info on the different parameter possibilities:
         * @see http://gravatar.com/site/implement/images/
         * @source http://gravatar.com/site/implement/images/php/
         *
         * This method will return in something like
         * http://www.gravatar.com/avatar/205e460b479e2e5b48aec07710c08d50?s=80&d=mm&r=g
         * Note: the url does NOT have something like ".jpg" ! It works without.
         *
         * @param string $email The email address
         * @param int|string $s Size in pixels, defaults to 50px [ 1 - 2048 ]
         * @param string $d Default imageset to use [ 404 | mm | identicon | monsterid | wavatar ]
         * @param string $r Maximum rating (inclusive) [ g | pg | r | x ]
         * @param array $options Optional, additional key/value attributes to include in the IMG tag
         * @return string
         */
        public function getGravatarLinkFromEmail($email, $s = AVATAR_SIZE, $d = 'mm', $r = 'pg', $options = array())
        {
                $gravatar_image_link = '[url="http://www.gravatar.com/avatar/%27;"]http://www.gravatar.com/avatar/';[/url]
                $gravatar_image_link .= md5( strtolower( trim( $email ) ) );
                $gravatar_image_link .= "?s=$s&d=$d&r=$r";

                return $gravatar_image_link;
        }

        /**
         * Gets the user's avatar file path
         * @param int $user_has_avatar Marker from database
         * @param int $user_id User's id
         * @return string/null Avatar file path
         */
        public function getUserAvatarFilePath($user_has_avatar, $user_id)
        {
                if ($user_has_avatar) {
                        return URL . AVATAR_PATH . $user_id . '.jpg';
                } else {
                        return URL . AVATAR_PATH . AVATAR_DEFAULT_IMAGE;
                }
                // default return
                return null;
        }
}

Viewing all articles
Browse latest Browse all 14700