compatibility.
[platal.git] / include / banana.inc.php
index 8cef0d0..657f235 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2004 Polytechnique.org                              *
+ *  Copyright (C) 2003-2006 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
 require_once('banana/banana.inc.php');
 
 function hook_formatDisplayHeader($_header,$_text) {
-    global $banana;
+    global $globals;
     if ($_header == 'x-org-id') {
-        return "$_text [<a href=\"../fiche.php?user=$_text\" class='popup2'>fiche</a>]";
+               return $_text . ' [<a href="' . $globals->baseurl . '/fiche.php?user=' 
+                        . $_text . '" class="popup2">fiche</a>]';
     }
 }
 
@@ -38,6 +39,38 @@ function hook_checkcancel($_headers) {
     return ($_headers['x-org-id'] == Session::get('forlife') or has_perms());
 }
 
+function hook_makeLink($params) {
+       global $globals;
+       $base = $globals->baseurl . '/banana'; 
+       if ($params['subscribe'] == 1) {
+               return $base . '/subscription';
+       }
+
+       if (!isset($params['group'])) {
+               return $base;
+       }
+       $base .= '/' . $params['group'];
+
+       if (isset($params['first'])) {
+               return $base . '/from/' . $params['first'];
+       }
+       if (isset($params['artid'])) {
+               if ($params['action'] == 'new') {
+                       $base .= '/reply';
+               } elseif ($params['action'] == 'cancel') {
+                       $base .= '/cancel';
+               } else {
+                       $base .= '/read';
+               }
+               return $base . '/' . $params['artid'];
+       }
+       
+       if ($params['action'] == 'new') {
+               return $base . '/new';
+       }
+       return $base;
+}
+
 class PlatalBanana extends Banana
 {
     var $profile    = Array( 'name' => '', 'sig'  => '', 'org'  => 'Utilisateur de Polytechnique.org',
@@ -71,8 +104,8 @@ class PlatalBanana extends Banana
             $globals->xdb->execute("UPDATE auth_user_quick SET banana_last={?} WHERE user_id={?}", gmdate("YmdHis"), $uid);
         }
 
-        $req = $globals->xdb->query(
-                "SELECT  nom
+        $req = $globals->xdb->query("
+                 SELECT  nom
                    FROM  {$globals->banana->table_prefix}abos
               LEFT JOIN  {$globals->banana->table_prefix}list ON list.fid=abos.fid
                   WHERE  uid={?}", $uid);
@@ -87,16 +120,16 @@ class PlatalBanana extends Banana
         parent::Banana();
     }
 
-    function run()
+    function run($params = null)
     {
         global $banana, $globals;
 
-        if (Get::get('banana') == 'updateall') {
+        if (Get::get('banana') == 'updateall'
+                               || (!is_null($params) && isset($params['banana']) && $params['banana'] == 'updateall')) {
             $globals->xdb->execute('UPDATE auth_user_quick SET banana_last={?} WHERE user_id={?}', gmdate('YmdHis'), Session::getInt('uid'));
             $_SESSION['banana_last'] = time();
-            redirect($_SERVER['PHP_SELF']);
         }
-        return Banana::run('PlatalBanana');
+        return Banana::run('PlatalBanana', $params);
     }
 
     function action_saveSubs()