Moving to GitHub.
[platal.git] / classes / xnet.php
index c88a8c7..1251ba6 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2006 Polytechnique.org                              *
+ *  Copyright (C) 2003-2014 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
 
 class Xnet extends Platal
 {
-    function Xnet()
+    public function __construct()
     {
-        $modules = func_get_args();
-        call_user_func_array(array(&$this, 'Platal'), $modules);
+        parent::__construct(
+            'xnet',
 
-        global $globals;
-        if ($globals->asso()) {
-            if ($p = strpos($this->path, '/')) {
-                $this->ns   = substr($this->path, 0, $p).'/';
-                $this->path = '%grp'.substr($this->path, $p);
-            } else {
-                $this->ns   = $this->path.'/';
-                $this->path = '%grp';
-            }
-        }
+            'bandeau',
+            'geoloc',
+            'payment',
+            'xnetevents',
+            'xnetgrp',
+            'xnetlists',
+            'xnetnl'
+        );
     }
 
-    function find_nearest_key($key, &$array)
+    public function hook_map($name)
     {
-        global $globals;
-        $k = parent::find_nearest_key($key, $array);
-        if (is_null($k) && in_array('%grp', array_keys($array)) && $globals->asso()) {
-            return '%grp';
-        }
-        return $k;
-    }
-
-    function near_hook()
-    {
-        $link = parent::near_hook();
-        if (strpos($link, '%grp') !== false) {
+        if ($name == 'grp') {
             global $globals;
-            return str_replace('%grp', $globals->asso('diminutif'), $link);
+            if ($globals->asso()) {
+                return $globals->asso('shortname');
+            }
         }
-        return $link;
+        return null;
     }
 
-    function find_hook()
+    protected function find_hook()
     {
         $ans = parent::find_hook();
-        if ($ans && $this->ns) {
-            $this->path    = $this->ns . substr($this->path, 5);
-            $this->argv[0] = $this->ns . substr($this->argv[0], 5);
-        }
+        $this->https = false;
         return $ans;
     }
 
-    function force_login(&$page)
+    public function force_login(PlPage $page)
     {
-        http_redirect(S::v('loginX'));
+        $redirect = S::v('loginX');
+        if (!$redirect) {
+            $page->trigError('Impossible de s\'authentifier. Problème de configuration de plat/al.');
+            return;
+        }
+        http_redirect($redirect);
     }
 }
 
+// vim:set et sw=4 sts=4 sws=4 foldmethod=marker fenc=utf-8:
 ?>