X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=include%2Fbanana%2Fhooks.inc.php;h=05d43ccca2582cabde0ad12e083751d09f555ca4;hb=b8458bd177844d3723acfd334dd30396c3845700;hp=54c5f53f95b496df791851955925bf3dd7f4732c;hpb=787bb3d745141f2f85bd947ad7dd775d2c63f908;p=platal.git diff --git a/include/banana/hooks.inc.php b/include/banana/hooks.inc.php index 54c5f53..05d43cc 100644 --- a/include/banana/hooks.inc.php +++ b/include/banana/hooks.inc.php @@ -141,7 +141,7 @@ function hook_makeLink($params) return $base . '/' . $params['page']; } if (@$params['action'] == 'subscribe') { - return $base . '/subscription'; + return $base . '/subscribe'; } if (!isset($params['group'])) { @@ -150,7 +150,7 @@ function hook_makeLink($params) $base .= '/' . $params['group']; } else if (Banana::$protocole->name() == 'NNTP' && $xnet) { if ($feed) { - return 'http://www.polytechnique.org/banana' . hook_platalRSS(@$params['group']); + return $globals->baseurl . '/banana' . hook_platalRSS(@$params['group']); } $base = $globals->baseurl . '/' . $platal->ns . 'forum'; } else if (Banana::$protocole->name() == 'MLArchives') { @@ -170,6 +170,34 @@ function hook_makeLink($params) } } +function hook_hasXFace($headers) +{ + return isset($headers['x-org-id']) || isset($headers['x-org-mail']); +} + +function hook_getXFace($headers) +{ + $login = @$headers['x-org-id']; + if (!$login) { + @list($login, ) = explode('@', $headers['x-org-mail']); + } + if (!$login) { + return false; + } + if (isset($headers['x-face'])) { + $res = XDB::query("SELECT p.uid + FROM forums.profils AS p + INNER JOIN aliases AS a ON (p.uid = a.id) + WHERE FIND_IN_SET('xface', p.flags) AND a.alias = {?}", + $login); + if ($res->numRows()) { + return false; + } + } + global $globals; + http_redirect($global->baseurl . '/photo/' . $login); +} + function hook_makeJs($src) { global $page; @@ -177,6 +205,21 @@ function hook_makeJs($src) return ' '; } +function make_Organization() +{ + global $globals; + $perms = S::v('perms'); + $group = $globals->asso('nom'); + if (S::has_perms()) { + return "Administrateur de Polytechnique.org"; + } else if ($group && $perms->hasFlag('groupadmin')) { + return "Animateur de $group"; + } else if ($group && $perms->hasFlag('groupmember')) { + return "Membre de $group"; + } + return "Utilisateur de Polytechnique.org"; +} + function get_banana_params(array &$get, $group = null, $action = null, $artid = null) { if (!is_null($group)) { @@ -210,6 +253,48 @@ function get_banana_params(array &$get, $group = null, $action = null, $artid = } } +class PlatalBananaPage extends BananaPage +{ + public function __construct() + { + Banana::$withtabs = false; + parent::__construct(); + } + + protected function prepare() + { + $tpl = parent::prepare(); + global $wiz, $page; + $wiz = new PlWizard('Banana', 'core/plwizard.tpl', true, false); + foreach ($this->pages as $name=>&$mpage) { + $wiz->addPage('BananaHandler', $mpage['text'], $name); + } + $wiz->apply($page, 'banana', $this->page); + return $tpl; + } +} + +class BananaHandler +{ + public function __construct(PlWizard &$wiz) + { + } + + public function template() + { + return 'banana/index.tpl'; + } + + public function prepare(PlatalPage &$page, $id) + { + } + + public function process() + { + return PlWizard::CURRENT_PAGE; + } +} + function run_banana(&$page, $class, array $args) { $banana = new $class(S::v('forlife'), $args);