如何结合两个内部PHP函数?

时间:2012-03-16 10:15:02

标签: php function

我有两个代码块是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';
      }
   }
}

第一个显示我的脚本(Vanilla论坛)的帖子内容中的用户头像的Gravatar图像,第二个显示参与讨论的所有用户的Vanillicons(Vanillicon类似于Gravatar)侧边栏(在本讨论中&#39;在#39;中)。我希望你能了解这两个代码块现在做了什么?

使用第一个代码块中的how-it-done代码,我需要修改第二个代码块以显示参与讨论的所有用户的Gravatar图标而不是Vanillicons。知道PHP的人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

<?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
      }
   }
}