annotate forum/Sources/Subs-MessageIndex.php @ 85:6d7b61434be7 website

Add a copy of this here, just in case!
author Chris Cannam
date Mon, 20 Jan 2014 11:02:36 +0000
parents e3e11437ecea
children
rev   line source
Chris@76 1 <?php
Chris@76 2
Chris@76 3 /**
Chris@76 4 * Simple Machines Forum (SMF)
Chris@76 5 *
Chris@76 6 * @package SMF
Chris@76 7 * @author Simple Machines http://www.simplemachines.org
Chris@76 8 * @copyright 2011 Simple Machines
Chris@76 9 * @license http://www.simplemachines.org/about/smf/license.php BSD
Chris@76 10 *
Chris@76 11 * @version 2.0
Chris@76 12 */
Chris@76 13
Chris@76 14 if (!defined('SMF'))
Chris@76 15 die('Hacking attempt...');
Chris@76 16
Chris@76 17 function getBoardList($boardListOptions = array())
Chris@76 18 {
Chris@76 19 global $smcFunc, $user_info;
Chris@76 20
Chris@76 21 if (isset($boardListOptions['excluded_boards']) && isset($boardListOptions['included_boards']))
Chris@76 22 trigger_error('getBoardList(): Setting both excluded_boards and included_boards is not allowed.', E_USER_ERROR);
Chris@76 23
Chris@76 24 $where = array();
Chris@76 25 $where_parameters = array();
Chris@76 26 if (isset($boardListOptions['excluded_boards']))
Chris@76 27 {
Chris@76 28 $where[] = 'b.id_board NOT IN ({array_int:excluded_boards})';
Chris@76 29 $where_parameters['excluded_boards'] = $boardListOptions['excluded_boards'];
Chris@76 30 }
Chris@76 31
Chris@76 32 if (isset($boardListOptions['included_boards']))
Chris@76 33 {
Chris@76 34 $where[] = 'b.id_board IN ({array_int:included_boards})';
Chris@76 35 $where_parameters['included_boards'] = $boardListOptions['included_boards'];
Chris@76 36 }
Chris@76 37
Chris@76 38 if (!empty($boardListOptions['ignore_boards']))
Chris@76 39 $where[] = '{query_wanna_see_board}';
Chris@76 40
Chris@76 41 elseif (!empty($boardListOptions['use_permissions']))
Chris@76 42 $where[] = '{query_see_board}';
Chris@76 43
Chris@76 44 if (!empty($boardListOptions['not_redirection']))
Chris@76 45 {
Chris@76 46 $where[] = 'b.redirect = {string:blank_redirect}';
Chris@76 47 $where_parameters['blank_redirect'] = '';
Chris@76 48 }
Chris@76 49
Chris@76 50 $request = $smcFunc['db_query']('messageindex_fetch_boards', '
Chris@76 51 SELECT c.name AS cat_name, c.id_cat, b.id_board, b.name AS board_name, b.child_level
Chris@76 52 FROM {db_prefix}boards AS b
Chris@76 53 LEFT JOIN {db_prefix}categories AS c ON (c.id_cat = b.id_cat)' . (empty($where) ? '' : '
Chris@76 54 WHERE ' . implode('
Chris@76 55 AND ', $where)),
Chris@76 56 $where_parameters
Chris@76 57 );
Chris@76 58
Chris@76 59 $return_value = array();
Chris@76 60 if ($smcFunc['db_num_rows']($request) !== 0)
Chris@76 61 {
Chris@76 62 while ($row = $smcFunc['db_fetch_assoc']($request))
Chris@76 63 {
Chris@76 64 if (!isset($return_value[$row['id_cat']]))
Chris@76 65 $return_value[$row['id_cat']] = array(
Chris@76 66 'id' => $row['id_cat'],
Chris@76 67 'name' => $row['cat_name'],
Chris@76 68 'boards' => array(),
Chris@76 69 );
Chris@76 70
Chris@76 71 $return_value[$row['id_cat']]['boards'][] = array(
Chris@76 72 'id' => $row['id_board'],
Chris@76 73 'name' => $row['board_name'],
Chris@76 74 'child_level' => $row['child_level'],
Chris@76 75 'selected' => isset($boardListOptions['selected_board']) && $boardListOptions['selected_board'] == $row['id_board'],
Chris@76 76 );
Chris@76 77 }
Chris@76 78 }
Chris@76 79 $smcFunc['db_free_result']($request);
Chris@76 80
Chris@76 81 return $return_value;
Chris@76 82 }
Chris@76 83
Chris@76 84 ?>