'%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/site' => $this->make_hook('site', AUTH_PUBLIC),
+ '%grp/edit' => $this->make_hook('edit', AUTH_MDP, 'groupadmin'),
+ '%grp/mail' => $this->make_hook('mail', AUTH_MDP, 'groupadmin'),
+ '%grp/forum' => $this->make_hook('forum', AUTH_MDP),
'%grp/annuaire' => $this->make_hook('annuaire', AUTH_MDP),
'%grp/annuaire/vcard' => $this->make_hook('vcard', AUTH_MDP),
'%grp/trombi' => $this->make_hook('trombi', AUTH_MDP),
=> $this->make_hook('admin_annuaire', AUTH_MDP),
'%grp/member'
- => $this->make_hook('admin_member', AUTH_MDP),
+ => $this->make_hook('admin_member', AUTH_MDP, 'groupadmin'),
'%grp/member/new'
- => $this->make_hook('admin_member_new', AUTH_MDP),
+ => $this->make_hook('admin_member_new', AUTH_MDP, 'groupadmin'),
'%grp/member/new/ajax'
- => $this->make_hook('admin_member_new_ajax', AUTH_MDP, '', NO_AUTH),
+ => $this->make_hook('admin_member_new_ajax', AUTH_MDP, 'user', NO_AUTH),
'%grp/member/del'
- => $this->make_hook('admin_member_del', AUTH_MDP),
+ => $this->make_hook('admin_member_del', AUTH_MDP, 'groupadmin'),
'%grp/rss' => $this->make_hook('rss', AUTH_PUBLIC),
- '%grp/announce/new' => $this->make_hook('edit_announce', AUTH_MDP),
- '%grp/announce/edit' => $this->make_hook('edit_announce', AUTH_MDP),
- '%grp/admin/announces' => $this->make_hook('admin_announce', AUTH_MDP),
+ '%grp/announce/new' => $this->make_hook('edit_announce', AUTH_MDP, 'groupadmin'),
+ '%grp/announce/edit' => $this->make_hook('edit_announce', AUTH_MDP, 'groupadmin'),
+ '%grp/admin/announces' => $this->make_hook('admin_announce', AUTH_MDP, 'groupadmin'),
);
}
$page->setRssLink("Polytechnique.net :: {$globals->asso("nom")} :: News",
'rss/'.S::v('forlife') .'/'.S::v('core_rss_hash').'/rss.xml');
}
-
- require_once('url_catcher.inc.php');
- $page->register_modifier('url_catcher', 'url_catcher');
+
+ $page->register_modifier('url_catcher', array('MiniWiki','WikiToHTML'));
$page->assign('articles', $arts);
$page->assign('asso', $globals->asso());
exit;
}
+ function handler_site(&$page)
+ {
+ global $globals;
+ $site = $globals->asso('site');
+ if (!$site) {
+ $page->trig('Le groupe n\'a pas de site web');
+ return $this->handler_index($page);
+ }
+ http_redirect($site);
+ exit;
+ }
+
function handler_edit(&$page)
{
global $globals;
require_once dirname(__FILE__) . '/xnetgrp/mail.inc.php';
$tos = get_all_redirects($mbr, $mls, $mmlist);
- send_xnet_mails($from, $sujet, $body, $tos, Post::v('replyto'), $_FILES['uploaded']);
+ $upload = PlUpload::get($_FILES['uploaded'], S::v('forlife'), 'xnet.emails', true);
+ send_xnet_mails($from, $sujet, $body, $tos, Post::v('replyto'), $upload, @$_FILES['uploaded']['name']);
+ if ($upload) {
+ $upload->rm();
+ }
$page->kill("Mail envoyé !");
$page->assign('sent', true);
}
}
+ function handler_forum(&$page, $group = null, $artid = null)
+ {
+ global $globals;
+ new_group_page('xnetgrp/forum.tpl');
+ if (!$globals->asso('forum')) {
+ return PL_NOT_FOUND;
+ }
+ require_once 'banana/forum.inc.php';
+ $get = array();
+ get_banana_params($get, $globals->asso('forum'), $group, $artid);
+ run_banana($page, 'ForumsBanana', $get);
+ }
+
function handler_annuaire(&$page)
{
global $globals;
m.perms='admin' AS admin,
m.origine='X' AS x,
u.perms!='pending' AS inscrit,
- m.uid, e.email AS actif
+ m.uid, IF(e.email IS NULL,NULL,1) AS actif
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' )
ORDER BY $tri
LIMIT {?},{?}", $globals->asso('id'), $ofs*NB_PER_PAGE, NB_PER_PAGE);
$page->assign('ann', $ann);
+ $page->jsonAssign('ann', $ann);
}
function handler_trombi(&$page, $num = 1)
$res = XDB::query('SELECT uid
FROM groupex.membres
WHERE asso_id = {?}', $globals->asso('id'));
- require_once('vcard.inc.php');
$vcard = new VCard($res->fetchColumn(), $photos == 'photos', 'Membre du groupe ' . $globals->asso('nom'));
$vcard->do_page($page);
} else {
return;
}
- list(,$fqdn) = explode('@', $email);
- $fqdn = strtolower($fqdn);
- $x = ($fqdn == 'polytechnique.org' || $fqdn == 'melix.org' ||
- $fqdn == 'm4x.org' || $fqdn == 'melix.net');
-
+ if (strpos($email, '@') === false) {
+ $x = true;
+ } else {
+ list(,$fqdn) = explode('@', $email, 2);
+ $fqdn = strtolower($fqdn);
+ $x = ($fqdn == 'polytechnique.org' || $fqdn == 'melix.org' ||
+ $fqdn == 'm4x.org' || $fqdn == 'melix.net');
+ }
if ($x) {
require_once 'user.func.inc.php';
if ($forlife = get_user_forlife($email)) {
$page->trig($email." n'est pas un alias polytechnique.org valide");
}
} else {
+ require_once 'xorg.misc.inc.php';
if (isvalid_email($email)) {
if (Env::v('x') && Env::has('userid') && Env::i('userid')) {
$uid = Env::i('userid');
FROM auth_user_md5
WHERE user_id = {?} AND perms = 'pending'", $uid);
if ($res->numRows() == 1) {
- XDB::execute('INSERT INTO groupex.membres (uid, asso_id, origine, email)
- VALUES ({?}, {?}, "X", {?})',
- $uid, $globals->asso('id'), $email);
if (Env::v('market')) {
- $res = XDB::query('SELECT COUNT(*)
- FROM register_marketing
- WHERE uid={?} AND email={?}', $uid, $email);
- if (!$res->fetchOneCell()) {
- XDB::execute("INSERT INTO register_marketing (uid,sender,email,date,last,nb,type,hash)
- VALUES ({?}, {?}, {?}, NOW(), 0, 0, {?}, '')",
- $uid, S::v('uid'), $email, Env::v('market_from'));
- require_once('validations.inc.php');
- $req = new MarkReq(S::v('uid'), $uid, $email, Env::v('market_from') == 'user');
- $req->submit();
+ $market = Marketing::get($uid, $email);
+ if (!$market) {
+ $market = new Marketing($uid, $email, 'group', $globals->asso('nom'),
+ Env::v('market_from'), S::v('uid'));
+ $market->add();
}
}
+ XDB::execute('INSERT INTO groupex.membres (uid, asso_id, origine, email)
+ VALUES ({?}, {?}, "X", {?})',
+ $uid, $globals->asso('id'), $email);
pl_redirect("member/$email");
}
$page->trig("Utilisateur invalide");
{
header('Content-Type: text/html; charset="UTF-8"');
$page->changeTpl('xnetgrp/membres-new-search.tpl', NO_SKIN);
- list($nom, $prenom) = str_replace(array('-', ' ', "'"), '%', array(Env::v('nom'), Env::v('prenom')));
- $where = "perms = 'pending'";
- if (!empty($nom)) {
- $where .= " AND nom LIKE '%$nom%'";
- }
- if (!empty($prenom)) {
- $where .= " AND prenom LIKE '%$prenom%'";
- }
- if (preg_match('/^[0-9]{4}$/', Env::v('promo'))) {
- $where .= " AND promo = " . Env::i('promo');
- } elseif (Env::has('promo')) {
- return;
+ if (Env::has('login')) {
+ require_once 'user.func.inc.php';
+ $res = get_not_registered_user(Env::v('login'), true);
+ } else {
+ list($nom, $prenom) = str_replace(array('-', ' ', "'"), '%', array(Env::v('nom'), Env::v('prenom')));
+ $where = "perms = 'pending'";
+ if (!empty($nom)) {
+ $where .= " AND nom LIKE '%$nom%'";
+ }
+ if (!empty($prenom)) {
+ $where .= " AND prenom LIKE '%$prenom%'";
+ }
+ if (preg_match('/^[0-9]{4}$/', Env::v('promo'))) {
+ $where .= " AND promo = " . Env::i('promo');
+ } elseif (preg_match('/^[0-9]{2}$/', Env::v('promo'))) {
+ $where .= " AND MOD(promo, 100) = " . Env::i('promo');
+ } elseif (Env::has('promo')) {
+ return;
+ }
+ $res = XDB::iterator("SELECT user_id, nom, prenom, promo
+ FROM auth_user_md5
+ WHERE $where");
}
- $res = XDB::iterator("SELECT user_id, nom, prenom, promo
- FROM auth_user_md5
- WHERE $where");
if ($res->total() < 30) {
$page->assign("choix", $res);
}
{
global $globals;
require_once('rss.inc.php');
- require_once('url_catcher.inc.php');
$uid = init_rss('xnetgrp/announce-rss.tpl', $user, $hash, false);
- $page->register_modifier('url_catcher', 'url_catcher');
+ $page->register_modifier('url_catcher', array('MiniWiki', 'WikiToHTML'));
if ($uid) {
$rss = XDB::iterator("SELECT a.id, a.titre, a.texte, a.contacts, a.create_date,
{
global $globals, $platal;
new_groupadmin_page('xnetgrp/announce-edit.tpl');
+ $page->register_modifier('url_catcher', array('MiniWiki','WikiToHTML'));
$page->assign('new', is_null($aid));
$art = array();
$aid = XDB::insertId();
if ($art['xorg']) {
require_once('validations.inc.php');
- require_once('url_catcher.inc.php');
$article = new EvtReq("[{$globals->asso('nom')}] " . $art['titre'],
- url_catcher($art['texte'] . (!empty($art['contact_html']) ? "\n\nContacts :\n" . $art['contact_html'] : "")),
+ MiniWiki::WikiToHTML($art['texte'] . (!empty($art['contact_html']) ? "\n\nContacts :\n" . $art['contact_html'] : "")),
$art['promo_min'], $art['promo_max'], $art['peremption'], "", S::v('uid'));
$article->submit();
$page->trig("L'affichage sur la page d'accueil de Polytechnique.org est en attente de validation");
}
}
- require_once('url_catcher.inc.php');
- $art['contact_html'] = url_catcher($art['contact_html']);
+ $art['contact_html'] = MiniWiki::WikiToHTML($art['contact_html']);
$page->assign('art', $art);
}