Adds partial tree for jobterms if autocompletion is not enough. Only in profile editing.
[platal.git] / classes / platalglobals.php.in
index 1e15c81..3f0085d 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2008 Polytechnique.org                              *
+ *  Copyright (C) 2003-2010 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
 
 class PlatalGlobals extends PlGlobals
 {
+    const DEBUG_NOCACHE = DEBUG_USERBASE;
+
     /** The x.org version */
     public $version = '@VERSION@';
 
     /** db params */
-    public $dbdb               = 'x4dat';
+    public $dbdb               = null;
+    public $dbprefix           = '';
     public $dbhost             = 'localhost';
-    public $dbuser             = 'x4dat';
-    public $dbpwd              = 'x4dat';
+    public $dbuser             = null;
+    public $dbpwd              = null;
     public $dbcharset          = 'utf8';
 
     /** default skin */
@@ -38,43 +41,65 @@ class PlatalGlobals extends PlGlobals
     public function __construct()
     {
         parent::__construct(array('platal.ini', 'platal.conf'));
-        $this->bootstrap(array('NbIns'), 'update_NbIns');
-        $this->bootstrap(array('NbValid'), 'update_NbValid');
+        if (isset($GLOBALS['IS_XNET_SITE'])) {
+            $this->core->sitename = 'Polytechnique.net';
+        }
+    }
+
+    public function init()
+    {
+        $this->bootstrap(array('NbIns'), array($this, 'updateNbIns'));
+        $this->bootstrap(array('NbValid'), array($this, 'updateNbValid'));
     }
 
-    public function asso($key=null)
+    public function asso($key = null)
     {
+        static $fetched = false;
         static $aid = null;
 
-        if (is_null($aid)) {
+        if (isset($GLOBALS['IS_XNET_SITE']) && !$fetched) {
             $gp = Get::v('n');
             if ($p = strpos($gp, '/')) {
                 $gp = substr($gp, 0, $p);
             }
 
-            if ($gp) {
-                $res = XDB::query('SELECT  a.*, d.nom AS domnom,
-                                           FIND_IN_SET(\'wiki_desc\', a.flags) AS wiki_desc,
-                                           FIND_IN_SET(\'notif_unsub\', a.flags) AS notif_unsub
-                                     FROM  groupex.asso AS a
-                                LEFT JOIN  groupex.dom  AS d ON d.id = a.dom
-                                    WHERE  diminutif = {?}', $gp);
-                if (!($aid = $res->fetchOneAssoc())) {
-                    $aid = array();
-                }
-            } else {
-                $aid = array();
-            }
+            $aid = Group::get($gp);
+            $fetched = true;
         }
         if (empty($key)) {
             return $aid;
-        } elseif ( isset($aid[$key]) ) {
-            return $aid[$key];
+        } elseif (isset($aid->$key) ) {
+            return $aid->$key;
         } else {
             return null;
         }
     }
+
+    public function updateNbIns()
+    {
+        $res = XDB::query("SELECT  COUNT(*)
+                             FROM  accounts
+                            WHERE  state = 'active'");
+        $cnt = $res->fetchOneCell();
+        $this->changeDynamicConfig(array('NbIns' => $cnt));
+    }
+
+    public function updateNbValid()
+    {
+        $res = XDB::query("SELECT  COUNT(*)
+                             FROM  requests");
+        $this->changeDynamicConfig(array('NbValid' => $res->fetchOneCell()));
+    }
+
+    public function cacheEnabled()
+    {
+        return ($this->debug & self::DEBUG_NOCACHE) == 0;
+    }
 }
 
+/******************************************************************************
+ * Dynamic configuration update/edition stuff
+ *****************************************************************************/
+
 // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
 ?>