X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=gravatar%2Fgravatar.php;h=894abda6d748c7dace81010926f3084defce3036;hb=70f541c58b3ad1cf429e1f7997a798931c902dd7;hp=b9435a317d16c06bfc2809a276f52d648c1cd0ff;hpb=7d411b007023be591895ae1564952f08fb273ad4;p=friendica-addons.git diff --git a/gravatar/gravatar.php b/gravatar/gravatar.php index b9435a31..894abda6 100644 --- a/gravatar/gravatar.php +++ b/gravatar/gravatar.php @@ -1,27 +1,34 @@ */ +use Friendica\App; +use Friendica\BaseModule; +use Friendica\Core\Hook; +use Friendica\Core\Logger; +use Friendica\Core\Renderer; +use Friendica\Database\DBA; +use Friendica\DI; +use Friendica\Util\ConfigFileLoader; +use Friendica\Util\Strings; + /** - * Installs the plugin hook + * Installs the addon hook */ function gravatar_install() { - register_hook('avatar_lookup', 'addon/gravatar/gravatar.php', 'gravatar_lookup'); + Hook::register('load_config', 'addon/gravatar/gravatar.php', 'gravatar_load_config'); + Hook::register('avatar_lookup', 'addon/gravatar/gravatar.php', 'gravatar_lookup'); - logger("installed gravatar"); + Logger::log("registered gravatar in avatar_lookup hook"); } -/** - * Removes the plugin hook - */ -function gravatar_uninstall() { - unregister_hook('avatar_lookup', 'addon/gravatar/gravatar.php', 'gravatar_lookup'); - - logger("uninstalled gravatar"); +function gravatar_load_config(App $a, ConfigFileLoader $loader) +{ + $a->getConfigCache()->load($loader->loadAddonConfig('gravatar')); } /** @@ -31,8 +38,8 @@ 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 = DI::config()->get('gravatar', 'default_avatar'); + $rating = DI::config()->get('gravatar', 'rating'); // setting default value if nothing configured if(! $default_avatar) @@ -42,23 +49,23 @@ function gravatar_lookup($a, &$b) { $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['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"); +function gravatar_addon_admin (&$a, &$o) { + $t = Renderer::getMarkupTemplate( "admin.tpl", "addon/gravatar/" ); - $default_avatar = get_config('gravatar', 'default_img'); - $rating = get_config('gravatar', 'rating'); + $default_avatar = DI::config()->get('gravatar', 'default_avatar'); + $rating = DI::config()->get('gravatar', 'rating'); // set default values for first configuration if(! $default_avatar) @@ -67,38 +74,45 @@ 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( - '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 = array( + $default_avatars = [ + 'mm' => DI::l10n()->t('generic profile image'), + 'identicon' => DI::l10n()->t('random geometric pattern'), + 'monsterid' => DI::l10n()->t('monster face'), + 'wavatar' => DI::l10n()->t('computer generated face'), + 'retro' => DI::l10n()->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", + DBA::escape('libravatar') + ); + if (count($r)) { + $o = '
' .DI::l10n()->t('Information') .'

' .DI::l10n()->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 .= Renderer::replaceMacros( $t, [ + '$submit' => DI::l10n()->t('Save Settings'), + '$default_avatar' => ['avatar', DI::l10n()->t('Default avatar image'), $default_avatar, DI::l10n()->t('Select default avatar image if none was found at Gravatar. See README'), $default_avatars], + '$rating' => ['rating', DI::l10n()->t('Rating of images'), $rating, DI::l10n()->t('Select the appropriate avatar rating for your site. See README'), $ratings], + ]); } /** * Save admin settings */ -function gravatar_plugin_admin_post (&$a) { - check_form_security_token('gravatarsave'); - - $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); - info( t('Gravatar settings updated.') .EOL); +function gravatar_addon_admin_post (&$a) { + BaseModule::checkFormSecurityToken('gravatarsave'); + + $default_avatar = (!empty($_POST['avatar']) ? Strings::escapeTags(trim($_POST['avatar'])) : 'identicon'); + $rating = (!empty($_POST['rating']) ? Strings::escapeTags(trim($_POST['rating'])) : 'g'); + DI::config()->set('gravatar', 'default_avatar', $default_avatar); + DI::config()->set('gravatar', 'rating', $rating); } -?>