Banana::$feed_active = false;
}
parent::__construct($params, 'NNTP', 'PlatalBananaPage');
+ if ($params['action'] == 'profile') {
+ Banana::$action = 'profile';
+ }
}
public function run()
Banana::$page->registerPage('profile', 'Préférences', null);
}
- // Run Banana
- return parent::run();
+ // Run Bananai
+ if (Banana::$action == 'profile') {
+ Banana::$page->run();
+ return $this->action_updateProfile();
+ } else {
+ return parent::run();
+ }
}
public function post($dest, $reply, $subject, $body)
Banana::$profile['subscribe'][] = $g;
}
}
+
+ protected function action_updateProfile()
+ {
+ global $page, $globals;
+
+ if (!(Post::has('action') && Post::has('banananame') && Post::has('bananasig')
+ && Post::has('bananadisplay') && Post::has('bananamail')
+ && Post::has('bananaupdate') && Post::v('action')=="Enregistrer" ))
+ {
+ $req = XDB::query("
+ SELECT nom, mail, sig,
+ FIND_IN_SET('threads', flags),
+ FIND_IN_SET('automaj', flags),
+ FIND_IN_SET('xface', flags)
+ FROM forums.profils
+ WHERE uid = {?}", S::v('uid'));
+ if (!(list($nom, $mail, $sig, $disp, $maj, $xface) = $req->fetchOneRow())) {
+ $nom = S::v('prenom').' '.S::v('nom');
+ $mail = S::v('forlife').'@'.$globals->mail->domain;
+ $sig = $nom.' ('.S::v('promo').')';
+ $disp = 0;
+ $maj = 0;
+ $xface = 0;
+ }
+ $page->assign('nom' , $nom);
+ $page->assign('mail', $mail);
+ $page->assign('sig', $sig);
+ $page->assign('disp', $disp);
+ $page->assign('maj', $maj);
+ $page->assign('xface', $xface);
+ } else {
+ $flags = array();
+ if (Post::b('bananadisplay')) {
+ $flags[] = 'threads';
+ }
+ if (Post::b('bananaupdate')) {
+ $flags[] = 'automaj';
+ }
+ if (Post::b('bananaxface')) {
+ $flags[] = 'xface';
+ }
+ XDB::execute("REPLACE INTO forums.profils (uid, sig, mail, nom, flags)
+ VALUES ({?}, {?}, {?}, {?}, {?})",
+ S::v('uid'), Post::v('bananasig'),
+ Post::v('bananamail'), Post::v('banananame'),
+ implode(',', $flags));
+ }
+ return null;
+ }
}
// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
function get_banana_params(array &$get, $group = null, $action = null, $artid = null)
{
+ if ($group == 'forums') {
+ $group = null;
+ } else if ($group == 'thread') {
+ $group = S::v('banana_group');
+ } else if ($group == 'message') {
+ $action = 'read';
+ $group = S::v('banana_group');
+ $artid = S::i('banana_artid');
+ } else if ($group == 'subscribe' || $group == 'subscription') {
+ $group = null;
+ $action = null;
+ $get['action'] = 'subscribe';
+ } else if ($group == 'profile') {
+ $group = null;
+ $action = null;
+ $get['action'] = 'profile';
+ }
if (!is_null($group)) {
$get['group'] = $group;
}
global $wiz, $page;
$wiz = new PlWizard('Banana', 'core/plwizard.tpl', true, false);
foreach ($this->pages as $name=>&$mpage) {
- $wiz->addPage('BananaHandler', $mpage['text'], $name);
+ if ($text == 'profile') {
+ $wiz->addPage('BananaProfile', $mpage['text'], $name);
+ } else {
+ $wiz->addPage('BananaHandler', $mpage['text'], $name);
+ }
}
$wiz->apply($page, 'banana', $this->page);
return $tpl;
{
return array(
'banana' => $this->make_hook('banana', AUTH_COOKIE),
- 'banana/forums' => $this->make_hook('banana', AUTH_COOKIE),
- 'banana/message' => $this->make_hook('message', AUTH_COOKIE),
- 'banana/thread' => $this->make_hook('thread', AUTH_COOKIE),
- 'banana/profile' => $this->make_hook('profile', AUTH_MDP),
- 'banana/subscribe' => $this->make_hook('subscription', AUTH_COOKIE),
+// 'banana/profile' => $this->make_hook('profile', AUTH_MDP),
+// 'banana/subscribe' => $this->make_hook('subscription', AUTH_COOKIE),
'banana/rss' => $this->make_hook('rss', AUTH_PUBLIC, 'user', NO_HTTPS),
);
}
run_banana($page, 'ForumsBanana', $get);
}
- function handler_message(&$page)
- {
- pl_redirect('banana/' . S::v('banana_group') . '/read/' . S::i('banana_artid'));
- }
-
- function handler_thread(&$page)
- {
- pl_redirect('banana/' . S::v('banana_group'));
- }
-
function handler_profile(&$page, $action = null)
{
global $globals;
}
}
- function handler_subscription(&$page)
- {
- $page->changeTpl('banana/index.tpl');
- $page->assign('xorg_title','Polytechnique.org - Forums & PA');
-
- require_once 'banana/forum.inc.php';
- run_banana($page, 'ForumsBanana', Array('action' => 'subscribe'));
- }
-
function handler_rss(&$page, $group, $alias, $hash, $file = null)
{
if (is_null($file)) {
{* *}
{**************************************************************************}
-<br />
+{if isset($banana|smarty:nodefaults)}
{$banana|smarty:nodefaults}
+{else}
+
+{if !$smarty.post.action}
+<p class="normal">
+ Tu peux régler quelques paramètres qui apparaîtront sur les messages lorsque
+ tu posteras sur les forums. Cela ne te permettra pas d'être anonyme, puisque
+ tout le monde pourra remonter à ton identité en regardant ta fiche. L'objectif
+ est simplement de permettre plus de convivialité.
+</p>
+<p class="normal">
+ Tu pourras voir dans les forums les nouveaux messages mis en valeur (en
+ général en gras). Si tu consultes les forums régulièrement, tu peux en avoir
+ assez de voir tout le contenu du forum : la dernière option te permet de
+ n'afficher que les fils de discussion contenant des messages lus.
+</p>
+
+<form action="banana/profile" method="post">
+ <table class="bicol" cellpadding="3" cellspacing="0" summary="Configuration de Banana">
+ <tr>
+ <th colspan="2">Profil Banana</th>
+ </tr>
+ <tr>
+ <td class="titre">Nom</td>
+ <td><input type="text" name="banananame" value="{$nom}" /></td>
+ </tr>
+ <tr>
+ <td class="titre">Adresse électronique</td>
+ <td><input type="text" name="bananamail" value="{$mail}" /></td>
+ </tr>
+ <tr>
+ <td class="titre">Signature</td>
+ <td><textarea name="bananasig" cols="50" rows="4">{$sig}</textarea></td>
+ </tr>
+ <tr class="pair">
+ <td class="titre">Affichage des fils de discussion</td>
+ <td>
+ <input type="radio" name="bananadisplay" value="0"
+ {if !$disp}checked="checked"{/if} /> Afficher tous les messages <br />
+ <input type="radio" name="bananadisplay" value="1"
+ {if $disp}checked="checked"{/if} /> Afficher seulement les fils de discussion contenant des messages non lus
+ </td>
+ </tr>
+ <tr class="pair">
+ <td class="titre">Mise à jour des messages non lus</td>
+ <td>
+ <input type="radio" name="bananaupdate" value="1"
+ {if $maj}checked="checked"{/if} /> Automatique<br />
+ <input type="radio" name="bananaupdate" value="0"
+ {if !$maj}checked="checked"{/if} /> Manuelle
+ </td>
+ </tr>
+ <tr class="pair">
+ <td class="titre" colspan="2">
+ <input type="checkbox" {if $xface}checked="checked"{/if} name="bananaxface" id="xface" />
+ <label for="xface">Afficher mon X-Face plutôt que ma photo si il est disponible</label>
+ </td>
+ </tr>
+ </table>
+ <div class="center"><input type="submit" name="action" value="Enregistrer" /></div>
+</form>
+{else}
+<p class="normal">
+ Ton profil est enregistré !!!
+</p>
+{/if}
+{/if}
<p class="smaller">
{icon name="lightbulb" title="Astuce"}Astuce :
+++ /dev/null
-{**************************************************************************}
-{* *}
-{* Copyright (C) 2003-2007 Polytechnique.org *}
-{* http://opensource.polytechnique.org/ *}
-{* *}
-{* This program is free software; you can redistribute it and/or modify *}
-{* it under the terms of the GNU General Public License as published by *}
-{* the Free Software Foundation; either version 2 of the License, or *}
-{* (at your option) any later version. *}
-{* *}
-{* This program is distributed in the hope that it will be useful, *}
-{* but WITHOUT ANY WARRANTY; without even the implied warranty of *}
-{* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *}
-{* GNU General Public License for more details. *}
-{* *}
-{* You should have received a copy of the GNU General Public License *}
-{* along with this program; if not, write to the Free Software *}
-{* Foundation, Inc., *}
-{* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *}
-{* *}
-{**************************************************************************}
-
-<br />
-
-<table class="cadre_a_onglet" cellpadding="0" cellspacing="0" width="100%">
- <tr>
- <td>
- <ul id="onglet">
- <li class="actif">Préférences</li>
- <li><a href="banana/subscription">Abonnements</a></li>
- <li><a href="banana">Les Forums</a></li>
- </ul>
- </td>
- </tr>
- <tr>
- <td class="conteneur_tab">
-
-{if !$smarty.post.action}
-
- <p class="normal">
- Tu peux régler quelques paramètres qui apparaîtront sur les messages lorsque
- tu posteras sur les forums. Cela ne te permettra pas d'être anonyme, puisque
- tout le monde pourra remonter à ton identité en regardant ta fiche. L'objectif
- est simplement de permettre plus de convivialité.
- </p>
- <p class="normal">
- Tu pourras voir dans les forums les nouveaux messages mis en valeur (en
- général en gras). Si tu consultes les forums régulièrement, tu peux en avoir
- assez de voir tout le contenu du forum : la dernière option te permet de
- n'afficher que les fils de discussion contenant des messages lus.
- </p>
-
- <form action="banana/profile" method="post">
- <table class="bicol" cellpadding="3" cellspacing="0" summary="Configuration de Banana">
- <tr>
- <th colspan="2">Profil Banana</th>
- </tr>
- <tr>
- <td class="titre">Nom</td>
- <td><input type="text" name="banananame" value="{$nom}" /></td>
- </tr>
- <tr>
- <td class="titre">Adresse électronique</td>
- <td><input type="text" name="bananamail" value="{$mail}" /></td>
- </tr>
- <tr>
- <td class="titre">Signature</td>
- <td><textarea name="bananasig" cols="50" rows="4">{$sig}</textarea></td>
- </tr>
- <tr class="pair">
- <td class="titre">Affichage des fils de discussion</td>
- <td>
- <input type="radio" name="bananadisplay" value="0"
- {if !$disp}checked="checked"{/if} /> Afficher tous
- les messages
- <br />
- <input type="radio" name="bananadisplay" value="1"
- {if $disp}checked="checked"{/if} /> Afficher
- seulement les fils de discussion contenant des messages non lus
- </td>
- </tr>
- <tr class="pair">
- <td class="titre">Mise à jour des messages non lus</td>
- <td>
- <input type="radio" name="bananaupdate" value="1"
- {if $maj}checked="checked"{/if} /> Automatique
- <br />
- <input type="radio" name="bananaupdate" value="0"
- {if !$maj}checked="checked"{/if} /> Manuelle
- </td>
- </tr>
- <tr class="pair">
- <td class="titre" colspan="2">
- <input type="checkbox" {if $xface}checked="checked"{/if} name="bananaxface" id="xface" />
- <label for="xface">Afficher mon X-Face plutôt que ma photo si il est disponible</label>
- </td>
- </tr>
- </table>
- <div class="center"><input type="submit" name="action" value="Enregistrer" /></div>
- </form>
-
-{else}
- <p class="normal">
- Ton profil est enregistré !!!
- </p>
-{/if}
-
- </td>
- </tr>
-</table>
-
-<p class="smaller">
- {icon name="lightbulb" title="Astuce"}Astuce :
- Tu peux également consulter les fora en utilisant un client NNTP tel que
- Outlook Express ou Thunderbird.<br />N'hésite pas à <a href="password/smtp?doc=nntp">
- consulter la documentation et à activer ton accès</a> pour utiliser ce service.
-</p>
-
-
-{* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *}