php:cache_gravatar
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| php:cache_gravatar [2015-03-07 13:01] – mitsu | php:cache_gravatar [2015-07-04 09:05] (Version actuelle) – mitsu | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ====== Cache local de Gravatars ====== | ||
| + | Code PHP pour faire un cache de Gravatar. Utilité ? Éviter que Gravatar puisse tracer les internautes, | ||
| + | Les commentaires sont en anglais. | ||
| + | |||
| + | <file php get.php> | ||
| <? | <? | ||
| /* | /* | ||
| Ligne 12: | Ligne 17: | ||
| case 0: | case 0: | ||
| $size = 32; break; | $size = 32; break; | ||
| + | case 1: | ||
| + | $size = 120; break; | ||
| default: | default: | ||
| $size = 65; | $size = 65; | ||
| Ligne 38: | Ligne 45: | ||
| } | } | ||
| } | } | ||
| - | $im = imagecreatefrompng($newfile); | ||
| header(' | header(' | ||
| header(' | header(' | ||
| - | imagepng($im); | + | |
| - | imagedestroy($im); | + | |
| - | die; | + | readfile($newfile); |
| + | exit; | ||
| } | } | ||
| else { | else { | ||
| - | $seconds_old = 2592000; | + | $seconds_old = 2592000; |
| $dirhandle = opendir(' | $dirhandle = opendir(' | ||
| while($fileclean = readdir($dirhandle)) { | while($fileclean = readdir($dirhandle)) { | ||
| Ligne 57: | Ligne 64: | ||
| } | } | ||
| header(' | header(' | ||
| - | die; | + | 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> | ||
| + | <? | ||
| + | // delete gravatars older than 30 days | ||
| + | $seconds_old = 2592000; | ||
| + | $dirhandle = opendir(' | ||
| + | while($fileclean = readdir($dirhandle)) { | ||
| + | if( $fileclean != " | ||
| + | if(filemtime($fileclean) < (time()-$seconds_old) ) { | ||
| + | | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | |||
| + | /*cache*/ | ||
| + | $cache = ' | ||
| + | $expire = time() -60000 ; // galery cached for 16 hours | ||
| + | $expire_gravatar = time() -10 ; | ||
| + | | ||
| + | else | ||
| + | { ob_start(); | ||
| + | ?> | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | <style type=" | ||
| + | <!-- | ||
| + | body { font-size: | ||
| + | a { font-weight: | ||
| + | --> | ||
| + | </ | ||
| + | </ | ||
| + | < | ||
| + | Listing généré: <?php echo date(" | ||
| + | <?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.1425733299.txt.gz · Dernière modification : (modification externe)
