2012-03-16 84 views
0

我有两个代码块是PHP函数,可以做两件不同的事情。它们是:如何结合两个内部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,而第二个显示Vanillicons(Vanillicon与Gravatar类似)参与边栏讨论的所有用户(在“本讨论中”)。我希望你明白这两个代码块现在做什么?

在第一个代码块中使用它完成的代码,我需要修改第二个代码块,以显示所有参与讨论的用户的Gravatar图标而不是Vanillicons。有谁知道PHP的帮助?

回答

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 
     } 
    } 
} 
+0

感谢试图帮助。但是代码仍然只显示用户的默认头像而不是头像。 :( – 2012-03-16 10:31:22

+0

@badlearner更新了我的答案 – seferov 2012-03-16 11:19:15

+0

不,我可能没有正确解释,只有第二个代码块需要更改,并且应该是独立代码 – 2012-03-16 11:57:07