diff --git a/inc/functions.php b/inc/functions.php index 416b760e..e3eb2256 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; + + $just_uri ? $cache_name = 'all_boards_uri' : $cache_name = 'all_boards'; - if ($config['cache']['enabled'] && ($boards = cache::get('all_boards'))) + if ($config['cache']['enabled'] && ($boards = cache::get($cache_name))) return $boards; - $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(); + 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; } diff --git a/search.php b/search.php index beb8743d..394aa3ff 100644 --- a/search.php +++ b/search.php @@ -9,7 +9,11 @@ $queries_per_minutes_all = $config['search']['queries_per_minutes_all']; $search_limit = $config['search']['search_limit']; - $boards = $config['search']['boards']; + if (isset($config['search']['boards'])) { + $boards = $config['search']['boards']; + } else { + $boards = listBoards(TRUE); + } $body = Element('search_form.html', Array('boards' => $boards, 'board' => isset($_GET['board']) ? $_GET['board'] : false, 'search' => isset($_GET['search']) ? str_replace('"', '"', utf8tohtml($_GET['search'])) : false));