advancedcontentfilter: Add language values to filter fields (#10052, #10136)
[friendica-addons.git/.git] / gravatar / gravatar.php
index 12a8e44..894abda 100644 (file)
@@ -1,27 +1,34 @@
 <?php
 /**
  * Name: Gravatar Support
- * Description: If there is no avatar image for a new user or contact this plugin will look for one at Gravatar.
+ * Description: If there is no avatar image for a new user or contact this addon will look for one at Gravatar.
  * Version: 1.1
  * Author: Klaus Weidenbach <http://friendica.dszdw.net/profile/klaus>
  */
 
+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("registered gravatar in avatar_lookup hook");
+       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("unregistered gravatar in avatar_lookup hook");
+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 = get_markup_template( "admin.tpl", "addon/gravatar/" );
+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,47 +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'
-       );
+       ];
 
        // Check if Libravatar is enabled and show warning
        $r = q("SELECT * FROM `addon` WHERE `name` = '%s' and `installed` = 1",
-               dbesc('libravatar')
+               DBA::escape('libravatar')
        );
        if (count($r)) {
-               $o = '<h5>' .t('Information') .'</h5><p>' .t('Libravatar addon is installed, too. Please disable Libravatar addon or this Gravatar addon.<br>The Libravatar addon will fall back to Gravatar if nothing was found at Libravatar.') .'</p><br><br>';
+               $o = '<h5>' .DI::l10n()->t('Information') .'</h5><p>' .DI::l10n()->t('Libravatar addon is installed, too. Please disable Libravatar addon or this Gravatar addon.<br>The Libravatar addon will fall back to Gravatar if nothing was found at Libravatar.') .'</p><br><br>';
        }
 
        // output Gravatar settings
-       $o .= '<input type="hidden" name="form_security_token" value="' .get_form_security_token("gravatarsave") .'">';
-       $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),
-       ));
+       $o .= '<input type="hidden" name="form_security_token" value="' . BaseModule::getFormSecurityToken("gravatarsave") .'">';
+       $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);
 }
-?>