Moving to GitHub.
[platal.git] / plugins / function.profile.php
index 98448ee..fc7087f 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2011 Polytechnique.org                              *
+ *  Copyright (C) 2003-2014 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
@@ -19,7 +19,7 @@
  *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                *
  ***************************************************************************/
 
-function smarty_function_profile($params, &$smarty)
+function smarty_function_profile($params, $smarty)
 {
     $params = new PlDict($params);
     $with_promo = $params->b('promo', false) || $params->b('cat', false);
@@ -27,7 +27,10 @@ function smarty_function_profile($params, &$smarty)
     $with_link  = $params->b('link', true);
     $with_dir   = $params->b('directory', true);
     $with_groupperms = $params->b('groupperms', true);
+    $raw = $params->b('raw', false);
     $user = $params->v('user');
+    $profile = $params->v('profile');
+
     if (is_int($user) || ctype_digit($user)) {
         $user = User::getWithUID($user);
     }
@@ -37,22 +40,31 @@ function smarty_function_profile($params, &$smarty)
     } else {
         $name = pl_entities($user->fullName());
     }
-    if ($with_sex && $user->isFemale()) {
-        $name = '&bull;' . $name;
-    }
     if ($with_promo) {
         $promo = $user->category();
         if ($promo) {
             $name .= ' (' . pl_entities($promo) . ')';
         }
     }
+    if ($raw) {
+        return $name;
+    }
+
+    if ($with_sex && $user->isFemale()) {
+        $name = '&bull;' . $name;
+    }
     if ($with_link) {
-        $profile = ($user instanceof Profile) ? $user : $user->profile();
+        if (is_null($profile)) {
+            $profile = $user->profile();
+        }
+
         if ($profile) {
             $name = '<a href="profile/' . $profile->hrid() . '" class="popup2">' . $name . '</a>';
         }
     }
-    if ($user->lost) {
+    if ($profile && $profile->isDead()) {
+        $name .= ' &dagger;';
+    } else if ($user->lost) {
         $name .= ' <a href="https://www.polytechnique.org/marketing/broken/' . $user->hruid . '"><img src="images/icons/error.gif" alt="Patte cassée" /></a>';
     }
     if ($with_groupperms && $user instanceof User && $user->group_perms == 'admin' && !empty($name)) {
@@ -61,5 +73,5 @@ function smarty_function_profile($params, &$smarty)
     return $name;
 }
 
-// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
+// vim:set et sw=4 sts=4 sws=4 foldmethod=marker fenc=utf-8:
 ?>