aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--phpBB/includes/functions.php63
-rw-r--r--phpBB/includes/functions_posting.php21
2 files changed, 42 insertions, 42 deletions
diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php
index 6a73019dfe..ab88e5b9e3 100644
--- a/phpBB/includes/functions.php
+++ b/phpBB/includes/functions.php
@@ -106,10 +106,37 @@ function generate_forum_nav(&$forum_data)
global $db, $user, $template, $phpEx, $SID;
// Get forum parents
+ $forum_parents = get_forum_parents($forum_data);
+
+ // Build navigation links
+ foreach ($forum_parents as $parent_forum_id => $parent_name)
+ {
+ $template->assign_block_vars('navlinks', array(
+ 'FORUM_NAME' => $parent_name,
+ 'U_VIEW_FORUM' => 'viewforum.' . $phpEx . $SID . '&f=' . $parent_forum_id
+ ));
+ }
+ $template->assign_block_vars('navlinks', array(
+ 'FORUM_NAME' => $forum_data['forum_name'],
+ 'U_VIEW_FORUM' => 'viewforum.' . $phpEx . $SID . '&f=' . $forum_data['forum_id']
+ ));
+
+ $template->assign_vars(array(
+ 'FORUM_ID' => $forum_data['forum_id'],
+ 'FORUM_NAME' => $forum_data['forum_name'],
+ 'FORUM_DESC' => $forum_data['forum_desc']
+ ));
+
+ return;
+}
+
+// Returns forum parents as an array. Get them from forum_data if available, or update the database otherwise
+function get_forum_parents($forum_data)
+{
$forum_parents = array();
if ($forum_data['parent_id'] > 0)
{
- if (empty($forum_data['forum_parents']))
+ if ($forum_data['forum_parents'] == '')
{
$sql = 'SELECT forum_id, forum_name
FROM ' . FORUMS_TABLE . '
@@ -134,26 +161,7 @@ function generate_forum_nav(&$forum_data)
}
}
- // Build navigation links
- foreach ($forum_parents as $parent_forum_id => $parent_name)
- {
- $template->assign_block_vars('navlinks', array(
- 'FORUM_NAME' => $parent_name,
- 'U_VIEW_FORUM' => 'viewforum.' . $phpEx . $SID . '&f=' . $parent_forum_id
- ));
- }
- $template->assign_block_vars('navlinks', array(
- 'FORUM_NAME' => $forum_data['forum_name'],
- 'U_VIEW_FORUM' => 'viewforum.' . $phpEx . $SID . '&f=' . $forum_data['forum_id']
- ));
-
- $template->assign_vars(array(
- 'FORUM_ID' => $forum_data['forum_id'],
- 'FORUM_NAME' => $forum_data['forum_name'],
- 'FORUM_DESC' => $forum_data['forum_desc']
- ));
-
- return;
+ return $forum_parents;
}
// Obtain list of moderators of each forum
@@ -235,11 +243,13 @@ function gen_sort_selects(&$limit_days, &$sort_by_text, &$sort_days, &$sort_key,
return;
}
-function make_jumpbox($action, $forum_id = false, $extra_form_fields = array())
+function make_jumpbox($action, $forum_id = false, $enable_select_all = false)
{
global $auth, $template, $user, $db, $nav_links, $phpEx, $SID;
- $boxstring = '<select name="f" onChange="if(this.options[this.selectedIndex].value != -1){ forms[\'jumpbox\'].submit() }"><option value="-1">' . $user->lang['SELECT_FORUM'] . '</option><option value="-1">-----------------</option>';
+ $boxstring = '<select name="f" onChange="if(this.options[this.selectedIndex].value != -1){ forms[\'jumpbox\'].submit() }">';
+ $boxstring .= ($enable_select_all) ? '<option value="0">' . $user->lang['ALL_FORUMS'] : '<option value="-1">' . $user->lang['SELECT_FORUM'];
+ $boxstring .= '</option><option value="-1">-----------------</option>';
$sql = 'SELECT forum_id, forum_name, forum_postable, left_id, right_id
FROM ' . FORUMS_TABLE . '
@@ -305,12 +315,7 @@ function make_jumpbox($action, $forum_id = false, $extra_form_fields = array())
}
$boxstring .= '</select>';
-
- $extra_form_fields['sid'] = $user->session_id;
- foreach ($extra_form_fields as $key => $val)
- {
- $boxstring .= '<input type="hidden" name="' . $key . '" value="' . htmlspecialchars($val) . '" />';
- }
+ $boxstring .= '<input type="hidden" name="sid" value="' . $user->session_id . '" />';
$template->assign_vars(array(
'S_JUMPBOX_SELECT' => $boxstring,
diff --git a/phpBB/includes/functions_posting.php b/phpBB/includes/functions_posting.php
index 12c85a1e16..168bd440f7 100644
--- a/phpBB/includes/functions_posting.php
+++ b/phpBB/includes/functions_posting.php
@@ -297,6 +297,7 @@ function update_last_post_information($type, $id)
{
case 'forum':
$sql_select_add = ', f.forum_parents';
+// $sql_select_add = ', f.left_id';
$sql_table_add = ', ' . FORUMS_TABLE . ' f';
$sql_where_add = 'AND (t.forum_id = f.forum_id) AND (f.forum_id = ' . $id . ')';
$sql_update_table = FORUMS_TABLE;
@@ -330,16 +331,13 @@ function update_last_post_information($type, $id)
case 'forum':
// Update forums: last post info, topics, posts ... we need to update
// each parent too ...
+
$forum_ids = $id;
- $forum_parents = trim($row['forum_parents']);
+ $forum_parents = get_forum_parents($row);
- if ($forum_parents != '')
+ foreach ($forum_parents as $parent_forum_id => $parent_name)
{
- $forum_parents = unserialize($forum_parents);
- foreach ($forum_parents as $parent_forum_id => $parent_name)
- {
- $forum_ids .= ', ' . $parent_forum_id;
- }
+ $forum_ids .= ', ' . $parent_forum_id;
}
$where_clause = 'forum_id IN (' . $forum_ids . ')';
@@ -815,13 +813,10 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
// Update forums: last post info, topics, posts ... we need to update
// each parent too ...
$forum_ids = $post_data['forum_id'];
- if (!empty($post_data['forum_parents']))
+ $forum_parents = get_forum_parents($post_data);
+ foreach ($forum_parents as $parent_forum_id => $parent_name)
{
- $post_data['forum_parents'] = unserialize($post_data['forum_parents']);
- foreach ($post_data['forum_parents'] as $parent_forum_id => $parent_name)
- {
- $forum_ids .= ', ' . $parent_forum_id;
- }
+ $forum_ids .= ', ' . $parent_forum_id;
}
$forum_topics_sql = ($mode == 'post') ? ', forum_topics = forum_topics + 1' : '';