php:cache_gravatar
Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
php:cache_gravatar [2012-05-28 19:56] – créée mitsu | php:cache_gravatar [2015-07-04 09:05] (Version actuelle) – mitsu | ||
---|---|---|---|
Ligne 11: | Ligne 11: | ||
*/ | */ | ||
$expire = time() -604800 ; // default: 604800 (7 days) | $expire = time() -604800 ; // default: 604800 (7 days) | ||
- | if (isset($_GET[' | + | $size = 65; |
- | { | + | |
- | if (strlen($_GET[' | + | if(isset($_GET[' |
- | $hash = ereg_replace(" | + | switch ($_GET[' |
- | if (strlen($hash) != 32) { die; } | + | case 0: |
- | $newfile = $hash.' | + | $size = 32; break; |
- | $file = 'https://secure.gravatar.com/ | + | case 1: |
- | if(file_exists($newfile) && filemtime($newfile) < $expire) | + | $size = 120; break; |
- | { unlink($newfile); | + | default: |
- | if (file_exists($newfile)) | + | $size = 65; |
- | { } // the gravatar wasn't removed before: it's valid and doesn' | + | } |
- | else | + | } |
- | { copy($file, $newfile); | + | |
- | $imagecheck = getimagesize($newfile); | + | if (isset($_GET[' |
- | if ($imagecheck[' | + | if (strlen($_GET[' |
- | | + | $hash = preg_replace("/[^a-f0-9]/", "", |
- | imagepng(imagecreatefromjpeg($newfile), | + | if (strlen($hash) != 32) { header(" |
- | unlink($newfile); | + | |
- | rename($newfile.' | + | $newfile = $hash.' |
+ | $file = 'http:// | ||
+ | if(file_exists($newfile) && filemtime($newfile) < $expire) | ||
+ | unlink($newfile); | ||
+ | } | ||
+ | if (file_exists($newfile)) | ||
+ | } | ||
+ | else { | ||
+ | copy($file, $newfile); | ||
+ | $imagecheck = getimagesize($newfile); | ||
+ | if ($imagecheck[' | ||
+ | imagepng(imagecreatefromjpeg($newfile), | ||
+ | unlink($newfile); | ||
+ | rename($newfile.' | ||
+ | } | ||
+ | } | ||
+ | header(' | ||
+ | header(' | ||
+ | | ||
+ | | ||
+ | | ||
+ | exit; | ||
+ | } | ||
+ | |||
+ | else { | ||
+ | $seconds_old = 2592000; // 30 days | ||
+ | $dirhandle = opendir(' | ||
+ | while($fileclean = readdir($dirhandle)) { | ||
+ | if( $fileclean != " | ||
+ | if(filemtime($fileclean) < (time()-$seconds_old) ) { | ||
+ | unlink($fileclean); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | header(' | ||
+ | exit; | ||
+ | } | ||
+ | |||
+ | ?> | ||
+ | </ | ||
+ | |||
+ | |||
+ | Pour passer les avatars Wordpress, envoyez ce fichier dans le dossier des extensions et activez-le (après avoir crée le dossier " | ||
+ | <file php gravatar.php> | ||
+ | <?php | ||
+ | add_filter(' | ||
+ | function be_gravatar_filter($avatar, | ||
+ | $email = ' | ||
+ | if ( is_numeric($id_or_email) ) { | ||
+ | $id = (int) $id_or_email; | ||
+ | $user = get_userdata($id); | ||
+ | if ( $user ) | ||
+ | $email = $user-> | ||
+ | } elseif ( is_object($id_or_email) ) { | ||
+ | // No avatar for pingbacks or trackbacks | ||
+ | $allowed_comment_types = apply_filters( ' | ||
+ | if ( ! empty( $id_or_email-> | ||
+ | return false; | ||
+ | |||
+ | if ( !empty($id_or_email-> | ||
+ | $id = (int) $id_or_email-> | ||
+ | $user = get_userdata($id); | ||
+ | if ( $user) | ||
+ | $email = $user-> | ||
+ | } elseif ( !empty($id_or_email-> | ||
+ | $email = $id_or_email-> | ||
+ | } | ||
+ | } else { | ||
+ | $email = $id_or_email; | ||
+ | } | ||
+ | |||
+ | if ( empty($default) ) { | ||
+ | $avatar_default = get_option(' | ||
+ | if ( empty($avatar_default) ) | ||
+ | $default = ' | ||
+ | else | ||
+ | $default = $avatar_default; | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | if ( !empty($email) ) | ||
+ | $email_hash = md5( strtolower( $email ) ); | ||
+ | $return = '<a href=" | ||
+ | return $return; | ||
+ | } | ||
+ | ?> | ||
+ | </ | ||
+ | |||
+ | OPTIONNEL: vous pouvez placer le script suivant dans votre dossier de gravatars, il crée une galerie en supprimant les gravatars trop anciens: | ||
+ | <file php index.php> | ||
+ | <?php | ||
+ | // delete gravatars older than 30 days | ||
+ | $seconds_old = 2592000; | ||
+ | $dirhandle = opendir(' | ||
+ | while($fileclean = readdir($dirhandle)) { | ||
+ | if( $fileclean != " | ||
+ | if(filemtime($fileclean) < (time()-$seconds_old) ) { | ||
+ | | ||
} | } | ||
+ | } | ||
} | } | ||
- | header(' | + | |
+ | /*cache*/ | ||
+ | $cache = 'zavatars.html'; | ||
+ | $expire = time() -60000 | ||
+ | $expire_gravatar = time() -10 ; | ||
+ | | ||
else | else | ||
- | { header("HTTP/1.0 404 Not Found"); echo "erreur"; } // g not given, return error. | + | { ob_start(); |
+ | ?> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | <style type="text/ | ||
+ | <!-- | ||
+ | body { font-size: | ||
+ | a { font-weight: | ||
+ | --> | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | Listing généré: <? | ||
+ | <?php | ||
+ | $directory = " | ||
+ | $files = glob($directory . " | ||
+ | foreach($files as $file) | ||
+ | { | ||
+ | if (preg_match("/ | ||
+ | else if (preg_match(" | ||
+ | else {echo '<a href=" | ||
+ | } | ||
?> | ?> | ||
+ | </ | ||
+ | <?php | ||
+ | $tampon = ob_get_contents(); | ||
+ | ob_end_clean(); | ||
+ | file_put_contents($cache, | ||
+ | echo $tampon; } ?> | ||
</ | </ |
php/cache_gravatar.1338234975.txt.gz · Dernière modification : 2013-02-19 20:28 (modification externe)