global $globals;
if ($globals->asso()) {
if ($p = strpos($this->path, '/')) {
- $this->ns = substr($this->path, 0, $p);
+ $this->ns = substr($this->path, 0, $p).'/';
$this->path = 'grp'.substr($this->path, $p);
} else {
$this->ns = $this->path.'/';
+++ /dev/null
-<?php
-require 'xnet.inc.php';
-
-define('NB_PER_PAGE', 25);
-
-if ($globals->asso('pub') == 'public')
- new_group_page('xnet/groupe/annuaire.tpl');
-else
- new_groupadmin_page('xnet/groupe/annuaire.tpl');
-
-$page->assign('admin', may_update());
-
-switch (Env::get('order')) {
- case 'promo' : $group = 'promo'; $tri = 'promo_o DESC, nom, prenom'; break;
- case 'promo_inv' : $group = 'promo'; $tri = 'promo_o, nom, prenom'; break;
- case 'alpha_inv' : $group = 'initiale'; $tri = 'nom DESC, prenom DESC, promo'; break;
- default : $group = 'initiale'; $tri = 'nom, prenom, promo';
-}
-if ($group == 'initiale')
- $res = $globals->xdb->iterRow(
- 'SELECT UPPER(SUBSTRING(IF(m.origine="X",IF(u.nom_usage<>"", u.nom_usage, u.nom),m.nom), 1, 1)) as letter, COUNT(*)
- FROM groupex.membres AS m
- LEFT JOIN auth_user_md5 AS u ON ( u.user_id = m.uid )
- WHERE asso_id = {?}
- GROUP BY letter
- ORDER BY letter', $globals->asso('id'));
-else
- $res = $globals->xdb->iterRow(
- 'SELECT IF(m.origine="X",u.promo,"extérieur") as promo, COUNT(*), IF(m.origine="X",u.promo,"") as promo_o
- FROM groupex.membres AS m
- LEFT JOIN auth_user_md5 AS u ON ( u.user_id = m.uid )
- WHERE asso_id = {?}
- GROUP BY promo
- ORDER BY promo_o DESC', $globals->asso('id'));
-
-$alphabet = array();
-$nb_tot = 0;
-while (list($char, $nb) = $res->next()) {
- $alphabet[] = $char;
- $nb_tot += $nb;
- if (Env::has($group) && $char == strtoupper(Env::get($group))) {
- $tot = $nb;
- }
-}
-$page->assign('group', $group);
-$page->assign('request_group', Env::get($group));
-$page->assign('alphabet', $alphabet);
-$page->assign('nb_tot', $nb_tot);
-
-$ofs = Env::getInt('offset');
-$tot = Env::get($group) ? $tot : $nb_tot;
-$nbp = intval(($tot-1)/NB_PER_PAGE);
-$links = array();
-if ($ofs) {
- $links['précédent'] = $ofs-1;
-}
-for ($i = 0; $i <= $nbp; $i++) {
- $links[(string)($i+1)] = $i;
-}
-if ($ofs < $nbp) {
- $links['suivant'] = $ofs+1;
-}
-if (count($links)>1) {
- $page->assign('links', $links);
-}
-
-$ini = '';
-if (Env::has('initiale'))
- $ini = 'AND IF(m.origine="X",IF(u.nom_usage<>"", u.nom_usage, u.nom),m.nom) LIKE "'.addslashes(Env::get('initiale')).'%"';
-elseif (Env::has('promo'))
- $ini = 'AND IF(m.origine="X",u.promo,"extérieur") = "'.addslashes(Env::get('promo')).'"';
-$ann = $globals->xdb->iterator(
- "SELECT IF(m.origine='X',IF(u.nom_usage<>'', u.nom_usage, u.nom) ,m.nom) AS nom,
- IF(m.origine='X',u.prenom,m.prenom) AS prenom,
- IF(m.origine='X',u.promo,'extérieur') AS promo,
- IF(m.origine='X',u.promo,'') AS promo_o,
- IF(m.origine='X',a.alias,m.email) AS email,
- IF(m.origine='X',FIND_IN_SET('femme', u.flags),0) AS femme,
- m.perms='admin' AS admin,
- m.origine='X' AS x,
- m.uid
- FROM groupex.membres AS m
- LEFT JOIN auth_user_md5 AS u ON ( u.user_id = m.uid )
- LEFT JOIN aliases AS a ON ( a.id = m.uid AND a.type='a_vie' )
- WHERE m.asso_id = {?} $ini
- ORDER BY $tri
- LIMIT {?},{?}", $globals->asso('id'), $ofs*NB_PER_PAGE, NB_PER_PAGE);
-
-
-$page->assign('ann', $ann);
-
-$page->run();
-
-?>
+++ /dev/null
-<?php
-
- require 'xnet.inc.php';
- new_groupadmin_page('xnet/groupe/edit.tpl');
-
- if (Post::has('submit')) {
- if (has_perms()) {
- if (Post::get('mail_domain') != "" && (strstr(Post::get('mail_domain'), '.') === false)) {
- $page->trig_run("le domaine doit être un FQDN (aucune modif effectuée) !!!");
- }
- $globals->xdb->execute(
- "UPDATE groupex.asso
- SET nom={?}, diminutif={?}, cat={?}, dom={?}, descr={?}, site={?}, mail={?}, resp={?}, forum={?}, mail_domain={?}, ax={?}, pub={?}, sub_url={?}, inscriptible={?}
- WHERE id={?}",
- Post::get('nom'), Post::get('diminutif'), Post::get('cat'), Post::getInt('dom'),
- Post::get('descr'), Post::get('site'), Post::get('mail'), Post::get('resp'),
- Post::get('forum'), Post::get('mail_domain'), Post::has('ax'), Post::has('pub')?'private':'public', Post::get('sub_url'), Post::get('inscriptible'),
- $globals->asso('id'));
- if (Post::get('mail_domain')) {
- $globals->xdb->execute('INSERT INTO virtual_domains (domain) VALUES({?})', Post::get('mail_domain'));
- }
- } else {
- $globals->xdb->execute(
- "UPDATE groupex.asso
- SET descr={?}, site={?}, mail={?}, resp={?}, forum={?}, ax={?}, pub= {?}, sub_url={?}
- WHERE id={?}",
- Post::get('descr'), Post::get('site'), Post::get('mail'), Post::get('resp'),
- Post::get('forum'), Post::has('ax'), Post::has('pub')?'private':'public', Post::get('sub_url'), $globals->asso('id'));
- }
-
- if ($_FILES['logo']['name']) {
- $logo = file_get_contents($_FILES['logo']['tmp_name']);
- $mime = $_FILES['logo']['type'];
- $globals->xdb->execute('UPDATE groupex.asso SET logo={?}, logo_mime={?} WHERE id={?}', $logo, $mime, $globals->asso('id'));
- }
-
- redirect('../'.Post::get('diminutif', $globals->asso('diminutif')).'/edit.php');
- }
-
- if (has_perms()) {
- $dom = $globals->xdb->iterator('SELECT * FROM groupex.dom ORDER BY nom');
- $page->assign('dom', $dom);
- $page->assign('super', true);
- }
- $page->run();
-
-?>
new_groupadmin_page('xnet/groupe/membres-edit.tpl');
$user = get_infos(Env::get('edit'));
- if (empty($user)) { redirect("annuaire.php"); }
+ if (empty($user)) {
+ redirect('annuaire');
+ }
require 'lists.inc.php';
$client =& lists_xmlrpc(Session::getInt('uid'), Session::get('password'), $globals->asso('mail_domain'));
$page->trig("{$user['prenom']} {$user['nom']} a été désabonné de $ml");
}
}
- redirect("annuaire.php");
+ redirect('annuaire');
}
-
+
$page->assign('user', $user);
$listes = $client->get_lists($user['email2']);
$page->assign('listes', $listes);
{
new_groupadmin_page('xnet/groupe/membres-del.tpl');
$user = get_infos(Env::get('del'));
- if (empty($user)) { redirect("annuaire.php"); }
+ if (empty($user)) {
+ redirect('annuaire');
+ }
$page->assign('user', $user);
if (Post::has('confirm')) {
// don't unsubscribe email from list if other user use same email
$user_same_email = get_infos($user['email']);
-
+
if (($domain = $globals->asso('mail_domain')) && empty($user_same_email)) {
-
+
require 'lists.inc.php';
$client =& lists_xmlrpc(Session::getInt('uid'), Session::get('password'), $domain);
$listes = $client->get_lists($user['email2']);
}
}
else {
- redirect("annuaire.php");
+ redirect('annuaire');
}
$page->run();
$dim = $globals->asso('diminutif');
$sub['présentation'] = "$dim/";
if (may_update() || $globals->asso('pub') == 'public') {
- $sub['annuaire du groupe'] = "$dim/annuaire.php";
+ $sub['annuaire du groupe'] = "$dim/annuaire";
if ($globals->xnet->geoloc)
$sub['carte'] = "$dim/geoloc.php";
}
if (logged() && may_update()) {
$sub = array();
- $sub['modifier l\'accueil'] = "$dim/edit.php";
+ $sub['modifier l\'accueil'] = "$dim/edit";
if ($globals->wiki->wikidir && $globals->xnet->wiki)
$sub['wiki'] = "$dim/Accueil";
if ($globals->asso('mail_domain')) {
WHERE m.uid={?}", Session::getInt('uid'));
$html = '<div>Mes groupes :</div>';
while (list($nom, $mini) = $res->next()) {
- $html .= "<a class='gp' href='".smarty_function_rel()."/$mini'>• $nom</a>";
+ $html .= "<a class='gp' href='".smarty_function_rel()."/$mini/'>• $nom</a>";
}
return $html;
}
if (Post::has('diminutif')) {
$globals->xdb->query('INSERT INTO groupex.asso (id,diminutif)
VALUES(NULL,{?})', Post::get('diminutif'));
- redirect(Post::get('diminutif').'/edit.php');
+ redirect(Post::get('diminutif').'/edit');
}
$res = $globals->xdb->query('SELECT nom,diminutif FROM groupex.asso ORDER by NOM');
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' => $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/annuaire' => $this->make_hook('annuaire', AUTH_MDP),
);
}
- function handler_index(&$page)
+ function handler_index(&$page, $arg = null)
{
global $globals;
- if (!$globals->asso('id')) {
+ if (!is_null($arg)) {
return PL_NOT_FOUND;
}
exit;
}
+
+ function handler_edit(&$page)
+ {
+ global $globals;
+
+ new_groupadmin_page('xnet/groupe/edit.tpl');
+
+ if (Post::has('submit')) {
+ if (has_perms()) {
+ if (Post::get('mail_domain') && (strstr(Post::get('mail_domain'), '.') === false)) {
+ $page->trig_run("le domaine doit être un FQDN (aucune modif effectuée) !!!");
+ }
+ $globals->xdb->execute(
+ "UPDATE groupex.asso
+ SET nom={?}, diminutif={?}, cat={?}, dom={?},
+ descr={?}, site={?}, mail={?}, resp={?},
+ forum={?}, mail_domain={?}, ax={?}, pub={?},
+ sub_url={?}, inscriptible={?}
+ WHERE id={?}",
+ Post::get('nom'), Post::get('diminutif'),
+ Post::get('cat'), Post::getInt('dom'),
+ Post::get('descr'), Post::get('site'),
+ Post::get('mail'), Post::get('resp'),
+ Post::get('forum'), Post::get('mail_domain'),
+ Post::has('ax'), Post::has('pub')?'private':'public',
+ Post::get('sub_url'), Post::get('inscriptible'),
+ $globals->asso('id'));
+ if (Post::get('mail_domain')) {
+ $globals->xdb->execute('INSERT INTO virtual_domains (domain) VALUES({?})',
+ Post::get('mail_domain'));
+ }
+ } else {
+ $globals->xdb->execute(
+ "UPDATE groupex.asso
+ SET descr={?}, site={?}, mail={?}, resp={?},
+ forum={?}, ax={?}, pub= {?}, sub_url={?}
+ WHERE id={?}",
+ Post::get('descr'), Post::get('site'),
+ Post::get('mail'), Post::get('resp'),
+ Post::get('forum'), Post::has('ax'),
+ Post::has('pub')?'private':'public',
+ Post::get('sub_url'), $globals->asso('id'));
+ }
+
+ if ($_FILES['logo']['name']) {
+ $logo = file_get_contents($_FILES['logo']['tmp_name']);
+ $mime = $_FILES['logo']['type'];
+ $globals->xdb->execute('UPDATE groupex.asso
+ SET logo={?}, logo_mime={?}
+ WHERE id={?}', $logo, $mime,
+ $globals->asso('id'));
+ }
+
+ redirect('../'.Post::get('diminutif', $globals->asso('diminutif')).'/edit');
+ }
+
+ if (has_perms()) {
+ $dom = $globals->xdb->iterator('SELECT * FROM groupex.dom ORDER BY nom');
+ $page->assign('dom', $dom);
+ $page->assign('super', true);
+ }
+ }
+
+ function handler_annuaire(&$page)
+ {
+ global $globals;
+
+ define('NB_PER_PAGE', 25);
+
+ if ($globals->asso('pub') == 'public') {
+ new_group_page('xnet/groupe/annuaire.tpl');
+ } else {
+ new_groupadmin_page('xnet/groupe/annuaire.tpl');
+ }
+
+ $page->assign('admin', may_update());
+
+ switch (Env::get('order')) {
+ case 'promo' : $group = 'promo'; $tri = 'promo_o DESC, nom, prenom'; break;
+ case 'promo_inv': $group = 'promo'; $tri = 'promo_o, nom, prenom'; break;
+ case 'alpha_inv': $group = 'initiale'; $tri = 'nom DESC, prenom DESC, promo'; break;
+ default : $group = 'initiale'; $tri = 'nom, prenom, promo';
+ }
+
+ if ($group == 'initiale')
+ $res = $globals->xdb->iterRow(
+ 'SELECT UPPER(SUBSTRING(
+ IF(m.origine="X", IF(u.nom_usage<>"", u.nom_usage, u.nom),m.nom),
+ 1, 1)) as letter, COUNT(*)
+ FROM groupex.membres AS m
+ LEFT JOIN auth_user_md5 AS u ON ( u.user_id = m.uid )
+ WHERE asso_id = {?}
+ GROUP BY letter
+ ORDER BY letter', $globals->asso('id'));
+ else
+ $res = $globals->xdb->iterRow(
+ 'SELECT IF(m.origine="X",u.promo,"extérieur") AS promo,
+ COUNT(*), IF(m.origine="X",u.promo,"") AS promo_o
+ FROM groupex.membres AS m
+ LEFT JOIN auth_user_md5 AS u ON ( u.user_id = m.uid )
+ WHERE asso_id = {?}
+ GROUP BY promo
+ ORDER BY promo_o DESC', $globals->asso('id'));
+
+ $alphabet = array();
+ $nb_tot = 0;
+ while (list($char, $nb) = $res->next()) {
+ $alphabet[] = $char;
+ $nb_tot += $nb;
+ if (Env::has($group) && $char == strtoupper(Env::get($group))) {
+ $tot = $nb;
+ }
+ }
+ $page->assign('group', $group);
+ $page->assign('request_group', Env::get($group));
+ $page->assign('alphabet', $alphabet);
+ $page->assign('nb_tot', $nb_tot);
+
+ $ofs = Env::getInt('offset');
+ $tot = Env::get($group) ? $tot : $nb_tot;
+ $nbp = intval(($tot-1)/NB_PER_PAGE);
+ $links = array();
+ if ($ofs) {
+ $links['précédent'] = $ofs-1;
+ }
+ for ($i = 0; $i <= $nbp; $i++) {
+ $links[(string)($i+1)] = $i;
+ }
+ if ($ofs < $nbp) {
+ $links['suivant'] = $ofs+1;
+ }
+ if (count($links)>1) {
+ $page->assign('links', $links);
+ }
+
+ $ini = '';
+ if (Env::has('initiale')) {
+ $ini = 'AND IF(m.origine="X",
+ IF(u.nom_usage<>"", u.nom_usage, u.nom),
+ m.nom) LIKE "'.addslashes(Env::get('initiale')).'%"';
+ } elseif (Env::has('promo')) {
+ $ini = 'AND IF(m.origine="X", u.promo, "extérieur") = "'
+ .addslashes(Env::get('promo')).'"';
+ }
+
+ $ann = $globals->xdb->iterator(
+ "SELECT IF(m.origine='X',IF(u.nom_usage<>'', u.nom_usage, u.nom) ,m.nom) AS nom,
+ IF(m.origine='X',u.prenom,m.prenom) AS prenom,
+ IF(m.origine='X',u.promo,'extérieur') AS promo,
+ IF(m.origine='X',u.promo,'') AS promo_o,
+ IF(m.origine='X',a.alias,m.email) AS email,
+ IF(m.origine='X',FIND_IN_SET('femme', u.flags),0) AS femme,
+ m.perms='admin' AS admin,
+ m.origine='X' AS x,
+ m.uid
+ FROM groupex.membres AS m
+ LEFT JOIN auth_user_md5 AS u ON ( u.user_id = m.uid )
+ LEFT JOIN aliases AS a ON ( a.id = m.uid AND a.type='a_vie' )
+ WHERE m.asso_id = {?} $ini
+ ORDER BY $tri
+ LIMIT {?},{?}", $globals->asso('id'), $ofs*NB_PER_PAGE, NB_PER_PAGE);
+
+ $page->assign('ann', $ann);
+ }
}
?>
<h1>Ajouter un groupe</h1>
-<form action="{$smarty.server.PHP_SELF}" method="post">
+<form action="{rel}/admin" method="post">
<p class="descr">
Pour ajouter un groupe, choisir ici le diminutif qu'il va utiliser,
tu seras ensuite redirigé vers une page te permettant d'éditer le groupe :
{foreach from=$assos item=a key=i name=all}
{if $i is even}<tr>{/if}
<td><a href='?del={$a.diminutif}'><img src='{rel}/images/del.png' alt='delete' /></a></td>
- <td><a href='{rel}/{$a.diminutif}/edit.php'>{$a.nom}</a></td>
+ <td><a href='{rel}/{$a.diminutif}/edit'>{$a.nom}</a></td>
{if $i is odd || $smarty.foreach.all.last}</tr>{/if}
{/foreach}
</table>
<h1>{$asso.nom} : Éditer l'accueil</h1>
-<form method="post" action="{$smarty.server.PHP_SELF}" enctype="multipart/form-data">
+<form method="post" action="{rel}/{$platal->ns}edit" enctype="multipart/form-data">
{if $super}
<table cellpadding="0" cellspacing="0" class='tiny'>
<tr>
</td>
<td>
<input type="checkbox" name="membres" value="1" {if $smarty.request.membres}checked="checked"{/if} />
- <em>écrit à tout l'annuaire du groupe</em> <a href="annuaire.php" class='popup'>(voir annuaire)</a>
+ <em>écrit à tout l'annuaire du groupe</em> <a href="{rel}/{$platal->ns}annuaire" class='popup'>(voir annuaire)</a>
</td>
</tr>
{if $smarty.post.confirm}
<p class="descr">
-<a href="annuaire.php">retour à l'annuaire</a>
+<a href="{rel}/{$platal->ns}annuaire">retour à l'annuaire</a>
</p>
{else}
et le désabonner de toutes les listes de diffusion du groupe ?
</p>
<input type='submit' name='confirm' value='Oui, je le désinscris complètement du groupe !' />
- </div>
+ </div>
</form>
{/if}