Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Image di default gravatar

    Ciao a tutti
    sto utilizzando una classe per recuperare il gravatar da una email.
    Ma purtroppo se l'email non ha un gravatar mi esce immagine non esistente e volevo impostare una immagine di default

    Codice PHP:
    <?php
    /**
    *  Class Gravatar
    *
    * From Gravatar Help:
    *        "A gravatar is a dynamic image resource that is requested from our server. The request
    *        URL is presented here, broken into its segments."
    * Source:
    *    [url]http://site.gravatar.com/site/implement[/url]
    *
    * Usage:
    * <code>
    *        $email = "youremail@yourhost.com";
    *        $default = "http://www.yourhost.com/default_image.jpg";    // Optional
    *        $gravatar = new Gravatar($email, $default);
    *        $gravatar->size = 80;
    *        $gravatar->rating = "G";
    *        $gravatar->border = "FF0000";
    *
    *        echo $gravatar; // Or echo $gravatar->toHTML();
    * </code>
    *
    *    Class Page: [url]http://www.phpclasses.org/browse/package/4227.html[/url]
    *
    * @author Lucas Araújo <araujo.lucas@gmail.com>
    * @version 1.0
    * @package Gravatar
    */
    class Gravatar
    {
        
    /**
         *    Gravatar's url
         */
        
    const GRAVATAR_URL "http://www.gravatar.com/avatar.php";

        
    /**
         *    Ratings available
         */
        
    private $GRAVATAR_RATING = array("G""PG""R""X");

        
    /**
         *    Query string. key/value
         */
        
    protected $properties = array(
            
    "gravatar_id"    => NULL,
            
    "default"        => NULL,
            
    "size"            => 80,        // The default value
            
    "rating"        => NULL,
            
    "border"        => NULL,
        );

        
    /**
         *    E-mail. This will be converted to md5($email)
         */
        
    protected $email "";

        
    /**
         *    Extra attributes to the IMG tag like ALT, CLASS, STYLE...
         */
        
    protected $extra "";

        
    /**
         *    
         */
        
    public function __construct($email=NULL$default=NULL) {
            
    $this->setEmail($email);
            
    $this->setDefault($default);
        }

        
    /**
         *    
         */
        
    public function setEmail($email) {
            if (
    $this->isValidEmail($email)) {
                
    $this->email $email;
                
    $this->properties['gravatar_id'] = md5(strtolower($this->email));
                return 
    true;
            }
            return 
    false;
        }

        
    /**
         *    
         */
        
    public function setDefault($default) {
            
    $this->properties['default'] = $default;
        }

        
    /**
         *    
         */
        
    public function setRating($rating) {
            if (
    in_array($rating$this->GRAVATAR_RATING)) {
                
    $this->properties['rating'] = $rating;
                return 
    true;
            }
            return 
    false;
        }

        
    /**
         *    
         */
        
    public function setSize($size) {
            
    $size = (int) $size;
            if (
    $size <= 0)
                
    $size NULL;        // Use the default size
            
    $this->properties['size'] = $size;
        }

        
    /**
         *    
         */
        
    public function setExtra($extra) {
            
    $this->extra $extra;
        }

        
    /**
         *    
         */
        
    public function isValidEmail($email) {
            
    // Source: [url]http://www.zend.com/zend/spotlight/ev12apr.php[/url]
            
    return @eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$"$email);
        }

        
    /**
         *    Object property overloading
         */
        
    public function __get($var) { return @$this->properties[$var]; }

        
    /**
         *    Object property overloading
         */
        
    public function __set($var$value) {
            switch(
    $var) {
                case 
    "email":    return $this->setEmail($value);
                case 
    "rating":    return $this->setRating($value);
                case 
    "default":    return $this->setDefault($value);
                case 
    "size":    return $this->setSize($value);
                
    // Cannot set gravatar_id
                
    case "gravatar_id": return;
            }
            return @
    $this->properties[$var] = $value;
        }

        
    /**
         *    Object property overloading
         */
        
    public function __isset($var) { return isset($this->properties[$var]); }

        
    /**
         *    Object property overloading
         */
        
    public function __unset($var) { return @$this->properties[$var] == NULL; }

        
    /**
         *    Get source
         */
        
    public function getSrc() {
            
    $url self::GRAVATAR_URL ."?";
            
    $first true;
            foreach(
    $this->properties as $key => $value) {
                if (isset(
    $value)) {
                    if (!
    $first)
                        
    $url .= "&";
                    
    $url .= $key."=".urlencode($value);
                    
    $first false;
                }
            }
            return 
    $url;    
        }

        
    /**
         *    toHTML
         */
        
    public function toHTML() {
            
                return     
    '[img]'$this->getSrc() .'[/img]size) ? "" : ' width="'.$this->size.'" height="'.$this->size.'"')
                    .$this->extra
                    .' 
    style="margin-right: 15px;" />';  
            
            
        }

        /**
         *    toString
         */
        public function __toString() { return $this->toHTML(); }
    }
    ?>
    Come posso fare??' grazie a tutti

  2. #2

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.