Как совместить две внутренние функции PHP? - PullRequest
0 голосов
/ 16 марта 2012

У меня есть два блока кода, которые являются функциями PHP и выполняют две разные функции.Это:

<?php
if (!function_exists('UserPhotoDefaultUrl')) {
   function UserPhotoDefaultUrl($User) {
      $Email = GetValue('Email', $User);
      $HTTPS = GetValue('HTTPS', $_SERVER, '');
      $Protocol =  (strlen($HTTPS) || GetValue('SERVER_PORT', $_SERVER) == 443) ? 'https://secure.' : 'http://www.';

      $Url = $Protocol.'gravatar.com/avatar.php?'
         .'gravatar_id='.md5(strtolower($Email))
         .'&amp;size='.C('Garden.Thumbnail.Width', 50);

      if (C('Plugins.Gravatar.UseVanillicon', FALSE))
         $Url .= '&amp;default='.urlencode(Asset('http://vanillicon.com/'.md5($Email).'.png'));
      else
         $Url .= '&amp;default='.urlencode(Asset(C('Plugins.Gravatar.DefaultAvatar', 'plugins/Gravatar/default.gif'), TRUE));

      return $Url;
   }
}

и ...

<?php
class GravatarPlugin extends Gdn_Plugin {
   public function ProfileController_AfterAddSideMenu_Handler($Sender, $Args) {
      if (!$Sender->User->Photo) {
         $Email = GetValue('Email', $Sender->User);
         $Hash = md5($Email);
         $Sender->User->Photo = 'http://w'.substr($Hash, 0, 1).'.vanillicon.com/'.$Hash.'_200.png';
      }
   }
}

Первый показывает изображение Gravatar для аватара пользователя в содержимом моего сценария (форумы Vanilla), а второй показываетVanillicons ( Vanillicon аналогичен Gravatar) всех пользователей, участвующих в обсуждении на боковой панели (в разделе «В этом обсуждении»).Надеюсь, вы поняли, что теперь делают эти два блока кода?

Используя код "как это делается" в первом блоке кода, мне нужно изменить второй блок кода, чтобы отображать значки Gravatar всехпользователи, участвующие в обсуждении вместо Vanillicons.Может ли кто-нибудь, кто знает PHP, помочь?

1 Ответ

1 голос
/ 16 марта 2012
<?php
if (!function_exists('UserPhotoDefaultUrl')) {
   function UserPhotoDefaultUrl($User) {
      $Email = GetValue('Email', $User);
      $HTTPS = GetValue('HTTPS', $_SERVER, '');
      $Protocol =  (strlen($HTTPS) || GetValue('SERVER_PORT', $_SERVER) == 443) ? 'https://secure.' : 'http://www.';

      $Url = $Protocol.'gravatar.com/avatar.php?'
     .'gravatar_id='.md5(strtolower($Email))
     .'&amp;size='.C('Garden.Thumbnail.Width', 50)
     .'&amp;default='.urlencode(Asset(C('Plugins.Gravatar.DefaultAvatar', 'plugins/Gravatar/default.gif'), TRUE));

      return $Url;
   }
}

Вы класс:

<?php
class GravatarPlugin extends Gdn_Plugin {
   public function ProfileController_AfterAddSideMenu_Handler($Sender, $Args) {
      if (!$Sender->User->Photo) {
       $Sender->User->Photo = UserPhotoDefaultUrl($Sender->User); // not sure about the $Sender->User part because it is not displayed
      }
   }
}
...