Remove Gravatar from core and add new hook avatar_lookup.

This patch removes all occurances of Gravatar from friendica's core and adds a new hook "avatar_lookup" inside the function avatar_img($email) where the new *avatar-plugins should hook in.
I haven't touched the language files yet. Are they updated automatically somehow?
This commit is contained in:
Klaus Weidenbach 2012-04-08 23:20:31 +02:00
parent 93ffba58cc
commit 1f9fe8b5ee
6 changed files with 18 additions and 34 deletions

View file

@ -164,10 +164,15 @@ Your module functions will often contain the function plugin_name_content(&$a),
**'init_1'** - called just after DB has been opened and before session start
$b is not used or passed
**'page_end'** - called after HTML content functions have completed
$b is (string) HTML of content div
**'avatar_lookup'** - called when looking up the avatar
$b is (array)
'size' => the size of the avatar that will be looked up
'email' => email to look up the avatar for
'url' => the (string) generated URL of the avatar
A complete list of all hook callbacks with file locations (generated 14-Feb-2012): Please see the source for details of any hooks not documented above.

View file

@ -172,16 +172,6 @@ $a->config['system']['no_regfullname'] = true;
```
**Gravatars**
During registration, we will try to automatically find a user photo for you on the web using the gravatar service. You may turn this off by setting 'no_gravatar' to true. Default is false.
Config:
```
$a->config['system']['no_gravatar'] = true;
```
**OpenID**
By default, OpenID may be used for both registration and logins. If you do not wish to make OpenID facilities available on your system (at all), set 'no_openid' to true. Default is false.

View file

@ -694,16 +694,14 @@ function allowed_email($email) {
if(! function_exists('avatar_img')) {
function avatar_img($email) {
$size = 175;
$opt = 'identicon'; // psuedo-random geometric pattern if not found
$rating = 'pg';
$hash = md5(trim(strtolower($email)));
$avatar['size'] = 175;
$avatar['email'] = $email;
$avatar['url'] = '';
$url = 'http://www.gravatar.com/avatar/' . $hash . '.jpg'
. '?s=' . $size . '&d=' . $opt . '&r=' . $rating;
call_hooks('avatar_lookup', $avatar);
logger('gravatar: ' . $email . ' ' . $url);
return $url;
logger('Avatar: ' . $avatar['email'] . ' ' . $avatar['url']);
return $avatar['url'];
}}

View file

@ -174,7 +174,6 @@ function admin_page_site_post(&$a){
return;
}
$sitename = ((x($_POST,'sitename')) ? notags(trim($_POST['sitename'])) : '');
$banner = ((x($_POST,'banner')) ? trim($_POST['banner']) : false);
$language = ((x($_POST,'language')) ? notags(trim($_POST['language'])) : '');
@ -194,7 +193,6 @@ function admin_page_site_post(&$a){
$global_directory = ((x($_POST,'directory_submit_url')) ? notags(trim($_POST['directory_submit_url'])) : '');
$no_multi_reg = ((x($_POST,'no_multi_reg')) ? True : False);
$no_openid = !((x($_POST,'no_openid')) ? True : False);
$no_gravatar = !((x($_POST,'no_gravatar')) ? True : False);
$no_regfullname = !((x($_POST,'no_regfullname')) ? True : False);
$no_utf = !((x($_POST,'no_utf')) ? True : False);
$no_community_page = !((x($_POST,'no_community_page')) ? True : False);
@ -204,7 +202,7 @@ function admin_page_site_post(&$a){
$proxy = ((x($_POST,'proxy')) ? notags(trim($_POST['proxy'])) : '');
$timeout = ((x($_POST,'timeout')) ? intval(trim($_POST['timeout'])) : 60);
$dfrn_only = ((x($_POST,'dfrn_only')) ? True : False);
$ostatus_disabled = !((x($_POST,'ostatus_disabled')) ? True : False);
$ostatus_disabled = !((x($_POST,'ostatus_disabled')) ? True : False);
$diaspora_enabled = ((x($_POST,'diaspora_enabled')) ? True : False);
$ssl_policy = ((x($_POST,'ssl_policy')) ? intval($_POST['ssl_policy']) : 0);
@ -283,7 +281,6 @@ function admin_page_site_post(&$a){
set_config('system','directory_search_url', $global_search_url);
set_config('system','block_extended_register', $no_multi_reg);
set_config('system','no_openid', $no_openid);
set_config('system','no_gravatar', $no_gravatar);
set_config('system','no_regfullname', $no_regfullname);
set_config('system','no_community_page', $no_community_page);
set_config('system','no_utf', $no_utf);
@ -380,7 +377,6 @@ function admin_page_site(&$a) {
'$no_multi_reg' => array('no_multi_reg', t("Block multiple registrations"), get_config('system','block_extended_register'), t("Disallow users to register additional accounts for use as pages.")),
'$no_openid' => array('no_openid', t("OpenID support"), !get_config('system','no_openid'), t("OpenID support for registration and logins.")),
'$no_gravatar' => array('no_gravatar', t("Gravatar support"), !get_config('system','no_gravatar'), t("Search new user's photo on Gravatar.")),
'$no_regfullname' => array('no_regfullname', t("Fullname check"), !get_config('system','no_regfullname'), t("Force users to register with a space between firstname and lastname in Full name, as an antispam measure")),
'$no_utf' => array('no_utf', t("UTF-8 Regular expressions"), !get_config('system','no_utf'), t("Use PHP UTF8 regular expressions")),
'$no_community_page' => array('no_community_page', t("Show Community Page"), !get_config('system','no_community_page'), t("Display a Community page showing all recent public postings on this site.")),

View file

@ -314,17 +314,13 @@ function register_post(&$a) {
}
$use_gravatar = ((get_config('system','no_gravatar')) ? false : true);
// if we have an openid photo use it.
// otherwise unless it is disabled, use gravatar
if($use_gravatar || strlen($photo)) {
// if we have no OpenID photo try to look up an avatar
if(! strlen($photo))
$photo = avatar_img($email);
// unless there is no avatar-plugin loaded
if(strlen($photo)) {
require_once('include/Photo.php');
if(($use_gravatar) && (! strlen($photo)))
$photo = avatar_img($email);
$photo_failure = false;
$filename = basename($photo);

View file

@ -17,7 +17,6 @@
{{ inc field_checkbox.tpl with $field=$no_multi_reg }}{{ endinc }}
{{ inc field_checkbox.tpl with $field=$no_openid }}{{ endinc }}
{{ inc field_checkbox.tpl with $field=$no_gravatar }}{{ endinc }}
{{ inc field_checkbox.tpl with $field=$no_regfullname }}{{ endinc }}
<div class="submit"><input type="submit" name="page_site" value="$submit" /></div>