summaryrefslogtreecommitdiff
path: root/inc/functions.php
diff options
context:
space:
mode:
Diffstat (limited to 'inc/functions.php')
-rw-r--r--inc/functions.php22
1 files changed, 16 insertions, 6 deletions
diff --git a/inc/functions.php b/inc/functions.php
index 1393f580..cb198e6c 100644
--- a/inc/functions.php
+++ b/inc/functions.php
@@ -612,17 +612,27 @@ function hasPermission($action = null, $board = null, $_mod = null) {
return true;
}
-function listBoards() {
+function listBoards($just_uri = false) {
global $config;
- if ($config['cache']['enabled'] && ($boards = cache::get('all_boards')))
- return $boards;
+ $just_uri ? $cache_name = 'all_boards_uri' : $cache_name = 'all_boards';
- $query = query("SELECT * FROM ``boards`` ORDER BY `uri`") or error(db_error());
- $boards = $query->fetchAll();
+ if ($config['cache']['enabled'] && ($boards = cache::get($cache_name)))
+ return $boards;
+ if (!$just_uri) {
+ $query = query("SELECT ``boards``.`uri` uri, ``boards``.`title` title, ``boards``.`subtitle` subtitle, ``board_create``.`time` time FROM ``boards`` LEFT JOIN ``board_create`` ON ``boards``.`uri` = ``board_create``.`uri` ORDER BY ``boards``.`uri`") or error(db_error());
+ $boards = $query->fetchAll();
+ } else {
+ $boards = array();
+ $query = query("SELECT `uri` FROM ``boards``") or error(db_error());
+ while ($board = $query->fetchColumn()) {
+ $boards[] = $board;
+ }
+ }
+
if ($config['cache']['enabled'])
- cache::set('all_boards', $boards);
+ cache::set($cache_name, $boards);
return $boards;
}