private $page = null;
private $pages = array();
+ private $killed = array();
private $actions = array();
+ public $css = '';
+
public function __construct()
{
$this->Smarty();
$this->compile_check = Banana::$debug_smarty;
$this->template_dir = dirname(__FILE__) . '/templates/';
- $this->compile_dir = dirname(dirname(__FILE__)) . '/spool/templates_c/';
+ $this->compile_dir = Banana::$spool_root . '/templates_c/';
$this->register_prefilter('banana_trimwhitespace');
}
public function setPage($page)
{
$this->page = $page;
+ return true;
}
/** Register an action to show on banana page
$this->pages[$name] = array('text' => $text, 'template' => $template);
return true;
}
-
- /** Generate XHTML code
+
+ /** Remove a page
+ * @param page STRING page name to kill
*/
- public function run()
+ public function killPage($page)
+ {
+ $this->killed[] = $page;
+ }
+
+ /** Add Inline CSS to put in the page headers
+ * @param css CSS code
+ */
+ public function addCssInline($css)
+ {
+ $this->css .= $css;
+ }
+
+ /** Preparte the page generation
+ * @return template to use
+ */
+ protected function prepare()
{
$this->registerPage('subscribe', _b_('Abonnements'), null);
$this->registerPage('forums', _b_('Les forums'), null);
if ($this->page == 'cancel') {
$this->registerPage('cancel', _b_('Annulation'), null);
} elseif ($this->page == 'new') {
- $this->registerPage('new', _b_('Répondre'), null);
+ $this->registerPage('new', _b_('Répondre'), null);
}
} elseif ($this->page == 'new') {
$this->registerPage('new', _b_('Nouveau'), null);
}
}
+ foreach ($this->killed as $page) {
+ unset($this->pages[$page]);
+ }
foreach ($this->actions as $key=>&$action) {
if (!is_null($action['pages']) && !in_array($this->page, $action['pages'])) {
unset($this->actions[$key]);
}
}
+
+ return 'banana-base.tpl';
+ }
+
+ /** Generate XHTML code
+ */
+ public function run()
+ {
+ $tpl = $this->prepare();
+ if (!isset($this->pages[$this->page])) {
+ $this->trig(_b_('La page demandée n\'existe pas'));
+ $this->actions = array();
+ $this->page = null;
+ }
+
$this->assign('group', Banana::$group);
$this->assign('artid', Banana::$artid);
$this->assign('part', Banana::$part);
$this->assign('profile', Banana::$profile);
$this->assign('spool', Banana::$spool);
$this->assign('protocole', Banana::$protocole);
+ $this->assign('showboxlist', Banana::$spool_boxlist);
+ $this->assign('showthread', Banana::$msgshow_withthread);
+ $this->assign('withtabs' , Banana::$withtabs);
+
+ $this->register_function('url', array($this, 'makeUrl'));
+ $this->register_function('link', array($this, 'makeLink'));
+ $this->register_function('imglink', array($this, 'makeImgLink'));
+ $this->register_function('img', array($this, 'makeImg'));
+ $this->register_modifier('b', '_b_');
$this->assign('errors', $this->error);
$this->assign('page', $this->page);
$this->assign('pages', $this->pages);
$this->assign('actions', $this->actions);
- $this->register_function('url', array($this, 'makeUrl'));
- $this->register_function('link', array($this, 'makeLink'));
- $this->register_function('imglink', array($this, 'makeImgLink'));
- $this->register_function('img', array($this, 'makeImg'));
if (!Banana::$debug_smarty) {
$error_level = error_reporting(0);
}
- $text = $this->fetch('banana-base.tpl');
+ $text = $this->fetch($tpl);
$text = banana_utf8entities($text);
if (!Banana::$debug_smarty) {
error_reporting($error_level);
// }}}
-// vim:set et sw=4 sts=4 ts=4:
+// vim:set et sw=4 sts=4 ts=4 enc=utf-8:
?>