public function Execute(Template $template, Session $session, $request) { $this->dba = DBA::Open(); $template = CreateAncestors($template, $template['L_ADMINPANEL']); if ($session['user'] instanceof Member && $session['user']['perms'] & ADMIN) { if (isset($request['forum']) && isset($request['days'])) { /* Turn the board off for safety reasons */ $this->dba->Execute("UPDATE " . SETTING . " SET value = '0' WHERE varname = 'bbactive'"); $days = intval($request['days']); $forum = intval($request['forum']); $created = $days == 0 ? time() : time() - $days * 24 * 3600; $prune = new Prune(); if ($forum == -1) { foreach ($this->dba->Query("SELECT * FROM " . POSTS . " WHERE row_status != 2 AND row_status != 3 AND row_type = 2 AND row_right-row_left-1 = 0 AND created <= " . $created) as $post) { $prune->KillNode($post); } } else { foreach ($this->dba->Query("SELECT * FROM " . POSTS . " WHERE parent_id = " . $forum . " AND row_status != 2 AND row_status != 3 AND row_type = 2 AND row_right-row_left-1 = 0 AND created <= " . $created) as $post) { $prune->KillNode($post); } } /* Turn the board back on */ $this->dba->Execute("UPDATE " . SETTING . " SET value = '1' WHERE varname = 'bbactive'"); return new Error($template['L_PRUNESUCCESS'] . '<meta http-equiv="refresh" content="2; url=admin.php?act=prune">', $template); } else { return new Error($template['L_FORUMDOESNTEXIST'], $template); } } return TRUE; }