Merge branch 'develop' of github.com:phpbb/phpbb3 into ticket/11628

# By Bruno Ais (42) and others
# Via Joas Schilling (39) and others
* 'develop' of github.com:phpbb/phpbb3: (157 commits)
  [ticket/11803] Revert POLL_MAX_OPTIONS min value to 0
  [ticket/11799] Send anti abuse headers in "new password" emails.
  [ticket/11792] Add functional test for var lang_set_ext of core.user_setup
  [ticket/11804] Remove </li> from overall_header which was not open
  [ticket/11802] replace $browser with $user->browser
  [ticket/11801] removed some whitespace and added missing semi colon's in css
  [ticket/11792] Add performance remark to core.user_setup event PHPDoc
  [ticket/11792] Add variable 'lang_set_ext' to event core.user_setup
  [ticket/11789] Remove inline color in memberlist_view
  [ticket/11800] Fix scripts variable in subsilver simple_footer
  [ticket/11800] Fix JavaScript in simple_footer.html
  [ticket/11800] Remove forum_fn from memberlist_search.html
  [ticket/11796] Replace pagination with pagination.html
  [ticket/11794] Add missing array element commas to docs/coding-guidelines.html
  [ticket/11775] Fix doc blocks syntax
  [ticket/11775] Remove spaces at line ends
  [ticket/11789] Remove colors from HTML code
  [ticket/11784] Remove naming redundancy for event listeners
  [ticket/11775] Split test into multiple steps
  [ticket/11777] Fix new test for loop variables in extension template listeners
  ...

Conflicts:
	phpBB/install/index.php
	phpBB/install/install_update.php
This commit is contained in:
Nathan Guse 2013-08-28 13:30:48 -05:00
commit 68ed2b6035
152 changed files with 1038 additions and 648 deletions

View file

@ -121,6 +121,7 @@ if (sizeof($package->old_packages))
$package->run_command('cp -Rp ' . $package->get('dest_dir') . '/docs ' . $dest_filename_dir); $package->run_command('cp -Rp ' . $package->get('dest_dir') . '/docs ' . $dest_filename_dir);
$package->run_command('cp -Rp ' . $package->get('dest_dir') . '/install ' . $dest_filename_dir); $package->run_command('cp -Rp ' . $package->get('dest_dir') . '/install ' . $dest_filename_dir);
$package->run_command('cp -Rp ' . $package->get('dest_dir') . '/vendor ' . $dest_filename_dir);
$package->run_command('mkdir ' . $dest_filename_dir . '/install/update'); $package->run_command('mkdir ' . $dest_filename_dir . '/install/update');
$package->run_command('mkdir ' . $dest_filename_dir . '/install/update/old'); $package->run_command('mkdir ' . $dest_filename_dir . '/install/update/old');
@ -256,6 +257,7 @@ $update_info = array(
// Copy the install files to their respective locations // Copy the install files to their respective locations
$package->run_command('cp -Rp ' . $package->get('dest_dir') . '/docs ' . $package->get('patch_directory')); $package->run_command('cp -Rp ' . $package->get('dest_dir') . '/docs ' . $package->get('patch_directory'));
$package->run_command('cp -Rp ' . $package->get('dest_dir') . '/install ' . $package->get('patch_directory')); $package->run_command('cp -Rp ' . $package->get('dest_dir') . '/install ' . $package->get('patch_directory'));
$package->run_command('cp -Rp ' . $package->get('dest_dir') . '/vendor ' . $package->get('patch_directory'));
// Remove some files // Remove some files
chdir($package->get('patch_directory') . '/install'); chdir($package->get('patch_directory') . '/install');

View file

@ -109,27 +109,14 @@
<!-- ENDIF --> <!-- ENDIF -->
</fieldset> </fieldset>
<!-- IF not S_UP_TO_DATE --> <form id="install_update" method="post" action="{U_ACTION}">
<form id="install_dbupdate" method="post" action="{U_DB_UPDATE_ACTION}"> <fieldset class="submit-buttons">
<p>{L_CHECK_FILES_EXPLAIN}</p>
<input class="button1" type="submit" name="submit" value="{L_CHECK_FILES}" />
</fieldset>
<fieldset class="submit-buttons"> </form>
<p>{L_UPDATE_DATABASE_EXPLAIN}</p>
<input class="button1" type="submit" name="db_update" value="{L_UPDATE_DATABASE}" />
</fieldset>
</form>
<!-- ELSE -->
<form id="install_update" method="post" action="{U_ACTION}">
<fieldset class="submit-buttons">
<p>{L_CHECK_FILES_UP_TO_DATE}</p>
<input class="button1" type="submit" name="submit" value="{L_CHECK_FILES}" />
</fieldset>
</form>
<!-- ENDIF -->
<!-- ELSEIF S_DB_UPDATE --> <!-- ELSEIF S_DB_UPDATE -->
@ -155,18 +142,10 @@
<!-- ELSE --> <!-- ELSE -->
<h1>{L_UPDATE_DB_SUCCESS}</h1> <div class="successbox">
<h3>{L_UPDATE_SUCCESS}</h3>
<br /><br /> <p>{L_EVERYTHING_UP_TO_DATE}</p>
</div>
<form id="install_update" method="post" action="{U_ACTION}">
<fieldset class="submit-buttons">
<p>{L_CHECK_FILES_EXPLAIN}</p>
<input class="button1" type="submit" name="submit" value="{L_CHECK_FILES}" />
</fieldset>
</form>
<!-- ENDIF --> <!-- ENDIF -->
@ -174,10 +153,18 @@
<!-- IF S_ALL_UP_TO_DATE --> <!-- IF S_ALL_UP_TO_DATE -->
<div class="successbox"> <h1>{L_UPDATE_FILE_SUCCESS}</h1>
<h3>{L_UPDATE_SUCCESS}</h3> <p>{L_ALL_FILES_UP_TO_DATE}</p>
<p>{L_ALL_FILES_UP_TO_DATE}</p>
</div> <p>{L_UPDATE_DATABASE_EXPLAIN}</p>
<form id="install_dbupdate" method="post" action="{U_DB_UPDATE_ACTION}">
<fieldset class="submit-buttons">
<input class="button1" type="submit" name="db_update" value="{L_UPDATE_DATABASE}" />
</fieldset>
</form>
<!-- ELSE --> <!-- ELSE -->
<h1>{L_COLLECTED_INFORMATION}</h1> <h1>{L_COLLECTED_INFORMATION}</h1>

0
phpBB/develop/blank.gif Normal file
View file

0
phpBB/develop/blank.jpg Normal file
View file

View file

@ -149,7 +149,8 @@ foreach ($schema_data as $table_name => $table_data)
list($orig_column_type, $column_length) = explode(':', $column_data[0]); list($orig_column_type, $column_length) = explode(':', $column_data[0]);
$column_type = sprintf($dbms_type_map['mysql_41'][$orig_column_type . ':'], $column_length); $column_type = sprintf($dbms_type_map['mysql_41'][$orig_column_type . ':'], $column_length);
if (isset($dbms_type_map['mysql_40'][$orig_column_type . ':']['limit'][0])) if (isset($dbms_type_map['mysql_40'][$orig_column_type . ':']['limit']) &&
isset($dbms_type_map['mysql_40'][$orig_column_type . ':']['limit'][0]))
{ {
switch ($dbms_type_map['mysql_40'][$orig_column_type . ':']['limit'][0]) switch ($dbms_type_map['mysql_40'][$orig_column_type . ':']['limit'][0])
{ {
@ -698,6 +699,24 @@ function get_schema_struct()
), ),
); );
$schema_data['phpbb_login_attempts'] = array(
'COLUMNS' => array(
'attempt_ip' => array('VCHAR:40', ''),
'attempt_browser' => array('VCHAR:150', ''),
'attempt_forwarded_for' => array('VCHAR:255', ''),
'attempt_time' => array('TIMESTAMP', 0),
'user_id' => array('UINT', 0),
'username' => array('VCHAR_UNI:255', 0),
'username_clean' => array('VCHAR_CI', 0),
),
'KEYS' => array(
'att_ip' => array('INDEX', array('attempt_ip', 'attempt_time')),
'att_for' => array('INDEX', array('attempt_forwarded_for', 'attempt_time')),
'att_time' => array('INDEX', array('attempt_time')),
'user_id' => array('INDEX', 'user_id'),
),
);
$schema_data['phpbb_moderator_cache'] = array( $schema_data['phpbb_moderator_cache'] = array(
'COLUMNS' => array( 'COLUMNS' => array(
'forum_id' => array('UINT', 0), 'forum_id' => array('UINT', 0),
@ -901,6 +920,7 @@ function get_schema_struct()
'field_default_value' => array('VCHAR_UNI', ''), 'field_default_value' => array('VCHAR_UNI', ''),
'field_validation' => array('VCHAR_UNI:20', ''), 'field_validation' => array('VCHAR_UNI:20', ''),
'field_required' => array('BOOL', 0), 'field_required' => array('BOOL', 0),
'field_show_novalue' => array('BOOL', 0),
'field_show_on_reg' => array('BOOL', 0), 'field_show_on_reg' => array('BOOL', 0),
'field_show_on_vt' => array('BOOL', 0), 'field_show_on_vt' => array('BOOL', 0),
'field_show_profile' => array('BOOL', 0), 'field_show_profile' => array('BOOL', 0),

View file

@ -183,6 +183,8 @@
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11662">PHPBB3-11662</a>] - &quot;occured&quot; should be &quot;occurred&quot;</li> <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11662">PHPBB3-11662</a>] - &quot;occured&quot; should be &quot;occurred&quot;</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11670">PHPBB3-11670</a>] - Replace trademark ™ with ® on &quot;Welcome to phpBB&quot; install page</li> <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11670">PHPBB3-11670</a>] - Replace trademark ™ with ® on &quot;Welcome to phpBB&quot; install page</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11674">PHPBB3-11674</a>] - Do not include vendor folder if there are no dependencies.</li> <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11674">PHPBB3-11674</a>] - Do not include vendor folder if there are no dependencies.</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11524">PHPBB3-11524</a>] - MySQL Upgrader throws warnings on PHP 5.4</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11720">PHPBB3-11720</a>] - Reporting posts leads to white page error</li>
</ul> </ul>
<h4>Improvement</h4> <h4>Improvement</h4>
<ul> <ul>
@ -206,6 +208,7 @@
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11294">PHPBB3-11294</a>] - Update extension list in running tests doc</li> <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11294">PHPBB3-11294</a>] - Update extension list in running tests doc</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11368">PHPBB3-11368</a>] - Latest pm reports row count</li> <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11368">PHPBB3-11368</a>] - Latest pm reports row count</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11583">PHPBB3-11583</a>] - InnoDB supports FULLTEXT index since MySQL 5.6.4.</li> <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11583">PHPBB3-11583</a>] - InnoDB supports FULLTEXT index since MySQL 5.6.4.</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11740">PHPBB3-11740</a>] - Update link in FAQ to Ideas Centre</li>
</ul> </ul>
<h4>Sub-task</h4> <h4>Sub-task</h4>
<ul> <ul>
@ -231,6 +234,8 @@
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11529">PHPBB3-11529</a>] - Rename RUNNING_TESTS file to .md file to render it on GitHub</li> <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11529">PHPBB3-11529</a>] - Rename RUNNING_TESTS file to .md file to render it on GitHub</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11576">PHPBB3-11576</a>] - Make phpBB Test Suite MySQL behave at least as strict as phpBB MySQL driver</li> <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11576">PHPBB3-11576</a>] - Make phpBB Test Suite MySQL behave at least as strict as phpBB MySQL driver</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11671">PHPBB3-11671</a>] - Add phing/phing to composer.json</li> <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11671">PHPBB3-11671</a>] - Add phing/phing to composer.json</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11752">PHPBB3-11752</a>] - Update phpBB.com URLs to https in email templates</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11753">PHPBB3-11753</a>] - Upgrade mysql_upgrader.php schema data.</li>
</ul> </ul>
<a name="v3010"></a><h3>1.ii. Changes since 3.0.10</h3> <a name="v3010"></a><h3>1.ii. Changes since 3.0.10</h3>

View file

@ -832,7 +832,7 @@ $sql = 'SELECT *
$sql_ary = array( $sql_ary = array(
'somedata' =&gt; $my_string, 'somedata' =&gt; $my_string,
'otherdata' =&gt; $an_int, 'otherdata' =&gt; $an_int,
'moredata' =&gt; $another_int 'moredata' =&gt; $another_int,
); );
$db-&gt;sql_query('INSERT INTO ' . SOME_TABLE . ' ' . $db-&gt;sql_build_array('INSERT', $sql_ary)); $db-&gt;sql_query('INSERT INTO ' . SOME_TABLE . ' ' . $db-&gt;sql_build_array('INSERT', $sql_ary));
@ -844,7 +844,7 @@ $db-&gt;sql_query('INSERT INTO ' . SOME_TABLE . ' ' . $db-&gt;sql_build_array('I
$sql_ary = array( $sql_ary = array(
'somedata' =&gt; $my_string, 'somedata' =&gt; $my_string,
'otherdata' =&gt; $an_int, 'otherdata' =&gt; $an_int,
'moredata' =&gt; $another_int 'moredata' =&gt; $another_int,
); );
$sql = 'UPDATE ' . SOME_TABLE . ' $sql = 'UPDATE ' . SOME_TABLE . '
@ -937,20 +937,20 @@ $sql_array = array(
'FROM' =&gt; array( 'FROM' =&gt; array(
FORUMS_WATCH_TABLE =&gt; 'fw', FORUMS_WATCH_TABLE =&gt; 'fw',
FORUMS_TABLE =&gt; 'f' FORUMS_TABLE =&gt; 'f',
), ),
'LEFT_JOIN' =&gt; array( 'LEFT_JOIN' =&gt; array(
array( array(
'FROM' =&gt; array(FORUMS_TRACK_TABLE =&gt; 'ft'), 'FROM' =&gt; array(FORUMS_TRACK_TABLE =&gt; 'ft'),
'ON' =&gt; 'ft.user_id = ' . $user-&gt;data['user_id'] . ' AND ft.forum_id = f.forum_id' 'ON' =&gt; 'ft.user_id = ' . $user-&gt;data['user_id'] . ' AND ft.forum_id = f.forum_id',
) ),
), ),
'WHERE' =&gt; 'fw.user_id = ' . $user-&gt;data['user_id'] . ' 'WHERE' =&gt; 'fw.user_id = ' . $user-&gt;data['user_id'] . '
AND f.forum_id = fw.forum_id', AND f.forum_id = fw.forum_id',
'ORDER_BY' =&gt; 'left_id' 'ORDER_BY' =&gt; 'left_id',
); );
$sql = $db-&gt;sql_build_query('SELECT', $sql_array); $sql = $db-&gt;sql_build_query('SELECT', $sql_array);
@ -964,13 +964,13 @@ $sql_array = array(
'FROM' =&gt; array( 'FROM' =&gt; array(
FORUMS_WATCH_TABLE =&gt; 'fw', FORUMS_WATCH_TABLE =&gt; 'fw',
FORUMS_TABLE =&gt; 'f' FORUMS_TABLE =&gt; 'f',
), ),
'WHERE' =&gt; 'fw.user_id = ' . $user-&gt;data['user_id'] . ' 'WHERE' =&gt; 'fw.user_id = ' . $user-&gt;data['user_id'] . '
AND f.forum_id = fw.forum_id', AND f.forum_id = fw.forum_id',
'ORDER_BY' =&gt; 'left_id' 'ORDER_BY' =&gt; 'left_id',
); );
if ($config['load_db_lastread']) if ($config['load_db_lastread'])
@ -978,8 +978,8 @@ if ($config['load_db_lastread'])
$sql_array['LEFT_JOIN'] = array( $sql_array['LEFT_JOIN'] = array(
array( array(
'FROM' =&gt; array(FORUMS_TRACK_TABLE =&gt; 'ft'), 'FROM' =&gt; array(FORUMS_TRACK_TABLE =&gt; 'ft'),
'ON' =&gt; 'ft.user_id = ' . $user-&gt;data['user_id'] . ' AND ft.forum_id = f.forum_id' 'ON' =&gt; 'ft.user_id = ' . $user-&gt;data['user_id'] . ' AND ft.forum_id = f.forum_id',
) ),
); );
$sql_array['SELECT'] .= ', ft.mark_time '; $sql_array['SELECT'] .= ', ft.mark_time ';

View file

@ -52,6 +52,36 @@ index_body_stat_blocks_before
+ styles/subsilver2/template/index_body.html + styles/subsilver2/template/index_body.html
* Purpose: Add new statistic blocks above the Who Is Online and Board Statistics blocks * Purpose: Add new statistic blocks above the Who Is Online and Board Statistics blocks
memberlist_body_username_append
===
* Locations:
+ styles/prosilver/template/memberlist_body.html
+ styles/subsilver2/template/memberlist_body.html
* Purpose: Add information after every username in the memberlist. Works in
all display modes (leader, group and normal memberlist).
memberlist_body_username_prepend
===
* Locations:
+ styles/prosilver/template/memberlist_body.html
+ styles/subsilver2/template/memberlist_body.html
* Purpose: Add information before every username in the memberlist. Works in
all display modes (leader, group and normal memberlist).
memberlist_view_user_statistics_after
===
* Locations:
+ styles/prosilver/template/memberlist_view.html
+ styles/subsilver2/template/memberlist_view.html
* Purpose: Add entries after the user statistics part of any user profile
memberlist_view_user_statistics_before
===
* Locations:
+ styles/prosilver/template/memberlist_view.html
+ styles/subsilver2/template/memberlist_view.html
* Purpose: Add entries before the user statistics part of any user profile
overall_footer_after overall_footer_after
=== ===
* Locations: * Locations:
@ -114,6 +144,36 @@ simple_footer_after
* Location: styles/prosilver/template/simple_footer.html * Location: styles/prosilver/template/simple_footer.html
* Purpose: Add content directly prior to the `</body>` tag of the simple footer * Purpose: Add content directly prior to the `</body>` tag of the simple footer
topiclist_row_prepend
===
* Locations:
+ styles/prosilver/template/search_results.html
+ styles/prosilver/template/viewforum_body.html
+ styles/subsilver2/template/search_results.html
+ styles/subsilver2/template/viewforum_body.html
* Purpose: Add content into topic rows (inside the elements containing topic titles)
topiclist_row_append
===
* Locations:
+ styles/prosilver/template/search_results.html
+ styles/prosilver/template/viewforum_body.html
+ styles/subsilver2/template/search_results.html
+ styles/subsilver2/template/viewforum_body.html
* Purpose: Add content into topic rows (inside the elements containing topic titles)
ucp_pm_viewmessage_custom_fields_after
===
* Location: styles/prosilver/template/ucp_pm_viewmessage.html
* Purpose: Add data after the custom fields on the user profile when viewing
a private message
ucp_pm_viewmessage_custom_fields_before
===
* Location: styles/prosilver/template/ucp_pm_viewmessage.html
* Purpose: Add data before the custom fields on the user profile when viewing
a private message
ucp_pm_viewmessage_print_head_append ucp_pm_viewmessage_print_head_append
=== ===
* Location: styles/prosilver/template/ucp_pm_viewmessage_print.html * Location: styles/prosilver/template/ucp_pm_viewmessage_print.html
@ -133,6 +193,38 @@ viewtopic_body_footer_before
and quick reply, directly before the jumpbox in Prosilver, breadcrumbs in and quick reply, directly before the jumpbox in Prosilver, breadcrumbs in
Subsilver2. Subsilver2.
viewtopic_body_post_buttons_after
===
* Locations:
+ styles/prosilver/template/viewtopic_body.html
+ styles/subsilver2/template/viewtopic_body.html
* Purpose: Add post button to posts (next to edit, quote etc), at the end of
the list.
viewtopic_body_post_buttons_before
===
* Locations:
+ styles/prosilver/template/viewtopic_body.html
+ styles/subsilver2/template/viewtopic_body.html
* Purpose: Add post button to posts (next to edit, quote etc), at the start of
the list.
viewtopic_body_postrow_custom_fields_after
===
* Locations:
+ styles/prosilver/template/viewtopic_body.html
+ styles/subsilver2/template/viewtopic_body.html
* Purpose: Add data after the custom fields on the user profile when viewing
a post
viewtopic_body_postrow_custom_fields_before
===
* Locations:
+ styles/prosilver/template/viewtopic_body.html
+ styles/subsilver2/template/viewtopic_body.html
* Purpose: Add data before the custom fields on the user profile when viewing
a post
viewtopic_topic_title_prepend viewtopic_topic_title_prepend
=== ===
* Locations: * Locations:

View file

@ -5390,8 +5390,6 @@ function page_header($page_title = '', $display_online_list = true, $item_id = 0
'T_UPLOAD' => $config['upload_path'], 'T_UPLOAD' => $config['upload_path'],
'SITE_LOGO_IMG' => $user->img('site_logo'), 'SITE_LOGO_IMG' => $user->img('site_logo'),
'A_COOKIE_SETTINGS' => addslashes('; path=' . $config['cookie_path'] . ((!$config['cookie_domain'] || $config['cookie_domain'] == 'localhost' || $config['cookie_domain'] == '127.0.0.1') ? '' : '; domain=' . $config['cookie_domain']) . ((!$config['cookie_secure']) ? '' : '; secure')),
)); ));
// application/xhtml+xml not used because of IE // application/xhtml+xml not used because of IE

View file

@ -118,7 +118,10 @@ function phpbb_create_container(array $extensions, $phpbb_root_path, $php_ext)
*/ */
function phpbb_create_install_container($phpbb_root_path, $php_ext) function phpbb_create_install_container($phpbb_root_path, $php_ext)
{ {
$core = new phpbb_di_extension_core($phpbb_root_path); $other_config_path = $phpbb_root_path . 'install/update/new/config/';
$config_path = file_exists($other_config_path . 'services.yml') ? $other_config_path : $phpbb_root_path . 'config/';
$core = new phpbb_di_extension_core($config_path);
$container = phpbb_create_container(array($core), $phpbb_root_path, $php_ext); $container = phpbb_create_container(array($core), $phpbb_root_path, $php_ext);
$container->setParameter('core.root_path', $phpbb_root_path); $container->setParameter('core.root_path', $phpbb_root_path);
@ -135,6 +138,32 @@ function phpbb_create_install_container($phpbb_root_path, $php_ext)
return $container; return $container;
} }
/**
* Create updater container
*
* @param string $phpbb_root_path Root path
* @param string $php_ext PHP Extension
* @param array $config_path Path to config directory
* @return ContainerBuilder object (compiled)
*/
function phpbb_create_update_container($phpbb_root_path, $php_ext, $config_path)
{
$config_file = $phpbb_root_path . 'config.' . $php_ext;
return phpbb_create_compiled_container(
$config_file,
array(
new phpbb_di_extension_config($config_file),
new phpbb_di_extension_core($config_path),
),
array(
new phpbb_di_pass_collection_pass(),
new phpbb_di_pass_kernel_pass(),
),
$phpbb_root_path,
$php_ext
);
}
/** /**
* Create a compiled ContainerBuilder object * Create a compiled ContainerBuilder object
* *
@ -146,11 +175,6 @@ function phpbb_create_install_container($phpbb_root_path, $php_ext)
*/ */
function phpbb_create_compiled_container($config_file, array $extensions, array $passes, $phpbb_root_path, $php_ext) function phpbb_create_compiled_container($config_file, array $extensions, array $passes, $phpbb_root_path, $php_ext)
{ {
$installed_exts = phpbb_bootstrap_enabled_exts($config_file, $phpbb_root_path);
// Now pass the enabled extension paths into the ext compiler extension
$extensions[] = new phpbb_di_extension_ext($installed_exts);
// Create the final container to be compiled and cached // Create the final container to be compiled and cached
$container = phpbb_create_container($extensions, $phpbb_root_path, $php_ext); $container = phpbb_create_container($extensions, $phpbb_root_path, $php_ext);
@ -231,11 +255,14 @@ function phpbb_create_dumped_container_unless_debug($config_file, array $extensi
function phpbb_create_default_container($phpbb_root_path, $php_ext) function phpbb_create_default_container($phpbb_root_path, $php_ext)
{ {
$config_file = $phpbb_root_path . 'config.' . $php_ext; $config_file = $phpbb_root_path . 'config.' . $php_ext;
$installed_exts = phpbb_bootstrap_enabled_exts($config_file, $phpbb_root_path);
return phpbb_create_dumped_container_unless_debug( return phpbb_create_dumped_container_unless_debug(
$config_file, $config_file,
array( array(
new phpbb_di_extension_config($config_file), new phpbb_di_extension_config($config_file),
new phpbb_di_extension_core($phpbb_root_path), new phpbb_di_extension_core($phpbb_root_path . 'config'),
new phpbb_di_extension_ext($installed_exts),
), ),
array( array(
new phpbb_di_pass_collection_pass(), new phpbb_di_pass_collection_pass(),

View file

@ -413,7 +413,7 @@ function generate_text_for_display($text, $uid, $bitfield, $flags, $censor_text
static $bbcode; static $bbcode;
global $phpbb_dispatcher; global $phpbb_dispatcher;
if (!$text) if ($text === '')
{ {
return ''; return '';
} }
@ -505,7 +505,7 @@ function generate_text_for_storage(&$text, &$uid, &$bitfield, &$flags, $allow_bb
$uid = $bitfield = ''; $uid = $bitfield = '';
$flags = (($allow_bbcode) ? OPTION_FLAG_BBCODE : 0) + (($allow_smilies) ? OPTION_FLAG_SMILIES : 0) + (($allow_urls) ? OPTION_FLAG_LINKS : 0); $flags = (($allow_bbcode) ? OPTION_FLAG_BBCODE : 0) + (($allow_smilies) ? OPTION_FLAG_SMILIES : 0) + (($allow_urls) ? OPTION_FLAG_LINKS : 0);
if (!$text) if ($text === '')
{ {
return; return;
} }

View file

@ -1095,25 +1095,20 @@ function topic_review($topic_id, $forum_id, $mode = 'topic_review', $cur_post_id
$poster_id = $row['user_id']; $poster_id = $row['user_id'];
$post_subject = $row['post_subject']; $post_subject = $row['post_subject'];
$message = censor_text($row['post_text']);
$decoded_message = false; $decoded_message = false;
if ($show_quote_button && $auth->acl_get('f_reply', $forum_id)) if ($show_quote_button && $auth->acl_get('f_reply', $forum_id))
{ {
$decoded_message = $message; $decoded_message = censor_text($row['post_text']);
decode_message($decoded_message, $row['bbcode_uid']); decode_message($decoded_message, $row['bbcode_uid']);
$decoded_message = bbcode_nl2br($decoded_message); $decoded_message = bbcode_nl2br($decoded_message);
} }
if ($row['bbcode_bitfield']) $parse_flags = ($row['bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0);
{ $parse_flags |= ($row['enable_smilies'] ? OPTION_FLAG_SMILIES : 0);
$bbcode->bbcode_second_pass($message, $row['bbcode_uid'], $row['bbcode_bitfield']); $message = generate_text_for_display($row['post_text'], $row['bbcode_uid'], $row['bbcode_bitfield'], $parse_flags, true);
}
$message = bbcode_nl2br($message);
$message = smiley_text($message, !$row['enable_smilies']);
if (!empty($attachments[$row['post_id']])) if (!empty($attachments[$row['post_id']]))
{ {

View file

@ -2018,14 +2018,11 @@ function message_history($msg_id, $user_id, $message_row, $folder, $in_post_mode
$decoded_message = bbcode_nl2br($decoded_message); $decoded_message = bbcode_nl2br($decoded_message);
} }
if ($row['bbcode_bitfield']) $parse_flags = ($row['bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0);
{ $parse_flags |= ($row['enable_smilies'] ? OPTION_FLAG_SMILIES : 0);
$bbcode->bbcode_second_pass($message, $row['bbcode_uid'], $row['bbcode_bitfield']);
} $message = generate_text_for_display($message, $row['bbcode_uid'], $row['bbcode_bitfield'], $parse_flags, false);
$message = bbcode_nl2br($message);
$message = smiley_text($message, !$row['enable_smilies']);
$subject = censor_text($subject); $subject = censor_text($subject);

View file

@ -115,17 +115,9 @@ class mcp_pm_reports
} }
// Process message, leave it uncensored // Process message, leave it uncensored
$message = $pm_info['message_text']; $parse_flags = ($pm_info['bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0) | OPTION_FLAG_SMILIES;
$message = generate_text_for_display($pm_info['message_text'], $pm_info['bbcode_uid'], $pm_info['bbcode_bitfield'], $parse_flags, false);
if ($pm_info['bbcode_bitfield'])
{
include_once($phpbb_root_path . 'includes/bbcode.' . $phpEx);
$bbcode = new bbcode($pm_info['bbcode_bitfield']);
$bbcode->bbcode_second_pass($message, $pm_info['bbcode_uid'], $pm_info['bbcode_bitfield']);
}
$message = bbcode_nl2br($message);
$message = smiley_text($message);
$report['report_text'] = make_clickable(bbcode_nl2br($report['report_text'])); $report['report_text'] = make_clickable(bbcode_nl2br($report['report_text']));
if ($pm_info['message_attachment'] && $auth->acl_get('u_pm_download')) if ($pm_info['message_attachment'] && $auth->acl_get('u_pm_download'))

View file

@ -125,17 +125,8 @@ function mcp_post_details($id, $mode, $action)
$post_unread = (isset($topic_tracking_info[$post_info['topic_id']]) && $post_info['post_time'] > $topic_tracking_info[$post_info['topic_id']]) ? true : false; $post_unread = (isset($topic_tracking_info[$post_info['topic_id']]) && $post_info['post_time'] > $topic_tracking_info[$post_info['topic_id']]) ? true : false;
// Process message, leave it uncensored // Process message, leave it uncensored
$message = $post_info['post_text']; $parse_flags = ($post_info['bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0) | OPTION_FLAG_SMILIES;
$message = generate_text_for_display($post_info['post_text'], $post_info['bbcode_uid'], $post_info['bbcode_bitfield'], $parse_flags, false);
if ($post_info['bbcode_bitfield'])
{
include_once($phpbb_root_path . 'includes/bbcode.' . $phpEx);
$bbcode = new bbcode($post_info['bbcode_bitfield']);
$bbcode->bbcode_second_pass($message, $post_info['bbcode_uid'], $post_info['bbcode_bitfield']);
}
$message = bbcode_nl2br($message);
$message = smiley_text($message);
if ($post_info['post_attachment'] && $auth->acl_get('u_download') && $auth->acl_get('f_download', $post_info['forum_id'])) if ($post_info['post_attachment'] && $auth->acl_get('u_download') && $auth->acl_get('f_download', $post_info['forum_id']))
{ {

View file

@ -206,17 +206,8 @@ class mcp_queue
$post_unread = (isset($topic_tracking_info[$post_info['topic_id']]) && $post_info['post_time'] > $topic_tracking_info[$post_info['topic_id']]) ? true : false; $post_unread = (isset($topic_tracking_info[$post_info['topic_id']]) && $post_info['post_time'] > $topic_tracking_info[$post_info['topic_id']]) ? true : false;
// Process message, leave it uncensored // Process message, leave it uncensored
$message = $post_info['post_text']; $parse_flags = ($post_info['bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0) | OPTION_FLAG_SMILIES;
$message = generate_text_for_display($post_info['post_text'], $post_info['bbcode_uid'], $post_info['bbcode_bitfield'], $parse_flags, false);
if ($post_info['bbcode_bitfield'])
{
include_once($phpbb_root_path . 'includes/bbcode.' . $phpEx);
$bbcode = new bbcode($post_info['bbcode_bitfield']);
$bbcode->bbcode_second_pass($message, $post_info['bbcode_uid'], $post_info['bbcode_bitfield']);
}
$message = bbcode_nl2br($message);
$message = smiley_text($message);
if ($post_info['post_attachment'] && $auth->acl_get('u_download') && $auth->acl_get('f_download', $post_info['forum_id'])) if ($post_info['post_attachment'] && $auth->acl_get('u_download') && $auth->acl_get('f_download', $post_info['forum_id']))
{ {

View file

@ -187,7 +187,7 @@ class mcp_reports
'S_CLOSE_ACTION' => append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=reports&amp;mode=report_details&amp;f=' . $post_info['forum_id'] . '&amp;p=' . $post_id), 'S_CLOSE_ACTION' => append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=reports&amp;mode=report_details&amp;f=' . $post_info['forum_id'] . '&amp;p=' . $post_id),
'S_CAN_VIEWIP' => $auth->acl_get('m_info', $post_info['forum_id']), 'S_CAN_VIEWIP' => $auth->acl_get('m_info', $post_info['forum_id']),
'S_POST_REPORTED' => $post_info['post_reported'], 'S_POST_REPORTED' => $post_info['post_reported'],
'S_POST_UNAPPROVED' => ($post_info['post_visibility'] == POST_UNAPPROVED), 'S_POST_UNAPPROVED' => ($post_info['post_visibility'] == ITEM_UNAPPROVED),
'S_POST_LOCKED' => $post_info['post_edit_locked'], 'S_POST_LOCKED' => $post_info['post_edit_locked'],
'S_USER_NOTES' => true, 'S_USER_NOTES' => true,

View file

@ -207,13 +207,8 @@ function mcp_topic_view($id, $mode, $action)
$message = $row['post_text']; $message = $row['post_text'];
$post_subject = ($row['post_subject'] != '') ? $row['post_subject'] : $topic_info['topic_title']; $post_subject = ($row['post_subject'] != '') ? $row['post_subject'] : $topic_info['topic_title'];
if ($row['bbcode_bitfield']) $parse_flags = ($row['bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0) | OPTION_FLAG_SMILIES;
{ $message = generate_text_for_display($message, $row['bbcode_uid'], $row['bbcode_bitfield'], $parse_flags, false);
$bbcode->bbcode_second_pass($message, $row['bbcode_uid'], $row['bbcode_bitfield']);
}
$message = bbcode_nl2br($message);
$message = smiley_text($message);
if (!empty($attachments[$row['post_id']])) if (!empty($attachments[$row['post_id']]))
{ {
@ -674,10 +669,10 @@ function merge_posts($topic_id, $to_topic_id)
} }
// If the topic no longer exist, we will update the topic watch table. // If the topic no longer exist, we will update the topic watch table.
phpbb_update_rows_avoiding_duplicates_notify_status($db, TOPICS_WATCH_TABLE, 'topic_id', $topic_ids, $to_topic_id); phpbb_update_rows_avoiding_duplicates_notify_status($db, TOPICS_WATCH_TABLE, 'topic_id', array($topic_id), $to_topic_id);
// If the topic no longer exist, we will update the bookmarks table. // If the topic no longer exist, we will update the bookmarks table.
phpbb_update_rows_avoiding_duplicates($db, BOOKMARKS_TABLE, 'topic_id', $topic_id, $to_topic_id); phpbb_update_rows_avoiding_duplicates($db, BOOKMARKS_TABLE, 'topic_id', array($topic_id), $to_topic_id);
} }
// Link to the new topic // Link to the new topic

View file

@ -289,19 +289,8 @@ class mcp_warn
// We want to make the message available here as a reminder // We want to make the message available here as a reminder
// Parse the message and subject // Parse the message and subject
$message = censor_text($user_row['post_text']); $parse_flags = OPTION_FLAG_SMILIES | ($row['bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0);
$message = generate_text_for_display($user_row['post_text'], $user_row['bbcode_uid'], $user_row['bbcode_bitfield'], $parse_flags, true);
// Second parse bbcode here
if ($user_row['bbcode_bitfield'])
{
include_once($phpbb_root_path . 'includes/bbcode.' . $phpEx);
$bbcode = new bbcode($user_row['bbcode_bitfield']);
$bbcode->bbcode_second_pass($message, $user_row['bbcode_uid'], $user_row['bbcode_bitfield']);
}
$message = bbcode_nl2br($message);
$message = smiley_text($message);
// Generate the appropriate user information for the user we are looking at // Generate the appropriate user information for the user we are looking at
if (!function_exists('phpbb_get_user_avatar')) if (!function_exists('phpbb_get_user_avatar'))

View file

@ -76,17 +76,8 @@ function view_message($id, $mode, $folder_id, $msg_id, $folder, $message_row)
$user_info = get_user_information($author_id, $message_row); $user_info = get_user_information($author_id, $message_row);
// Parse the message and subject // Parse the message and subject
$message = censor_text($message_row['message_text']); $parse_flags = ($message_row['bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0) | OPTION_FLAG_SMILIES;
$message = generate_text_for_display($message_row['message_text'], $message_row['bbcode_uid'], $message_row['bbcode_bitfield'], $parse_flags, true);
// Second parse bbcode here
if ($message_row['bbcode_bitfield'])
{
$bbcode->bbcode_second_pass($message, $message_row['bbcode_uid'], $message_row['bbcode_bitfield']);
}
// Always process smilies after parsing bbcodes
$message = bbcode_nl2br($message);
$message = smiley_text($message);
// Replace naughty words such as farty pants // Replace naughty words such as farty pants
$message_row['message_subject'] = censor_text($message_row['message_subject']); $message_row['message_subject'] = censor_text($message_row['message_subject']);
@ -160,21 +151,8 @@ function view_message($id, $mode, $folder_id, $msg_id, $folder, $message_row)
// End signature parsing, only if needed // End signature parsing, only if needed
if ($signature) if ($signature)
{ {
$signature = censor_text($signature); $parse_flags = ($user_info['user_sig_bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0) | OPTION_FLAG_SMILIES;
$signature = generate_text_for_display($signature, $user_info['user_sig_bbcode_uid'], $user_info['user_sig_bbcode_bitfield'], $parse_flags, true);
if ($user_info['user_sig_bbcode_bitfield'])
{
if ($bbcode === false)
{
include($phpbb_root_path . 'includes/bbcode.' . $phpEx);
$bbcode = new bbcode($user_info['user_sig_bbcode_bitfield']);
}
$bbcode->bbcode_second_pass($signature, $user_info['user_sig_bbcode_uid'], $user_info['user_sig_bbcode_bitfield']);
}
$signature = bbcode_nl2br($signature);
$signature = smiley_text($signature);
} }
$url = append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm'); $url = append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm');

View file

@ -546,6 +546,9 @@ class ucp_profile
// Build custom bbcodes array // Build custom bbcodes array
display_custom_bbcodes(); display_custom_bbcodes();
// Generate smiley listing
generate_smilies('inline', 0);
break; break;
case 'avatar': case 'avatar':

View file

@ -38,7 +38,7 @@ class ucp_register
include($phpbb_root_path . 'includes/functions_profile_fields.' . $phpEx); include($phpbb_root_path . 'includes/functions_profile_fields.' . $phpEx);
$coppa = $request->is_set('coppa') ? (int) $request->variable('coppa', false) : false; $coppa = $request->is_set('coppa') ? (int) $request->variable('coppa', false) : false;
$agreed = (int) $request->variable('agreed', false); $agreed = $request->variable('agreed', false);
$submit = $request->is_set_post('submit'); $submit = $request->is_set_post('submit');
$change_lang = request_var('change_lang', ''); $change_lang = request_var('change_lang', '');
$user_lang = request_var('lang', $user->lang_name); $user_lang = request_var('lang', $user->lang_name);
@ -63,7 +63,7 @@ class ucp_register
$submit = false; $submit = false;
// Setting back agreed to let the user view the agreement in his/her language // Setting back agreed to let the user view the agreement in his/her language
$agreed = ($request->variable('change_lang', false)) ? 0 : $agreed; $agreed = false;
} }
$user->lang_name = $user_lang = $use_lang; $user->lang_name = $user_lang = $use_lang;
@ -89,7 +89,7 @@ class ucp_register
$add_coppa = ($coppa !== false) ? '&amp;coppa=' . $coppa : ''; $add_coppa = ($coppa !== false) ? '&amp;coppa=' . $coppa : '';
$s_hidden_fields = array( $s_hidden_fields = array(
'change_lang' => $change_lang, 'change_lang' => '',
); );
// If we change the language, we want to pass on some more possible parameter. // If we change the language, we want to pass on some more possible parameter.

View file

@ -101,6 +101,8 @@ class ucp_remind
$messenger->set_addresses($user_row); $messenger->set_addresses($user_row);
$messenger->anti_abuse_headers($config, $user);
$messenger->assign_vars(array( $messenger->assign_vars(array(
'USERNAME' => htmlspecialchars_decode($user_row['username']), 'USERNAME' => htmlspecialchars_decode($user_row['username']),
'PASSWORD' => htmlspecialchars_decode($user_password), 'PASSWORD' => htmlspecialchars_decode($user_password),

View file

@ -21,26 +21,6 @@ define('IN_INSTALL', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './../'; $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './../';
$phpEx = substr(strrchr(__FILE__, '.'), 1); $phpEx = substr(strrchr(__FILE__, '.'), 1);
if (!function_exists('phpbb_require_updated'))
{
function phpbb_require_updated($path, $optional = false)
{
global $phpbb_root_path;
$new_path = $phpbb_root_path . 'install/update/new/' . $path;
$old_path = $phpbb_root_path . $path;
if (file_exists($new_path))
{
require($new_path);
}
else if (!$optional || file_exists($old_path))
{
require($old_path);
}
}
}
function phpbb_end_update($cache, $config) function phpbb_end_update($cache, $config)
{ {
$cache->purge(); $cache->purge();
@ -69,7 +49,7 @@ function phpbb_end_update($cache, $config)
exit_handler(); exit_handler();
} }
phpbb_require_updated('includes/startup.' . $phpEx); require($phpbb_root_path . 'includes/startup.' . $phpEx);
include($phpbb_root_path . 'config.' . $phpEx); include($phpbb_root_path . 'config.' . $phpEx);
if (!defined('PHPBB_INSTALLED') || empty($dbms) || empty($acm_type)) if (!defined('PHPBB_INSTALLED') || empty($dbms) || empty($acm_type))
@ -88,7 +68,9 @@ require($phpbb_root_path . 'includes/functions.' . $phpEx);
require($phpbb_root_path . 'includes/functions_content.' . $phpEx); require($phpbb_root_path . 'includes/functions_content.' . $phpEx);
require($phpbb_root_path . 'includes/functions_container.' . $phpEx); require($phpbb_root_path . 'includes/functions_container.' . $phpEx);
require($phpbb_root_path . 'config.' . $phpEx);
require($phpbb_root_path . 'includes/constants.' . $phpEx); require($phpbb_root_path . 'includes/constants.' . $phpEx);
include($phpbb_root_path . 'includes/utf/utf_normalizer.' . $phpEx);
require($phpbb_root_path . 'includes/utf/utf_tools.' . $phpEx); require($phpbb_root_path . 'includes/utf/utf_tools.' . $phpEx);
// Set PHP error handler to ours // Set PHP error handler to ours
@ -101,11 +83,10 @@ $phpbb_class_loader->register();
// Set up container (must be done here because extensions table may not exist) // Set up container (must be done here because extensions table may not exist)
$container_extensions = array( $container_extensions = array(
new phpbb_di_extension_config($phpbb_root_path . 'config.' . $phpEx), new phpbb_di_extension_config($phpbb_root_path . 'config.' . $phpEx),
new phpbb_di_extension_core($phpbb_root_path), new phpbb_di_extension_core($phpbb_root_path . 'config/'),
); );
$container_passes = array( $container_passes = array(
new phpbb_di_pass_collection_pass(), new phpbb_di_pass_collection_pass(),
//new phpbb_di_pass_kernel_pass(),
); );
$phpbb_container = phpbb_create_container($container_extensions, $phpbb_root_path, $phpEx); $phpbb_container = phpbb_create_container($container_extensions, $phpbb_root_path, $phpEx);
@ -263,8 +244,8 @@ while (!$migrator->finished())
// Are we approaching the time limit? If so we want to pause the update and continue after refreshing // Are we approaching the time limit? If so we want to pause the update and continue after refreshing
if ((time() - $update_start_time) >= $safe_time_limit) if ((time() - $update_start_time) >= $safe_time_limit)
{ {
echo $user->lang['DATABASE_UPDATE_NOT_COMPLETED'] . '<br />'; echo '<br />' . $user->lang['DATABASE_UPDATE_NOT_COMPLETED'] . '<br /><br />';
echo '<a href="' . append_sid($phpbb_root_path . 'install/database_update.' . $phpEx, 'type=' . $request->variable('type', 0) . '&amp;language=' . $user->lang['USER_LANG']) . '">' . $user->lang['DATABASE_UPDATE_CONTINUE'] . '</a>'; echo '<a href="' . append_sid($phpbb_root_path . 'install/database_update.' . $phpEx, 'type=' . $request->variable('type', 0) . '&amp;language=' . $request->variable('language', 'en')) . '" class="button1">' . $user->lang['DATABASE_UPDATE_CONTINUE'] . '</a>';
phpbb_end_update($cache, $config); phpbb_end_update($cache, $config);
} }
@ -280,7 +261,7 @@ echo $user->lang['DATABASE_UPDATE_COMPLETE'] . '<br />';
if ($request->variable('type', 0)) if ($request->variable('type', 0))
{ {
echo $user->lang['INLINE_UPDATE_SUCCESSFUL'] . '<br /><br />'; echo $user->lang['INLINE_UPDATE_SUCCESSFUL'] . '<br /><br />';
echo '<a href="' . append_sid($phpbb_root_path . 'install/index.' . $phpEx, 'mode=update&amp;sub=file_check&amp;language=' . $user->lang['USER_LANG']) . '" class="button1">' . $user->lang['CONTINUE_UPDATE_NOW'] . '</a>'; echo '<a href="' . append_sid($phpbb_root_path . 'install/index.' . $phpEx, 'mode=update&amp;sub=update_db&amp;language=' . $request->variable('language', 'en')) . '" class="button1">' . $user->lang['CONTINUE_UPDATE_NOW'] . '</a>';
} }
else else
{ {

View file

@ -28,7 +28,7 @@ if (version_compare(PHP_VERSION, '5.3.3') < 0)
function phpbb_require_updated($path, $optional = false) function phpbb_require_updated($path, $optional = false)
{ {
global $phpbb_root_path; global $phpbb_root_path, $table_prefix;
$new_path = $phpbb_root_path . 'install/update/new/' . $path; $new_path = $phpbb_root_path . 'install/update/new/' . $path;
$old_path = $phpbb_root_path . $path; $old_path = $phpbb_root_path . $path;
@ -43,6 +43,23 @@ function phpbb_require_updated($path, $optional = false)
} }
} }
function phpbb_include_updated($path, $optional = false)
{
global $phpbb_root_path;
$new_path = $phpbb_root_path . 'install/update/new/' . $path;
$old_path = $phpbb_root_path . $path;
if (file_exists($new_path))
{
include($new_path);
}
else if (!$optional || file_exists($old_path))
{
include($old_path);
}
}
phpbb_require_updated('includes/startup.' . $phpEx); phpbb_require_updated('includes/startup.' . $phpEx);
// Try to override some limits - maybe it helps some... // Try to override some limits - maybe it helps some...
@ -78,18 +95,21 @@ $phpbb_adm_relative_path = (isset($phpbb_adm_relative_path)) ? $phpbb_adm_relati
$phpbb_admin_path = (defined('PHPBB_ADMIN_PATH')) ? PHPBB_ADMIN_PATH : $phpbb_root_path . $phpbb_adm_relative_path; $phpbb_admin_path = (defined('PHPBB_ADMIN_PATH')) ? PHPBB_ADMIN_PATH : $phpbb_root_path . $phpbb_adm_relative_path;
// Include essential scripts // Include essential scripts
require($phpbb_root_path . 'phpbb/class_loader.' . $phpEx); phpbb_require_updated('phpbb/class_loader.' . $phpEx);
require($phpbb_root_path . 'includes/functions.' . $phpEx); phpbb_require_updated('includes/functions.' . $phpEx);
require($phpbb_root_path . 'includes/functions_container.' . $phpEx); phpbb_require_updated('includes/functions_container.' . $phpEx);
phpbb_require_updated('includes/functions_content.' . $phpEx, true); phpbb_require_updated('includes/functions_content.' . $phpEx, true);
include($phpbb_root_path . 'includes/functions_admin.' . $phpEx); phpbb_include_updated('includes/functions_admin.' . $phpEx);
include($phpbb_root_path . 'includes/utf/utf_tools.' . $phpEx); phpbb_include_updated('includes/utf/utf_normalizer.' . $phpEx);
require($phpbb_root_path . 'includes/functions_install.' . $phpEx); phpbb_include_updated('includes/utf/utf_tools.' . $phpEx);
phpbb_require_updated('includes/functions_install.' . $phpEx);
// Setup class loader first // Setup class loader first
$phpbb_class_loader_new = new phpbb_class_loader('phpbb_', "{$phpbb_root_path}install/update/new/phpbb/", $phpEx);
$phpbb_class_loader_new->register();
$phpbb_class_loader = new phpbb_class_loader('phpbb_', "{$phpbb_root_path}phpbb/", $phpEx); $phpbb_class_loader = new phpbb_class_loader('phpbb_', "{$phpbb_root_path}phpbb/", $phpEx);
$phpbb_class_loader->register(); $phpbb_class_loader->register();
$phpbb_class_loader_ext = new phpbb_class_loader('phpbb_ext_', "{$phpbb_root_path}ext/", $phpEx); $phpbb_class_loader_ext = new phpbb_class_loader('phpbb_ext_', "{$phpbb_root_path}ext/", $phpEx);
@ -108,7 +128,7 @@ $request = $phpbb_container->get('request');
request_var('', 0, false, false, $request); // "dependency injection" for a function request_var('', 0, false, false, $request); // "dependency injection" for a function
// Try and load an appropriate language if required // Try and load an appropriate language if required
$language = basename(request_var('language', '')); $language = basename($request->variable('language', ''));
if ($request->header('Accept-Language') && !$language) if ($request->header('Accept-Language') && !$language)
{ {
@ -167,11 +187,23 @@ if (!file_exists($phpbb_root_path . 'language/' . $language) || !is_dir($phpbb_r
} }
// And finally, load the relevant language files // And finally, load the relevant language files
include($phpbb_root_path . 'language/' . $language . '/common.' . $phpEx); $load_lang_files = array('common', 'acp/common', 'acp/board', 'install', 'posting');
include($phpbb_root_path . 'language/' . $language . '/acp/common.' . $phpEx); $new_path = $phpbb_root_path . 'install/update/new/language/' . $language . '/';
include($phpbb_root_path . 'language/' . $language . '/acp/board.' . $phpEx); $old_path = $phpbb_root_path . 'language/' . $language . '/';
include($phpbb_root_path . 'language/' . $language . '/install.' . $phpEx);
include($phpbb_root_path . 'language/' . $language . '/posting.' . $phpEx); // NOTE: we can not use "phpbb_include_updated" as the files uses vars which would be required
// to be global while loading.
foreach ($load_lang_files as $lang_file)
{
if (file_exists($new_path . $lang_file . '.' . $phpEx))
{
include($new_path . $lang_file . '.' . $phpEx);
}
else
{
include($old_path . $lang_file . '.' . $phpEx);
}
}
// usually we would need every single constant here - and it would be consistent. For 3.0.x, use a dirty hack... :( // usually we would need every single constant here - and it would be consistent. For 3.0.x, use a dirty hack... :(
@ -181,8 +213,8 @@ define('CHMOD_READ', 4);
define('CHMOD_WRITE', 2); define('CHMOD_WRITE', 2);
define('CHMOD_EXECUTE', 1); define('CHMOD_EXECUTE', 1);
$mode = request_var('mode', 'overview'); $mode = $request->variable('mode', 'overview');
$sub = request_var('sub', ''); $sub = $request->variable('sub', '');
// Set PHP error handler to ours // Set PHP error handler to ours
set_error_handler(defined('PHPBB_MSG_HANDLER') ? PHPBB_MSG_HANDLER : 'msg_handler'); set_error_handler(defined('PHPBB_MSG_HANDLER') ? PHPBB_MSG_HANDLER : 'msg_handler');
@ -213,7 +245,10 @@ $config = new phpbb_config(array(
)); ));
$template = new phpbb_template_twig($phpbb_root_path, $phpEx, $config, $user, new phpbb_template_context()); $template = new phpbb_template_twig($phpbb_root_path, $phpEx, $config, $user, new phpbb_template_context());
$template->set_custom_style('admin', $phpbb_admin_path . 'style'); $paths = array($phpbb_root_path . 'install/update/new/adm/style', $phpbb_admin_path . 'style');
$paths = array_filter($paths, 'is_dir');
$template->set_custom_style('admin', $paths);
$template->assign_var('T_ASSETS_PATH', '../assets'); $template->assign_var('T_ASSETS_PATH', '../assets');
$template->assign_var('T_TEMPLATE_PATH', $phpbb_admin_path . 'style'); $template->assign_var('T_TEMPLATE_PATH', $phpbb_admin_path . 'style');

View file

@ -39,7 +39,7 @@ if (!empty($setmodules))
'module_filename' => substr(basename(__FILE__), 0, -strlen($phpEx)-1), 'module_filename' => substr(basename(__FILE__), 0, -strlen($phpEx)-1),
'module_order' => 30, 'module_order' => 30,
'module_subs' => '', 'module_subs' => '',
'module_stages' => array('INTRO', 'VERSION_CHECK', 'UPDATE_DB', 'FILE_CHECK', 'UPDATE_FILES'), 'module_stages' => array('INTRO', 'VERSION_CHECK', 'FILE_CHECK', 'UPDATE_FILES', 'UPDATE_DB'),
'module_reqs' => '' 'module_reqs' => ''
); );
} }
@ -57,7 +57,6 @@ class install_update extends module
var $new_location; var $new_location;
var $latest_version; var $latest_version;
var $current_version; var $current_version;
var $unequal_version;
var $update_to_version; var $update_to_version;
@ -74,15 +73,19 @@ class install_update extends module
global $template, $phpEx, $phpbb_root_path, $user, $db, $config, $cache, $auth, $language; global $template, $phpEx, $phpbb_root_path, $user, $db, $config, $cache, $auth, $language;
global $request, $phpbb_admin_path, $phpbb_adm_relative_path, $phpbb_container; global $request, $phpbb_admin_path, $phpbb_adm_relative_path, $phpbb_container;
// We must enable super globals, otherwise creating a new instance of the request class,
// using the new container with a dbal connection will fail with the following PHP Notice:
// Object of class phpbb_request_deactivated_super_global could not be converted to int
$request->enable_super_globals();
// Create a normal container now // Create a normal container now
$phpbb_container = phpbb_create_default_container($phpbb_root_path, $phpEx); $phpbb_container = phpbb_create_update_container($phpbb_root_path, $phpEx, $phpbb_root_path . 'install/update/new/config');
// Writes into global $cache // Writes into global $cache
$cache = $phpbb_container->get('cache'); $cache = $phpbb_container->get('cache');
$this->tpl_name = 'install_update'; $this->tpl_name = 'install_update';
$this->page_title = 'UPDATE_INSTALLATION'; $this->page_title = 'UPDATE_INSTALLATION';
$this->unequal_version = false;
$this->old_location = $phpbb_root_path . 'install/update/old/'; $this->old_location = $phpbb_root_path . 'install/update/old/';
$this->new_location = $phpbb_root_path . 'install/update/new/'; $this->new_location = $phpbb_root_path . 'install/update/new/';
@ -125,7 +128,7 @@ class install_update extends module
$config['default_lang'] = $language; $config['default_lang'] = $language;
$user->data['user_lang'] = $language; $user->data['user_lang'] = $language;
$user->setup(array('common', 'acp/common', 'acp/board', 'install', 'posting')); $user->add_lang(array('common', 'acp/common', 'acp/board', 'install', 'posting'));
// Reset the default_lang // Reset the default_lang
$config['default_lang'] = $config_default_lang; $config['default_lang'] = $config_default_lang;
@ -138,7 +141,9 @@ class install_update extends module
} }
// Set custom template again. ;) // Set custom template again. ;)
$template->set_custom_style('admin', $phpbb_admin_path . 'style'); $paths = array($phpbb_root_path . 'install/update/new/adm/style', $phpbb_admin_path . 'style');
$paths = array_filter($paths, 'is_dir');
$template->set_custom_style('admin', $paths);
$template->assign_vars(array( $template->assign_vars(array(
'S_USER_LANG' => $user->lang['USER_LANG'], 'S_USER_LANG' => $user->lang['USER_LANG'],
@ -192,8 +197,6 @@ class install_update extends module
// Check if the update files are actually meant to update from the current version // Check if the update files are actually meant to update from the current version
if ($this->current_version != $this->update_info['version']['from']) if ($this->current_version != $this->update_info['version']['from'])
{ {
$this->unequal_version = true;
$template->assign_vars(array( $template->assign_vars(array(
'S_ERROR' => true, 'S_ERROR' => true,
'ERROR_MSG' => sprintf($user->lang['INCOMPATIBLE_UPDATE_FILES'], $this->current_version, $this->update_info['version']['from'], $this->update_info['version']['to']), 'ERROR_MSG' => sprintf($user->lang['INCOMPATIBLE_UPDATE_FILES'], $this->current_version, $this->update_info['version']['from'], $this->update_info['version']['to']),
@ -201,10 +204,8 @@ class install_update extends module
} }
// Check if the update files stored are for the latest version... // Check if the update files stored are for the latest version...
if ($this->latest_version != $this->update_info['version']['to']) if (version_compare(strtolower($this->latest_version), strtolower($this->update_info['version']['to']), '>'))
{ {
$this->unequal_version = true;
$template->assign_vars(array( $template->assign_vars(array(
'S_WARNING' => true, 'S_WARNING' => true,
'WARNING_MSG' => sprintf($user->lang['OLD_UPDATE_FILES'], $this->update_info['version']['from'], $this->update_info['version']['to'], $this->latest_version)) 'WARNING_MSG' => sprintf($user->lang['OLD_UPDATE_FILES'], $this->update_info['version']['from'], $this->update_info['version']['to'], $this->latest_version))
@ -222,14 +223,15 @@ class install_update extends module
if ($this->test_update === false) if ($this->test_update === false)
{ {
// Got the updater template itself updated? If so, we are able to directly use it - but only if all three files are present
if (in_array($phpbb_adm_relative_path . 'style/install_update.html', $this->update_info['files']))
{
$this->tpl_name = '../../install/update/new/adm/style/install_update';
}
// What about the language file? Got it updated? // What about the language file? Got it updated?
if (in_array('language/en/install.' . $phpEx, $this->update_info['files'])) if (in_array('language/' . $language . '/install.' . $phpEx, $this->update_info['files']))
{
$lang = array();
include($this->new_location . 'language/' . $language . '/install.' . $phpEx);
// this is the user's language.. just merge it
$user->lang = array_merge($user->lang, $lang);
}
if ($language != 'en' && in_array('language/en/install.' . $phpEx, $this->update_info['files']))
{ {
$lang = array(); $lang = array();
include($this->new_location . 'language/en/install.' . $phpEx); include($this->new_location . 'language/en/install.' . $phpEx);
@ -273,18 +275,17 @@ class install_update extends module
$this->page_title = 'STAGE_VERSION_CHECK'; $this->page_title = 'STAGE_VERSION_CHECK';
$template->assign_vars(array( $template->assign_vars(array(
'S_UP_TO_DATE' => $up_to_date,
'S_VERSION_CHECK' => true, 'S_VERSION_CHECK' => true,
'U_ACTION' => append_sid($this->p_master->module_url, "language=$language&amp;mode=$mode&amp;sub=file_check"), 'U_ACTION' => append_sid($this->p_master->module_url, "language=$language&amp;mode=$mode&amp;sub=file_check"),
'U_DB_UPDATE_ACTION' => append_sid($this->p_master->module_url, "language=$language&amp;mode=$mode&amp;sub=update_db"),
'S_UP_TO_DATE' => $up_to_date,
'LATEST_VERSION' => $this->latest_version, 'LATEST_VERSION' => $this->latest_version,
'CURRENT_VERSION' => $this->current_version) 'CURRENT_VERSION' => $this->current_version,
); ));
// Print out version the update package updates to // Print out version the update package updates to
if ($this->unequal_version) if ($this->latest_version != $this->update_info['version']['to'])
{ {
$template->assign_var('PACKAGE_VERSION', $this->update_info['version']['to']); $template->assign_var('PACKAGE_VERSION', $this->update_info['version']['to']);
} }
@ -302,30 +303,6 @@ class install_update extends module
break; break;
case 'update_db': case 'update_db':
// Make sure the database update is valid for the latest version
$valid = false;
$updates_to_version = '';
if (file_exists($phpbb_root_path . 'install/database_update.' . $phpEx))
{
include_once($phpbb_root_path . 'install/database_update.' . $phpEx);
if ($updates_to_version === $this->update_info['version']['to'])
{
$valid = true;
}
}
// Should not happen at all
if (!$valid)
{
trigger_error($user->lang['DATABASE_UPDATE_INFO_OLD'], E_USER_ERROR);
}
// Just a precaution
$cache->purge();
// Redirect the user to the database update script with some explanations... // Redirect the user to the database update script with some explanations...
$template->assign_vars(array( $template->assign_vars(array(
'S_DB_UPDATE' => true, 'S_DB_UPDATE' => true,
@ -333,8 +310,14 @@ class install_update extends module
'U_DB_UPDATE' => append_sid($phpbb_root_path . 'install/database_update.' . $phpEx, 'type=1&amp;language=' . $user->data['user_lang']), 'U_DB_UPDATE' => append_sid($phpbb_root_path . 'install/database_update.' . $phpEx, 'type=1&amp;language=' . $user->data['user_lang']),
'U_DB_UPDATE_ACTION' => append_sid($this->p_master->module_url, "language=$language&amp;mode=$mode&amp;sub=update_db"), 'U_DB_UPDATE_ACTION' => append_sid($this->p_master->module_url, "language=$language&amp;mode=$mode&amp;sub=update_db"),
'U_ACTION' => append_sid($this->p_master->module_url, "language=$language&amp;mode=$mode&amp;sub=file_check"), 'U_ACTION' => append_sid($this->p_master->module_url, "language=$language&amp;mode=$mode&amp;sub=file_check"),
'L_EVERYTHING_UP_TO_DATE' => $user->lang('EVERYTHING_UP_TO_DATE', append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=login'), append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=login&amp;redirect=' . $phpbb_adm_relative_path . 'index.php%3Fi=send_statistics%26mode=send_statistics')),
)); ));
// Do not display incompatible package note after successful update
if ($config['version'] == $this->update_info['version']['to'])
{
$template->assign_var('S_ERROR', false);
}
break; break;
case 'file_check': case 'file_check':
@ -500,17 +483,30 @@ class install_update extends module
$template->assign_vars(array( $template->assign_vars(array(
'S_FILE_CHECK' => true, 'S_FILE_CHECK' => true,
'S_ALL_UP_TO_DATE' => $all_up_to_date, 'S_ALL_UP_TO_DATE' => $all_up_to_date,
'L_ALL_FILES_UP_TO_DATE' => $user->lang('ALL_FILES_UP_TO_DATE', append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=login'), append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=login&amp;redirect=' . $phpbb_adm_relative_path . 'index.php%3Fi=send_statistics%26mode=send_statistics')),
'S_VERSION_UP_TO_DATE' => $up_to_date, 'S_VERSION_UP_TO_DATE' => $up_to_date,
'S_UP_TO_DATE' => $up_to_date,
'U_ACTION' => append_sid($this->p_master->module_url, "language=$language&amp;mode=$mode&amp;sub=file_check"), 'U_ACTION' => append_sid($this->p_master->module_url, "language=$language&amp;mode=$mode&amp;sub=file_check"),
'U_UPDATE_ACTION' => append_sid($this->p_master->module_url, "language=$language&amp;mode=$mode&amp;sub=update_files"), 'U_UPDATE_ACTION' => append_sid($this->p_master->module_url, "language=$language&amp;mode=$mode&amp;sub=update_files"),
'U_DB_UPDATE_ACTION' => append_sid($this->p_master->module_url, "language=$language&amp;mode=$mode&amp;sub=update_db"), 'U_DB_UPDATE_ACTION' => append_sid($this->p_master->module_url, "language=$language&amp;mode=$mode&amp;sub=update_db"),
)); ));
// Since some people try to update to RC releases, but phpBB.com tells them the last version is the version they currently run
// we are faced with the updater thinking the database schema is up-to-date; which it is, but should be updated none-the-less
// We now try to cope with this by triggering the update process
if (version_compare(str_replace('rc', 'RC', strtolower($this->current_version)), str_replace('rc', 'RC', strtolower($this->update_info['version']['to'])), '<'))
{
$template->assign_vars(array(
'S_UP_TO_DATE' => false,
));
}
if ($all_up_to_date) if ($all_up_to_date)
{ {
global $phpbb_container;
$phpbb_log = $phpbb_container->get('log');
// Add database update to log // Add database update to log
add_log('admin', 'LOG_UPDATE_PHPBB', $this->current_version, $this->update_to_version); $phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_UPDATE_PHPBB', time(), array($this->current_version, $this->update_to_version));
$db->sql_return_on_error(true); $db->sql_return_on_error(true);
$db->sql_query('DELETE FROM ' . CONFIG_TABLE . " WHERE config_name = 'version_update_from'"); $db->sql_query('DELETE FROM ' . CONFIG_TABLE . " WHERE config_name = 'version_update_from'");
@ -1089,12 +1085,6 @@ class install_update extends module
$this->tpl_name = 'install_update_diff'; $this->tpl_name = 'install_update_diff';
// Got the diff template itself updated? If so, we are able to directly use it
if (in_array($phpbb_adm_relative_path . 'style/install_update_diff.html', $this->update_info['files']))
{
$this->tpl_name = '../../install/update/new/adm/style/install_update_diff';
}
$this->page_title = 'VIEWING_FILE_DIFF'; $this->page_title = 'VIEWING_FILE_DIFF';
$status = request_var('status', ''); $status = request_var('status', '');

View file

@ -170,7 +170,7 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('limit_search_load'
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_anon_lastread', '0'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_anon_lastread', '0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_birthdays', '1'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_birthdays', '1');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_cpf_memberlist', '0'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_cpf_memberlist', '0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_cpf_profile', '0'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_cpf_pm', '0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_cpf_viewprofile', '1'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_cpf_viewprofile', '1');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_cpf_viewtopic', '0'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_cpf_viewtopic', '0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_db_lastread', '1'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_db_lastread', '1');

View file

@ -12,7 +12,7 @@ Username: {USERNAME}
Board URL: {U_BOARD} Board URL: {U_BOARD}
---------------------------- ----------------------------
Useful information regarding the phpBB software can be found in the docs folder of your installation and on phpBB.com's support page - http://www.phpbb.com/support/ Useful information regarding the phpBB software can be found in the docs folder of your installation and on phpBB.com's support page - https://www.phpbb.com/support/
In order to keep your board safe and secure, we highly recommended keeping current with software releases. For your convenience, a mailing list is available at the page referenced above. In order to keep your board safe and secure, we highly recommended keeping current with software releases. For your convenience, a mailing list is available at the page referenced above.

View file

@ -332,7 +332,7 @@ $help = array(
), ),
array( array(
0 => 'Why isnt X feature available?', 0 => 'Why isnt X feature available?',
1 => 'This software was written by and licensed through phpBB Group. If you believe a feature needs to be added, or you want to report a bug, please visit the phpBB <a href="http://area51.phpbb.com/">Area51</a> website, where you will find resources to do so.' 1 => 'This software was written by and licensed through phpBB Group. If you believe a feature needs to be added please visit the <a href="https://www.phpbb.com/ideas/">phpBB Ideas Centre</a>, where you can upvote existing ideas or suggest new features.'
), ),
array( array(
0 => 'Who do I contact about abusive and/or legal matters related to this board?', 0 => 'Who do I contact about abusive and/or legal matters related to this board?',

View file

@ -374,7 +374,7 @@ $lang = array_merge($lang, array(
// Updater // Updater
$lang = array_merge($lang, array( $lang = array_merge($lang, array(
'ALL_FILES_UP_TO_DATE' => 'All files are up to date with the latest phpBB version. You should now <a href="%1$s">login to your board</a> and check if everything is working fine. Do not forget to delete, rename or move your install directory! Please send us updated information about your server and board configurations from the <a href="%2$s">Send statistics</a> module in your ACP.', 'ALL_FILES_UP_TO_DATE' => 'All files are up to date with the latest phpBB version.',
'ARCHIVE_FILE' => 'Source file within archive', 'ARCHIVE_FILE' => 'Source file within archive',
'BACK' => 'Back', 'BACK' => 'Back',
@ -398,7 +398,7 @@ $lang = array_merge($lang, array(
'DATABASE_TYPE' => 'Database type', 'DATABASE_TYPE' => 'Database type',
'DATABASE_UPDATE_COMPLETE' => 'Database updater has completed!', 'DATABASE_UPDATE_COMPLETE' => 'Database updater has completed!',
'DATABASE_UPDATE_CONTINUE' => 'Continue database update.', 'DATABASE_UPDATE_CONTINUE' => 'Continue database update',
'DATABASE_UPDATE_INFO_OLD' => 'The database update file within the install directory is outdated. Please make sure you uploaded the correct version of the file.', 'DATABASE_UPDATE_INFO_OLD' => 'The database update file within the install directory is outdated. Please make sure you uploaded the correct version of the file.',
'DATABASE_UPDATE_NOT_COMPLETED' => 'The database update has not yet completed.', 'DATABASE_UPDATE_NOT_COMPLETED' => 'The database update has not yet completed.',
'DELETE_USER_REMOVE' => 'Delete user and remove posts', 'DELETE_USER_REMOVE' => 'Delete user and remove posts',
@ -419,8 +419,9 @@ $lang = array_merge($lang, array(
'DOWNLOAD_UPDATE_METHOD' => 'Download modified files archive', 'DOWNLOAD_UPDATE_METHOD' => 'Download modified files archive',
'DOWNLOAD_UPDATE_METHOD_EXPLAIN' => 'Once downloaded you should unpack the archive. You will find the modified files you need to upload to your phpBB root directory within it. Please upload the files to their respective locations then. After you have uploaded all files, please check the files again with the other button below.', 'DOWNLOAD_UPDATE_METHOD_EXPLAIN' => 'Once downloaded you should unpack the archive. You will find the modified files you need to upload to your phpBB root directory within it. Please upload the files to their respective locations then. After you have uploaded all files, please check the files again with the other button below.',
'ERROR' => 'Error',
'EDIT_USERNAME' => 'Edit username', 'EDIT_USERNAME' => 'Edit username',
'ERROR' => 'Error',
'EVERYTHING_UP_TO_DATE' => 'Everything is up to date with the latest phpBB version. You should now <a href="%1$s">login to your board</a> and check if everything is working fine. Do not forget to delete, rename or move your install directory! Please send us updated information about your server and board configurations from the <a href="%2$s">Send statistics</a> module in your ACP.',
'FILE_ALREADY_UP_TO_DATE' => 'File is already up to date.', 'FILE_ALREADY_UP_TO_DATE' => 'File is already up to date.',
'FILE_DIFF_NOT_ALLOWED' => 'File not allowed to be diffed.', 'FILE_DIFF_NOT_ALLOWED' => 'File not allowed to be diffed.',
@ -570,6 +571,7 @@ $lang = array_merge($lang, array(
'UPLOAD_METHOD' => 'Upload method', 'UPLOAD_METHOD' => 'Upload method',
'UPDATE_DB_SUCCESS' => 'Database update was successful.', 'UPDATE_DB_SUCCESS' => 'Database update was successful.',
'UPDATE_FILE_SUCCESS' => 'File update was successful.',
'USER_ACTIVE' => 'Active user', 'USER_ACTIVE' => 'Active user',
'USER_INACTIVE' => 'Inactive user', 'USER_INACTIVE' => 'Inactive user',

View file

@ -561,17 +561,8 @@ switch ($mode)
if ($member['user_sig']) if ($member['user_sig'])
{ {
$member['user_sig'] = censor_text($member['user_sig']); $parse_flags = ($member['user_sig_bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0) | OPTION_FLAG_SMILIES;
$member['user_sig'] = generate_text_for_display($member['user_sig'], $member['user_sig_bbcode_uid'], $member['user_sig_bbcode_bitfield'], $parse_flags, true);
if ($member['user_sig_bbcode_bitfield'])
{
include_once($phpbb_root_path . 'includes/bbcode.' . $phpEx);
$bbcode = new bbcode();
$bbcode->bbcode_second_pass($member['user_sig'], $member['user_sig_bbcode_uid'], $member['user_sig_bbcode_bitfield']);
}
$member['user_sig'] = bbcode_nl2br($member['user_sig']);
$member['user_sig'] = smiley_text($member['user_sig']);
} }
$poster_avatar = phpbb_get_user_avatar($member); $poster_avatar = phpbb_get_user_avatar($member);

View file

@ -205,28 +205,34 @@ class phpbb_cache_driver_file extends phpbb_cache_driver_base
function purge() function purge()
{ {
// Purge all phpbb cache files // Purge all phpbb cache files
$dir = @opendir($this->cache_dir); try
{
if (!$dir) $iterator = new DirectoryIterator($this->cache_dir);
}
catch (Exception $e)
{ {
return; return;
} }
while (($entry = readdir($dir)) !== false) foreach ($iterator as $fileInfo)
{ {
if (strpos($entry, 'container_') !== 0 && if ($fileInfo->isDot())
strpos($entry, 'url_matcher') !== 0 &&
strpos($entry, 'sql_') !== 0 &&
strpos($entry, 'data_') !== 0 &&
strpos($entry, 'ctpl_') !== 0 &&
strpos($entry, 'tpl_') !== 0)
{ {
continue; continue;
} }
$filename = $fileInfo->getFilename();
$this->remove_file($this->cache_dir . $entry); if ($fileInfo->isDir())
{
$this->remove_dir($fileInfo->getPathname());
}
elseif (strpos($filename, 'container_') === 0 ||
strpos($filename, 'url_matcher') === 0 ||
strpos($filename, 'sql_') === 0 ||
strpos($filename, 'data_') === 0)
{
$this->remove_file($fileInfo->getPathname());
}
} }
closedir($dir);
unset($this->vars); unset($this->vars);
unset($this->var_expires); unset($this->var_expires);
@ -241,6 +247,44 @@ class phpbb_cache_driver_file extends phpbb_cache_driver_base
$this->is_modified = false; $this->is_modified = false;
} }
/**
* Remove directory
*
* @param string $dir Directory to remove
*
* @return null
*/
protected function remove_dir($dir)
{
try
{
$iterator = new DirectoryIterator($dir);
}
catch (Exception $e)
{
return;
}
foreach ($iterator as $fileInfo)
{
if ($fileInfo->isDot())
{
continue;
}
if ($fileInfo->isDir())
{
$this->remove_dir($fileInfo->getPathname());
}
else
{
$this->remove_file($fileInfo->getPathname());
}
}
@rmdir($dir);
}
/** /**
* Destroy cache data * Destroy cache data
*/ */

View file

@ -360,6 +360,11 @@ class phpbb_content_visibility
// Sync the first/last topic information if needed // Sync the first/last topic information if needed
if (!$is_starter && $is_latest) if (!$is_starter && $is_latest)
{ {
if (!function_exists('update_post_information'))
{
include($this->phpbb_root_path . 'includes/functions_posting.' . $this->php_ext);
}
// update_post_information can only update the last post info ... // update_post_information can only update the last post info ...
if ($topic_id) if ($topic_id)
{ {

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_1 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.1', '>='); return phpbb_version_compare($this->config['version'], '3.0.1', '>=');
} }
static public function depends_on() static public function depends_on()

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_10 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.10', '>='); return phpbb_version_compare($this->config['version'], '3.0.10', '>=');
} }
static public function depends_on() static public function depends_on()

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_10_rc1 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.10-rc1', '>='); return phpbb_version_compare($this->config['version'], '3.0.10-RC1', '>=');
} }
static public function depends_on() static public function depends_on()
@ -24,7 +24,7 @@ class phpbb_db_migration_data_30x_3_0_10_rc1 extends phpbb_db_migration
return array( return array(
array('config.add', array('email_max_chunk_size', 50)), array('config.add', array('email_max_chunk_size', 50)),
array('config.update', array('version', '3.0.10-rc1')), array('config.update', array('version', '3.0.10-RC1')),
); );
} }
} }

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_10_rc2 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.10-rc2', '>='); return phpbb_version_compare($this->config['version'], '3.0.10-RC2', '>=');
} }
static public function depends_on() static public function depends_on()
@ -22,7 +22,7 @@ class phpbb_db_migration_data_30x_3_0_10_rc2 extends phpbb_db_migration
public function update_data() public function update_data()
{ {
return array( return array(
array('config.update', array('version', '3.0.10-rc2')), array('config.update', array('version', '3.0.10-RC2')),
); );
} }
} }

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_10_rc3 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.10-rc3', '>='); return phpbb_version_compare($this->config['version'], '3.0.10-RC3', '>=');
} }
static public function depends_on() static public function depends_on()
@ -22,7 +22,7 @@ class phpbb_db_migration_data_30x_3_0_10_rc3 extends phpbb_db_migration
public function update_data() public function update_data()
{ {
return array( return array(
array('config.update', array('version', '3.0.10-rc3')), array('config.update', array('version', '3.0.10-RC3')),
); );
} }
} }

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_11 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.11', '>='); return phpbb_version_compare($this->config['version'], '3.0.11', '>=');
} }
static public function depends_on() static public function depends_on()

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_11_rc1 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.11-rc1', '>='); return phpbb_version_compare($this->config['version'], '3.0.11-RC1', '>=');
} }
static public function depends_on() static public function depends_on()
@ -25,7 +25,7 @@ class phpbb_db_migration_data_30x_3_0_11_rc1 extends phpbb_db_migration
array('custom', array(array(&$this, 'cleanup_deactivated_styles'))), array('custom', array(array(&$this, 'cleanup_deactivated_styles'))),
array('custom', array(array(&$this, 'delete_orphan_private_messages'))), array('custom', array(array(&$this, 'delete_orphan_private_messages'))),
array('config.update', array('version', '3.0.11-rc1')), array('config.update', array('version', '3.0.11-RC1')),
); );
} }

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_11_rc2 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.11-rc2', '>='); return phpbb_version_compare($this->config['version'], '3.0.11-RC2', '>=');
} }
static public function depends_on() static public function depends_on()
@ -44,7 +44,7 @@ class phpbb_db_migration_data_30x_3_0_11_rc2 extends phpbb_db_migration
public function update_data() public function update_data()
{ {
return array( return array(
array('config.update', array('version', '3.0.11-rc2')), array('config.update', array('version', '3.0.11-RC2')),
); );
} }
} }

View file

@ -13,7 +13,7 @@ class phpbb_db_migration_data_30x_3_0_12_rc1 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.12-rc1', '>='); return phpbb_version_compare($this->config['version'], '3.0.12-RC1', '>=');
} }
static public function depends_on() static public function depends_on()
@ -28,7 +28,7 @@ class phpbb_db_migration_data_30x_3_0_12_rc1 extends phpbb_db_migration
array('custom', array(array(&$this, 'update_bots'))), array('custom', array(array(&$this, 'update_bots'))),
array('custom', array(array(&$this, 'disable_bots_from_receiving_pms'))), array('custom', array(array(&$this, 'disable_bots_from_receiving_pms'))),
array('config.update', array('version', '3.0.12-rc1')), array('config.update', array('version', '3.0.12-RC1')),
); );
} }
@ -108,7 +108,7 @@ class phpbb_db_migration_data_30x_3_0_12_rc1 extends phpbb_db_migration
WHERE user_id = $bot_user_id"; WHERE user_id = $bot_user_id";
$this->sql_query($sql); $this->sql_query($sql);
user_delete('remove', $bot_user_id); user_delete('retain', $bot_user_id);
} }
else else
{ {

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_1_rc1 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.1-rc1', '>='); return phpbb_version_compare($this->config['version'], '3.0.1-RC1', '>=');
} }
public function update_schema() public function update_schema()
@ -74,7 +74,7 @@ class phpbb_db_migration_data_30x_3_0_1_rc1 extends phpbb_db_migration
array('custom', array(array(&$this, 'fix_unset_last_view_time'))), array('custom', array(array(&$this, 'fix_unset_last_view_time'))),
array('custom', array(array(&$this, 'reset_smiley_size'))), array('custom', array(array(&$this, 'reset_smiley_size'))),
array('config.update', array('version', '3.0.1-rc1')), array('config.update', array('version', '3.0.1-RC1')),
); );
} }

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_2 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.2', '>='); return phpbb_version_compare($this->config['version'], '3.0.2', '>=');
} }
static public function depends_on() static public function depends_on()

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_2_rc1 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.2-rc1', '>='); return phpbb_version_compare($this->config['version'], '3.0.2-RC1', '>=');
} }
static public function depends_on() static public function depends_on()
@ -26,7 +26,7 @@ class phpbb_db_migration_data_30x_3_0_2_rc1 extends phpbb_db_migration
array('config.add', array('check_attachment_content', '1')), array('config.add', array('check_attachment_content', '1')),
array('config.add', array('mime_triggers', 'body|head|html|img|plaintext|a href|pre|script|table|title')), array('config.add', array('mime_triggers', 'body|head|html|img|plaintext|a href|pre|script|table|title')),
array('config.update', array('version', '3.0.2-rc1')), array('config.update', array('version', '3.0.2-RC1')),
); );
} }
} }

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_2_rc2 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.2-rc2', '>='); return phpbb_version_compare($this->config['version'], '3.0.2-RC2', '>=');
} }
static public function depends_on() static public function depends_on()
@ -74,7 +74,7 @@ class phpbb_db_migration_data_30x_3_0_2_rc2 extends phpbb_db_migration
public function update_data() public function update_data()
{ {
return array( return array(
array('config.update', array('version', '3.0.2-rc2')), array('config.update', array('version', '3.0.2-RC2')),
); );
} }
} }

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_3 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.3', '>='); return phpbb_version_compare($this->config['version'], '3.0.3', '>=');
} }
static public function depends_on() static public function depends_on()

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_3_rc1 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.3-rc1', '>='); return phpbb_version_compare($this->config['version'], '3.0.3-RC1', '>=');
} }
static public function depends_on() static public function depends_on()
@ -60,7 +60,7 @@ class phpbb_db_migration_data_30x_3_0_3_rc1 extends phpbb_db_migration
array('permission.add', array('u_masspm_group', true, 'u_masspm')), array('permission.add', array('u_masspm_group', true, 'u_masspm')),
array('custom', array(array(&$this, 'correct_acp_email_permissions'))), array('custom', array(array(&$this, 'correct_acp_email_permissions'))),
array('config.update', array('version', '3.0.3-rc1')), array('config.update', array('version', '3.0.3-RC1')),
); );
} }

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_4 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.4', '>='); return phpbb_version_compare($this->config['version'], '3.0.4', '>=');
} }
static public function depends_on() static public function depends_on()

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_4_rc1 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.4-rc1', '>='); return phpbb_version_compare($this->config['version'], '3.0.4-RC1', '>=');
} }
static public function depends_on() static public function depends_on()
@ -76,7 +76,7 @@ class phpbb_db_migration_data_30x_3_0_4_rc1 extends phpbb_db_migration
return array( return array(
array('custom', array(array(&$this, 'update_custom_profile_fields'))), array('custom', array(array(&$this, 'update_custom_profile_fields'))),
array('config.update', array('version', '3.0.4-rc1')), array('config.update', array('version', '3.0.4-RC1')),
); );
} }

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_5 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.5', '>='); return phpbb_version_compare($this->config['version'], '3.0.5', '>=');
} }
static public function depends_on() static public function depends_on()

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_5_rc1 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.5-rc1', '>='); return phpbb_version_compare($this->config['version'], '3.0.5-RC1', '>=');
} }
static public function depends_on() static public function depends_on()

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_5_rc1part2 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.5-rc1', '>='); return phpbb_version_compare($this->config['version'], '3.0.5-RC1', '>=');
} }
static public function depends_on() static public function depends_on()
@ -36,7 +36,7 @@ class phpbb_db_migration_data_30x_3_0_5_rc1part2 extends phpbb_db_migration
public function update_data() public function update_data()
{ {
return array( return array(
array('config.update', array('version', '3.0.5-rc1')), array('config.update', array('version', '3.0.5-RC1')),
); );
} }
} }

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_6 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.6', '>='); return phpbb_version_compare($this->config['version'], '3.0.6', '>=');
} }
static public function depends_on() static public function depends_on()

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_6_rc1 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.6-rc1', '>='); return phpbb_version_compare($this->config['version'], '3.0.6-RC1', '>=');
} }
static public function depends_on() static public function depends_on()
@ -185,7 +185,7 @@ class phpbb_db_migration_data_30x_3_0_6_rc1 extends phpbb_db_migration
array('custom', array(array(&$this, 'add_newly_registered_group'))), array('custom', array(array(&$this, 'add_newly_registered_group'))),
array('custom', array(array(&$this, 'set_user_options_default'))), array('custom', array(array(&$this, 'set_user_options_default'))),
array('config.update', array('version', '3.0.6-rc1')), array('config.update', array('version', '3.0.6-RC1')),
); );
} }

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_6_rc2 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.6-rc2', '>='); return phpbb_version_compare($this->config['version'], '3.0.6-RC2', '>=');
} }
static public function depends_on() static public function depends_on()
@ -22,7 +22,7 @@ class phpbb_db_migration_data_30x_3_0_6_rc2 extends phpbb_db_migration
public function update_data() public function update_data()
{ {
return array( return array(
array('config.update', array('version', '3.0.6-rc2')), array('config.update', array('version', '3.0.6-RC2')),
); );
} }
} }

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_6_rc3 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.6-rc3', '>='); return phpbb_version_compare($this->config['version'], '3.0.6-RC3', '>=');
} }
static public function depends_on() static public function depends_on()
@ -24,7 +24,7 @@ class phpbb_db_migration_data_30x_3_0_6_rc3 extends phpbb_db_migration
return array( return array(
array('custom', array(array(&$this, 'update_cp_fields'))), array('custom', array(array(&$this, 'update_cp_fields'))),
array('config.update', array('version', '3.0.6-rc3')), array('config.update', array('version', '3.0.6-RC3')),
); );
} }

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_6_rc4 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.6-rc4', '>='); return phpbb_version_compare($this->config['version'], '3.0.6-RC4', '>=');
} }
static public function depends_on() static public function depends_on()
@ -22,7 +22,7 @@ class phpbb_db_migration_data_30x_3_0_6_rc4 extends phpbb_db_migration
public function update_data() public function update_data()
{ {
return array( return array(
array('config.update', array('version', '3.0.6-rc4')), array('config.update', array('version', '3.0.6-RC4')),
); );
} }
} }

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_7 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.7', '>='); return phpbb_version_compare($this->config['version'], '3.0.7', '>=');
} }
static public function depends_on() static public function depends_on()

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_7_pl1 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.7-pl1', '>='); return phpbb_version_compare($this->config['version'], '3.0.7-pl1', '>=');
} }
static public function depends_on() static public function depends_on()

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_7_rc1 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.7-rc1', '>='); return phpbb_version_compare($this->config['version'], '3.0.7-RC1', '>=');
} }
static public function depends_on() static public function depends_on()
@ -62,7 +62,7 @@ class phpbb_db_migration_data_30x_3_0_7_rc1 extends phpbb_db_migration
array('config.add', array('feed_topics_active', $this->config['feed_overall_topics'])), array('config.add', array('feed_topics_active', $this->config['feed_overall_topics'])),
array('custom', array(array(&$this, 'delete_text_templates'))), array('custom', array(array(&$this, 'delete_text_templates'))),
array('config.update', array('version', '3.0.7-rc1')), array('config.update', array('version', '3.0.7-RC1')),
); );
} }

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_7_rc2 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.7-rc2', '>='); return phpbb_version_compare($this->config['version'], '3.0.7-RC2', '>=');
} }
static public function depends_on() static public function depends_on()
@ -24,7 +24,7 @@ class phpbb_db_migration_data_30x_3_0_7_rc2 extends phpbb_db_migration
return array( return array(
array('custom', array(array(&$this, 'update_email_hash'))), array('custom', array(array(&$this, 'update_email_hash'))),
array('config.update', array('version', '3.0.7-rc2')), array('config.update', array('version', '3.0.7-RC2')),
); );
} }

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_8 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.8', '>='); return phpbb_version_compare($this->config['version'], '3.0.8', '>=');
} }
static public function depends_on() static public function depends_on()

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_8_rc1 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.8-rc1', '>='); return phpbb_version_compare($this->config['version'], '3.0.8-RC1', '>=');
} }
static public function depends_on() static public function depends_on()
@ -38,7 +38,7 @@ class phpbb_db_migration_data_30x_3_0_8_rc1 extends phpbb_db_migration
array('config.update_if_equals', array(600, 'queue_interval', 60)), array('config.update_if_equals', array(600, 'queue_interval', 60)),
array('config.update_if_equals', array(50, 'email_package_size', 20)), array('config.update_if_equals', array(50, 'email_package_size', 20)),
array('config.update', array('version', '3.0.8-rc1')), array('config.update', array('version', '3.0.8-RC1')),
); );
} }

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_9 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.9', '>='); return phpbb_version_compare($this->config['version'], '3.0.9', '>=');
} }
static public function depends_on() static public function depends_on()

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_9_rc1 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.9-rc1', '>='); return phpbb_version_compare($this->config['version'], '3.0.9-RC1', '>=');
} }
static public function depends_on() static public function depends_on()
@ -74,7 +74,7 @@ class phpbb_db_migration_data_30x_3_0_9_rc1 extends phpbb_db_migration
array('custom', array(array(&$this, 'update_file_extension_group_names'))), array('custom', array(array(&$this, 'update_file_extension_group_names'))),
array('custom', array(array(&$this, 'fix_firebird_qa_captcha'))), array('custom', array(array(&$this, 'fix_firebird_qa_captcha'))),
array('config.update', array('version', '3.0.9-rc1')), array('config.update', array('version', '3.0.9-RC1')),
); );
} }

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_9_rc2 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.9-rc2', '>='); return phpbb_version_compare($this->config['version'], '3.0.9-RC2', '>=');
} }
static public function depends_on() static public function depends_on()
@ -22,7 +22,7 @@ class phpbb_db_migration_data_30x_3_0_9_rc2 extends phpbb_db_migration
public function update_data() public function update_data()
{ {
return array( return array(
array('config.update', array('version', '3.0.9-rc2')), array('config.update', array('version', '3.0.9-RC2')),
); );
} }
} }

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_9_rc3 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.9-rc3', '>='); return phpbb_version_compare($this->config['version'], '3.0.9-RC3', '>=');
} }
static public function depends_on() static public function depends_on()
@ -22,7 +22,7 @@ class phpbb_db_migration_data_30x_3_0_9_rc3 extends phpbb_db_migration
public function update_data() public function update_data()
{ {
return array( return array(
array('config.update', array('version', '3.0.9-rc3')), array('config.update', array('version', '3.0.9-RC3')),
); );
} }
} }

View file

@ -11,7 +11,7 @@ class phpbb_db_migration_data_30x_3_0_9_rc4 extends phpbb_db_migration
{ {
public function effectively_installed() public function effectively_installed()
{ {
return version_compare($this->config['version'], '3.0.9-rc4', '>='); return phpbb_version_compare($this->config['version'], '3.0.9-RC4', '>=');
} }
static public function depends_on() static public function depends_on()
@ -22,7 +22,7 @@ class phpbb_db_migration_data_30x_3_0_9_rc4 extends phpbb_db_migration
public function update_data() public function update_data()
{ {
return array( return array(
array('config.update', array('version', '3.0.9-rc4')), array('config.update', array('version', '3.0.9-RC4')),
); );
} }
} }

View file

@ -17,7 +17,7 @@ class phpbb_db_migration_data_310_signature_module_auth extends phpbb_db_migrati
AND module_basename = 'ucp_profile' AND module_basename = 'ucp_profile'
AND module_mode = 'signature'"; AND module_mode = 'signature'";
$result = $this->db->sql_query($sql); $result = $this->db->sql_query($sql);
$module_auth = $this->db_sql_fetchfield('module_auth'); $module_auth = $this->db->sql_fetchfield('module_auth');
$this->db->sql_freeresult($result); $this->db->sql_freeresult($result);
return $module_auth === 'acl_u_sig' || $module_auth === false; return $module_auth === 'acl_u_sig' || $module_auth === false;

View file

@ -0,0 +1,55 @@
<?php
/**
*
* @package migration
* @copyright (c) 2013 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License v2
*
*/
class phpbb_db_migration_data_310_softdelete_mcp_modules extends phpbb_db_migration
{
public function effectively_installed()
{
$sql = 'SELECT module_id
FROM ' . MODULES_TABLE . "
WHERE module_class = 'mcp'
AND module_basename = 'mcp_queue'
AND module_mode = 'deleted_topics'";
$result = $this->db->sql_query($sql);
$module_id = $this->db->sql_fetchfield('module_id');
$this->db->sql_freeresult($result);
return $module_id !== false;
}
static public function depends_on()
{
return array(
'phpbb_db_migration_data_310_dev',
'phpbb_db_migration_data_310_softdelete_p2',
);
}
public function update_data()
{
return array(
array('module.add', array(
'mcp',
'MCP_QUEUE',
array(
'module_basename' => 'mcp_queue',
'modes' => array('deleted_topics'),
),
)),
array('module.add', array(
'mcp',
'MCP_QUEUE',
array(
'module_basename' => 'mcp_queue',
'modes' => array('deleted_posts'),
),
)),
);
}
}

View file

@ -26,19 +26,19 @@ use Symfony\Component\Config\FileLocator;
class phpbb_di_extension_core extends Extension class phpbb_di_extension_core extends Extension
{ {
/** /**
* phpBB Root path * Config path
* @var string * @var string
*/ */
protected $root_path; protected $config_path;
/** /**
* Constructor * Constructor
* *
* @param string $root_path Root path * @param string $config_path Config path
*/ */
public function __construct($root_path) public function __construct($config_path)
{ {
$this->root_path = $root_path; $this->config_path = $config_path;
} }
/** /**
@ -51,7 +51,7 @@ class phpbb_di_extension_core extends Extension
*/ */
public function load(array $config, ContainerBuilder $container) public function load(array $config, ContainerBuilder $container)
{ {
$loader = new YamlFileLoader($container, new FileLocator(phpbb_realpath($this->root_path . 'config'))); $loader = new YamlFileLoader($container, new FileLocator(phpbb_realpath($this->config_path)));
$loader->load('services.yml'); $loader->load('services.yml');
} }

View file

@ -33,7 +33,6 @@ class phpbb_event_extension_subscriber_loader
$finder = $this->extension_manager->get_finder(); $finder = $this->extension_manager->get_finder();
$subscriber_classes = $finder $subscriber_classes = $finder
->extension_directory('/event') ->extension_directory('/event')
->suffix('listener')
->core_path('event/') ->core_path('event/')
->get_classes(); ->get_classes();

View file

@ -191,20 +191,18 @@ class phpbb_template_twig_lexer extends Twig_Lexer
// Recursive...fix any child nodes // Recursive...fix any child nodes
$body = $parent_class->fix_begin_tokens($body, $parent_nodes); $body = $parent_class->fix_begin_tokens($body, $parent_nodes);
// Rename loopname vars (to prevent collisions, loop children are named (loop name)_loop_element)
$body = str_replace($name . '.', $name . '_loop_element.', $body);
// Need the parent variable name // Need the parent variable name
array_pop($parent_nodes); array_pop($parent_nodes);
$parent = (!empty($parent_nodes)) ? end($parent_nodes) . '_loop_element.' : ''; $parent = (!empty($parent_nodes)) ? end($parent_nodes) . '.' : '';
if ($subset !== '') if ($subset !== '')
{ {
$subset = '|subset(' . $subset . ')'; $subset = '|subset(' . $subset . ')';
} }
// Turn into a Twig for loop, using (loop name)_loop_element for each child $parent = ($parent) ?: 'loops.';
return "{% for {$name}_loop_element in {$parent}{$name}{$subset} %}{$body}{% endfor %}"; // Turn into a Twig for loop
return "{% for {$name} in {$parent}{$name}{$subset} %}{$body}{% endfor %}";
}; };
// Replace <!-- BEGINELSE --> correctly, only needs to be done once // Replace <!-- BEGINELSE --> correctly, only needs to be done once
@ -227,8 +225,11 @@ class phpbb_template_twig_lexer extends Twig_Lexer
// Replace $TEST with definition.TEST // Replace $TEST with definition.TEST
$inner = preg_replace('#\s\$([a-zA-Z_0-9]+)#', ' definition.$1', $inner); $inner = preg_replace('#\s\$([a-zA-Z_0-9]+)#', ' definition.$1', $inner);
// Replace .test with test|length // Replace .foo with loops.foo|length
$inner = preg_replace('#\s\.([a-zA-Z_0-9\.]+)#', ' $1|length', $inner); $inner = preg_replace('#\s\.([a-zA-Z_0-9]+)([^a-zA-Z_0-9\.])#', ' loops.$1|length$2', $inner);
// Replace .foo.bar with foo.bar|length
$inner = preg_replace('#\s\.([a-zA-Z_0-9\.]+)([^a-zA-Z_0-9\.])#', ' $1|length$2', $inner);
return "<!-- {$matches[1]}IF{$inner}-->"; return "<!-- {$matches[1]}IF{$inner}-->";
}; };

View file

@ -18,6 +18,12 @@ if (!defined('IN_PHPBB'))
class phpbb_template_twig_node_event extends Twig_Node class phpbb_template_twig_node_event extends Twig_Node
{ {
/**
* The subdirectory in which all template listener files must be placed
* @var string
*/
protected $listener_directory = 'event/';
/** @var Twig_Environment */ /** @var Twig_Environment */
protected $environment; protected $environment;
@ -37,7 +43,7 @@ class phpbb_template_twig_node_event extends Twig_Node
{ {
$compiler->addDebugInfo($this); $compiler->addDebugInfo($this);
$location = $this->getNode('expr')->getAttribute('name'); $location = $this->listener_directory . $this->getNode('expr')->getAttribute('name');
foreach ($this->environment->get_phpbb_extensions() as $ext_namespace => $ext_path) foreach ($this->environment->get_phpbb_extensions() as $ext_namespace => $ext_path)
{ {

View file

@ -470,15 +470,15 @@ class phpbb_template_twig implements phpbb_template
$vars = array_merge( $vars = array_merge(
$context_vars['.'][0], // To get normal vars $context_vars['.'][0], // To get normal vars
$context_vars, // To get loops
array( array(
'definition' => new phpbb_template_twig_definition(), 'definition' => new phpbb_template_twig_definition(),
'user' => $this->user, 'user' => $this->user,
'loops' => $context_vars, // To get loops
) )
); );
// cleanup // cleanup
unset($vars['.']); unset($vars['loops']['.']);
return $vars; return $vars;
} }

View file

@ -128,6 +128,7 @@ class phpbb_user extends phpbb_session
} }
$user_data = $this->data; $user_data = $this->data;
$lang_set_ext = array();
/** /**
* Event to load language files and modify user data on every page * Event to load language files and modify user data on every page
@ -139,10 +140,18 @@ class phpbb_user extends phpbb_session
* @var string user_timezone User's timezone, should be one of * @var string user_timezone User's timezone, should be one of
* http://www.php.net/manual/en/timezones.php * http://www.php.net/manual/en/timezones.php
* @var mixed lang_set String or array of language files * @var mixed lang_set String or array of language files
* @var array lang_set_ext Array containing entries of format
* array(
* 'ext_name' => (string) [extension name],
* 'lang_set' => (string|array) [language files],
* )
* For performance reasons, only load translations
* that are absolutely needed globally using this
* event. Use local events otherwise.
* @var mixed style_id Style we are going to display * @var mixed style_id Style we are going to display
* @since 3.1-A1 * @since 3.1-A1
*/ */
$vars = array('user_data', 'user_lang_name', 'user_date_format', 'user_timezone', 'lang_set', 'style_id'); $vars = array('user_data', 'user_lang_name', 'user_date_format', 'user_timezone', 'lang_set', 'lang_set_ext', 'style_id');
extract($phpbb_dispatcher->trigger_event('core.user_setup', compact($vars))); extract($phpbb_dispatcher->trigger_event('core.user_setup', compact($vars)));
$this->data = $user_data; $this->data = $user_data;
@ -173,6 +182,12 @@ class phpbb_user extends phpbb_session
$this->add_lang($lang_set); $this->add_lang($lang_set);
unset($lang_set); unset($lang_set);
foreach ($lang_set_ext as $ext_lang_pair)
{
$this->add_lang_ext($ext_lang_pair['ext_name'], $ext_lang_pair['lang_set']);
}
unset($lang_set_ext);
$style_request = request_var('style', 0); $style_request = request_var('style', 0);
if ($style_request && $auth->acl_get('a_styles') && !defined('ADMIN_START')) if ($style_request && $auth->acl_get('a_styles') && !defined('ADMIN_START'))
{ {
@ -590,6 +605,13 @@ class phpbb_user extends phpbb_session
$language_filename = $lang_path . $this->lang_name . '/' . $filename . '.' . $phpEx; $language_filename = $lang_path . $this->lang_name . '/' . $filename . '.' . $phpEx;
} }
// If we are in install, try to use the updated version, when available
$install_language_filename = str_replace('language/', 'install/update/new/language/', $language_filename);
if (defined('IN_INSTALL') && file_exists($install_language_filename))
{
$language_filename = $install_language_filename;
}
if (!file_exists($language_filename)) if (!file_exists($language_filename))
{ {
global $config; global $config;

View file

@ -139,9 +139,10 @@ else
$reported_post_text = $report_data['message_text']; $reported_post_text = $report_data['message_text'];
$reported_post_bitfield = $report_data['bbcode_bitfield']; $reported_post_bitfield = $report_data['bbcode_bitfield'];
$reported_post_enable_bbcode = $report_data['reported_post_enable_bbcode']; $reported_post_uid = $report_data['bbcode_uid'];
$reported_post_enable_smilies = $report_data['reported_post_enable_smilies']; $reported_post_enable_bbcode = $report_data['enable_bbcode'];
$reported_post_enable_magic_url = $report_data['reported_post_enable_magic_url']; $reported_post_enable_smilies = $report_data['enable_smilies'];
$reported_post_enable_magic_url = $report_data['enable_magic_url'];
} }
if ($config['enable_post_confirm'] && !$user->data['is_registered']) if ($config['enable_post_confirm'] && !$user->data['is_registered'])

View file

@ -687,6 +687,18 @@ if ($keywords || $author || $author_id || $search_id || $submit)
$tracking_topics = ($tracking_topics) ? tracking_unserialize($tracking_topics) : array(); $tracking_topics = ($tracking_topics) ? tracking_unserialize($tracking_topics) : array();
} }
/**
* Event to modify the SQL query before the topic data is retrieved
*
* @event core.search_get_topic_data
* @var string sql_select The SQL SELECT string used by search to get topic data
* @var string sql_from The SQL FROM string used by search to get topic data
* @var string sql_where The SQL WHERE string used by search to get topic data
* @since 3.1-A1
*/
$vars = array('sql_select', 'sql_from', 'sql_where');
extract($phpbb_dispatcher->trigger_event('core.search_get_topic_data', compact($vars)));
$sql = "SELECT $sql_select $sql = "SELECT $sql_select
FROM $sql_from FROM $sql_from
WHERE $sql_where"; WHERE $sql_where";
@ -989,7 +1001,7 @@ if ($keywords || $author || $author_id || $search_id || $submit)
); );
} }
$template->assign_block_vars('searchresults', array_merge($tpl_ary, array( $tpl_ary = array_merge($tpl_ary, array(
'FORUM_ID' => $forum_id, 'FORUM_ID' => $forum_id,
'TOPIC_ID' => $result_topic_id, 'TOPIC_ID' => $result_topic_id,
'POST_ID' => ($show_results == 'posts') ? $row['post_id'] : false, 'POST_ID' => ($show_results == 'posts') ? $row['post_id'] : false,
@ -1001,9 +1013,22 @@ if ($keywords || $author || $author_id || $search_id || $submit)
'U_VIEW_TOPIC' => $view_topic_url, 'U_VIEW_TOPIC' => $view_topic_url,
'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $forum_id), 'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $forum_id),
'U_VIEW_POST' => (!empty($row['post_id'])) ? append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;t=" . $row['topic_id'] . '&amp;p=' . $row['post_id'] . (($u_hilit) ? '&amp;hilit=' . $u_hilit : '')) . '#p' . $row['post_id'] : '') 'U_VIEW_POST' => (!empty($row['post_id'])) ? append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;t=" . $row['topic_id'] . '&amp;p=' . $row['post_id'] . (($u_hilit) ? '&amp;hilit=' . $u_hilit : '')) . '#p' . $row['post_id'] : '',
)); ));
/**
* Modify the topic data before it is assigned to the template
*
* @event core.search_modify_tpl_ary
* @var array row Array with topic data
* @var array tpl_ary Template block array with topic data
* @since 3.1-A1
*/
$vars = array('row', 'tpl_ary');
extract($phpbb_dispatcher->trigger_event('core.search_modify_tpl_ary', compact($vars)));
$template->assign_block_vars('searchresults', $tpl_ary);
if ($show_results == 'topics') if ($show_results == 'topics')
{ {
phpbb_generate_template_pagination($template, $view_topic_url, 'searchresults.pagination', 'start', $replies + 1, $config['posts_per_page'], 1, true, true); phpbb_generate_template_pagination($template, $view_topic_url, 'searchresults.pagination', 'start', $replies + 1, $config['posts_per_page'], 1, true, true);

View file

@ -12,8 +12,8 @@
<!-- BEGIN quote_open --><blockquote class="uncited"><div><!-- END quote_open --> <!-- BEGIN quote_open --><blockquote class="uncited"><div><!-- END quote_open -->
<!-- BEGIN quote_close --></div></blockquote><!-- END quote_close --> <!-- BEGIN quote_close --></div></blockquote><!-- END quote_close -->
<!-- BEGIN code_open --><dl class="codebox"><dt>{L_CODE}{L_COLON} <a href="#" onclick="selectCode(this); return false;">{L_SELECT_ALL_CODE}</a></dt><dd><code><!-- END code_open --> <!-- BEGIN code_open --><div class="codebox"><p>{L_CODE}{L_COLON} <a href="#" onclick="selectCode(this); return false;">{L_SELECT_ALL_CODE}</a></p><code><!-- END code_open -->
<!-- BEGIN code_close --></code></dd></dl><!-- END code_close --> <!-- BEGIN code_close --></code></div><!-- END code_close -->
<!-- BEGIN inline_attachment_open --><div class="inline-attachment"><!-- END inline_attachment_open --> <!-- BEGIN inline_attachment_open --><div class="inline-attachment"><!-- END inline_attachment_open -->
<!-- BEGIN inline_attachment_close --></div><!-- END inline_attachment_close --> <!-- BEGIN inline_attachment_close --></div><!-- END inline_attachment_close -->

View file

@ -100,20 +100,7 @@
<li class="rightside pagination"> <li class="rightside pagination">
<!-- IF TOTAL_TOPICS --> {TOTAL_TOPICS} &bull; <!-- ENDIF --> <!-- IF TOTAL_TOPICS --> {TOTAL_TOPICS} &bull; <!-- ENDIF -->
<!-- IF .pagination --> <!-- IF .pagination -->
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{PAGE_NUMBER}</a> &bull; <!-- INCLUDE pagination.html -->
<ul>
<!-- BEGIN pagination -->
<!-- IF pagination.S_IS_PREV -->
<!-- ELSEIF pagination.S_IS_CURRENT -->
<li class="active"><span>{pagination.PAGE_NUMBER}</span></li>
<!-- ELSEIF pagination.S_IS_ELLIPSIS -->
<li class="ellipsis"><span>{L_ELLIPSIS}</span></li>
<!-- ELSEIF pagination.S_IS_NEXT -->
<!-- ELSE -->
<li><a href="{pagination.PAGE_URL}">{pagination.PAGE_NUMBER}</a></li>
<!-- ENDIF -->
<!-- END pagination -->
</ul>
<!-- ELSE --> <!-- ELSE -->
{PAGE_NUMBER} {PAGE_NUMBER}
<!-- ENDIF --> <!-- ENDIF -->

View file

@ -13,7 +13,7 @@
<p>{L_UNAPPROVED_TOTAL}</p> <p>{L_UNAPPROVED_TOTAL}</p>
<!-- IF .unapproved --> <!-- IF .unapproved -->
<ul class="topiclist two-long-columns"> <ul class="topiclist missing-column">
<li class="header"> <li class="header">
<dl> <dl>
<dt><div class="list-inner">{L_VIEW_DETAILS}</div></dt> <dt><div class="list-inner">{L_VIEW_DETAILS}</div></dt>
@ -21,7 +21,7 @@
</dl> </dl>
</li> </li>
</ul> </ul>
<ul class="topiclist cplist two-long-columns"> <ul class="topiclist cplist missing-column">
<!-- BEGIN unapproved --> <!-- BEGIN unapproved -->
<li class="row<!-- IF unapproved.S_ROW_COUNT is odd --> bg1<!-- ELSE --> bg2<!-- ENDIF -->"> <li class="row<!-- IF unapproved.S_ROW_COUNT is odd --> bg1<!-- ELSE --> bg2<!-- ENDIF -->">

View file

@ -14,20 +14,7 @@
<li class="rightside pagination"> <li class="rightside pagination">
<!-- IF TOTAL_USERS -->{TOTAL_USERS} &bull; <!-- ENDIF --> <!-- IF TOTAL_USERS -->{TOTAL_USERS} &bull; <!-- ENDIF -->
<!-- IF .pagination --> <!-- IF .pagination -->
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{PAGE_NUMBER}</a> &bull; <!-- INCLUDE pagination.html -->
<ul>
<!-- BEGIN pagination -->
<!-- IF pagination.S_IS_PREV -->
<!-- ELSEIF pagination.S_IS_CURRENT -->
<li class="active"><span>{pagination.PAGE_NUMBER}</span></li>
<!-- ELSEIF pagination.S_IS_ELLIPSIS -->
<li class="ellipsis"><span>{L_ELLIPSIS}</span></li>
<!-- ELSEIF pagination.S_IS_NEXT -->
<!-- ELSE -->
<li><a href="{pagination.PAGE_URL}">{pagination.PAGE_NUMBER}</a></li>
<!-- ENDIF -->
<!-- END pagination -->
</ul>
<!-- ELSE --> <!-- ELSE -->
{PAGE_NUMBER} {PAGE_NUMBER}
<!-- ENDIF --> <!-- ENDIF -->

View file

@ -109,7 +109,7 @@
<!-- ENDIF --> <!-- ENDIF -->
<tr class="<!-- IF memberrow.S_ROW_COUNT is even -->bg1<!-- ELSE -->bg2<!-- ENDIF -->"> <tr class="<!-- IF memberrow.S_ROW_COUNT is even -->bg1<!-- ELSE -->bg2<!-- ENDIF -->">
<td><!-- IF memberrow.RANK_IMG --><span class="rank-img">{memberrow.RANK_IMG}</span><!-- ELSE --><span class="rank-img">{memberrow.RANK_TITLE}</span><!-- ENDIF --><!-- IF S_IN_SEARCH_POPUP and not S_SELECT_SINGLE --><input type="checkbox" name="user" value="{memberrow.USERNAME}" /> <!-- ENDIF -->{memberrow.USERNAME_FULL}<!-- IF S_SELECT_SINGLE --><br />[&nbsp;<a href="#" onclick="insert_single('{memberrow.A_USERNAME}'); return false;">{L_SELECT}</a>&nbsp;]<!-- ENDIF --></td> <td><!-- IF memberrow.RANK_IMG --><span class="rank-img">{memberrow.RANK_IMG}</span><!-- ELSE --><span class="rank-img">{memberrow.RANK_TITLE}</span><!-- ENDIF --><!-- IF S_IN_SEARCH_POPUP and not S_SELECT_SINGLE --><input type="checkbox" name="user" value="{memberrow.USERNAME}" /> <!-- ENDIF --><!-- EVENT memberlist_body_username_prepend -->{memberrow.USERNAME_FULL}<!-- EVENT memberlist_body_username_append --><!-- IF S_SELECT_SINGLE --><br />[&nbsp;<a href="#" onclick="insert_single('{memberrow.A_USERNAME}'); return false;">{L_SELECT}</a>&nbsp;]<!-- ENDIF --></td>
<td class="posts"><!-- IF memberrow.POSTS and S_DISPLAY_SEARCH --><a href="{memberrow.U_SEARCH_USER}" title="{L_SEARCH_USER_POSTS}">{memberrow.POSTS}</a><!-- ELSE -->{memberrow.POSTS}<!-- ENDIF --></td> <td class="posts"><!-- IF memberrow.POSTS and S_DISPLAY_SEARCH --><a href="{memberrow.U_SEARCH_USER}" title="{L_SEARCH_USER_POSTS}">{memberrow.POSTS}</a><!-- ELSE -->{memberrow.POSTS}<!-- ENDIF --></td>
<td class="info"><!-- IF memberrow.U_WWW or memberrow.LOCATION --><!-- IF memberrow.U_WWW --><div><a href="{memberrow.U_WWW}" title="{L_VISIT_WEBSITE}{L_COLON} {memberrow.U_WWW}">{memberrow.U_SHORT_WWW}</a></div><!-- ENDIF --><!-- IF memberrow.LOCATION --><div>{memberrow.LOCATION}</div><!-- ENDIF --><!-- ELSE -->&nbsp;<!-- ENDIF --></td> <td class="info"><!-- IF memberrow.U_WWW or memberrow.LOCATION --><!-- IF memberrow.U_WWW --><div><a href="{memberrow.U_WWW}" title="{L_VISIT_WEBSITE}{L_COLON} {memberrow.U_WWW}">{memberrow.U_SHORT_WWW}</a></div><!-- ENDIF --><!-- IF memberrow.LOCATION --><div>{memberrow.LOCATION}</div><!-- ENDIF --><!-- ELSE -->&nbsp;<!-- ENDIF --></td>
<td>{memberrow.JOINED}</td> <td>{memberrow.JOINED}</td>

View file

@ -38,7 +38,6 @@ function insert_single(user)
// ]]> // ]]>
</script> </script>
<!-- ENDIF --> <!-- ENDIF -->
<!-- INCLUDEJS forum_fn.js -->
<h2 class="solo">{L_FIND_USERNAME}</h2> <h2 class="solo">{L_FIND_USERNAME}</h2>
<form method="post" action="{S_MODE_ACTION}" id="search_memberlist"> <form method="post" action="{S_MODE_ACTION}" id="search_memberlist">

View file

@ -77,6 +77,7 @@
<div class="column2"> <div class="column2">
<h3>{L_USER_FORUM}</h3> <h3>{L_USER_FORUM}</h3>
<dl class="details"> <dl class="details">
<!-- EVENT memberlist_view_user_statistics_before -->
<dt>{L_JOINED}{L_COLON}</dt> <dd>{JOINED}</dd> <dt>{L_JOINED}{L_COLON}</dt> <dd>{JOINED}</dd>
<dt>{L_VISITED}{L_COLON}</dt> <dd>{VISITED}</dd> <dt>{L_VISITED}{L_COLON}</dt> <dd>{VISITED}</dd>
<!-- IF S_WARNINGS --> <!-- IF S_WARNINGS -->
@ -92,6 +93,7 @@
<dt>{L_ACTIVE_IN_FORUM}{L_COLON}</dt> <dd><!-- IF ACTIVE_FORUM != '' --><strong><a href="{U_ACTIVE_FORUM}">{ACTIVE_FORUM}</a></strong><br />({ACTIVE_FORUM_POSTS} / {ACTIVE_FORUM_PCT})<!-- ELSE --> - <!-- ENDIF --></dd> <dt>{L_ACTIVE_IN_FORUM}{L_COLON}</dt> <dd><!-- IF ACTIVE_FORUM != '' --><strong><a href="{U_ACTIVE_FORUM}">{ACTIVE_FORUM}</a></strong><br />({ACTIVE_FORUM_POSTS} / {ACTIVE_FORUM_PCT})<!-- ELSE --> - <!-- ENDIF --></dd>
<dt>{L_ACTIVE_IN_TOPIC}{L_COLON}</dt> <dd><!-- IF ACTIVE_TOPIC != '' --><strong><a href="{U_ACTIVE_TOPIC}">{ACTIVE_TOPIC}</a></strong><br />({ACTIVE_TOPIC_POSTS} / {ACTIVE_TOPIC_PCT})<!-- ELSE --> - <!-- ENDIF --></dd> <dt>{L_ACTIVE_IN_TOPIC}{L_COLON}</dt> <dd><!-- IF ACTIVE_TOPIC != '' --><strong><a href="{U_ACTIVE_TOPIC}">{ACTIVE_TOPIC}</a></strong><br />({ACTIVE_TOPIC_POSTS} / {ACTIVE_TOPIC_PCT})<!-- ELSE --> - <!-- ENDIF --></dd>
<!-- ENDIF --> <!-- ENDIF -->
<!-- EVENT memberlist_view_user_statistics_after -->
</dl> </dl>
</div> </div>
<span class="clear"></span></div> <span class="clear"></span></div>

View file

@ -30,8 +30,6 @@
var on_page = '{ON_PAGE}'; var on_page = '{ON_PAGE}';
var per_page = '{PER_PAGE}'; var per_page = '{PER_PAGE}';
var base_url = '{A_BASE_URL}'; var base_url = '{A_BASE_URL}';
var style_cookie = 'phpBBstyle';
var style_cookie_settings = '{A_COOKIE_SETTINGS}';
var onload_functions = new Array(); var onload_functions = new Array();
var onunload_functions = new Array(); var onunload_functions = new Array();
@ -177,7 +175,6 @@
<!-- IF U_RESTORE_PERMISSIONS --> <!-- IF U_RESTORE_PERMISSIONS -->
<li class="icon-restore-permissions"><a href="{U_RESTORE_PERMISSIONS}">{L_RESTORE_PERMISSIONS}</a></li> <li class="icon-restore-permissions"><a href="{U_RESTORE_PERMISSIONS}">{L_RESTORE_PERMISSIONS}</a></li>
<!-- ENDIF --> <!-- ENDIF -->
</li>
</ul> </ul>
<!-- ENDIF --> <!-- ENDIF -->

View file

@ -26,7 +26,7 @@
<dl> <dl>
<dt><label for="poll_max_options">{L_POLL_MAX_OPTIONS}{L_COLON}</label></dt> <dt><label for="poll_max_options">{L_POLL_MAX_OPTIONS}{L_COLON}</label></dt>
<dd><input type="number" min="1" max="999" name="poll_max_options" id="poll_max_options" size="3" maxlength="3" value="{POLL_MAX_OPTIONS}" class="inputbox autowidth" /></dd> <dd><input type="number" min="0" max="999" name="poll_max_options" id="poll_max_options" size="3" maxlength="3" value="{POLL_MAX_OPTIONS}" class="inputbox autowidth" /></dd>
<dd>{L_POLL_MAX_OPTIONS_EXPLAIN}</dd> <dd>{L_POLL_MAX_OPTIONS_EXPLAIN}</dd>
</dl> </dl>
<dl> <dl>

View file

@ -2,8 +2,8 @@
<script type="text/javascript"> <script type="text/javascript">
// <![CDATA[ // <![CDATA[
var form_name = 'postform'; var form_name = opener.form_name;
var text_name = 'message'; var text_name = opener.text_name;
// ]]> // ]]>
</script> </script>
<script type="text/javascript" src="{T_SUPER_TEMPLATE_PATH}/editor.js"></script> <script type="text/javascript" src="{T_SUPER_TEMPLATE_PATH}/editor.js"></script>

View file

@ -63,6 +63,7 @@
<dt <!-- IF searchresults.TOPIC_ICON_IMG -->style="background-image: url({T_ICONS_PATH}{searchresults.TOPIC_ICON_IMG}); background-repeat: no-repeat;"<!-- ENDIF --> title="{searchresults.TOPIC_FOLDER_IMG_ALT}"> <dt <!-- IF searchresults.TOPIC_ICON_IMG -->style="background-image: url({T_ICONS_PATH}{searchresults.TOPIC_ICON_IMG}); background-repeat: no-repeat;"<!-- ENDIF --> title="{searchresults.TOPIC_FOLDER_IMG_ALT}">
<div class="list-inner"> <div class="list-inner">
<!-- EVENT topiclist_row_prepend -->
<!-- IF searchresults.S_UNREAD_TOPIC --><a href="{searchresults.U_NEWEST_POST}">{NEWEST_POST_IMG}</a> <!-- ENDIF --> <!-- IF searchresults.S_UNREAD_TOPIC --><a href="{searchresults.U_NEWEST_POST}">{NEWEST_POST_IMG}</a> <!-- ENDIF -->
<a href="{searchresults.U_VIEW_TOPIC}" class="topictitle">{searchresults.TOPIC_TITLE}</a> {searchresults.ATTACH_ICON_IMG} <a href="{searchresults.U_VIEW_TOPIC}" class="topictitle">{searchresults.TOPIC_TITLE}</a> {searchresults.ATTACH_ICON_IMG}
<!-- IF searchresults.S_TOPIC_UNAPPROVED or searchresults.S_POSTS_UNAPPROVED --><a href="{searchresults.U_MCP_QUEUE}">{searchresults.UNAPPROVED_IMG}</a> <!-- ENDIF --> <!-- IF searchresults.S_TOPIC_UNAPPROVED or searchresults.S_POSTS_UNAPPROVED --><a href="{searchresults.U_MCP_QUEUE}">{searchresults.UNAPPROVED_IMG}</a> <!-- ENDIF -->
@ -83,6 +84,7 @@
</div> </div>
<!-- ENDIF --> <!-- ENDIF -->
{L_POST_BY_AUTHOR} {searchresults.TOPIC_AUTHOR_FULL} &raquo; {searchresults.FIRST_POST_TIME} &raquo; {L_IN} <a href="{searchresults.U_VIEW_FORUM}">{searchresults.FORUM_TITLE}</a> {L_POST_BY_AUTHOR} {searchresults.TOPIC_AUTHOR_FULL} &raquo; {searchresults.FIRST_POST_TIME} &raquo; {L_IN} <a href="{searchresults.U_VIEW_FORUM}">{searchresults.FORUM_TITLE}</a>
<!-- EVENT topiclist_row_append -->
</div> </div>
</dt> </dt>
@ -174,20 +176,7 @@
{SEARCH_MATCHES} {SEARCH_MATCHES}
<!-- IF .pagination --> <!-- IF .pagination -->
&bull; &bull;
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{PAGE_NUMBER}</a> &bull; <!-- INCLUDE pagination.html -->
<ul>
<!-- BEGIN pagination -->
<!-- IF pagination.S_IS_PREV -->
<!-- ELSEIF pagination.S_IS_CURRENT -->
<li class="active"><span>{pagination.PAGE_NUMBER}</span></li>
<!-- ELSEIF pagination.S_IS_ELLIPSIS -->
<li class="ellipsis"><span>{L_ELLIPSIS}</span></li>
<!-- ELSEIF pagination.S_IS_NEXT -->
<!-- ELSE -->
<li><a href="{pagination.PAGE_URL}">{pagination.PAGE_NUMBER}</a></li>
<!-- ENDIF -->
<!-- END pagination -->
</ul>
<!-- ELSE --> <!-- ELSE -->
{PAGE_NUMBER} {PAGE_NUMBER}
<!-- ENDIF --> <!-- ENDIF -->

View file

@ -8,9 +8,11 @@
<script type="text/javascript" src="{T_JQUERY_LINK}"></script> <script type="text/javascript" src="{T_JQUERY_LINK}"></script>
<!-- IF S_JQUERY_FALLBACK --><script type="text/javascript">window.jQuery || document.write(unescape('%3Cscript src="{T_ASSETS_PATH}/javascript/jquery.js?assets_version={T_ASSETS_VERSION}" type="text/javascript"%3E%3C/script%3E'));</script><!-- ENDIF --> <!-- IF S_JQUERY_FALLBACK --><script type="text/javascript">window.jQuery || document.write(unescape('%3Cscript src="{T_ASSETS_PATH}/javascript/jquery.js?assets_version={T_ASSETS_VERSION}" type="text/javascript"%3E%3C/script%3E'));</script><!-- ENDIF -->
<script type="text/javascript" src="{T_SUPER_TEMPLATE_PATH}/forum_fn.js?assets_version={T_ASSETS_VERSION}"></script> <!-- INCLUDEJS forum_fn.js -->
{SCRIPTS}
<!-- EVENT simple_footer_after --> <!-- EVENT simple_footer_after -->
{$SCRIPTS}
</body> </body>
</html> </html>

View file

@ -14,10 +14,8 @@
var on_page = '{ON_PAGE}'; var on_page = '{ON_PAGE}';
var per_page = '{PER_PAGE}'; var per_page = '{PER_PAGE}';
var base_url = '{A_BASE_URL}'; var base_url = '{A_BASE_URL}';
var style_cookie = 'phpBBstyle';
var onload_functions = new Array(); var onload_functions = new Array();
var onunload_functions = new Array(); var onunload_functions = new Array();
var style_cookie_settings = '{A_COOKIE_SETTINGS}';
/** /**
* New function for handling multiple calls to window.onload and window.unload by pentapenguin * New function for handling multiple calls to window.onload and window.unload by pentapenguin

View file

@ -53,7 +53,7 @@
</dl> </dl>
</li> </li>
</ul> </ul>
<ul class="topiclist cplist pmlist two-columns"> <ul class="topiclist cplist pmlist <!-- IF S_SHOW_RECIPIENTS -->missing-column<!-- ELSE -->two-columns<!-- ENDIF -->">
<!-- BEGIN messagerow --> <!-- BEGIN messagerow -->
<li class="row<!-- IF messagerow.S_ROW_COUNT is odd --> bg1<!-- ELSE --> bg2<!-- ENDIF --><!-- IF messagerow.PM_CLASS --> {messagerow.PM_CLASS}<!-- ENDIF -->"> <li class="row<!-- IF messagerow.S_ROW_COUNT is odd --> bg1<!-- ELSE --> bg2<!-- ENDIF --><!-- IF messagerow.PM_CLASS --> {messagerow.PM_CLASS}<!-- ENDIF -->">

View file

@ -85,9 +85,11 @@
<!-- IF AUTHOR_JOINED --><dd><strong>{L_JOINED}{L_COLON}</strong> {AUTHOR_JOINED}</dd><!-- ENDIF --> <!-- IF AUTHOR_JOINED --><dd><strong>{L_JOINED}{L_COLON}</strong> {AUTHOR_JOINED}</dd><!-- ENDIF -->
<!-- IF AUTHOR_FROM --><dd><strong>{L_LOCATION}{L_COLON}</strong> {AUTHOR_FROM}</dd><!-- ENDIF --> <!-- IF AUTHOR_FROM --><dd><strong>{L_LOCATION}{L_COLON}</strong> {AUTHOR_FROM}</dd><!-- ENDIF -->
<!-- EVENT ucp_pm_viewmessage_custom_fields_before -->
<!-- BEGIN custom_fields --> <!-- BEGIN custom_fields -->
<dd><strong>{custom_fields.PROFILE_FIELD_NAME}{L_COLON}</strong> {custom_fields.PROFILE_FIELD_VALUE}</dd> <dd><strong>{custom_fields.PROFILE_FIELD_NAME}{L_COLON}</strong> {custom_fields.PROFILE_FIELD_VALUE}</dd>
<!-- END custom_fields --> <!-- END custom_fields -->
<!-- EVENT ucp_pm_viewmessage_custom_fields_after -->
<!-- IF U_PM or U_EMAIL or U_WWW or U_MSN or U_ICQ or U_YIM or U_AIM or U_JABBER --> <!-- IF U_PM or U_EMAIL or U_WWW or U_MSN or U_ICQ or U_YIM or U_AIM or U_JABBER -->

View file

@ -144,6 +144,7 @@
<dl class="icon {topicrow.TOPIC_IMG_STYLE}"> <dl class="icon {topicrow.TOPIC_IMG_STYLE}">
<dt<!-- IF topicrow.TOPIC_ICON_IMG and S_TOPIC_ICONS --> style="background-image: url({T_ICONS_PATH}{topicrow.TOPIC_ICON_IMG}); background-repeat: no-repeat;"<!-- ENDIF --> title="{topicrow.TOPIC_FOLDER_IMG_ALT}"> <dt<!-- IF topicrow.TOPIC_ICON_IMG and S_TOPIC_ICONS --> style="background-image: url({T_ICONS_PATH}{topicrow.TOPIC_ICON_IMG}); background-repeat: no-repeat;"<!-- ENDIF --> title="{topicrow.TOPIC_FOLDER_IMG_ALT}">
<div class="list-inner"> <div class="list-inner">
<!-- EVENT topiclist_row_prepend -->
<!-- IF topicrow.S_UNREAD_TOPIC --><a href="{topicrow.U_NEWEST_POST}">{NEWEST_POST_IMG}</a> <!-- ENDIF --><a href="{topicrow.U_VIEW_TOPIC}" class="topictitle">{topicrow.TOPIC_TITLE}</a> <!-- IF topicrow.S_UNREAD_TOPIC --><a href="{topicrow.U_NEWEST_POST}">{NEWEST_POST_IMG}</a> <!-- ENDIF --><a href="{topicrow.U_VIEW_TOPIC}" class="topictitle">{topicrow.TOPIC_TITLE}</a>
<!-- IF topicrow.S_TOPIC_UNAPPROVED or topicrow.S_POSTS_UNAPPROVED --><a href="{topicrow.U_MCP_QUEUE}">{topicrow.UNAPPROVED_IMG}</a> <!-- ENDIF --> <!-- IF topicrow.S_TOPIC_UNAPPROVED or topicrow.S_POSTS_UNAPPROVED --><a href="{topicrow.U_MCP_QUEUE}">{topicrow.UNAPPROVED_IMG}</a> <!-- ENDIF -->
<!-- IF topicrow.S_TOPIC_DELETED --><a href="{topicrow.U_MCP_QUEUE}">{DELETED_IMG}</a> <!-- ENDIF --> <!-- IF topicrow.S_TOPIC_DELETED --><a href="{topicrow.U_MCP_QUEUE}">{DELETED_IMG}</a> <!-- ENDIF -->
@ -164,6 +165,7 @@
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF topicrow.ATTACH_ICON_IMG -->{topicrow.ATTACH_ICON_IMG} <!-- ENDIF -->{L_POST_BY_AUTHOR} {topicrow.TOPIC_AUTHOR_FULL} &raquo; {topicrow.FIRST_POST_TIME} <!-- IF topicrow.ATTACH_ICON_IMG -->{topicrow.ATTACH_ICON_IMG} <!-- ENDIF -->{L_POST_BY_AUTHOR} {topicrow.TOPIC_AUTHOR_FULL} &raquo; {topicrow.FIRST_POST_TIME}
<!-- IF topicrow.S_POST_GLOBAL and FORUM_ID != topicrow.FORUM_ID --> &raquo; {L_IN} <a href="{topicrow.U_VIEW_FORUM}">{topicrow.FORUM_NAME}</a><!-- ENDIF --> <!-- IF topicrow.S_POST_GLOBAL and FORUM_ID != topicrow.FORUM_ID --> &raquo; {L_IN} <a href="{topicrow.U_VIEW_FORUM}">{topicrow.FORUM_NAME}</a><!-- ENDIF -->
<!-- EVENT topiclist_row_append -->
</div> </div>
</dt> </dt>
<dd class="posts">{topicrow.REPLIES} <dfn>{L_REPLIES}</dfn></dd> <dd class="posts">{topicrow.REPLIES} <dfn>{L_REPLIES}</dfn></dd>

View file

@ -136,12 +136,14 @@
<!-- IF not S_IS_BOT --> <!-- IF not S_IS_BOT -->
<!-- IF postrow.U_EDIT or postrow.U_DELETE or postrow.U_REPORT or postrow.U_WARN or postrow.U_INFO or postrow.U_QUOTE --> <!-- IF postrow.U_EDIT or postrow.U_DELETE or postrow.U_REPORT or postrow.U_WARN or postrow.U_INFO or postrow.U_QUOTE -->
<ul class="profile-icons"> <ul class="profile-icons">
<!-- EVENT viewtopic_body_post_buttons_before -->
<!-- IF postrow.U_EDIT --><li class="edit-icon"><a href="{postrow.U_EDIT}" title="{L_EDIT_POST}"><span>{L_EDIT_POST}</span></a></li><!-- ENDIF --> <!-- IF postrow.U_EDIT --><li class="edit-icon"><a href="{postrow.U_EDIT}" title="{L_EDIT_POST}"><span>{L_EDIT_POST}</span></a></li><!-- ENDIF -->
<!-- IF postrow.U_DELETE --><li class="delete-icon"><a href="{postrow.U_DELETE}" title="{L_DELETE_POST}"><span>{L_DELETE_POST}</span></a></li><!-- ENDIF --> <!-- IF postrow.U_DELETE --><li class="delete-icon"><a href="{postrow.U_DELETE}" title="{L_DELETE_POST}"><span>{L_DELETE_POST}</span></a></li><!-- ENDIF -->
<!-- IF postrow.U_REPORT --><li class="report-icon"><a href="{postrow.U_REPORT}" title="{L_REPORT_POST}"><span>{L_REPORT_POST}</span></a></li><!-- ENDIF --> <!-- IF postrow.U_REPORT --><li class="report-icon"><a href="{postrow.U_REPORT}" title="{L_REPORT_POST}"><span>{L_REPORT_POST}</span></a></li><!-- ENDIF -->
<!-- IF postrow.U_WARN --><li class="warn-icon"><a href="{postrow.U_WARN}" title="{L_WARN_USER}"><span>{L_WARN_USER}</span></a></li><!-- ENDIF --> <!-- IF postrow.U_WARN --><li class="warn-icon"><a href="{postrow.U_WARN}" title="{L_WARN_USER}"><span>{L_WARN_USER}</span></a></li><!-- ENDIF -->
<!-- IF postrow.U_INFO --><li class="info-icon"><a href="{postrow.U_INFO}" title="{L_INFORMATION}"><span>{L_INFORMATION}</span></a></li><!-- ENDIF --> <!-- IF postrow.U_INFO --><li class="info-icon"><a href="{postrow.U_INFO}" title="{L_INFORMATION}"><span>{L_INFORMATION}</span></a></li><!-- ENDIF -->
<!-- IF postrow.U_QUOTE --><li class="quote-icon"><a href="{postrow.U_QUOTE}" title="{L_REPLY_WITH_QUOTE}"><span>{L_REPLY_WITH_QUOTE}</span></a></li><!-- ENDIF --> <!-- IF postrow.U_QUOTE --><li class="quote-icon"><a href="{postrow.U_QUOTE}" title="{L_REPLY_WITH_QUOTE}"><span>{L_REPLY_WITH_QUOTE}</span></a></li><!-- ENDIF -->
<!-- EVENT viewtopic_body_post_buttons_after -->
</ul> </ul>
<!-- ENDIF --> <!-- ENDIF -->
<!-- ENDIF --> <!-- ENDIF -->
@ -237,9 +239,11 @@
<dd><strong>{postrow.PROFILE_FIELD1_NAME}{L_COLON}</strong> {postrow.PROFILE_FIELD1_VALUE}</dd> <dd><strong>{postrow.PROFILE_FIELD1_NAME}{L_COLON}</strong> {postrow.PROFILE_FIELD1_VALUE}</dd>
<!-- ENDIF --> <!-- ENDIF -->
<!-- EVENT viewtopic_body_postrow_custom_fields_before -->
<!-- BEGIN custom_fields --> <!-- BEGIN custom_fields -->
<dd><strong>{postrow.custom_fields.PROFILE_FIELD_NAME}{L_COLON}</strong> {postrow.custom_fields.PROFILE_FIELD_VALUE}</dd> <dd><strong>{postrow.custom_fields.PROFILE_FIELD_NAME}{L_COLON}</strong> {postrow.custom_fields.PROFILE_FIELD_VALUE}</dd>
<!-- END custom_fields --> <!-- END custom_fields -->
<!-- EVENT viewtopic_body_postrow_custom_fields_after -->
<!-- IF not S_IS_BOT --> <!-- IF not S_IS_BOT -->
<!-- IF postrow.U_PM or postrow.U_EMAIL or postrow.U_WWW or postrow.U_MSN or postrow.U_ICQ or postrow.U_YIM or postrow.U_AIM or postrow.U_JABBER --> <!-- IF postrow.U_PM or postrow.U_EMAIL or postrow.U_WWW or postrow.U_MSN or postrow.U_ICQ or postrow.U_YIM or postrow.U_AIM or postrow.U_JABBER -->
@ -308,17 +312,7 @@
<div class="pagination"> <div class="pagination">
{TOTAL_POSTS} &bull; {TOTAL_POSTS} &bull;
<!-- IF .pagination --> <!-- IF .pagination -->
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{PAGE_NUMBER}</a> &bull; <!-- INCLUDE pagination.html -->
<ul>
<!-- BEGIN pagination -->
<!-- IF pagination.S_IS_PREV -->
<!-- ELSEIF pagination.S_IS_CURRENT --><li class="active"><span>{pagination.PAGE_NUMBER}</span></li>
<!-- ELSEIF pagination.S_IS_ELLIPSIS --><li class="ellipsis"><span>{L_ELLIPSIS}</span></li>
<!-- ELSEIF pagination.S_IS_NEXT -->
<!-- ELSE --><li><a href="{pagination.PAGE_URL}">{pagination.PAGE_NUMBER}</a></li>
<!-- ENDIF -->
<!-- END pagination -->
</ul>
<!-- ELSE --> <!-- ELSE -->
{PAGE_NUMBER} {PAGE_NUMBER}
<!-- ENDIF --> <!-- ENDIF -->

View file

@ -422,7 +422,7 @@
margin-left: 0; margin-left: 0;
} }
.rtl blockquote dl.codebox { .rtl blockquote .codebox {
margin-right: 0; margin-right: 0;
} }

View file

@ -77,7 +77,7 @@ hr {
} }
.bg1 { background-color: #ECF3F7; } .bg1 { background-color: #ECF3F7; }
.bg2 { background-color: #e1ebf2; } .bg2 { background-color: #e1ebf2; }
.bg3 { background-color: #cadceb; } .bg3 { background-color: #cadceb; }
.ucprowbg { .ucprowbg {
@ -331,10 +331,10 @@ a.top2 {
} }
/* Arrow links */ /* Arrow links */
a.arrow-up { background-image: url("./images/arrow_up.gif") } a.arrow-up { background-image: url("./images/arrow_up.gif"); }
a.arrow-down { background-image: url("./images/arrow_down.gif") } a.arrow-down { background-image: url("./images/arrow_down.gif"); }
a.arrow-left { background-image: url("./images/arrow_left.gif") } a.arrow-left { background-image: url("./images/arrow_left.gif"); }
a.arrow-right { background-image: url("./images/arrow_right.gif") } a.arrow-right { background-image: url("./images/arrow_right.gif"); }
a.arrow-up:hover { a.arrow-up:hover {
background-color: transparent; background-color: transparent;
@ -470,16 +470,16 @@ blockquote blockquote blockquote {
} }
/* Code block */ /* Code block */
dl.codebox { .codebox {
background-color: #FFFFFF; background-color: #FFFFFF;
border-color: #C9D2D8; border-color: #C9D2D8;
} }
dl.codebox dt { .codebox p {
border-bottom-color: #CCCCCC; border-bottom-color: #CCCCCC;
} }
dl.codebox code { .codebox code {
color: #2E8B57; color: #2E8B57;
} }

View file

@ -472,13 +472,13 @@ blockquote.uncited {
} }
/* Code block */ /* Code block */
dl.codebox { .codebox {
padding: 3px; padding: 3px;
border: 1px solid transparent; border: 1px solid transparent;
font-size: 1em; font-size: 1em;
} }
dl.codebox dt { .codebox p {
text-transform: uppercase; text-transform: uppercase;
border-bottom: 1px solid transparent; border-bottom: 1px solid transparent;
margin-bottom: 3px; margin-bottom: 3px;
@ -487,11 +487,11 @@ dl.codebox dt {
display: block; display: block;
} }
blockquote dl.codebox { blockquote .codebox {
margin-left: 0; margin-left: 0;
} }
dl.codebox code { .codebox code {
/* Also see tweaks.css */ /* Also see tweaks.css */
overflow: auto; overflow: auto;
display: block; display: block;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Some files were not shown because too many files have changed in this diff Show more