X-Git-Url: https://git.mxchange.org/?p=friendica-addons.git;a=blobdiff_plain;f=gravatar%2Fgravatar.php;h=731129c0754e50d2c0c79b8e3ac5e0203717de6c;hp=4464cd2cf7fb0f075e90c697c26c714d361af7fd;hb=0afd633346b517894ff8e92c705bd5d052dd06a2;hpb=db22719bb8a9139fe8ee95ef74e599d239561a99 diff --git a/gravatar/gravatar.php b/gravatar/gravatar.php index 4464cd2c..731129c0 100644 --- a/gravatar/gravatar.php +++ b/gravatar/gravatar.php @@ -2,26 +2,28 @@ /** * Name: Gravatar Support * Description: If there is no avatar image for a new user or contact this plugin will look for one at Gravatar. - * Version: 1.0 + * Version: 1.1 * Author: Klaus Weidenbach */ +use Friendica\Core\Addon; +use Friendica\Core\Config; /** * Installs the plugin hook */ function gravatar_install() { - register_hook('avatar_lookup', 'addon/gravatar/gravatar.php', 'gravatar_lookup'); + Addon::registerHook('avatar_lookup', 'addon/gravatar/gravatar.php', 'gravatar_lookup'); - logger("installed gravatar"); + logger("registered gravatar in avatar_lookup hook"); } /** * Removes the plugin hook */ function gravatar_uninstall() { - unregister_hook('avatar_lookup', 'addon/gravatar/gravatar.php', 'gravatar_lookup'); + Addon::unregisterHook('avatar_lookup', 'addon/gravatar/gravatar.php', 'gravatar_lookup'); - logger("uninstalled gravatar"); + logger("unregistered gravatar in avatar_lookup hook"); } /** @@ -31,33 +33,34 @@ function gravatar_uninstall() { * @param &$b array */ function gravatar_lookup($a, &$b) { - $default_avatar = get_config('gravatar', 'default_img'); - $rating = get_config('gravatar', 'rating'); + $default_avatar = Config::get('gravatar', 'default_img'); + $rating = Config::get('gravatar', 'rating'); // setting default value if nothing configured if(! $default_avatar) - $default_avatar = 'identicon'; // pseudo-random geometric pattern based on email hash + $default_avatar = 'identicon'; // default image will be a random pattern if(! $rating) $rating = 'g'; // suitable for display on all websites with any audience type $hash = md5(trim(strtolower($b['email']))); - $url = 'http://www.gravatar.com/avatar/' .$hash .'.jpg'; + $url = 'https://secure.gravatar.com/avatar/' .$hash .'.jpg'; $url .= '?s=' .$b['size'] .'&r=' .$rating; if ($default_avatar != "gravatar") $url .= '&d=' .$default_avatar; $b['url'] = $url; + $b['success'] = true; } /** * Display admin settings for this addon */ function gravatar_plugin_admin (&$a, &$o) { - $t = file_get_contents( dirname(__file__)."/admin.tpl"); + $t = get_markup_template( "admin.tpl", "addon/gravatar/" ); - $default_avatar = get_config('gravatar', 'default_img'); - $rating = get_config('gravatar', 'rating'); + $default_avatar = Config::get('gravatar', 'default_img'); + $rating = Config::get('gravatar', 'rating'); // set default values for first configuration if(! $default_avatar) @@ -66,27 +69,35 @@ function gravatar_plugin_admin (&$a, &$o) { $rating = 'g'; // suitable for display on all websites with any audience type // Available options for the select boxes - $default_avatars = array( - 'gravatar' => 'Gravatar', - 'mm' => 'MM', - 'identicon' => 'Identicon', - 'monsterid' => 'Monsterid', - 'wavatar' => 'Wavatar', - 'retro' => 'Retro' - ); - $ratings = array( + $default_avatars = [ + 'mm' => t('generic profile image'), + 'identicon' => t('random geometric pattern'), + 'monsterid' => t('monster face'), + 'wavatar' => t('computer generated face'), + 'retro' => t('retro arcade style face'), + ]; + $ratings = [ 'g' => 'g', 'pg' => 'pg', 'r' => 'r', 'x' => 'x' - ); + ]; - $o = ''; - $o .= replace_macros( $t, array( - '$submit' => t('Submit'), - '$default_avatar' => array('avatar', t('Default avatar image'), $default_avatar, t('Select default avatar image if none was found at Gravatar. See README'), $default_avatars), - '$rating' => array('rating', t('Rating of images'), $rating, t('Select the appropriate avatar rating for your site. See README'), $ratings), - )); + // Check if Libravatar is enabled and show warning + $r = q("SELECT * FROM `addon` WHERE `name` = '%s' and `installed` = 1", + dbesc('libravatar') + ); + if (count($r)) { + $o = '
' .t('Information') .'

' .t('Libravatar addon is installed, too. Please disable Libravatar addon or this Gravatar addon.
The Libravatar addon will fall back to Gravatar if nothing was found at Libravatar.') .'



'; + } + + // output Gravatar settings + $o .= ''; + $o .= replace_macros( $t, [ + '$submit' => t('Save Settings'), + '$default_avatar' => ['avatar', t('Default avatar image'), $default_avatar, t('Select default avatar image if none was found at Gravatar. See README'), $default_avatars], + '$rating' => ['rating', t('Rating of images'), $rating, t('Select the appropriate avatar rating for your site. See README'), $ratings], + ]); } /** @@ -97,8 +108,8 @@ function gravatar_plugin_admin_post (&$a) { $default_avatar = ((x($_POST, 'avatar')) ? notags(trim($_POST['avatar'])) : 'identicon'); $rating = ((x($_POST, 'rating')) ? notags(trim($_POST['rating'])) : 'g'); - set_config('gravatar', 'default_img', $default_avatar); - set_config('gravatar', 'rating', $rating); + Config::set('gravatar', 'default_img', $default_avatar); + Config::set('gravatar', 'rating', $rating); info( t('Gravatar settings updated.') .EOL); } ?>