From 5165207b1ddcbf231e371a1d1b11221a169116dd Mon Sep 17 00:00:00 2001 From: Christian Date: Sat, 5 Sep 2009 15:42:45 +0000 Subject: [PATCH] B3P v2: Added link block and added phpBB3 core files includes/cache.php and includes/constants.php and a Datebase backup. :-) --- non-contrib/includes/cache.php | 505 ++++++++++++++++++ non-contrib/includes/constants.php | 275 ++++++++++ .../backup_1252165208_7b6275c2eb44c553.sql.gz | Bin 0 -> 6333 bytes root/portal.php | 10 +- .../template/portal/block/links.html | 16 +- 5 files changed, 792 insertions(+), 14 deletions(-) create mode 100644 non-contrib/includes/cache.php create mode 100644 non-contrib/includes/constants.php create mode 100644 non-contrib/store/backup_1252165208_7b6275c2eb44c553.sql.gz diff --git a/non-contrib/includes/cache.php b/non-contrib/includes/cache.php new file mode 100644 index 00000000..bd7d7fe5 --- /dev/null +++ b/non-contrib/includes/cache.php @@ -0,0 +1,505 @@ +get('config')) !== false) + { + $sql = 'SELECT config_name, config_value + FROM ' . CONFIG_TABLE . ' + WHERE is_dynamic = 1'; + $result = $db->sql_query($sql); + + while ($row = $db->sql_fetchrow($result)) + { + $config[$row['config_name']] = $row['config_value']; + } + $db->sql_freeresult($result); + } + else + { + $config = $cached_config = array(); + + $sql = 'SELECT config_name, config_value, is_dynamic + FROM ' . CONFIG_TABLE; + $result = $db->sql_query($sql); + + while ($row = $db->sql_fetchrow($result)) + { + if (!$row['is_dynamic']) + { + $cached_config[$row['config_name']] = $row['config_value']; + } + + $config[$row['config_name']] = $row['config_value']; + } + $db->sql_freeresult($result); + + $this->put('config', $cached_config); + } + + return $config; + } + + /** + * Obtain list of naughty words and build preg style replacement arrays for use by the + * calling script + */ + function obtain_word_list() + { + global $db; + + if (($censors = $this->get('_word_censors')) === false) + { + $sql = 'SELECT word, replacement + FROM ' . WORDS_TABLE; + $result = $db->sql_query($sql); + + $censors = array(); + while ($row = $db->sql_fetchrow($result)) + { + $censors['match'][] = '#(?sql_freeresult($result); + + $this->put('_word_censors', $censors); + } + + return $censors; + } + + /** + * Obtain currently listed icons + */ + function obtain_icons() + { + if (($icons = $this->get('_icons')) === false) + { + global $db; + + // Topic icons + $sql = 'SELECT * + FROM ' . ICONS_TABLE . ' + ORDER BY icons_order'; + $result = $db->sql_query($sql); + + $icons = array(); + while ($row = $db->sql_fetchrow($result)) + { + $icons[$row['icons_id']]['img'] = $row['icons_url']; + $icons[$row['icons_id']]['width'] = (int) $row['icons_width']; + $icons[$row['icons_id']]['height'] = (int) $row['icons_height']; + $icons[$row['icons_id']]['display'] = (bool) $row['display_on_posting']; + } + $db->sql_freeresult($result); + + $this->put('_icons', $icons); + } + + return $icons; + } + + /** + * Obtain ranks + */ + function obtain_ranks() + { + if (($ranks = $this->get('_ranks')) === false) + { + global $db; + + $sql = 'SELECT * + FROM ' . RANKS_TABLE . ' + ORDER BY rank_min DESC'; + $result = $db->sql_query($sql); + + $ranks = array(); + while ($row = $db->sql_fetchrow($result)) + { + if ($row['rank_special']) + { + $ranks['special'][$row['rank_id']] = array( + 'rank_title' => $row['rank_title'], + 'rank_image' => $row['rank_image'] + ); + } + else + { + $ranks['normal'][] = array( + 'rank_title' => $row['rank_title'], + 'rank_min' => $row['rank_min'], + 'rank_image' => $row['rank_image'] + ); + } + } + $db->sql_freeresult($result); + + $this->put('_ranks', $ranks); + } + + return $ranks; + } + + /** + * Obtain allowed extensions + * + * @param mixed $forum_id If false then check for private messaging, if int then check for forum id. If true, then only return extension informations. + * + * @return array allowed extensions array. + */ + function obtain_attach_extensions($forum_id) + { + if (($extensions = $this->get('_extensions')) === false) + { + global $db; + + $extensions = array( + '_allowed_post' => array(), + '_allowed_pm' => array(), + ); + + // The rule is to only allow those extensions defined. ;) + $sql = 'SELECT e.extension, g.* + FROM ' . EXTENSIONS_TABLE . ' e, ' . EXTENSION_GROUPS_TABLE . ' g + WHERE e.group_id = g.group_id + AND (g.allow_group = 1 OR g.allow_in_pm = 1)'; + $result = $db->sql_query($sql); + + while ($row = $db->sql_fetchrow($result)) + { + $extension = strtolower(trim($row['extension'])); + + $extensions[$extension] = array( + 'display_cat' => (int) $row['cat_id'], + 'download_mode' => (int) $row['download_mode'], + 'upload_icon' => trim($row['upload_icon']), + 'max_filesize' => (int) $row['max_filesize'], + 'allow_group' => $row['allow_group'], + 'allow_in_pm' => $row['allow_in_pm'], + ); + + $allowed_forums = ($row['allowed_forums']) ? unserialize(trim($row['allowed_forums'])) : array(); + + // Store allowed extensions forum wise + if ($row['allow_group']) + { + $extensions['_allowed_post'][$extension] = (!sizeof($allowed_forums)) ? 0 : $allowed_forums; + } + + if ($row['allow_in_pm']) + { + $extensions['_allowed_pm'][$extension] = 0; + } + } + $db->sql_freeresult($result); + + $this->put('_extensions', $extensions); + } + + // Forum post + if ($forum_id === false) + { + // We are checking for private messages, therefore we only need to get the pm extensions... + $return = array('_allowed_' => array()); + + foreach ($extensions['_allowed_pm'] as $extension => $check) + { + $return['_allowed_'][$extension] = 0; + $return[$extension] = $extensions[$extension]; + } + + $extensions = $return; + } + else if ($forum_id === true) + { + return $extensions; + } + else + { + $forum_id = (int) $forum_id; + $return = array('_allowed_' => array()); + + foreach ($extensions['_allowed_post'] as $extension => $check) + { + // Check for allowed forums + if (is_array($check)) + { + $allowed = (!in_array($forum_id, $check)) ? false : true; + } + else + { + $allowed = true; + } + + if ($allowed) + { + $return['_allowed_'][$extension] = 0; + $return[$extension] = $extensions[$extension]; + } + } + + $extensions = $return; + } + + if (!isset($extensions['_allowed_'])) + { + $extensions['_allowed_'] = array(); + } + + return $extensions; + } + + /** + * Obtain active bots + */ + function obtain_bots() + { + if (($bots = $this->get('_bots')) === false) + { + global $db; + + switch ($db->sql_layer) + { + case 'mssql': + case 'mssql_odbc': + $sql = 'SELECT user_id, bot_agent, bot_ip + FROM ' . BOTS_TABLE . ' + WHERE bot_active = 1 + ORDER BY LEN(bot_agent) DESC'; + break; + + case 'firebird': + $sql = 'SELECT user_id, bot_agent, bot_ip + FROM ' . BOTS_TABLE . ' + WHERE bot_active = 1 + ORDER BY CHAR_LENGTH(bot_agent) DESC'; + break; + + // LENGTH supported by MySQL, IBM DB2 and Oracle for sure... + default: + $sql = 'SELECT user_id, bot_agent, bot_ip + FROM ' . BOTS_TABLE . ' + WHERE bot_active = 1 + ORDER BY LENGTH(bot_agent) DESC'; + break; + } + $result = $db->sql_query($sql); + + $bots = array(); + while ($row = $db->sql_fetchrow($result)) + { + $bots[] = $row; + } + $db->sql_freeresult($result); + + $this->put('_bots', $bots); + } + + return $bots; + } + + /** + * Obtain cfg file data + */ + function obtain_cfg_items($theme) + { + global $config, $phpbb_root_path; + + $parsed_items = array( + 'theme' => array(), + 'template' => array(), + 'imageset' => array() + ); + + foreach ($parsed_items as $key => $parsed_array) + { + $parsed_array = $this->get('_cfg_' . $key . '_' . $theme[$key . '_path']); + + if ($parsed_array === false) + { + $parsed_array = array(); + } + + $reparse = false; + $filename = $phpbb_root_path . 'styles/' . $theme[$key . '_path'] . '/' . $key . '/' . $key . '.cfg'; + + if (!file_exists($filename)) + { + continue; + } + + if (!isset($parsed_array['filetime']) || (($config['load_tplcompile'] && @filemtime($filename) > $parsed_array['filetime']))) + { + $reparse = true; + } + + // Re-parse cfg file + if ($reparse) + { + $parsed_array = parse_cfg_file($filename); + $parsed_array['filetime'] = @filemtime($filename); + + $this->put('_cfg_' . $key . '_' . $theme[$key . '_path'], $parsed_array); + } + $parsed_items[$key] = $parsed_array; + } + + return $parsed_items; + } + + /** + * Obtain disallowed usernames + */ + function obtain_disallowed_usernames() + { + if (($usernames = $this->get('_disallowed_usernames')) === false) + { + global $db; + + $sql = 'SELECT disallow_username + FROM ' . DISALLOW_TABLE; + $result = $db->sql_query($sql); + + $usernames = array(); + while ($row = $db->sql_fetchrow($result)) + { + $usernames[] = str_replace('%', '.*?', preg_quote(utf8_clean_string($row['disallow_username']), '#')); + } + $db->sql_freeresult($result); + + $this->put('_disallowed_usernames', $usernames); + } + + return $usernames; + } + + /** + * Obtain hooks... + */ + function obtain_hooks() + { + global $phpbb_root_path, $phpEx; + + if (($hook_files = $this->get('_hooks')) === false) + { + $hook_files = array(); + + // Now search for hooks... + $dh = @opendir($phpbb_root_path . 'includes/hooks/'); + + if ($dh) + { + while (($file = readdir($dh)) !== false) + { + if (strpos($file, 'hook_') === 0 && substr($file, -(strlen($phpEx) + 1)) === '.' . $phpEx) + { + $hook_files[] = substr($file, 0, -(strlen($phpEx) + 1)); + } + } + closedir($dh); + } + + $this->put('_hooks', $hook_files); + } + + return $hook_files; + } + + /** + * Obtain currently listed blocks + */ + function obtain_blocks() + { + if (($blocks = $this->get('_blocks')) === false) + { + global $db; + + // Get blocks + $sql = 'SELECT * + FROM ' . PORTAL_BLOCKS_TABLE . ' + ORDER BY block_order'; + $result = $db->sql_query($sql); + + $blocks = array(); + while ($row = $db->sql_fetchrow($result)) + { + $blocks[$row['block_id']]['id'] = (int )$row['block_id']; + $blocks[$row['block_id']]['title'] = (string) $row['block_title']; + $blocks[$row['block_id']]['type'] = (string) $row['block_type']; + $blocks[$row['block_id']]['position'] = (string) $row['block_position']; + $blocks[$row['block_id']]['group'] = (string) $row['block_groups']; + $blocks[$row['block_id']]['order'] = (int) $row['block_order']; + $blocks[$row['block_id']]['icon'] = (string) $row['block_icon']; + $blocks[$row['block_id']]['text'] = (string) $row['block_text']; + $blocks[$row['block_id']]['text_bitfield'] = (string) $row['block_text_bitfield']; + $blocks[$row['block_id']]['text_options'] = (int) $row['block_text_options']; + $blocks[$row['block_id']]['text_uid'] = (string) $row['block_text_uid']; + } + $db->sql_freeresult($result); + + $this->put('_blocks', $blocks); + } + + return $blocks; + } + + /** + * Obtain currently listed navigation links + */ + function obtain_links() + { + if (($links = $this->get('_links')) === false) + { + global $db; + + // Get navigation links + $sql = 'SELECT * + FROM ' . PORTAL_LINKS_TABLE . ' + ORDER BY link_order'; + $result = $db->sql_query($sql); + + $links = array(); + while ($row = $db->sql_fetchrow($result)) + { + $links[$row['link_id']]['id'] = (int )$row['link_id']; + $links[$row['link_id']]['title'] = (string) $row['link_title']; + $links[$row['link_id']]['url'] = (string) $row['link_url']; + $links[$row['link_id']]['is_cat'] = ($row['link_is_cat']) ? true : false; + } + $db->sql_freeresult($result); + + $this->put('_links', $links); + } + + return $links; + } +} + +?> \ No newline at end of file diff --git a/non-contrib/includes/constants.php b/non-contrib/includes/constants.php new file mode 100644 index 00000000..2574410a --- /dev/null +++ b/non-contrib/includes/constants.php @@ -0,0 +1,275 @@ + \ No newline at end of file diff --git a/non-contrib/store/backup_1252165208_7b6275c2eb44c553.sql.gz b/non-contrib/store/backup_1252165208_7b6275c2eb44c553.sql.gz new file mode 100644 index 0000000000000000000000000000000000000000..a469ab5be48f30d8bbac0edf01e2317d5f129955 GIT binary patch literal 6333 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

G$+l&y*PcJ!=2)F=wc{4yNV{;NF*So9OY)P`n_ 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 literal 0 HcmV?d00001 diff --git a/root/portal.php b/root/portal.php index 8e82a100..c7c2aab7 100644 --- a/root/portal.php +++ b/root/portal.php @@ -167,9 +167,9 @@ $result = $db->sql_query($sql); $db->sql_freeresult($result); // Grab navigation links -//if ($portal_config['num_links'] > 0) -//{ -/* $links = $cache->obtain_links(); +if ($portal_config['num_links'] > 0) +{ + $links = $cache->obtain_links(); if (sizeof($links)) { @@ -183,8 +183,8 @@ $db->sql_freeresult($result); )); } } -//} -*/ +} + // Assign specific vars $template->assign_vars(array( 'WELCOME_USERNAME' => get_username_string('full', $user->data['user_id'], $user->data['username'], $user->data['user_colour']), diff --git a/root/styles/prosilver/template/portal/block/links.html b/root/styles/prosilver/template/portal/block/links.html index 4e75bfa6..eb93d217 100644 --- a/root/styles/prosilver/template/portal/block/links.html +++ b/root/styles/prosilver/template/portal/block/links.html @@ -1,14 +1,12 @@ -{$LR_BLOCK_H_L} {L_LINKS}{$LR_BLOCK_H_R} +

-{$LR_BLOCK_F_L}{$LR_BLOCK_F_R} + + {L_NO_LINKS}
+