From 12ed25e1f83ec8dbb6e9727dc553c8fe80e460ca Mon Sep 17 00:00:00 2001 From: x2003bruneau Date: Sat, 15 Jul 2006 16:38:50 +0000 Subject: [PATCH] More robust tab structure git-svn-id: svn+ssh://murphy/home/svn/banana/trunk@111 9869982d-c50d-0410-be91-f2a2ec7c7c7b --- banana/banana.inc.php.in | 14 ++++++++++--- banana/misc.inc.php | 52 ++++++++++++++++++++++++++---------------------- 2 files changed, 39 insertions(+), 27 deletions(-) diff --git a/banana/banana.inc.php.in b/banana/banana.inc.php.in index 61cc777..2cb894c 100644 --- a/banana/banana.inc.php.in +++ b/banana/banana.inc.php.in @@ -115,15 +115,17 @@ class Banana } if (!$banana->nntp) { - return '

'._b_('Impossible de contacter le serveur').'

'; + $banana->state['page'] = 'error'; + return makeTable('

'._b_('Impossible de contacter le serveur').'

'); } $group = empty($banana->get['group']) ? null : $banana->get['group']; if (!is_null($group) && isset($banana->grp_pattern) && !preg_match('/' . $banana->grp_pattern . '/', $group)) { - return '

' + $banana->state['page'] = 'error'; + return makeTable('

' . $group . _b_(' : ce newsgroup n\'existe pas ou vous n\'avez pas l\'autorisation d\'y accéder') - . '

'; + . '

'); } $artid = empty($banana->get['artid']) ? null : strtolower($banana->get['artid']); $partid = !isset($banana->get['part']) ? -1 : $banana->get['part']; @@ -132,18 +134,22 @@ class Banana if (is_null($group)) { if (isset($banana->get['subscribe'])) { + $banana->state['page'] = 'subscribe'; return makeTable($banana->action_listSubs()); } elseif (isset($_POST['validsubs'])) { $banana->action_saveSubs(); } + $banana->state['page'] = 'forums'; return makeTable($banana->action_listGroups()); } elseif (is_null($artid)) { if (isset($_POST['action']) && $_POST['action'] == 'new') { return makeTable($banana->action_doFup($group, isset($_POST['artid']) ? intval($_POST['artid']) : -1)); } elseif ($action == 'new') { + $banana->state['page'] = 'action'; return makeTable($banana->action_newFup($group)); } else { + $banana->state['page'] = 'group'; return makeTable($banana->action_showThread($group, isset($banana->get['first']) ? intval($banana->get['first']) : 1)); } @@ -155,6 +161,7 @@ class Banana } if (!is_null($action)) { + $banana->state['page'] = 'action'; switch ($action) { case 'cancel': $res .= $banana->action_showArticle($group, $artid, $partid); @@ -185,6 +192,7 @@ class Banana return makeTable($res . $att); } + $banana->state['page'] = 'message'; return makeTable($banana->action_showArticle($group, $artid, $partid)); } } diff --git a/banana/misc.inc.php b/banana/misc.inc.php index 09cd285..c91dba9 100644 --- a/banana/misc.inc.php +++ b/banana/misc.inc.php @@ -380,52 +380,56 @@ function formatFrom($text) { return preg_replace("/\\\(\(|\))/","\\1",$result); } +function makeTab($link, $text) +{ + return Array(makeHREF($link, $text), + $text); +} + function displayTabs() { global $banana; extract($banana->state); - - $res = Array(); if (function_exists('hook_shortcuts') && $cstm = hook_shortcuts()) { $res = $cstm; } - array_push($res, - makeHREF(Array('subscribe' => 1), _b_('Abonnements')), - is_null($group) ? Array(_b_('Les forums'), true) : makeHREF(Array(), _b_('Les forums'))); + $res['subscribe'] = makeTab(Array('subscribe' => 1), _b_('Abonnements')); + $res['forums'] = makeTab(Array(), _b_('Les forums')); if (!is_null($group)) { - $grplink = makeHREF(Array('group' => $group), $group); - $grpcur = Array($group, true); + $res['group'] = makeTab(Array('group' => $group), $group); if (is_null($artid)) { if (@$action == 'new') { - array_push($res, $grplink, Array(_b_('Nouveau Message'), true)); - } else { - array_push($res, $grpcur); + $res['action'] = makeTab(Array('group' => $group, + 'action' => 'new'), + _b_('Nouveau Message')); } } else { + $res['message'] = makeTab(Array('group' => $group, + 'artid' => $artid), + _b_('Message')); if (!is_null($action)) { - array_push($res, - $grplink, - makeHREF(Array('group' => $group, - 'artid' => $artid), - _b_('Message'))); if ($action == 'new') { - array_push($res, Array(_b_('Répondre'), true)); + $res['action'] = makeTab(Array('group' => $group, + 'artid' => $artid, + 'action' => 'new'), + _b_('Réponse')); } elseif ($action == 'cancel') { - array_push($res, Array(_b_('Annuler'), true)); + $res['action'] = makeTab(Array('group' => $group, + 'artid' => $artid, + 'action' => 'cancel'), + _b_('Annuler')); } - } else { - array_push($res, $grplink, Array(_b_('Message'), true)); } } } $ret = ''; @@ -461,7 +465,7 @@ function displayPages($first = -1) function makeTable($text) { - return '' + return '
' . '' -- 2.1.4
' . displayTabs() . '