- remove description from profile fields

- added disclaimer about DEBUG_EXTRA to the ACP (i think this is needed - some idiots might think it is wise to have this enabled on a production board. :) We *may* let it there for the Betas though, but it will be removed during the RC's)
- some bugfixes


git-svn-id: file:///svn/phpbb/trunk@5973 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Meik Sievertsen 2006-05-27 16:24:21 +00:00
parent b51b978854
commit ce4445f74a
22 changed files with 240 additions and 130 deletions

View file

@ -4,6 +4,13 @@
<p>{L_ADMIN_INTRO}</p>
<!-- IF S_DEBUG_EXTRA -->
<div class="errorbox">
<h3>{L_WARNING}</h3>
<p>{L_DEBUG_EXTRA_WARNING}</p>
</div>
<!-- ENDIF -->
<table cellspacing="1">
<caption>{L_FORUM_STATS}</caption>
<col class="col1" /><col class="col2" /><col class="col1" /><col class="col2" />

View file

@ -485,13 +485,15 @@ class acp_icons
while ($row = $db->sql_fetchrow($result))
{
$pak .= "'" . addslashes($row[$fields . '_url']) . "', ";
$pak .= "'" . addslashes($row[$fields . '_height']) . "', ";
$pak .= "'" . addslashes($row[$fields . '_width']) . "', ";
$pak .= "'" . addslashes($row[$fields . '_height']) . "', ";
if ($mode == 'smilies')
{
$pak .= "'" . addslashes($row['emotion']) . "', ";
$pak .= "'" . addslashes($row['code']) . "', ";
}
$pak .= "\n";
}
$db->sql_freeresult($result);

View file

@ -264,6 +264,85 @@ class acp_main
set_config('board_startdate', time() - 1);
add_log('admin', 'LOG_RESET_DATE');
break;
case 'db_track':
$db->sql_query(((SQL_LAYER != 'sqlite') ? 'TRUNCATE TABLE ' : 'DELETE FROM ') . TOPICS_POSTED_TABLE);
// This can get really nasty... therefore we only do the last six months
$get_from_time = time() - (6 * 4 * 7 * 24 * 60 * 60);
// Select forum ids, do not include categories
$sql = 'SELECT forum_id
FROM ' . FORUMS_TABLE . '
WHERE forum_type <> ' . FORUM_CAT;
$result = $db->sql_query($sql);
$forum_ids = array();
while ($row = $db->sql_fetchrow($result))
{
$forum_ids[] = $row['forum_id'];
}
$db->sql_freeresult($result);
// Any global announcements? ;)
$forum_ids[] = 0;
// Now go through the forums and get us some topics...
foreach ($forum_ids as $forum_id)
{
$sql = 'SELECT p.poster_id, p.topic_id
FROM ' . POSTS_TABLE . ' p, ' . TOPICS_TABLE . ' t
WHERE t.forum_id = ' . $forum_id . '
AND t.topic_moved_id = 0
AND t.topic_last_post_time > ' . $get_from_time . '
AND t.topic_id = p.topic_id
AND p.poster_id <> ' . ANONYMOUS . '
GROUP BY p.poster_id, p.topic_id';
$result = $db->sql_query($sql);
$posted = array();
while ($row = $db->sql_fetchrow($result))
{
$posted[$row['poster_id']][] = $row['topic_id'];
}
$db->sql_freeresult($result);
$sql_ary = array();
foreach ($posted as $user_id => $topic_row)
{
foreach ($topic_row as $topic_id)
{
$sql_ary[] = array(
'user_id' => $user_id,
'topic_id' => $topic_id,
'topic_posted' => 1,
);
}
}
unset($posted);
if (sizeof($sql_ary))
{
switch (SQL_LAYER)
{
case 'mysql':
case 'mysql4':
case 'mysqli':
$db->sql_query('INSERT INTO ' . TOPICS_POSTED_TABLE . ' ' . $db->sql_build_array('MULTI_INSERT', $sql_ary));
break;
default:
foreach ($sql_ary as $ary)
{
$db->sql_query('INSERT INTO ' . TOPICS_POSTED_TABLE . ' ' . $db->sql_build_array('INSERT', $ary));
}
break;
}
}
}
add_log('admin', 'LOG_RESYNC_POST_MARKING');
break;
}
// Get forum statistics
@ -328,7 +407,7 @@ class acp_main
}
$dbsize = get_database_size();
$s_action_options = build_select(array('online' => 'RESET_ONLINE', 'date' => 'RESET_DATE', 'stats' => 'RESYNC_STATS', 'user' => 'RESYNC_POSTCOUNTS'));
$s_action_options = build_select(array('online' => 'RESET_ONLINE', 'date' => 'RESET_DATE', 'stats' => 'RESYNC_STATS', 'user' => 'RESYNC_POSTCOUNTS', 'db_track' => 'RESYNC_POST_MARKING'));
$template->assign_vars(array(
'TOTAL_POSTS' => $total_posts,
@ -398,7 +477,13 @@ class acp_main
'S_INACTIVE_OPTIONS' => build_select($option_ary))
);
}
// Display debug_extra notice
if (defined('DEBUG_EXTRA'))
{
$template->assign_var('S_DEBUG_EXTRA', true);
}
$this->tpl_name = 'acp_main';
$this->page_title = 'ACP_MAIN';
}

View file

@ -952,16 +952,16 @@ class acp_profile
// Save the field
$profile_fields = array(
'field_length' => $cp->vars['field_length'],
'field_minlen' => $cp->vars['field_minlen'],
'field_maxlen' => $cp->vars['field_maxlen'],
'field_novalue' => $cp->vars['field_novalue'],
'field_length' => $cp->vars['field_length'],
'field_minlen' => $cp->vars['field_minlen'],
'field_maxlen' => $cp->vars['field_maxlen'],
'field_novalue' => $cp->vars['field_novalue'],
'field_default_value' => $cp->vars['field_default_value'],
'field_validation' => $cp->vars['field_validation'],
'field_required' => $cp->vars['field_required'],
'field_show_on_reg' => $cp->vars['field_show_on_reg'],
'field_hide' => $cp->vars['field_hide'],
'field_no_view' => $cp->vars['field_no_view']
'field_validation' => $cp->vars['field_validation'],
'field_required' => $cp->vars['field_required'],
'field_show_on_reg' => $cp->vars['field_show_on_reg'],
'field_hide' => $cp->vars['field_hide'],
'field_no_view' => $cp->vars['field_no_view']
);
if ($action == 'create')
@ -969,6 +969,7 @@ class acp_profile
$profile_fields += array(
'field_type' => $field_type,
'field_ident' => $field_ident,
'field_name' => $field_ident,
'field_order' => $new_field_order + 1,
'field_active' => 1
);

View file

@ -668,18 +668,23 @@ function markread($mode, $forum_id = false, $topic_id = false, $post_time = 0, $
return;
}
$db->sql_return_on_error(true);
$use_user_id = (!$user_id) ? $user->data['user_id'] : $user_id;
$sql_ary = array(
'user_id' => (!$user_id) ? $user->data['user_id'] : $user_id,
'topic_id' => $topic_id,
'topic_posted' => 1
);
if ($config['load_db_track'] && $use_user_id != ANONYMOUS)
{
$db->sql_return_on_error(true);
$db->sql_query('INSERT INTO ' . TOPICS_POSTED_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary));
$db->sql_return_on_error(false);
$sql_ary = array(
'user_id' => $use_user_id,
'topic_id' => $topic_id,
'topic_posted' => 1
);
$db->sql_query('INSERT INTO ' . TOPICS_POSTED_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary));
$db->sql_return_on_error(false);
}
return;
}
}
@ -2024,47 +2029,25 @@ function get_backtrace()
// Strip the current directory from path
$trace['file'] = str_replace(array($path, '\\'), array('', '/'), $trace['file']);
$trace['file'] = substr($trace['file'], 1);
$args = array();
foreach ($trace['args'] as $argument)
// If include/require/include_once is not called, do not show arguments - they may contain sensible informations
if (!in_array($trace['function'], array('include', 'require', 'include_once')))
{
switch (gettype($argument))
unset($trace['args']);
}
else
{
// Path...
if (!empty($trace['args'][0]))
{
case 'integer':
case 'double':
$args[] = $argument;
break;
case 'string':
$argument = htmlspecialchars(substr($argument, 0, 64)) . ((strlen($argument) > 64) ? '...' : '');
$args[] = "'{$argument}'";
break;
case 'array':
$args[] = 'Array(' . sizeof($argument) . ')';
break;
case 'object':
$args[] = 'Object(' . get_class($argument) . ')';
break;
case 'resource':
$args[] = 'Resource(' . strstr($argument, '#') . ')';
break;
case 'boolean':
$args[] = ($argument) ? 'true' : 'false';
break;
case 'NULL':
$args[] = 'NULL';
break;
default:
$args[] = 'Unknown';
$argument = htmlspecialchars($trace['args'][0]);
$argument = str_replace(array($path, '\\'), array('', '/'), $argument);
$argument = substr($argument, 1);
$args[] = "'{$argument}'";
}
}
$trace['class'] = (!isset($trace['class'])) ? '' : $trace['class'];
$trace['type'] = (!isset($trace['type'])) ? '' : $trace['type'];
@ -2072,15 +2055,6 @@ function get_backtrace()
$output .= '<b>FILE:</b> ' . htmlspecialchars($trace['file']) . '<br />';
$output .= '<b>LINE:</b> ' . $trace['line'] . '<br />';
// Do not display the users password
if (strpos($trace['function'], 'login') !== false)
{
if (isset($args[1]))
{
$args[1] = "'***'";
}
}
$output .= '<b>CALL:</b> ' . htmlspecialchars($trace['class'] . $trace['type'] . $trace['function']) . '(' . ((sizeof($args)) ? implode(', ', $args) : '') . ')<br />';
}
$output .= '</div>';

View file

@ -499,7 +499,7 @@ function delete_topics($where_type, $where_ids, $auto_sync = true)
}
$return = array(
'posts' => delete_posts($where_type, $where_ids, false)
'posts' => delete_posts($where_type, $where_ids, false, false)
);
$sql = 'SELECT topic_id, forum_id
@ -528,6 +528,7 @@ function delete_topics($where_type, $where_ids, $auto_sync = true)
$db->sql_transaction('begin');
$table_ary = array(TOPICS_TRACK_TABLE, TOPICS_POSTED_TABLE, POLL_VOTES_TABLE, POLL_OPTIONS_TABLE, TOPICS_WATCH_TABLE, TOPICS_TABLE);
foreach ($table_ary as $table)
{
$sql = "DELETE FROM $table
@ -554,7 +555,7 @@ function delete_topics($where_type, $where_ids, $auto_sync = true)
/**
* Remove post(s)
*/
function delete_posts($where_type, $where_ids, $auto_sync = true)
function delete_posts($where_type, $where_ids, $auto_sync = true, $posted_sync = true)
{
global $db, $config, $phpbb_root_path, $phpEx;
@ -624,6 +625,12 @@ function delete_posts($where_type, $where_ids, $auto_sync = true)
$db->sql_transaction('commit');
// Resync topics_posted table
if ($posted_sync)
{
update_posted_info($topic_ids);
}
if ($auto_sync)
{
sync('topic_reported', 'topic_id', $topic_ids);
@ -879,11 +886,11 @@ function delete_topic_shadows($max_age, $forum_id = '', $auto_sync = true)
/**
* Update/Sync posted informations for topics
*/
function update_posted_info($topic_ids)
function update_posted_info(&$topic_ids)
{
global $db;
global $db, $config;
if (empty($topic_ids))
if (empty($topic_ids) || !$config['load_db_track'])
{
return;
}
@ -894,29 +901,26 @@ function update_posted_info($topic_ids)
$db->sql_query($sql);
// Now, let us collect the user/topic combos for rebuilding the information
$sql = 'SELECT topic_id, poster_id
$sql = 'SELECT poster_id, topic_id
FROM ' . POSTS_TABLE . '
WHERE topic_id IN (' . implode(', ', $topic_ids) . ')';
WHERE topic_id IN (' . implode(', ', $topic_ids) . ')
AND poster_id <> ' . ANONYMOUS . '
GROUP BY poster_id, topic_id';
$result = $db->sql_query($sql);
$posted = array();
while ($row = $db->sql_fetchrow($result))
{
if (empty($posted[$row['topic_id']]))
{
$posted[$row['topic_id']] = array();
}
// Add as key to make them unique (grouping by) and circumvent empty keys on array_unique
$posted[$row['topic_id']][$row['poster_id']] = 1;
$posted[$row['poster_id']][] = $row['topic_id'];
}
$db->sql_freeresult($result);
// Now add the information...
$sql_ary = array();
foreach ($posted as $topic_id => $poster_row)
foreach ($posted as $user_id => $topic_row)
{
foreach ($poster_row as $user_id => $null)
foreach ($topic_row as $topic_id)
{
$sql_ary[] = array(
'user_id' => $user_id,
@ -925,6 +929,7 @@ function update_posted_info($topic_ids)
);
}
}
unset($posted);
if (sizeof($sql_ary))
{

View file

@ -625,7 +625,7 @@ class queue
$file = '<?php $this->queue_data = ' . $this->format_array($this->data) . '; ?>';
if ($fp = fopen($this->cache_file, 'w'))
if ($fp = @fopen($this->cache_file, 'w'))
{
@flock($fp, LOCK_EX);
fwrite($fp, $file);

View file

@ -1118,7 +1118,7 @@ function delete_post($forum_id, $topic_id, $post_id, &$data)
$db->sql_transaction();
if (!delete_posts('post_id', array($post_id), false))
if (!delete_posts('post_id', array($post_id), false, false))
{
// Try to delete topic, we may had an previous error causing inconsistency
if ($post_mode = 'delete_topic')
@ -1252,6 +1252,27 @@ function delete_post($forum_id, $topic_id, $post_id, &$data)
$db->sql_transaction('commit');
// Adjust posted info for this user by looking for a post by him/her within this topic...
if ($post_mode != 'delete_topic' && $config['load_db_track'] && $user->data['is_registered'])
{
$sql = 'SELECT poster_id
FROM ' . POSTS_TABLE . '
WHERE topic_id = ' . $topic_id . '
AND poster_id = ' . $user->data['user_id'];
$result = $db->sql_query_limit($sql, 1);
$poster_id = (int) $db->sql_fetchfield('poster_id');
$db->sql_freeresult($result);
// The user is not having any more posts within this topic
if (!$poster_id)
{
$sql = 'DELETE FROM ' . TOPICS_POSTED_TABLE . '
WHERE topic_id = ' . $topic_id . '
AND user_id = ' . $user->data['user_id'];
$db->sql_query($sql);
}
}
return $next_post_id;
}

View file

@ -520,15 +520,16 @@ class custom_profile
global $user;
$profile_row['field_ident'] = (isset($profile_row['var_name'])) ? $profile_row['var_name'] : 'pf_' . $profile_row['field_ident'];
$user_ident = str_replace('pf_', '', $profile_row['field_ident']);
// checkbox - only testing for isset
if ($profile_row['field_type'] == FIELD_BOOL && $profile_row['field_length'] == 2)
{
$value = (isset($_REQUEST[$profile_row['field_ident']])) ? true : ((!isset($user->profile_fields[str_replace('pf_', '', $profile_row['field_ident'])]) || $preview) ? $default_value : $user->profile_fields[str_replace('pf_', '', $profile_row['field_ident'])]);
$value = (isset($_REQUEST[$profile_row['field_ident']])) ? true : ((!isset($user->profile_fields[$user_ident]) || $preview) ? $default_value : $user->profile_fields[$user_ident]);
}
else
{
$value = (isset($_REQUEST[$profile_row['field_ident']])) ? request_var($profile_row['field_ident'], $default_value, true) : ((!isset($user->profile_fields[str_replace('pf_', '', $profile_row['field_ident'])]) || $preview) ? $default_value : $user->profile_fields[str_replace('pf_', '', $profile_row['field_ident'])]);
$value = (isset($_REQUEST[$profile_row['field_ident']])) ? request_var($profile_row['field_ident'], $default_value, true) : ((!isset($user->profile_fields[$user_ident]) || $preview) ? $default_value : $user->profile_fields[$user_ident]);
}
switch ($field_validation)
@ -562,6 +563,8 @@ class custom_profile
global $user, $template;
$profile_row['field_ident'] = (isset($profile_row['var_name'])) ? $profile_row['var_name'] : 'pf_' . $profile_row['field_ident'];
$user_ident = str_replace('pf_', '', $profile_row['field_ident']);
$now = getdate();
if (!isset($_REQUEST[$profile_row['field_ident'] . '_day']))
@ -570,14 +573,14 @@ class custom_profile
{
$profile_row['field_default_value'] = sprintf('%2d-%2d-%4d', $now['mday'], $now['mon'], $now['year']);
}
list($day, $month, $year) = explode('-', ((!isset($user->profile_fields[$profile_row['field_ident']]) || $preview) ? $profile_row['field_default_value'] : $user->profile_fields[$profile_row['field_ident']]));
list($day, $month, $year) = explode('-', ((!isset($user->profile_fields[$user_ident]) || $preview) ? $profile_row['field_default_value'] : $user->profile_fields[$user_ident]));
}
else
{
if ($preview && $profile_row['field_default_value'] == 'now')
{
$profile_row['field_default_value'] = sprintf('%2d-%2d-%4d', $now['mday'], $now['mon'], $now['year']);
list($day, $month, $year) = explode('-', ((!isset($user->profile_fields[$profile_row['field_ident']]) || $preview) ? $profile_row['field_default_value'] : $user->profile_fields[$profile_row['field_ident']]));
list($day, $month, $year) = explode('-', ((!isset($user->profile_fields[$user_ident]) || $preview) ? $profile_row['field_default_value'] : $user->profile_fields[$user_ident]));
}
else
{

View file

@ -362,20 +362,23 @@ function change_poster(&$post_info, $userdata)
markread('post', $post_info['forum_id'], $post_info['topic_id'], time(), $userdata['user_id']);
// Remove the dotted topic option if the old user has no more posts within this topic
$sql = 'SELECT topic_id
FROM ' . POSTS_TABLE . '
WHERE topic_id = ' . $post_info['topic_id'] . '
AND poster_id = ' . $post_info['user_id'];
$result = $db->sql_query_limit($sql, 1);
$topic_id = (int) $db->sql_fetchfield('topic_id');
$db->sql_freeresult($result);
if (!$topic_id)
if ($config['load_db_track'] && $post_info['user_id'] != ANONYMOUS)
{
$sql = 'DELETE FROM ' . TOPICS_POSTED_TABLE . '
WHERE user_id = ' . $post_info['user_id'] . '
AND topic_id = ' . $post_info['topic_id'];
$db->sql_query($sql);
$sql = 'SELECT topic_id
FROM ' . POSTS_TABLE . '
WHERE topic_id = ' . $post_info['topic_id'] . '
AND poster_id = ' . $post_info['user_id'];
$result = $db->sql_query_limit($sql, 1);
$topic_id = (int) $db->sql_fetchfield('topic_id');
$db->sql_freeresult($result);
if (!$topic_id)
{
$sql = 'DELETE FROM ' . TOPICS_POSTED_TABLE . '
WHERE user_id = ' . $post_info['user_id'] . '
AND topic_id = ' . $post_info['topic_id'];
$db->sql_query($sql);
}
}
// Do not change the poster_id within the attachments table, since they were still posted by the original user

View file

@ -700,7 +700,7 @@ class session
if (!$config['cookie_domain'] || $config['cookie_domain'] == 'localhost' || $config['cookie_domain'] == '127.0.0.1')
{
setcookie($config['cookie_name'] . '_' . $name, $cookiedata, $cookietime, $config['cookie_path']);
@setcookie($config['cookie_name'] . '_' . $name, $cookiedata, $cookietime, $config['cookie_path']);
}
else
{
@ -710,7 +710,7 @@ class session
$config['cookie_domain'] = '.' . $config['cookie_domain'];
}
setcookie($config['cookie_name'] . '_' . $name, $cookiedata, $cookietime, $config['cookie_path'], $config['cookie_domain'], $config['cookie_secure']);
@setcookie($config['cookie_name'] . '_' . $name, $cookiedata, $cookietime, $config['cookie_path'], $config['cookie_domain'], $config['cookie_secure']);
}
}

View file

@ -26,12 +26,13 @@ class ucp_activate
FROM ' . USERS_TABLE . "
WHERE user_id = $user_id";
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
if (!($row = $db->sql_fetchrow($result)))
if (!$row)
{
trigger_error($user->lang['NO_USER']);
}
$db->sql_freeresult($result);
if ($row['user_type'] <> USER_INACTIVE && !$row['user_newpasswd'])
{
@ -66,7 +67,7 @@ class ucp_activate
// Now we need to demote the user from the inactive group and add him to the registered group
include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);
user_active_flip($row['user_id'], $row['user_type'], '', $row['username']);
user_active_flip($row['user_id'], $row['user_type'], '', $row['username'], true);
}
if ($config['require_activation'] == USER_ACTIVATION_ADMIN && !$update_password)

View file

@ -434,7 +434,7 @@ function get_user_informations($user_id, $user_row)
if (!empty($user_row['user_rank']))
{
$user_row['rank_title'] = $ranks['special'][$user_row['user_rank']]['rank_title'];
$user_row['rank_title'] = (isset($ranks['special'][$user_row['user_rank']])) ? $ranks['special'][$user_row['user_rank']]['rank_title'] : '';
$user_row['rank_image'] = (!empty($ranks['special'][$user_row['user_rank']]['rank_image'])) ? '<img src="' . $config['ranks_path'] . '/' . $ranks['special'][$user_row['user_rank']]['rank_image'] . '" border="0" alt="' . $ranks['special'][$user_row['user_rank']]['rank_title'] . '" title="' . $ranks['special'][$user_row['user_rank']]['rank_title'] . '" /><br />' : '';
}
else

View file

@ -766,7 +766,6 @@ CREATE INDEX phpbb_privmsgs_to_user_id ON phpbb_privmsgs_to(user_id, folder_id);
CREATE TABLE phpbb_profile_fields (
field_id INTEGER NOT NULL,
field_name VARCHAR(255) NOT NULL,
field_desc BLOB SUB_TYPE TEXT,
field_type INTEGER NOT NULL,
field_ident VARCHAR(20) DEFAULT '' NOT NULL,
field_length VARCHAR(20) DEFAULT '' NOT NULL,

View file

@ -1201,7 +1201,6 @@ GO
CREATE TABLE [phpbb_profile_fields] (
[field_id] [int] IDENTITY (1, 1) NOT NULL ,
[field_name] [varchar] (255) NOT NULL ,
[field_desc] [varchar] (8000) ,
[field_type] [int] NOT NULL ,
[field_ident] [varchar] (20) NOT NULL ,
[field_length] [varchar] (20) NOT NULL ,

View file

@ -498,7 +498,6 @@ CREATE TABLE phpbb_privmsgs_to (
CREATE TABLE phpbb_profile_fields (
field_id mediumint(8) UNSIGNED NOT NULL auto_increment,
field_name varchar(255) DEFAULT '' NOT NULL,
field_desc text,
field_type mediumint(8) UNSIGNED NOT NULL,
field_ident varchar(20) DEFAULT '' NOT NULL,
field_length varchar(20) DEFAULT '' NOT NULL,

View file

@ -1030,7 +1030,6 @@ CREATE INDEX phpbb_privmsgs_to_user_id on phpbb_privmsgs_to (user_id, folder_id)
CREATE TABLE phpbb_profile_fields (
field_id number(8) NOT NULL,
field_name varchar2(255) DEFAULT '' NOT NULL,
field_desc clob,
field_type number(8) NOT NULL,
field_ident varchar2(20) DEFAULT '' NOT NULL,
field_length varchar2(20) DEFAULT '' NOT NULL,

View file

@ -783,7 +783,6 @@ CREATE SEQUENCE phpbb_profile_fields_seq;
CREATE TABLE phpbb_profile_fields (
field_id INT4 DEFAULT nextval('phpbb_profile_fields_seq'),
field_name varchar(255) DEFAULT '' NOT NULL,
field_desc varchar(8000),
field_type INT4 NOT NULL,
field_ident varchar(20) DEFAULT '' NOT NULL,
field_length varchar(20) DEFAULT '' NOT NULL,

View file

@ -536,7 +536,6 @@ CREATE INDEX phpbb_privmsgs_to_user_id on phpbb_privmsgs_to (user_id, folder_id)
CREATE TABLE phpbb_profile_fields (
field_id INTEGER PRIMARY KEY NOT NULL,
field_name varchar(255) NOT NULL DEFAULT '',
field_desc text(65535),
field_type mediumint(8) NOT NULL,
field_ident varchar(20) NOT NULL DEFAULT '',
field_length varchar(20) NOT NULL DEFAULT '',

View file

@ -254,6 +254,8 @@ $lang = array_merge($lang, array(
'USER_CONTROL_PANEL' => 'User Control Panel',
'WARNING' => 'Warning',
'DEBUG_EXTRA_WARNING' => 'The DEBUG_EXTRA constant is defined which is only meant for development purposes by the developers.<br />The board is running additional code to display sql reports, which slows down the board in a significant manner. Additionally sql errors are always displayed with a full backtrace to all users instead of displaying it solely to administrators, which is the default setting.<br /><br />With this said, please be aware that you are currently running your installation in <b>Debug Mode</b> and should you take this board live, please remove the constant from the config file.',
));
// PHP info
@ -306,10 +308,11 @@ $lang = array_merge($lang, array(
'POSTS_PER_DAY' => 'Posts per day',
'RESET_DATE' => 'Reset Date',
'RESET_ONLINE' => 'Reset Online',
'RESYNC_POSTCOUNTS' => 'Resync Postcounts',
'RESYNC_STATS' => 'Resync Stats',
'RESET_DATE' => 'Reset Date',
'RESET_ONLINE' => 'Reset Online',
'RESYNC_POSTCOUNTS' => 'Resync Postcounts',
'RESYNC_POST_MARKING' => 'Resync dotted topics',
'RESYNC_STATS' => 'Resync Stats',
'STATISTIC' => 'Statistic',
@ -522,10 +525,11 @@ $lang = array_merge($lang, array(
'LOG_REASON_REMOVED' => '<b>Removed report/denial reason</b><br />&#187; %s',
'LOG_REASON_UPDATED' => '<b>Updated report/denial reason</b><br />&#187; %s',
'LOG_RESET_DATE' => '<b>Board start date reset</b>',
'LOG_RESET_ONLINE' => '<b>Most users online reset</b>',
'LOG_RESYNC_POSTCOUNTS' => '<b>User postcounts synced</b>',
'LOG_RESYNC_STATS' => '<b>Post, topic and user stats reset</b>',
'LOG_RESET_DATE' => '<b>Board start date reset</b>',
'LOG_RESET_ONLINE' => '<b>Most users online reset</b>',
'LOG_RESYNC_POSTCOUNTS' => '<b>User postcounts synced</b>',
'LOG_RESYNC_POST_MARKING' => '<b>Dotted topics synced</b>',
'LOG_RESYNC_STATS' => '<b>Post, topic and user stats reset</b>',
'LOG_STYLE_ADD' => '<b>Added new style</b><br />&#187; %s',
'LOG_STYLE_DELETE' => '<b>Deleted style</b><br />&#187; %s',

View file

@ -8,7 +8,7 @@
</tr>
<!-- IF S_HAS_POLL_OPTIONS -->
<tr>
<td class="row2" colspan="2"><br clear="all" />
<td class="row2" colspan="2" align="center"><br clear="all" />
<table cellspacing="0" cellpadding="4" border="0" align="center">
<tr>
<td align="center"><span class="gen"><b>{POLL_QUESTION}</b></span><br /><span class="gensmall">{L_POLL_LENGTH}</span></td>

View file

@ -685,21 +685,31 @@ if (!empty($topic_data['poll_start']))
{
include_once($phpbb_root_path . 'includes/bbcode.'.$phpEx);
$poll_bbcode = new bbcode();
}
else
{
$poll_bbcode = false;
}
for ($i = 0, $size = sizeof($poll_info); $i < $size; $i++)
for ($i = 0, $size = sizeof($poll_info); $i < $size; $i++)
{
if ($poll_bbcode !== false)
{
$poll_bbcode->bbcode_second_pass($poll_info[$i]['poll_option_text'], $poll_info[$i]['bbcode_uid'], $poll_option['bbcode_bitfield']);
$poll_info[$i]['poll_option_text'] = smiley_text($poll_info[$i]['poll_option_text']);
$poll_info[$i]['poll_option_text'] = str_replace("\n", '<br />', censor_text($poll_info[$i]['poll_option_text']));
}
$poll_bbcode->bbcode_second_pass($topic_data['poll_title'], $poll_info[0]['bbcode_uid'], $poll_info[0]['bbcode_bitfield']);
$poll_title = smiley_text($topic_data['poll_title']);
$poll_title = str_replace("\n", '<br />', censor_text($topic_data['poll_title']));
unset($poll_bbcode);
$poll_info[$i]['poll_option_text'] = smiley_text($poll_info[$i]['poll_option_text']);
$poll_info[$i]['poll_option_text'] = str_replace("\n", '<br />', censor_text($poll_info[$i]['poll_option_text']));
}
if ($poll_bbcode !== false)
{
$poll_bbcode->bbcode_second_pass($topic_data['poll_title'], $poll_info[0]['bbcode_uid'], $poll_info[0]['bbcode_bitfield']);
}
$topic_data['poll_title'] = smiley_text($topic_data['poll_title']);
$topic_data['poll_title'] = str_replace("\n", '<br />', censor_text($topic_data['poll_title']));
unset($poll_bbcode);
foreach ($poll_info as $poll_option)
{
$option_pct = ($poll_total > 0) ? $poll_option['poll_option_total'] / $poll_total : 0;