}
}
+ function pl_self($n = null)
+ {
+ if (is_null($n))
+ return $this->path;
+
+ if ($n >= 0)
+ return join('/', array_slice($this->argv, 0, $n + 1));
+
+ if ($n <= -count($this->argv))
+ return $this->argv[0];
+
+ return join('/', array_slice($this->argv, 0, $n));
+ }
+
function find_hook()
{
$p = $this->path;
if ($globals->asso()) {
if ($p = strpos($this->path, '/')) {
$this->ns = substr($this->path, 0, $p).'/';
- $this->path = 'grp'.substr($this->path, $p);
+ $this->path = '%grp'.substr($this->path, $p);
} else {
$this->ns = $this->path.'/';
- $this->path = 'grp';
+ $this->path = '%grp';
}
}
}
{
$ans = parent::find_hook();
if ($ans && $this->ns) {
- $this->path = $this->ns . substr($this->path, 4);
+ $this->path = $this->ns . substr($this->path, 5);
+ $this->argv[0] = $this->ns . substr($this->argv[0], 5);
}
return $ans;
}
return $fragment ? $base.'#'.$fragment : $base;
}
+function pl_self($n = null) {
+ global $platal;
+ return $platal->pl_self($n);
+}
+
function http_redirect($fullurl)
{
if (count($_SESSION)) {
}
}
- global $platal;
- return $platal->path . '?' . join('&', $get);
+ return pl_self() . '?' . join('&', $get);
}
// }}}
function handlers()
{
return array(
- 'grp/events' => $this->make_hook('events', AUTH_MDP),
- 'grp/events/sub' => $this->make_hook('sub', AUTH_MDP),
- 'grp/events/csv' => $this->make_hook('csv', AUTH_MDP),
- 'grp/events/edit' => $this->make_hook('edit', AUTH_MDP),
- 'grp/events/admin' => $this->make_hook('admin', AUTH_MDP),
+ '%grp/events' => $this->make_hook('events', AUTH_MDP),
+ '%grp/events/sub' => $this->make_hook('sub', AUTH_MDP),
+ '%grp/events/csv' => $this->make_hook('csv', AUTH_MDP),
+ '%grp/events/edit' => $this->make_hook('edit', AUTH_MDP),
+ '%grp/events/admin' => $this->make_hook('admin', AUTH_MDP),
);
}
}
if (is_null($evt['eid'])) {
- global $platal;
- pl_redirect($platal->path.'/'.$eid);
+ pl_redirect(url_self().'/'.$eid);
}
}
function handlers()
{
return array(
- 'grp' => $this->make_hook('index', AUTH_PUBLIC),
- 'grp/asso.php' => $this->make_hook('index', AUTH_PUBLIC),
- 'grp/logo' => $this->make_hook('logo', AUTH_PUBLIC),
- 'grp/edit' => $this->make_hook('edit', AUTH_MDP),
- 'grp/mail' => $this->make_hook('mail', AUTH_MDP),
- 'grp/annuaire' => $this->make_hook('annuaire', AUTH_MDP),
- 'grp/subscribe' => $this->make_hook('subscribe', AUTH_MDP),
- 'grp/paiement' => $this->make_hook('paiement', AUTH_MDP),
-
- 'grp/admin/annuaire'
+ '%grp' => $this->make_hook('index', AUTH_PUBLIC),
+ '%grp/asso.php' => $this->make_hook('index', AUTH_PUBLIC),
+ '%grp/logo' => $this->make_hook('logo', AUTH_PUBLIC),
+ '%grp/edit' => $this->make_hook('edit', AUTH_MDP),
+ '%grp/mail' => $this->make_hook('mail', AUTH_MDP),
+ '%grp/annuaire' => $this->make_hook('annuaire', AUTH_MDP),
+ '%grp/subscribe' => $this->make_hook('subscribe', AUTH_MDP),
+ '%grp/paiement' => $this->make_hook('paiement', AUTH_MDP),
+
+ '%grp/admin/annuaire'
=> $this->make_hook('admin_annuaire', AUTH_MDP),
- 'grp/member'
+ '%grp/member'
=> $this->make_hook('admin_member', AUTH_MDP),
- 'grp/member/new'
+ '%grp/member/new'
=> $this->make_hook('admin_member_new', AUTH_MDP),
- 'grp/member/del'
+ '%grp/member/del'
=> $this->make_hook('admin_member_del', AUTH_MDP),
);
}
function handlers()
{
return array(
- 'grp/lists' => $this->make_hook('lists', AUTH_MDP),
- 'grp/lists/create' => $this->make_hook('create', AUTH_MDP),
+ '%grp/lists' => $this->make_hook('lists', AUTH_MDP),
+ '%grp/lists/create' => $this->make_hook('create', AUTH_MDP),
- 'grp/lists/members' => $this->make_hook('members', AUTH_COOKIE),
- 'grp/lists/archives' => $this->make_hook('archives', AUTH_COOKIE),
+ '%grp/lists/members' => $this->make_hook('members', AUTH_COOKIE),
+ '%grp/lists/archives' => $this->make_hook('archives', AUTH_COOKIE),
- 'grp/lists/moderate' => $this->make_hook('moderate', AUTH_MDP),
- 'grp/lists/admin' => $this->make_hook('admin', AUTH_MDP),
- 'grp/lists/options' => $this->make_hook('options', AUTH_MDP),
- 'grp/lists/delete' => $this->make_hook('delete', AUTH_MDP),
+ '%grp/lists/moderate' => $this->make_hook('moderate', AUTH_MDP),
+ '%grp/lists/admin' => $this->make_hook('admin', AUTH_MDP),
+ '%grp/lists/options' => $this->make_hook('options', AUTH_MDP),
+ '%grp/lists/delete' => $this->make_hook('delete', AUTH_MDP),
- 'grp/lists/soptions' => $this->make_hook('soptions', AUTH_MDP),
- 'grp/lists/check' => $this->make_hook('check', AUTH_MDP),
- 'grp/lists/sync' => $this->make_hook('sync', AUTH_MDP),
+ '%grp/lists/soptions' => $this->make_hook('soptions', AUTH_MDP),
+ '%grp/lists/check' => $this->make_hook('check', AUTH_MDP),
+ '%grp/lists/sync' => $this->make_hook('sync', AUTH_MDP),
- 'grp/alias/admin' => $this->make_hook('aadmin', AUTH_MDP),
- 'grp/alias/create' => $this->make_hook('acreate', AUTH_MDP),
+ '%grp/alias/admin' => $this->make_hook('aadmin', AUTH_MDP),
+ '%grp/alias/create' => $this->make_hook('acreate', AUTH_MDP),
/* hack: lists uses that */
'profile' => $this->make_hook('profile', AUTH_PUBLIC),
{else}
{$x.l}
{/if}
- <a href='{$platal->ns}lists/admin/{$platal->argv[1]}?del_owner={$x.l}'><img src='images/retirer.gif' alt='retirer modérateur' title='retirer modérateur' /></a>
+ <a href='{$platal->pl_self(1)}?del_owner={$x.l}'><img src='images/retirer.gif' alt='retirer modérateur' title='retirer modérateur' /></a>
<br />
{/foreach}
</td>
{else}
{$x.l}
{/if}
- <a href='{$platal->ns}lists/admin/{$platal->argv[1]}?del_member={$x.l}'><img src='images/retirer.gif' alt='retirer membre' title='retirer membre' /></a>
+ <a href='{$platal->pl_self(1)}?del_member={$x.l}'><img src='images/retirer.gif' alt='retirer membre' title='retirer membre' /></a>
<br />
{/foreach}
</td>
{foreach from=$range item=i}
<td>
{if $m[$i]}
- <a href="{$platal->ns}lists/archives/{$platal->argv[1]}?rep={$y}/{$i|string_format:"%02u"}&file=threads.html">{"0000-$i-01"|date_format:"%B"}</a>
+ <a href="{$platal->pl_self(1)}?rep={$y}/{$i|string_format:"%02u"}&file=threads.html">{"0000-$i-01"|date_format:"%B"}</a>
{else}
{/if}
{foreach from=$range item=i}
<td>
{if $m[$i]}
- <a href="{$platal->ns}lists/archives/{$platal->argv[1]}?rep={$y}/{$i|string_format:"%02u"}&file=dates.html">{"0000-$i-01"|date_format:"%B"}</a>
+ <a href="{$platal->pl_self(1)}?rep={$y}/{$i|string_format:"%02u"}&file=dates.html">{"0000-$i-01"|date_format:"%B"}</a>
{else}
{/if}
</tr>
{/foreach}
</table>
-<form action='{$platal->ns}lists/check/{$platal->argv[1]}' method='post'>
+<form action='{$platal->pl_self(1)}' method='post'>
<div class='center'>
<br />
<input type='submit' name='correct' value='Corriger les valeurs !' />
Détruire la liste {$details.addr} ?
</h1>
-<form method='post' action='{$platal->ns}lists/delete/{$platal->argv[1]}'>
+<form method='post' action='{$platal->pl_self(1)}'>
<table class='tinybicol' cellpadding='2' cellspacing='0'>
<tr class='impair'>
<td>
{if $details.sub>1}
Tu es inscrit sur la liste.<br />
Te désinscrire :
- <a href='{$platal->ns}lists/members/{$platal->argv[1]}?del=1'><img src="images/retirer.gif" alt="[me désinsiscrire]" /></a>
+ <a href='{$platal->pl_self(1)}?del=1'><img src="images/retirer.gif" alt="[me désinsiscrire]" /></a>
{elseif $details.sub eq 1}
Ta demande d'inscription est en cours de validation.
{else}
Tu n'es pas inscrit.<br />
Demander ton inscription :
- <a href="{$platal->ns}lists/members/{$platal->argv[1]}?add=1"><img src="images/ajouter.gif" alt="[demander mon inscription]" /></a>
+ <a href="{$platal->pl_self(1)}?add=1"><img src="images/ajouter.gif" alt="[demander mon inscription]" /></a>
{/if}
</td>
</tr>
<h1>
membres de la liste
{if $smarty.get.alpha}
- (<a href='{$platal->ns}lists/members/{$platal->argv[1]}'>trier par promo</a>)
+ (<a href='{$platal->pl_self(1)}'>trier par promo</a>)
{else}
- (<a href='{$platal->ns}lists/members/{$platal->argv[1]}?alpha=1'>trier par nom</a>)
+ (<a href='{$platal->pl_self(1)}?alpha=1'>trier par nom</a>)
{/if}
</h1>
</td>
<td>{$s.addr}</td>
<td class='action'>
- <a href='{$platal->ns}lists/moderate/{$platal->argv[1]}?sadd={$s.id}'>ajouter</a>
- <a href='{$platal->ns}lists/moderate/{$platal->argv[1]}?sid={$s.id}'>refuser</a>
+ <a href='{$platal->pl_self(1)}?sadd={$s.id}'>ajouter</a>
+ <a href='{$platal->pl_self(1)}?sid={$s.id}'>refuser</a>
</td>
</tr>
{/foreach}
<td class='right'>{$m.size}o</td>
<td class='right'>{$m.stamp|date_format:"%X<br />%x"}</td>
<td class='action'>
- <a href='{$platal->ns}lists/moderate/{$platal->argv[1]}?mid={$m.id}'>voir</a><br/>
- <a href='{$platal->ns}lists/moderate/{$platal->argv[1]}?mid={$m.id}&mok=1'>accepter</a> <a href='{$platal->ns}lists/moderate/{$platal->argv[1]}?mid={$m.id}&mdel=1'>détruire</a></td>
+ <a href='{$platal->pl_self(1)}?mid={$m.id}'>voir</a><br/>
+ <a href='{$platal->pl_self(1)}?mid={$m.id}&mok=1'>accepter</a> <a href='{$platal->pl_self(1)}?mid={$m.id}&mdel=1'>détruire</a></td>
</tr>
{/foreach}
</table>
<br />
{/if}
-<form method='post' action='{$platal->ns}lists/moderate/{$platal->argv[1]}'>
+<form method='post' action='{$platal->pl_self(1)}'>
<table class='tinybicol' cellpadding='0' cellspacing='0'>
<tr>
<th class='titre'>Modérer le mail</th>
<h1>Refuser l'inscription d'un utilisateur</h1>
-<form method='post' action='{$platal->ns}lists/moderate/{$platal->argv[1]}'>
+<form method='post' action='{$platal->pl_self(1)}'>
<table class='tinybicol' cellpadding='0' cellspacing='0'>
<tr>
<th class='titre'>refuser l'inscription de :</th>
Changer les options de la liste {$details.addr}
</h1>
-<form method='post' action='{$platal->ns}lists/options/{$platal->argv[1]}'>
+<form method='post' action='{$platal->pl_self(1)}'>
<table class='bicol' cellpadding='2' cellspacing='0'>
<tr><th colspan='2'>Options de la liste {$details.addr}</th></tr>
<tr class='impair'>
redirection en mode 'inactif'. le logiciel de mailing list saura se débrouiller tout seul.
</p>
-<form method='post' action='{$platal->ns}lists/options/{$platal->argv[1]}'>
+<form method='post' action='{$platal->pl_self(1)}'>
<table class='tinybicol' cellpadding='2' cellspacing='0'>
<tr><th>Addresses non modérées</th></tr>
<tr>
<td>
{if $options.accept_these_nonmembers|@count}
{foreach from=$options.accept_these_nonmembers item=addr}
- {$addr}<a href='{$platal->ns}lists/options/{$platal->argv[1]}&atn_del={$addr}'>
+ {$addr}<a href='{$platal->pl_self(1)}&atn_del={$addr}'>
<img src="images/retirer.gif" alt='retirer de la whitelist' title="retirer {$addr} de la whitelist" />
</a><br />
{/foreach}
Changer les options de la liste {$details.addr}
</h1>
-<form method='post' action='{$platal->ns}lists/soptions/{$platal->argv[1]}'>
+<form method='post' action='{$platal->pl_self(1)}'>
<table class='bicol' cellpadding='2' cellspacing='0'>
<tr><th colspan='2'>Options de la liste {$details.addr}</th></tr>
<tr class='impair'>
{if $details.sub>1}
Tu es inscrit sur la liste.<br />
Te désinscrire :
- <a href='{$platal->ns}trombi/{$platal->argv[1]}?del=1'><img src="images/retirer.gif" alt="[me désinsiscrire]" /></a>
+ <a href='{$platal->pl_self(1)}?del=1'><img src="images/retirer.gif" alt="[me désinsiscrire]" /></a>
{elseif $details.sub eq 1}
Ta demande d'inscription est en cours de validation.
{else}
Tu n'es pas inscrit.<br />
Demander ton inscription :
- <a href="{$platal->ns}trombi/{$platal->argv[1]}?add=1"><img src="images/ajouter.gif" alt="[demander mon inscription]" /></a>
+ <a href="{$platal->pl_self(1)}?add=1"><img src="images/ajouter.gif" alt="[demander mon inscription]" /></a>
{/if}
</td>
</tr>