aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbuild/build_diff.php12
-rw-r--r--build/build_helper.php9
-rwxr-xr-xgit-tools/hooks/commit-msg257
-rwxr-xr-xgit-tools/hooks/install17
-rwxr-xr-xgit-tools/hooks/pre-commit7
-rwxr-xr-xgit-tools/hooks/prepare-commit-msg10
-rwxr-xr-xgit-tools/hooks/uninstall16
-rw-r--r--phpBB/adm/style/acp_ban.html6
-rw-r--r--phpBB/adm/style/admin.css6
-rw-r--r--phpBB/adm/style/editor.js15
-rwxr-xr-xphpBB/develop/set_permissions.sh9
-rw-r--r--phpBB/docs/coding-guidelines.html2
-rw-r--r--phpBB/docs/nginx.conf.sample70
-rw-r--r--phpBB/download/file.php8
-rw-r--r--phpBB/feed.php4
-rw-r--r--phpBB/includes/acp/acp_ban.php4
-rw-r--r--phpBB/includes/acp/acp_board.php2
-rw-r--r--phpBB/includes/acp/acp_forums.php5
-rw-r--r--phpBB/includes/acp/acp_users.php12
-rw-r--r--phpBB/includes/acp/info/acp_board.php2
-rw-r--r--phpBB/includes/cache.php9
-rw-r--r--phpBB/includes/captcha/plugins/captcha_abstract.php8
-rw-r--r--phpBB/includes/class_loader.php2
-rw-r--r--phpBB/includes/db/firebird.php11
-rw-r--r--phpBB/includes/db/mssql.php7
-rw-r--r--phpBB/includes/db/mssql_odbc.php7
-rwxr-xr-x[-rw-r--r--]phpBB/includes/db/mssqlnative.php15
-rw-r--r--phpBB/includes/db/mysql.php7
-rw-r--r--phpBB/includes/db/mysqli.php8
-rw-r--r--phpBB/includes/db/oracle.php10
-rw-r--r--phpBB/includes/db/postgres.php7
-rw-r--r--phpBB/includes/db/sqlite.php11
-rw-r--r--phpBB/includes/functions.php197
-rw-r--r--phpBB/includes/functions_admin.php90
-rw-r--r--phpBB/includes/functions_convert.php3
-rw-r--r--phpBB/includes/functions_display.php6
-rw-r--r--phpBB/includes/functions_messenger.php7
-rw-r--r--phpBB/includes/functions_posting.php2
-rw-r--r--phpBB/includes/functions_privmsgs.php7
-rw-r--r--phpBB/includes/functions_user.php56
-rw-r--r--phpBB/includes/mcp/mcp_main.php35
-rw-r--r--phpBB/includes/mcp/mcp_post.php4
-rw-r--r--phpBB/includes/mcp/mcp_queue.php21
-rw-r--r--phpBB/includes/mcp/mcp_reports.php2
-rw-r--r--phpBB/includes/mcp/mcp_topic.php2
-rw-r--r--phpBB/includes/search/fulltext_mysql.php2
-rw-r--r--phpBB/includes/search/fulltext_native.php13
-rw-r--r--phpBB/includes/session.php6
-rw-r--r--phpBB/includes/ucp/ucp_main.php4
-rw-r--r--phpBB/includes/ucp/ucp_profile.php7
-rw-r--r--phpBB/includes/ucp/ucp_register.php6
-rw-r--r--phpBB/includes/ucp/ucp_remind.php4
-rw-r--r--phpBB/index.php8
-rw-r--r--phpBB/install/database_update.php112
-rw-r--r--phpBB/install/install_convert.php2
-rw-r--r--phpBB/install/install_install.php1
-rw-r--r--phpBB/install/install_update.php11
-rw-r--r--phpBB/language/en/acp/board.php15
-rw-r--r--phpBB/language/en/acp/styles.php44
-rw-r--r--phpBB/language/en/acp/users.php1
-rw-r--r--phpBB/language/en/common.php9
-rw-r--r--phpBB/language/en/help_faq.php2
-rw-r--r--phpBB/language/en/viewforum.php13
-rw-r--r--phpBB/style.php21
-rw-r--r--phpBB/styles/prosilver/template/editor.js6
-rw-r--r--phpBB/styles/prosilver/template/forum_fn.js13
-rw-r--r--phpBB/styles/prosilver/template/mcp_post.html4
-rw-r--r--phpBB/styles/prosilver/template/posting_topic_review.html2
-rw-r--r--phpBB/styles/prosilver/template/ucp_pm_history.html4
-rw-r--r--phpBB/styles/prosilver/template/viewforum_body.html2
-rw-r--r--phpBB/styles/prosilver/theme/bidi.css1
-rw-r--r--phpBB/styles/prosilver/theme/content.css9
-rw-r--r--phpBB/styles/subsilver2/imageset/announce_read.gifbin0 -> 307 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/announce_read_locked.gifbin0 -> 304 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/announce_read_locked_mine.gifbin0 -> 324 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/announce_read_mine.gifbin0 -> 328 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/announce_unread.gifbin0 -> 289 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/announce_unread_locked.gifbin0 -> 292 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/announce_unread_locked_mine.gifbin0 -> 308 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/announce_unread_mine.gifbin0 -> 305 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/en/button_pm_new.gifbin0 -> 1135 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/en/button_pm_reply.gifbin0 -> 1667 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/en/button_topic_locked.gifbin0 -> 1101 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/en/button_topic_new.gifbin0 -> 1164 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/en/button_topic_reply.gifbin0 -> 1234 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/en/icon_contact_aim.gifbin0 -> 580 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/en/icon_contact_email.gifbin0 -> 659 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/en/icon_contact_icq.gifbin0 -> 574 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/en/icon_contact_jabber.gifbin0 -> 674 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/en/icon_contact_msnm.gifbin0 -> 622 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/en/icon_contact_pm.gifbin0 -> 706 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/en/icon_contact_www.gifbin0 -> 604 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/en/icon_contact_yahoo.gifbin0 -> 663 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/en/icon_post_delete.gifbin0 -> 314 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/en/icon_post_edit.gifbin0 -> 662 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/en/icon_post_info.gifbin0 -> 305 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/en/icon_post_quote.gifbin0 -> 666 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/en/icon_post_report.gifbin0 -> 308 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/en/icon_user_offline.gifbin0 -> 547 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/en/icon_user_online.gifbin0 -> 520 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/en/icon_user_profile.gifbin0 -> 667 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/en/icon_user_search.gifbin0 -> 608 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/en/icon_user_warn.gifbin0 -> 673 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/en/imageset.cfg47
-rw-r--r--phpBB/styles/subsilver2/imageset/forum_link.gifbin0 -> 714 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/forum_read.gifbin0 -> 677 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/forum_read_locked.gifbin0 -> 673 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/forum_read_subforum.gifbin0 -> 705 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/forum_unread.gifbin0 -> 663 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/forum_unread_locked.gifbin0 -> 660 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/forum_unread_subforum.gifbin0 -> 688 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/icon_post_target.gifbin0 -> 122 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/icon_post_target_unread.gifbin0 -> 122 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/icon_topic_attach.gifbin0 -> 217 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/icon_topic_latest.gifbin0 -> 135 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/icon_topic_newest.gifbin0 -> 133 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/icon_topic_reported.gifbin0 -> 462 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/icon_topic_unapproved.gifbin0 -> 334 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/imageset.cfg100
-rw-r--r--phpBB/styles/subsilver2/imageset/poll_center.gifbin0 -> 92 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/poll_left.gifbin0 -> 113 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/poll_right.gifbin0 -> 113 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/site_logo.gifbin0 -> 7151 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/sticky_read.gifbin0 -> 344 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/sticky_read_locked.gifbin0 -> 338 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/sticky_read_locked_mine.gifbin0 -> 336 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/sticky_read_mine.gifbin0 -> 352 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/sticky_unread.gifbin0 -> 325 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/sticky_unread_locked.gifbin0 -> 324 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/sticky_unread_locked_mine.gifbin0 -> 336 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/sticky_unread_mine.gifbin0 -> 339 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/topic_moved.gifbin0 -> 660 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/topic_read.gifbin0 -> 344 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/topic_read_hot.gifbin0 -> 1902 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/topic_read_hot_mine.gifbin0 -> 1903 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/topic_read_locked.gifbin0 -> 333 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/topic_read_locked_mine.gifbin0 -> 337 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/topic_read_mine.gifbin0 -> 350 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/topic_unread.gifbin0 -> 336 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/topic_unread_hot.gifbin0 -> 1888 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/topic_unread_hot_mine.gifbin0 -> 1895 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/topic_unread_locked.gifbin0 -> 459 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/topic_unread_locked_mine.gifbin0 -> 334 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/topic_unread_mine.gifbin0 -> 350 bytes
-rw-r--r--phpBB/styles/subsilver2/imageset/upload_bar.gifbin0 -> 12892 bytes
-rw-r--r--phpBB/styles/subsilver2/style.cfg22
-rw-r--r--phpBB/styles/subsilver2/template/attachment.html121
-rw-r--r--phpBB/styles/subsilver2/template/bbcode.html69
-rw-r--r--phpBB/styles/subsilver2/template/breadcrumbs.html8
-rw-r--r--phpBB/styles/subsilver2/template/captcha_default.html15
-rw-r--r--phpBB/styles/subsilver2/template/captcha_qa.html8
-rw-r--r--phpBB/styles/subsilver2/template/captcha_recaptcha.html35
-rw-r--r--phpBB/styles/subsilver2/template/confirm_body.html28
-rw-r--r--phpBB/styles/subsilver2/template/custom_profile_fields.html31
-rw-r--r--phpBB/styles/subsilver2/template/editor.js459
-rw-r--r--phpBB/styles/subsilver2/template/faq_body.html63
-rw-r--r--phpBB/styles/subsilver2/template/forumlist_body.html74
-rw-r--r--phpBB/styles/subsilver2/template/index.htm16
-rw-r--r--phpBB/styles/subsilver2/template/index_body.html103
-rw-r--r--phpBB/styles/subsilver2/template/jumpbox.html19
-rw-r--r--phpBB/styles/subsilver2/template/login_body.html91
-rw-r--r--phpBB/styles/subsilver2/template/login_forum.html48
-rw-r--r--phpBB/styles/subsilver2/template/mcp_approve.html49
-rw-r--r--phpBB/styles/subsilver2/template/mcp_ban.html109
-rw-r--r--phpBB/styles/subsilver2/template/mcp_footer.html27
-rw-r--r--phpBB/styles/subsilver2/template/mcp_forum.html89
-rw-r--r--phpBB/styles/subsilver2/template/mcp_front.html155
-rw-r--r--phpBB/styles/subsilver2/template/mcp_header.html79
-rw-r--r--phpBB/styles/subsilver2/template/mcp_jumpbox.html18
-rw-r--r--phpBB/styles/subsilver2/template/mcp_logs.html46
-rw-r--r--phpBB/styles/subsilver2/template/mcp_message.html14
-rw-r--r--phpBB/styles/subsilver2/template/mcp_move.html43
-rw-r--r--phpBB/styles/subsilver2/template/mcp_notes_front.html22
-rw-r--r--phpBB/styles/subsilver2/template/mcp_notes_user.html125
-rw-r--r--phpBB/styles/subsilver2/template/mcp_post.html206
-rw-r--r--phpBB/styles/subsilver2/template/mcp_queue.html46
-rw-r--r--phpBB/styles/subsilver2/template/mcp_reports.html67
-rw-r--r--phpBB/styles/subsilver2/template/mcp_topic.html151
-rw-r--r--phpBB/styles/subsilver2/template/mcp_viewlogs.html52
-rw-r--r--phpBB/styles/subsilver2/template/mcp_warn_front.html74
-rw-r--r--phpBB/styles/subsilver2/template/mcp_warn_list.html43
-rw-r--r--phpBB/styles/subsilver2/template/mcp_warn_post.html62
-rw-r--r--phpBB/styles/subsilver2/template/mcp_warn_user.html75
-rw-r--r--phpBB/styles/subsilver2/template/mcp_whois.html15
-rw-r--r--phpBB/styles/subsilver2/template/memberlist_body.html116
-rw-r--r--phpBB/styles/subsilver2/template/memberlist_email.html73
-rw-r--r--phpBB/styles/subsilver2/template/memberlist_group.html17
-rw-r--r--phpBB/styles/subsilver2/template/memberlist_im.html139
-rw-r--r--phpBB/styles/subsilver2/template/memberlist_leaders.html71
-rw-r--r--phpBB/styles/subsilver2/template/memberlist_search.html143
-rw-r--r--phpBB/styles/subsilver2/template/memberlist_view.html207
-rw-r--r--phpBB/styles/subsilver2/template/message_body.html16
-rw-r--r--phpBB/styles/subsilver2/template/overall_footer.html23
-rw-r--r--phpBB/styles/subsilver2/template/overall_header.html214
-rw-r--r--phpBB/styles/subsilver2/template/pagination.html1
-rw-r--r--phpBB/styles/subsilver2/template/posting_attach_body.html83
-rw-r--r--phpBB/styles/subsilver2/template/posting_body.html413
-rw-r--r--phpBB/styles/subsilver2/template/posting_buttons.html88
-rw-r--r--phpBB/styles/subsilver2/template/posting_poll_body.html36
-rw-r--r--phpBB/styles/subsilver2/template/posting_preview.html70
-rw-r--r--phpBB/styles/subsilver2/template/posting_progress_bar.html44
-rw-r--r--phpBB/styles/subsilver2/template/posting_review.html99
-rw-r--r--phpBB/styles/subsilver2/template/posting_smilies.html25
-rw-r--r--phpBB/styles/subsilver2/template/posting_topic_review.html103
-rw-r--r--phpBB/styles/subsilver2/template/quickreply_editor.html27
-rw-r--r--phpBB/styles/subsilver2/template/report_body.html41
-rw-r--r--phpBB/styles/subsilver2/template/search_body.html78
-rw-r--r--phpBB/styles/subsilver2/template/search_results.html146
-rw-r--r--phpBB/styles/subsilver2/template/searchbox.html1
-rw-r--r--phpBB/styles/subsilver2/template/simple_footer.html20
-rw-r--r--phpBB/styles/subsilver2/template/simple_header.html22
-rw-r--r--phpBB/styles/subsilver2/template/template.cfg23
-rw-r--r--phpBB/styles/subsilver2/template/ucp_agreement.html84
-rw-r--r--phpBB/styles/subsilver2/template/ucp_attachments.html58
-rw-r--r--phpBB/styles/subsilver2/template/ucp_footer.html13
-rw-r--r--phpBB/styles/subsilver2/template/ucp_groups_manage.html257
-rw-r--r--phpBB/styles/subsilver2/template/ucp_groups_membership.html93
-rw-r--r--phpBB/styles/subsilver2/template/ucp_header.html163
-rw-r--r--phpBB/styles/subsilver2/template/ucp_main_bookmarks.html77
-rw-r--r--phpBB/styles/subsilver2/template/ucp_main_drafts.html101
-rw-r--r--phpBB/styles/subsilver2/template/ucp_main_front.html72
-rw-r--r--phpBB/styles/subsilver2/template/ucp_main_subscribed.html84
-rw-r--r--phpBB/styles/subsilver2/template/ucp_pm_history.html73
-rw-r--r--phpBB/styles/subsilver2/template/ucp_pm_message_footer.html47
-rw-r--r--phpBB/styles/subsilver2/template/ucp_pm_message_header.html34
-rw-r--r--phpBB/styles/subsilver2/template/ucp_pm_options.html192
-rw-r--r--phpBB/styles/subsilver2/template/ucp_pm_popup.html37
-rw-r--r--phpBB/styles/subsilver2/template/ucp_pm_viewfolder.html131
-rw-r--r--phpBB/styles/subsilver2/template/ucp_pm_viewmessage.html124
-rw-r--r--phpBB/styles/subsilver2/template/ucp_pm_viewmessage_print.html131
-rw-r--r--phpBB/styles/subsilver2/template/ucp_prefs_personal.html98
-rw-r--r--phpBB/styles/subsilver2/template/ucp_prefs_post.html33
-rw-r--r--phpBB/styles/subsilver2/template/ucp_prefs_view.html73
-rw-r--r--phpBB/styles/subsilver2/template/ucp_profile_avatar.html87
-rw-r--r--phpBB/styles/subsilver2/template/ucp_profile_profile_info.html72
-rw-r--r--phpBB/styles/subsilver2/template/ucp_profile_reg_details.html53
-rw-r--r--phpBB/styles/subsilver2/template/ucp_profile_signature.html110
-rw-r--r--phpBB/styles/subsilver2/template/ucp_register.html101
-rw-r--r--phpBB/styles/subsilver2/template/ucp_remind.html28
-rw-r--r--phpBB/styles/subsilver2/template/ucp_resend.html29
-rw-r--r--phpBB/styles/subsilver2/template/ucp_zebra_foes.html28
-rw-r--r--phpBB/styles/subsilver2/template/ucp_zebra_friends.html28
-rw-r--r--phpBB/styles/subsilver2/template/viewforum_body.html329
-rw-r--r--phpBB/styles/subsilver2/template/viewonline_body.html57
-rw-r--r--phpBB/styles/subsilver2/template/viewonline_whois.html12
-rw-r--r--phpBB/styles/subsilver2/template/viewtopic_body.html364
-rw-r--r--phpBB/styles/subsilver2/template/viewtopic_print.html145
-rw-r--r--phpBB/styles/subsilver2/theme/images/background.gifbin0 -> 666 bytes
-rw-r--r--phpBB/styles/subsilver2/theme/images/cellpic.gifbin0 -> 722 bytes
-rw-r--r--phpBB/styles/subsilver2/theme/images/cellpic1.gifbin0 -> 246 bytes
-rw-r--r--phpBB/styles/subsilver2/theme/images/cellpic2.jpgbin0 -> 480 bytes
-rw-r--r--phpBB/styles/subsilver2/theme/images/cellpic2_rtl.jpgbin0 -> 601 bytes
-rw-r--r--phpBB/styles/subsilver2/theme/images/cellpic3.gifbin0 -> 257 bytes
-rw-r--r--phpBB/styles/subsilver2/theme/images/created_by.jpgbin0 -> 15319 bytes
-rw-r--r--phpBB/styles/subsilver2/theme/images/icon_mini_faq.gifbin0 -> 219 bytes
-rw-r--r--phpBB/styles/subsilver2/theme/images/icon_mini_groups.gifbin0 -> 222 bytes
-rw-r--r--phpBB/styles/subsilver2/theme/images/icon_mini_login.gifbin0 -> 233 bytes
-rw-r--r--phpBB/styles/subsilver2/theme/images/icon_mini_members.gifbin0 -> 223 bytes
-rw-r--r--phpBB/styles/subsilver2/theme/images/icon_mini_message.gifbin0 -> 232 bytes
-rw-r--r--phpBB/styles/subsilver2/theme/images/icon_mini_profile.gifbin0 -> 238 bytes
-rw-r--r--phpBB/styles/subsilver2/theme/images/icon_mini_register.gifbin0 -> 224 bytes
-rw-r--r--phpBB/styles/subsilver2/theme/images/icon_mini_search.gifbin0 -> 238 bytes
-rw-r--r--phpBB/styles/subsilver2/theme/images/index.htm16
-rw-r--r--phpBB/styles/subsilver2/theme/images/no_avatar.gifbin0 -> 474 bytes
-rw-r--r--phpBB/styles/subsilver2/theme/images/spacer.gifbin0 -> 43 bytes
-rw-r--r--phpBB/styles/subsilver2/theme/images/whosonline.gifbin0 -> 929 bytes
-rw-r--r--phpBB/styles/subsilver2/theme/stylesheet.css670
-rw-r--r--phpBB/styles/subsilver2/theme/theme.cfg35
-rw-r--r--phpBB/viewforum.php17
-rw-r--r--phpBB/viewtopic.php2
-rw-r--r--tests/RUNNING_TESTS.txt33
-rw-r--r--tests/all_tests.php4
-rw-r--r--tests/class_loader/class_loader_test.php6
-rw-r--r--tests/class_loader/includes/dir.php6
-rw-r--r--tests/network/all_tests.php40
-rw-r--r--tests/network/checkdnsrr.php63
-rw-r--r--tests/random/all_tests.php40
-rw-r--r--tests/random/gen_rand_string.php63
-rw-r--r--tests/regex/email.php43
-rw-r--r--tests/template/template.php6
280 files changed, 10812 insertions, 242 deletions
diff --git a/build/build_diff.php b/build/build_diff.php
index 5fc64e2f85..ef815bc0c3 100755
--- a/build/build_diff.php
+++ b/build/build_diff.php
@@ -43,6 +43,7 @@ if (!$package_changed_files)
run_command("mkdir $location/save/{$s_name}");
run_command("mkdir $location/save/{$s_name}/language");
run_command("mkdir $location/save/{$s_name}/prosilver");
+ run_command("mkdir $location/save/{$s_name}/subsilver2");
}
}
@@ -51,6 +52,7 @@ if (!$package_changed_files)
{
build_code_changes('language');
build_code_changes('prosilver');
+ build_code_changes('subsilver2');
}
// Package code changes
@@ -83,7 +85,7 @@ if (!$echo_changes)
}
/**
-* $output_format can be: language or prosilver
+* $output_format can be: language, prosilver and subsilver2
*/
function build_code_changes($output_format)
{
@@ -118,6 +120,7 @@ function build_code_changes($output_format)
$titles = array(
'language' => 'phpBB ' . $substitute_old . ' to phpBB ' . $substitute_new . ' Language Pack Changes',
'prosilver' => 'phpBB ' . $substitute_old . ' to phpBB ' . $substitute_new . ' prosilver Changes',
+ 'subsilver2' => 'phpBB ' . $substitute_old . ' to phpBB ' . $substitute_new . ' subsilver2 Changes',
);
$data['header'] = array(
@@ -180,6 +183,13 @@ These are the ' . $titles[$output_format] . ' summed up into a little Mod. These
continue 2;
}
break;
+
+ case 'subsilver2':
+ if (strpos($filename, 'styles/subsilver2/') !== 0)
+ {
+ continue 2;
+ }
+ break;
}
if (!file_exists($location . '/old_versions/' . $simple_name_old . '/' . $filename))
diff --git a/build/build_helper.php b/build/build_helper.php
index 1e5bd95880..2bae32218b 100644
--- a/build/build_helper.php
+++ b/build/build_helper.php
@@ -142,6 +142,15 @@ class build_package
),
'store' => '',
'styles' => array(
+ 'subsilver2' => array(
+ 'imageset' => array(
+ 'en' => '',
+ ),
+ 'template' => '',
+ 'theme' => array(
+ 'images' => '',
+ ),
+ ),
'prosilver' => array(
'imageset' => array(
'en' => '',
diff --git a/git-tools/hooks/commit-msg b/git-tools/hooks/commit-msg
new file mode 100755
index 0000000000..d6ad57a38a
--- /dev/null
+++ b/git-tools/hooks/commit-msg
@@ -0,0 +1,257 @@
+#!/bin/sh
+#
+# A hook to check syntax of a phpBB3 commit message, per:
+# * <http://wiki.phpbb.com/display/DEV/Git>
+# * <http://area51.phpbb.com/phpBB/viewtopic.php?p=209919#p209919>
+#
+# This is a commit-msg hook.
+#
+# To install this you can either copy or symlink it to
+# $GIT_DIR/hooks, example:
+#
+# ln -s ../../git-tools/hooks/commit-msg \\
+# .git/hooks/commit-msg
+
+config_ns="phpbb.hooks.commit-msg";
+
+if [ "$(git config --bool $config_ns.fatal)" = "false" ]
+then
+ fatal=0;
+else
+ fatal=1;
+fi
+
+debug_level=$(git config --int $config_ns.debug || echo 0);
+
+# Error codes
+ERR_LENGTH=1;
+ERR_HEADER=2;
+ERR_EMPTY=3;
+ERR_DESCRIPTION=4;
+ERR_FOOTER=5;
+ERR_EOF=6;
+ERR_UNKNOWN=42;
+
+debug()
+{
+ local level;
+
+ level=$1;
+ shift;
+
+ if [ $debug_level -ge $level ]
+ then
+ echo $@;
+ fi
+}
+
+quit()
+{
+ if [ $1 -gt 0 ] && [ $1 -ne $ERR_UNKNOWN ] && [ $fatal -eq 0 ]
+ then
+ exit 0;
+ else
+ exit $1;
+ fi
+}
+
+if [ "$(wc --max-line-length "$1" | cut -f1 -d" ")" -gt 80 ]
+then
+ echo "The following lines are greater than 80 characters long:\n" >&2;
+
+ grep -nE '.{81,}' "$1" >&2;
+
+ quit $ERR_LENGTH;
+fi
+
+lines=$(wc --lines "$1" | cut -f1 -d" ");
+expecting=header;
+in_description=0;
+in_empty=0;
+ticket=0;
+branch_regex="[a-z]+[a-z0-9-]*[a-z0-9]+";
+i=1;
+tickets="";
+
+while [ $i -le $lines ]
+do
+ # Grab the line we are studying
+ line=$(head -n$i "$1" | tail -n1);
+
+ debug 1 "==> [$i] $line (description: $in_description, empty: $in_empty)";
+
+ err=$ERR_UNKNOWN;
+
+ if [ -z "$expecting" ]
+ then
+ quit $err;
+ fi
+
+ if [ "${expecting#comment}" = "$expecting" ]
+ then
+ # Prefix comments to the expected tokens list
+ expecting="comment $expecting";
+ fi
+
+ debug 2 "Expecting: $expecting";
+
+ # Loop over each of the expected line formats
+ for expect in $expecting
+ do
+ # Reset the error code each iteration
+ err=$ERR_UNKNOWN;
+
+ # Test for validity of each line format
+ # This is done first so $? contains the result
+ case $expect in
+ "header")
+ err=$ERR_HEADER;
+ echo "$line" | grep -Eq "^\[(ticket/[0-9]+|feature/$branch_regex|task/$branch_regex)\] [A-Z].+$"
+ ;;
+ "empty")
+ err=$ERR_EMPTY;
+ echo "$line" | grep -Eq "^$"
+ ;;
+ "description")
+ err=$ERR_DESCRIPTION;
+ # Free flow text, the line length was constrained by the initial check
+ echo "$line" | grep -Eq "^.+$";
+ ;;
+ "footer")
+ err=$ERR_FOOTER;
+ # Each ticket is on its own line
+ echo "$line" | grep -Eq "^PHPBB3-[0-9]+$";
+ ;;
+ "eof")
+ err=$ERR_EOF;
+ # Should not end up here
+ false
+ ;;
+ "comment")
+ echo "$line" | grep -Eq "^#";
+ ;;
+ *)
+ echo "Unrecognised token $expect" >&2;
+ quit $err;
+ ;;
+ esac
+
+ # Preserve the result of the line check
+ result=$?;
+
+ debug 2 "$expect - '$line' - $result";
+
+ if [ $result -eq 0 ]
+ then
+ # Break out the loop on success
+ # otherwise roll on round and keep looking for a match
+ break;
+ fi
+ done
+
+ if [ $result -eq 0 ]
+ then
+ # Have we switched out of description mode?
+ if [ $in_description -eq 1 ] && [ "$expect" != "description" ] && [ "$expect" != "empty" ] && [ "$expect" != "comment" ]
+ then
+ # Yes, okay we need to backtrace one line and reanalyse
+ in_description=0;
+ i=$(( $i - $in_empty ));
+
+ # Reset the empty counter
+ in_empty=0;
+ continue;
+ fi
+
+ # Successful match, but on which line format
+ case $expect in
+ "header")
+ expecting="empty";
+
+ echo "$line" | grep -Eq "^\[ticket/[0-9]+\]$" && (
+ ticket=$(echo "$line" | sed 's,\[ticket/\([0-9]*\)\].*,\1,');
+ )
+ ;;
+ "empty")
+ # Description might have empty lines as spacing
+ expecting="footer description";
+ in_empty=$(($in_empty + 1));
+
+ if [ $in_description -eq 1 ]
+ then
+ expecting="$expecting empty";
+ fi
+ ;;
+ "description")
+ expecting="description empty";
+ in_description=1;
+ ;;
+ "footer")
+ expecting="footer eof";
+ if [ "$tickets" = "" ]
+ then
+ tickets="$line";
+ else
+ tickets="$tickets $line";
+ fi
+ ;;
+ "comment")
+ # Comments should expect the same thing again
+ ;;
+ *)
+ echo "Unrecognised token $expect" >&2;
+ quit 254;
+ ;;
+ esac
+
+ if [ "$expect" != "empty" ]
+ then
+ in_empty=0;
+ fi
+
+ debug 3 "Now expecting: $expecting";
+ else
+ # None of the expected line formats matched
+ # Guess we'll call it a day here then
+ echo "Syntax error on line $i:" >&2;
+ echo ">> $line" >&2;
+ echo -n "Expecting: " >&2;
+ echo "$expecting" | sed 's/ /, /g' >&2;
+ exit $err;
+ fi
+
+ i=$(( $i + 1 ));
+done
+
+# If EOF is expected exit cleanly
+echo "$expecting" | grep -q "eof" || (
+ # Unexpected EOF, error
+ echo "Unexpected EOF encountered" >&2;
+ quit $ERR_EOF;
+) && (
+ # Do post scan checks
+ if [ ! -z "$tickets" ]
+ then
+ # Check for duplicate tickets
+ dupes=$(echo "$tickets" | sed 's/ /\n/g' | sort | uniq -d);
+
+ if [ ! -z "$dupes" ]
+ then
+ echo "The following tickets are repeated:" >&2;
+ echo "$dupes" | sed 's/ /\n/g;s/^/* /g' >&2;
+ quit $ERR_FOOTER;
+ fi
+ fi
+ # Check the branch ticket is mentioned, doesn't make sense otherwise
+ if [ $ticket -gt 0 ]
+ then
+ echo "$tickets" | grep -Eq "\bPHPBB3-$ticket\b" || (
+ echo "Ticket ID [$ticket] of branch missing from list of tickets:" >&2;
+ echo "$tickets" | sed 's/ /\n/g;s/^/* /g' >&2;
+ quit $ERR_FOOTER;
+ ) || exit $?;
+ fi
+ # Got here okay exit to reality
+ exit 0;
+);
+exit $?;
diff --git a/git-tools/hooks/install b/git-tools/hooks/install
new file mode 100755
index 0000000000..a42c55a769
--- /dev/null
+++ b/git-tools/hooks/install
@@ -0,0 +1,17 @@
+#!/bin/sh
+#
+# Script to install the git hooks
+# by symlinking them into the .git/hooks directory
+#
+# Usage (from within git-tools/hooks):
+# ./install
+
+dir=$(dirname $0)
+
+for file in $(ls $dir)
+do
+ if [ $file != "install" ] && [ $file != "uninstall" ]
+ then
+ ln -s "../../git-tools/hooks/$file" "$dir/../../.git/hooks/$file"
+ fi
+done
diff --git a/git-tools/hooks/pre-commit b/git-tools/hooks/pre-commit
index 9719b91746..4d03359773 100755
--- a/git-tools/hooks/pre-commit
+++ b/git-tools/hooks/pre-commit
@@ -27,6 +27,13 @@ fi
error=0
errors=""
+if ! which $PHP_BIN >/dev/null 2>&1
+then
+ echo "PHP Syntax check failed:"
+ echo "PHP binary does not exist or is not in path: $PHP_BIN"
+ exit 1
+fi
+
# dash does not support $'\n':
# http://forum.soft32.com/linux2/Bug-409179-DASH-Settings-IFS-work-properly-ftopict70039.html
IFS='
diff --git a/git-tools/hooks/prepare-commit-msg b/git-tools/hooks/prepare-commit-msg
index 033cb187c7..2bf25e58a4 100755
--- a/git-tools/hooks/prepare-commit-msg
+++ b/git-tools/hooks/prepare-commit-msg
@@ -30,5 +30,13 @@ branch="$(echo "$branch" | sed "s/refs\/heads\///g")"
# * also make sure the branch name begins with bug/ or feature/
if [ "$2" = "" ]
then
- echo "[$branch] $(cat "$1")" > "$1"
+ tail="";
+
+ # Branch is prefixed with 'ticket/', append ticket ID to message
+ if [ "$branch" != "${branch##ticket/}" ];
+ then
+ tail="\n\nPHPBB3-${branch##ticket/}";
+ fi
+
+ echo "[$branch]$tail $(cat "$1")" > "$1"
fi
diff --git a/git-tools/hooks/uninstall b/git-tools/hooks/uninstall
new file mode 100755
index 0000000000..1b3b7fd2c9
--- /dev/null
+++ b/git-tools/hooks/uninstall
@@ -0,0 +1,16 @@
+#!/bin/sh
+#
+# Script to uninstall the git hooks
+#
+# Usage (from within git-tools/hooks):
+# ./uninstall
+
+dir=$(dirname $0)
+
+for file in $(ls $dir)
+do
+ if [ $file != "install" ] && [ $file != "uninstall" ]
+ then
+ rm -f "$dir/../../.git/hooks/$file"
+ fi
+done
diff --git a/phpBB/adm/style/acp_ban.html b/phpBB/adm/style/acp_ban.html
index 539e8032dd..cf44f4aaa7 100644
--- a/phpBB/adm/style/acp_ban.html
+++ b/phpBB/adm/style/acp_ban.html
@@ -31,9 +31,9 @@
function display_details(option)
{
- document.getElementById('acp_unban').unbangivereason.value = ban_give_reason[option];
- document.getElementById('acp_unban').unbanreason.value = ban_reason[option];
- document.getElementById('acp_unban').unbanlength.value = ban_length[option];
+ document.getElementById('acp_unban').unbangivereason.innerHTML = ban_give_reason[option];
+ document.getElementById('acp_unban').unbanreason.innerHTML = ban_reason[option];
+ document.getElementById('acp_unban').unbanlength.innerHTML = ban_length[option];
}
// ]]>
diff --git a/phpBB/adm/style/admin.css b/phpBB/adm/style/admin.css
index 5f1f01c0a9..4c3fa51af3 100644
--- a/phpBB/adm/style/admin.css
+++ b/phpBB/adm/style/admin.css
@@ -670,14 +670,10 @@ legend {
position: relative;
text-transform: none;
line-height: 1.2em;
- top: 0;
+ top: -.2em;
vertical-align: middle;
}
-/* Hide from macIE \*/
-legend { top: -1.2em; }
-/* end */
-
* html legend {
margin: 0 0 -10px -7px;
line-height: 1em;
diff --git a/phpBB/adm/style/editor.js b/phpBB/adm/style/editor.js
index 7e3ce1c708..217aa699e2 100644
--- a/phpBB/adm/style/editor.js
+++ b/phpBB/adm/style/editor.js
@@ -46,7 +46,11 @@ function initInsertions()
{
textarea.focus();
baseHeight = doc.selection.createRange().duplicate().boundingHeight;
- // document.body.focus();
+
+ if (!document.forms[form_name])
+ {
+ document.body.focus();
+ }
}
}
@@ -230,6 +234,7 @@ function addquote(post_id, username)
theSelection = theSelection.replace(/&lt\;/ig, '<');
theSelection = theSelection.replace(/&gt\;/ig, '>');
theSelection = theSelection.replace(/&amp\;/ig, '&');
+ theSelection = theSelection.replace(/&nbsp\;/ig, ' ');
}
else if (document.all)
{
@@ -273,8 +278,8 @@ function mozWrap(txtarea, open, close)
var s3 = (txtarea.value).substring(selEnd, selLength);
txtarea.value = s1 + open + s2 + close + s3;
- txtarea.selectionStart = selEnd + open.length + close.length;
- txtarea.selectionEnd = txtarea.selectionStart;
+ txtarea.selectionStart = selStart + open.length;
+ txtarea.selectionEnd = selEnd + open.length;
txtarea.focus();
txtarea.scrollTop = scrollTop;
@@ -327,8 +332,8 @@ function colorPalette(dir, width, height)
for (b = 0; b < 5; b++)
{
color = String(numberList[r]) + String(numberList[g]) + String(numberList[b]);
- document.write('<td bgcolor="#' + color + '">');
- document.write('<a href="#" onclick="bbfontstyle(\'[color=#' + color + ']\', \'[/color]\'); return false;" onmouseover="helpline(\'s\');" onmouseout="helpline(\'tip\');"><img src="images/spacer.gif" width="' + width + '" height="' + height + '" alt="#' + color + '" title="#' + color + '" /></a>');
+ document.write('<td bgcolor="#' + color + '" style="width: ' + width + 'px; height: ' + height + 'px;">');
+ document.write('<a href="#" onclick="bbfontstyle(\'[color=#' + color + ']\', \'[/color]\'); return false;"><img src="images/spacer.gif" width="' + width + '" height="' + height + '" alt="#' + color + '" title="#' + color + '" /></a>');
document.writeln('</td>');
}
diff --git a/phpBB/develop/set_permissions.sh b/phpBB/develop/set_permissions.sh
new file mode 100755
index 0000000000..879b94e518
--- /dev/null
+++ b/phpBB/develop/set_permissions.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+# set permissions required for installation
+
+dir=$(dirname $0)
+
+for file in cache files store config.php images/avatars/upload
+do
+ chmod a+w $dir/../$file
+done
diff --git a/phpBB/docs/coding-guidelines.html b/phpBB/docs/coding-guidelines.html
index f340b671cc..113910387c 100644
--- a/phpBB/docs/coding-guidelines.html
+++ b/phpBB/docs/coding-guidelines.html
@@ -297,7 +297,7 @@ PHPBB_QA (Set board to QA-Mode, which means the updater also c
<div class="content">
- <p>Please note that these Guidelines applies to all php, html, javascript and css files.</p>
+ <p>Please note that these guidelines apply to all php, html, javascript and css files.</p>
<a name="namingvars"></a><h3>2.i. Variable/Function/Class Naming</h3>
diff --git a/phpBB/docs/nginx.conf.sample b/phpBB/docs/nginx.conf.sample
new file mode 100644
index 0000000000..a22a126ff4
--- /dev/null
+++ b/phpBB/docs/nginx.conf.sample
@@ -0,0 +1,70 @@
+# Sample nginx configuration file for phpBB.
+# Global settings have been removed, copy them
+# from your system's nginx.conf.
+# Tested with nginx 0.8.35.
+
+http {
+ # Compression - requires gzip and gzip static modules.
+ gzip on;
+ gzip_static on;
+ gzip_vary on;
+ gzip_http_version 1.1;
+ gzip_min_length 700;
+ gzip_comp_level 6;
+ gzip_disable "MSIE [1-6]\.";
+
+ # Catch-all server for requests to invalid hosts.
+ # Also catches vulnerability scanners probing IP addresses.
+ # Should be first.
+ server {
+ listen 80;
+ server_name bogus;
+ return 444;
+ root /var/empty;
+ }
+
+ # If you have domains with and without www prefix,
+ # redirect one to the other.
+ server {
+ listen 80;
+ server_name myforums.com;
+ rewrite ^(.*)$ http://www.myforums.com$1 permanent;
+ }
+
+ # The actual board domain.
+ server {
+ listen 80;
+ server_name www.myforums.com;
+
+ root /path/to/phpbb;
+
+ location / {
+ # phpbb uses index.htm
+ index index.php index.html index.htm;
+ }
+
+ # Deny access to internal phpbb files.
+ location ~ /(config\.php|common\.php|includes|cache|files|store|images/avatars/upload) {
+ deny all;
+ }
+
+ # Pass the php scripts to fastcgi server specified in upstream declaration.
+ location ~ \.php$ {
+ fastcgi_pass php;
+ # Necessary for php.
+ fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+ # Unmodified fastcgi_params from nginx distribution.
+ include fastcgi_params;
+ }
+
+ # Deny access to version control system directories.
+ location ~ /\.svn|/\.git {
+ deny all;
+ }
+ }
+
+ # If running php as fastcgi, specify php upstream.
+ upstream php {
+ server unix:/tmp/php.sock;
+ }
+}
diff --git a/phpBB/download/file.php b/phpBB/download/file.php
index 2154847865..97f4ff3c8a 100644
--- a/phpBB/download/file.php
+++ b/phpBB/download/file.php
@@ -31,6 +31,12 @@ else if (isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'
if (isset($_GET['avatar']))
{
+ if (!defined('E_DEPRECATED'))
+ {
+ define('E_DEPRECATED', 8192);
+ }
+ error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED);
+
require($phpbb_root_path . 'config.' . $phpEx);
if (!defined('PHPBB_INSTALLED') || empty($dbms) || empty($acm_type))
@@ -61,7 +67,7 @@ if (isset($_GET['avatar']))
$avatar_group = false;
$exit = false;
- if ($filename[0] === 'g')
+ if (isset($filename[0]) && $filename[0] === 'g')
{
$avatar_group = true;
$filename = substr($filename, 1);
diff --git a/phpBB/feed.php b/phpBB/feed.php
index 88c30c5d4f..c4b71f3a26 100644
--- a/phpBB/feed.php
+++ b/phpBB/feed.php
@@ -276,8 +276,8 @@ function feed_generate_content($content, $uid, $bitfield, $options)
// Add newlines
$content = str_replace('<br />', '<br />' . "\n", $content);
- // Relative Path to Absolute path, Windows style
- $content = str_replace('./', $board_url . '/', $content);
+ // Convert smiley Relative paths to Absolute path, Windows style
+ $content = str_replace($phpbb_root_path . $config['smilies_path'], $board_url . '/' . $config['smilies_path'], $content);
// Remove "Select all" link and mouse events
$content = str_replace('<a href="#" onclick="selectCode(this); return false;">' . $user->lang['SELECT_ALL_CODE'] . '</a>', '', $content);
diff --git a/phpBB/includes/acp/acp_ban.php b/phpBB/includes/acp/acp_ban.php
index 3198376584..a7ea57b753 100644
--- a/phpBB/includes/acp/acp_ban.php
+++ b/phpBB/includes/acp/acp_ban.php
@@ -224,7 +224,7 @@ class acp_ban
$template->assign_block_vars('ban_reason', array(
'BAN_ID' => $ban_id,
'REASON' => $reason,
- 'A_REASON' => addslashes(htmlspecialchars_decode($reason)),
+ 'A_REASON' => addslashes($reason),
));
}
}
@@ -236,7 +236,7 @@ class acp_ban
$template->assign_block_vars('ban_give_reason', array(
'BAN_ID' => $ban_id,
'REASON' => $reason,
- 'A_REASON' => addslashes(htmlspecialchars_decode($reason)),
+ 'A_REASON' => addslashes($reason),
));
}
}
diff --git a/phpBB/includes/acp/acp_board.php b/phpBB/includes/acp/acp_board.php
index c87dbcf601..7db361ba34 100644
--- a/phpBB/includes/acp/acp_board.php
+++ b/phpBB/includes/acp/acp_board.php
@@ -58,7 +58,7 @@ class acp_board
'board_disable_msg' => false,
'default_lang' => array('lang' => 'DEFAULT_LANGUAGE', 'validate' => 'lang', 'type' => 'select', 'function' => 'language_select', 'params' => array('{CONFIG_VALUE}'), 'explain' => false),
'default_dateformat' => array('lang' => 'DEFAULT_DATE_FORMAT', 'validate' => 'string', 'type' => 'custom', 'method' => 'dateformat_select', 'explain' => true),
- 'board_timezone' => array('lang' => 'SYSTEM_TIMEZONE', 'validate' => 'string', 'type' => 'select', 'function' => 'tz_select', 'params' => array('{CONFIG_VALUE}', 1), 'explain' => false),
+ 'board_timezone' => array('lang' => 'SYSTEM_TIMEZONE', 'validate' => 'string', 'type' => 'select', 'function' => 'tz_select', 'params' => array('{CONFIG_VALUE}', 1), 'explain' => true),
'board_dst' => array('lang' => 'SYSTEM_DST', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
'default_style' => array('lang' => 'DEFAULT_STYLE', 'validate' => 'int', 'type' => 'select', 'function' => 'style_select', 'params' => array('{CONFIG_VALUE}', false), 'explain' => false),
'override_user_style' => array('lang' => 'OVERRIDE_STYLE', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
diff --git a/phpBB/includes/acp/acp_forums.php b/phpBB/includes/acp/acp_forums.php
index 6261f866bb..4d9b9f01e0 100644
--- a/phpBB/includes/acp/acp_forums.php
+++ b/phpBB/includes/acp/acp_forums.php
@@ -983,7 +983,7 @@ class acp_forums
if (!$row)
{
- trigger_error($user->lang['PARENT_NOT_EXIST'] . adm_back_link($this->u_action . '&amp;' . $this->parent_id), E_USER_WARNING);
+ trigger_error($user->lang['PARENT_NOT_EXIST'] . adm_back_link($this->u_action . '&amp;parent_id=' . $this->parent_id), E_USER_WARNING);
}
if ($row['forum_type'] == FORUM_LINK)
@@ -1642,6 +1642,9 @@ class acp_forums
delete_attachments('topic', $topic_ids, false);
+ // Delete shadow topics pointing to topics in this forum
+ delete_topic_shadows($forum_id);
+
// Before we remove anything we make sure we are able to adjust the post counts later. ;)
$sql = 'SELECT poster_id
FROM ' . POSTS_TABLE . '
diff --git a/phpBB/includes/acp/acp_users.php b/phpBB/includes/acp/acp_users.php
index 7914edd056..9e8a4c80b9 100644
--- a/phpBB/includes/acp/acp_users.php
+++ b/phpBB/includes/acp/acp_users.php
@@ -231,6 +231,11 @@ class acp_users
trigger_error($user->lang['CANNOT_BAN_YOURSELF'] . adm_back_link($this->u_action . '&amp;u=' . $user_id), E_USER_WARNING);
}
+ if ($user_id == ANONYMOUS)
+ {
+ trigger_error($user->lang['CANNOT_BAN_ANONYMOUS'] . adm_back_link($this->u_action . '&amp;u=' . $user_id), E_USER_WARNING);
+ }
+
if ($user_row['user_type'] == USER_FOUNDER)
{
trigger_error($user->lang['CANNOT_BAN_FOUNDER'] . adm_back_link($this->u_action . '&amp;u=' . $user_id), E_USER_WARNING);
@@ -314,10 +319,7 @@ class acp_users
$server_url = generate_board_url();
- $user_actkey = gen_rand_string(10);
- $key_len = 54 - (strlen($server_url));
- $key_len = ($key_len > 6) ? $key_len : 6;
- $user_actkey = substr($user_actkey, 0, $key_len);
+ $user_actkey = gen_rand_string(mt_rand(6, 10));
$email_template = ($user_row['user_type'] == USER_NORMAL) ? 'user_reactivate_account' : 'user_resend_inactive';
if ($user_row['user_type'] == USER_NORMAL)
@@ -1706,7 +1708,7 @@ class acp_users
trigger_error($user->lang['FORM_INVALID'] . adm_back_link($this->u_action . '&amp;u=' . $user_id), E_USER_WARNING);
}
- if (avatar_process_user($error, $user_row))
+ if (avatar_process_user($error, $user_row, $can_upload))
{
trigger_error($user->lang['USER_AVATAR_UPDATED'] . adm_back_link($this->u_action . '&amp;u=' . $user_row['user_id']));
}
diff --git a/phpBB/includes/acp/info/acp_board.php b/phpBB/includes/acp/info/acp_board.php
index 58b650650c..3e18f55940 100644
--- a/phpBB/includes/acp/info/acp_board.php
+++ b/phpBB/includes/acp/info/acp_board.php
@@ -24,7 +24,7 @@ class acp_board_info
'features' => array('title' => 'ACP_BOARD_FEATURES', 'auth' => 'acl_a_board', 'cat' => array('ACP_BOARD_CONFIGURATION')),
'avatar' => array('title' => 'ACP_AVATAR_SETTINGS', 'auth' => 'acl_a_board', 'cat' => array('ACP_BOARD_CONFIGURATION')),
'message' => array('title' => 'ACP_MESSAGE_SETTINGS', 'auth' => 'acl_a_board', 'cat' => array('ACP_BOARD_CONFIGURATION', 'ACP_MESSAGES')),
- 'post' => array('title' => 'ACP_POST_SETTINGS', 'auth' => 'acl_a_board', 'cat' => array('ACP_BOARD_CONFIGURATION')),
+ 'post' => array('title' => 'ACP_POST_SETTINGS', 'auth' => 'acl_a_board', 'cat' => array('ACP_BOARD_CONFIGURATION', 'ACP_MESSAGES')),
'signature' => array('title' => 'ACP_SIGNATURE_SETTINGS', 'auth' => 'acl_a_board', 'cat' => array('ACP_BOARD_CONFIGURATION')),
'feed' => array('title' => 'ACP_FEED_SETTINGS', 'auth' => 'acl_a_board', 'cat' => array('ACP_BOARD_CONFIGURATION')),
'registration' => array('title' => 'ACP_REGISTER_SETTINGS', 'auth' => 'acl_a_board', 'cat' => array('ACP_BOARD_CONFIGURATION')),
diff --git a/phpBB/includes/cache.php b/phpBB/includes/cache.php
index 6b1e078ca4..b50fab4ca2 100644
--- a/phpBB/includes/cache.php
+++ b/phpBB/includes/cache.php
@@ -88,7 +88,14 @@ class cache extends acm
{
if ($unicode)
{
- $censors['match'][] = '#(?<![\p{Nd}\p{L}_])(' . str_replace('\*', '[\p{Nd}\p{L}_]*?', preg_quote($row['word'], '#')) . ')(?![\p{Nd}\p{L}_])#iu';
+ // Unescape the asterisk to simplify further conversions
+ $row['word'] = str_replace('\*', '*', preg_quote($row['word'], '#'));
+
+ // Replace the asterisk inside the pattern, at the start and at the end of it with regexes
+ $row['word'] = preg_replace(array('#(?<=[\p{Nd}\p{L}_])\*(?=[\p{Nd}\p{L}_])#iu', '#^\*#', '#\*$#'), array('([\x20]*?|[\p{Nd}\p{L}_-]*?)', '[\p{Nd}\p{L}_-]*?', '[\p{Nd}\p{L}_-]*?'), $row['word']);
+
+ // Generate the final substitution
+ $censors['match'][] = '#(?<![\p{Nd}\p{L}_-])(' . $row['word'] . ')(?![\p{Nd}\p{L}_-])#iu';
}
else
{
diff --git a/phpBB/includes/captcha/plugins/captcha_abstract.php b/phpBB/includes/captcha/plugins/captcha_abstract.php
index e7b8742b05..21cacd730c 100644
--- a/phpBB/includes/captcha/plugins/captcha_abstract.php
+++ b/phpBB/includes/captcha/plugins/captcha_abstract.php
@@ -59,7 +59,7 @@ class phpbb_default_captcha
{
global $user;
- $this->code = gen_rand_string(mt_rand(CAPTCHA_MIN_CHARS, CAPTCHA_MAX_CHARS));
+ $this->code = gen_rand_string_friendly(mt_rand(CAPTCHA_MIN_CHARS, CAPTCHA_MAX_CHARS));
$this->seed = hexdec(substr(unique_id(), 4, 10));
// compute $seed % 0x7fffffff
@@ -235,7 +235,7 @@ class phpbb_default_captcha
{
global $db, $user;
- $this->code = gen_rand_string(mt_rand(CAPTCHA_MIN_CHARS, CAPTCHA_MAX_CHARS));
+ $this->code = gen_rand_string_friendly(mt_rand(CAPTCHA_MIN_CHARS, CAPTCHA_MAX_CHARS));
$this->confirm_id = md5(unique_id($user->ip));
$this->seed = hexdec(substr(unique_id(), 4, 10));
$this->solved = 0;
@@ -259,7 +259,7 @@ class phpbb_default_captcha
{
global $db, $user;
- $this->code = gen_rand_string(mt_rand(CAPTCHA_MIN_CHARS, CAPTCHA_MAX_CHARS));
+ $this->code = gen_rand_string_friendly(mt_rand(CAPTCHA_MIN_CHARS, CAPTCHA_MAX_CHARS));
$this->seed = hexdec(substr(unique_id(), 4, 10));
$this->solved = 0;
// compute $seed % 0x7fffffff
@@ -281,7 +281,7 @@ class phpbb_default_captcha
{
global $db, $user;
- $this->code = gen_rand_string(mt_rand(CAPTCHA_MIN_CHARS, CAPTCHA_MAX_CHARS));
+ $this->code = gen_rand_string_friendly(mt_rand(CAPTCHA_MIN_CHARS, CAPTCHA_MAX_CHARS));
$this->seed = hexdec(substr(unique_id(), 4, 10));
$this->solved = 0;
// compute $seed % 0x7fffffff
diff --git a/phpBB/includes/class_loader.php b/phpBB/includes/class_loader.php
index c70351b437..5df654799a 100644
--- a/phpBB/includes/class_loader.php
+++ b/phpBB/includes/class_loader.php
@@ -115,7 +115,7 @@ class phpbb_class_loader
$dirs = '';
- for ($i = 0; is_dir($path_prefix . $dirs . $parts[$i]) && $i < sizeof($parts); $i++)
+ for ($i = 0, $n = sizeof($parts); $i < $n && is_dir($path_prefix . $dirs . $parts[$i]); $i++)
{
$dirs .= $parts[$i] . '/';
}
diff --git a/phpBB/includes/db/firebird.php b/phpBB/includes/db/firebird.php
index e554b0f2fb..6f60dd5dad 100644
--- a/phpBB/includes/db/firebird.php
+++ b/phpBB/includes/db/firebird.php
@@ -63,10 +63,19 @@ class dbal_firebird extends dbal
/**
* Version information about used database
* @param bool $raw if true, only return the fetched sql_server_version
+ * @param bool $use_cache forced to false for Interbase
* @return string sql server version
*/
- function sql_server_info($raw = false)
+ function sql_server_info($raw = false, $use_cache = true)
{
+ /**
+ * force $use_cache false. I didn't research why the caching code there is no caching code
+ * but I assume its because the IB extension provides a direct method to access it
+ * without a query.
+ */
+
+ $use_cache = false;
+
if ($this->service_handle !== false && function_exists('ibase_server_info'))
{
return @ibase_server_info($this->service_handle, IBASE_SVC_SERVER_VERSION);
diff --git a/phpBB/includes/db/mssql.php b/phpBB/includes/db/mssql.php
index 7134574691..6899a73902 100644
--- a/phpBB/includes/db/mssql.php
+++ b/phpBB/includes/db/mssql.php
@@ -65,13 +65,14 @@ class dbal_mssql extends dbal
/**
* Version information about used database
* @param bool $raw if true, only return the fetched sql_server_version
+ * @param bool $use_cache If true, it is safe to retrieve the value from the cache
* @return string sql server version
*/
- function sql_server_info($raw = false)
+ function sql_server_info($raw = false, $use_cache = true)
{
global $cache;
- if (empty($cache) || ($this->sql_server_version = $cache->get('mssql_version')) === false)
+ if (!$use_cache || empty($cache) || ($this->sql_server_version = $cache->get('mssql_version')) === false)
{
$result_id = @mssql_query("SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY('productlevel'), SERVERPROPERTY('edition')", $this->db_connect_id);
@@ -84,7 +85,7 @@ class dbal_mssql extends dbal
$this->sql_server_version = ($row) ? trim(implode(' ', $row)) : 0;
- if (!empty($cache))
+ if (!empty($cache) && $use_cache)
{
$cache->put('mssql_version', $this->sql_server_version);
}
diff --git a/phpBB/includes/db/mssql_odbc.php b/phpBB/includes/db/mssql_odbc.php
index 14c4831010..75a080b1b7 100644
--- a/phpBB/includes/db/mssql_odbc.php
+++ b/phpBB/includes/db/mssql_odbc.php
@@ -76,13 +76,14 @@ class dbal_mssql_odbc extends dbal
/**
* Version information about used database
* @param bool $raw if true, only return the fetched sql_server_version
+ * @param bool $use_cache If true, it is safe to retrieve the value from the cache
* @return string sql server version
*/
- function sql_server_info($raw = false)
+ function sql_server_info($raw = false, $use_cache = true)
{
global $cache;
- if (empty($cache) || ($this->sql_server_version = $cache->get('mssqlodbc_version')) === false)
+ if (!$use_cache || empty($cache) || ($this->sql_server_version = $cache->get('mssqlodbc_version')) === false)
{
$result_id = @odbc_exec($this->db_connect_id, "SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY('productlevel'), SERVERPROPERTY('edition')");
@@ -95,7 +96,7 @@ class dbal_mssql_odbc extends dbal
$this->sql_server_version = ($row) ? trim(implode(' ', $row)) : 0;
- if (!empty($cache))
+ if (!empty($cache) && $use_cache)
{
$cache->put('mssqlodbc_version', $this->sql_server_version);
}
diff --git a/phpBB/includes/db/mssqlnative.php b/phpBB/includes/db/mssqlnative.php
index 08ee70907c..44d5722e4f 100644..100755
--- a/phpBB/includes/db/mssqlnative.php
+++ b/phpBB/includes/db/mssqlnative.php
@@ -232,18 +232,19 @@ class dbal_mssqlnative extends dbal
/**
* Version information about used database
* @param bool $raw if true, only return the fetched sql_server_version
+ * @param bool $use_cache If true, it is safe to retrieve the value from the cache
* @return string sql server version
*/
- function sql_server_info($raw = false)
+ function sql_server_info($raw = false, $use_cache = true)
{
global $cache;
- if (empty($cache) || ($this->sql_server_version = $cache->get('mssql_version')) === false)
+ if (!$use_cache || empty($cache) || ($this->sql_server_version = $cache->get('mssql_version')) === false)
{
$arr_server_info = sqlsrv_server_info($this->db_connect_id);
$this->sql_server_version = $arr_server_info['SQLServerVersion'];
- if (!empty($cache))
+ if (!empty($cache) && $use_cache)
{
$cache->put('mssql_version', $this->sql_server_version);
}
@@ -502,6 +503,7 @@ class dbal_mssqlnative extends dbal
{
$errors = @sqlsrv_errors(SQLSRV_ERR_ERRORS);
$error_message = '';
+ $code = 0;
if ($errors != null)
{
@@ -509,6 +511,7 @@ class dbal_mssqlnative extends dbal
{
$error_message .= "SQLSTATE: ".$error[ 'SQLSTATE']."\n";
$error_message .= "code: ".$error[ 'code']."\n";
+ $code = $error['code'];
$error_message .= "message: ".$error[ 'message']."\n";
}
$this->last_error_result = $error_message;
@@ -518,7 +521,11 @@ class dbal_mssqlnative extends dbal
{
$error = (isset($this->last_error_result) && $this->last_error_result) ? $this->last_error_result : array();
}
- return $error;
+
+ return array(
+ 'message' => $error,
+ 'code' => $code,
+ );
}
/**
diff --git a/phpBB/includes/db/mysql.php b/phpBB/includes/db/mysql.php
index 0487dfa6d2..1e24c79577 100644
--- a/phpBB/includes/db/mysql.php
+++ b/phpBB/includes/db/mysql.php
@@ -96,13 +96,14 @@ class dbal_mysql extends dbal
/**
* Version information about used database
* @param bool $raw if true, only return the fetched sql_server_version
+ * @param bool $use_cache If true, it is safe to retrieve the value from the cache
* @return string sql server version
*/
- function sql_server_info($raw = false)
+ function sql_server_info($raw = false, $use_cache = true)
{
global $cache;
- if (empty($cache) || ($this->sql_server_version = $cache->get('mysql_version')) === false)
+ if (!$use_cache || empty($cache) || ($this->sql_server_version = $cache->get('mysql_version')) === false)
{
$result = @mysql_query('SELECT VERSION() AS version', $this->db_connect_id);
$row = @mysql_fetch_assoc($result);
@@ -110,7 +111,7 @@ class dbal_mysql extends dbal
$this->sql_server_version = $row['version'];
- if (!empty($cache))
+ if (!empty($cache) && $use_cache)
{
$cache->put('mysql_version', $this->sql_server_version);
}
diff --git a/phpBB/includes/db/mysqli.php b/phpBB/includes/db/mysqli.php
index f0e58fd148..862d62f4ba 100644
--- a/phpBB/includes/db/mysqli.php
+++ b/phpBB/includes/db/mysqli.php
@@ -80,14 +80,14 @@ class dbal_mysqli extends dbal
/**
* Version information about used database
- * @param bool $raw if true, only return the fetched sql_server_version
+ * @param bool $use_cache If true, it is safe to retrieve the value from the cache
* @return string sql server version
*/
- function sql_server_info($raw = false)
+ function sql_server_info($raw = false, $use_cache = true)
{
global $cache;
- if (empty($cache) || ($this->sql_server_version = $cache->get('mysqli_version')) === false)
+ if (!$use_cache || empty($cache) || ($this->sql_server_version = $cache->get('mysqli_version')) === false)
{
$result = @mysqli_query($this->db_connect_id, 'SELECT VERSION() AS version');
$row = @mysqli_fetch_assoc($result);
@@ -95,7 +95,7 @@ class dbal_mysqli extends dbal
$this->sql_server_version = $row['version'];
- if (!empty($cache))
+ if (!empty($cache) && $use_cache)
{
$cache->put('mysqli_version', $this->sql_server_version);
}
diff --git a/phpBB/includes/db/oracle.php b/phpBB/includes/db/oracle.php
index 5a9b18abf0..c8a9a5f604 100644
--- a/phpBB/includes/db/oracle.php
+++ b/phpBB/includes/db/oracle.php
@@ -56,10 +56,18 @@ class dbal_oracle extends dbal
/**
* Version information about used database
* @param bool $raw if true, only return the fetched sql_server_version
+ * @param bool $use_cache forced to false for Oracle
* @return string sql server version
*/
- function sql_server_info($raw = false)
+ function sql_server_info($raw = false, $use_cache = true)
{
+ /**
+ * force $use_cache false. I didn't research why the caching code below is commented out
+ * but I assume its because the Oracle extension provides a direct method to access it
+ * without a query.
+ */
+
+ $use_cache = false;
/*
global $cache;
diff --git a/phpBB/includes/db/postgres.php b/phpBB/includes/db/postgres.php
index 2a885f1d04..4360c790a1 100644
--- a/phpBB/includes/db/postgres.php
+++ b/phpBB/includes/db/postgres.php
@@ -108,13 +108,14 @@ class dbal_postgres extends dbal
/**
* Version information about used database
* @param bool $raw if true, only return the fetched sql_server_version
+ * @param bool $use_cache If true, it is safe to retrieve the value from the cache
* @return string sql server version
*/
- function sql_server_info($raw = false)
+ function sql_server_info($raw = false, $use_cache = true)
{
global $cache;
- if (empty($cache) || ($this->sql_server_version = $cache->get('pgsql_version')) === false)
+ if (!$use_cache || empty($cache) || ($this->sql_server_version = $cache->get('pgsql_version')) === false)
{
$query_id = @pg_query($this->db_connect_id, 'SELECT VERSION() AS version');
$row = @pg_fetch_assoc($query_id, null);
@@ -122,7 +123,7 @@ class dbal_postgres extends dbal
$this->sql_server_version = (!empty($row['version'])) ? trim(substr($row['version'], 10)) : 0;
- if (!empty($cache))
+ if (!empty($cache) && $use_cache)
{
$cache->put('pgsql_version', $this->sql_server_version);
}
diff --git a/phpBB/includes/db/sqlite.php b/phpBB/includes/db/sqlite.php
index 288f6e0992..8de72fd394 100644
--- a/phpBB/includes/db/sqlite.php
+++ b/phpBB/includes/db/sqlite.php
@@ -50,19 +50,24 @@ class dbal_sqlite extends dbal
/**
* Version information about used database
* @param bool $raw if true, only return the fetched sql_server_version
+ * @param bool $use_cache if true, it is safe to retrieve the stored value from the cache
* @return string sql server version
*/
- function sql_server_info($raw = false)
+ function sql_server_info($raw = false, $use_cache = true)
{
global $cache;
- if (empty($cache) || ($this->sql_server_version = $cache->get('sqlite_version')) === false)
+ if (!$use_cache || empty($cache) || ($this->sql_server_version = $cache->get('sqlite_version')) === false)
{
$result = @sqlite_query('SELECT sqlite_version() AS version', $this->db_connect_id);
$row = @sqlite_fetch_array($result, SQLITE_ASSOC);
$this->sql_server_version = (!empty($row['version'])) ? $row['version'] : 0;
- $cache->put('sqlite_version', $this->sql_server_version);
+
+ if (!empty($cache) && $use_cache)
+ {
+ $cache->put('sqlite_version', $this->sql_server_version);
+ }
}
return ($raw) ? $this->sql_server_version : 'SQLite ' . $this->sql_server_version;
diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php
index fb44992aad..4088e92b63 100644
--- a/phpBB/includes/functions.php
+++ b/phpBB/includes/functions.php
@@ -195,10 +195,27 @@ function set_config_count($config_name, $increment, $is_dynamic = false)
/**
* Generates an alphanumeric random string of given length
+*
+* @return string
*/
function gen_rand_string($num_chars = 8)
{
+ // [a, z] + [0, 9] = 36
+ return substr(strtoupper(base_convert(unique_id(), 16, 36)), 0, $num_chars);
+}
+
+/**
+* Generates a user-friendly alphanumeric random string of given length
+* We remove 0 and O so users cannot confuse those in passwords etc.
+*
+* @return string
+*/
+function gen_rand_string_friendly($num_chars = 8)
+{
$rand_str = unique_id();
+
+ // Remove Z and Y from the base_convert(), replace 0 with Z and O with Y
+ // [a, z] + [0, 9] - {z, y} = [a, z] + [0, 9] - {0, o} = 34
$rand_str = str_replace(array('0', 'O'), array('Z', 'Y'), strtoupper(base_convert($rand_str, 16, 34)));
return substr($rand_str, 0, $num_chars);
@@ -2519,6 +2536,11 @@ function build_url($strip_vars = false)
$key = $arguments[0];
unset($arguments[0]);
+ if ($key === '')
+ {
+ continue;
+ }
+
$query[$key] = implode('=', $arguments);
}
@@ -3355,7 +3377,9 @@ function get_preg_expression($mode)
switch ($mode)
{
case 'email':
- return '(?:[a-z0-9\'\.\-_\+\|]++|&amp;)+@[a-z0-9\-]+\.(?:[a-z0-9\-]+\.)*[a-z]+';
+ // Regex written by James Watts and Francisco Jose Martin Moreno
+ // http://fightingforalostcause.net/misc/2006/compare-email-regex.php
+ return '([\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+\.)*(?:[\w\!\#$\%\'\*\+\-\/\=\?\^\`{\|\}\~]|&amp;)+@((((([a-z0-9]{1}[a-z0-9\-]{0,62}[a-z0-9]{1})|[a-z])\.)+[a-z]{2,6})|(\d{1,3}\.){3}\d{1,3}(\:\d{1,5})?)';
break;
case 'bbcode_htm':
@@ -3438,26 +3462,110 @@ function short_ipv6($ip, $length)
/**
* Wrapper for php's checkdnsrr function.
*
-* The windows failover is from the php manual
-* Please make sure to check the return value for === true and === false, since NULL could
-* be returned too.
+* @param string $host Fully-Qualified Domain Name
+* @param string $type Resource record type to lookup
+* Supported types are: MX (default), A, AAAA, NS, TXT, CNAME
+* Other types may work or may not work
+*
+* @return mixed true if entry found,
+* false if entry not found,
+* null if this function is not supported by this environment
*
-* @return true if entry found, false if not, NULL if this function is not supported by this environment
+* Since null can also be returned, you probably want to compare the result
+* with === true or === false,
+*
+* @author bantu
*/
-function phpbb_checkdnsrr($host, $type = '')
+function phpbb_checkdnsrr($host, $type = 'MX')
{
- $type = (!$type) ? 'MX' : $type;
+ // The dot indicates to search the DNS root (helps those having DNS prefixes on the same domain)
+ if (substr($host, -1) == '.')
+ {
+ $host_fqdn = $host;
+ $host = substr($host, 0, -1);
+ }
+ else
+ {
+ $host_fqdn = $host . '.';
+ }
+ // $host has format some.host.example.com
+ // $host_fqdn has format some.host.example.com.
- // Call checkdnsrr() if available. This is also the case on Windows with PHP 5.3 or later.
- if (function_exists('checkdnsrr'))
+ // If we're looking for an A record we can use gethostbyname()
+ if ($type == 'A' && function_exists('gethostbyname'))
{
- // The dot indicates to search the DNS root (helps those having DNS prefixes on the same domain)
- return checkdnsrr($host . '.', $type);
+ return (@gethostbyname($host_fqdn) == $host_fqdn) ? false : true;
}
- else if (DIRECTORY_SEPARATOR == '\\' && function_exists('exec'))
+
+ // checkdnsrr() is available on Windows since PHP 5.3,
+ // but until 5.3.3 it only works for MX records
+ // See: http://bugs.php.net/bug.php?id=51844
+
+ // Call checkdnsrr() if
+ // we're looking for an MX record or
+ // we're not on Windows or
+ // we're running a PHP version where #51844 has been fixed
+
+ // checkdnsrr() supports AAAA since 5.0.0
+ // checkdnsrr() supports TXT since 5.2.4
+ if (
+ ($type == 'MX' || DIRECTORY_SEPARATOR != '\\' || version_compare(PHP_VERSION, '5.3.3', '>=')) &&
+ ($type != 'AAAA' || version_compare(PHP_VERSION, '5.0.0', '>=')) &&
+ ($type != 'TXT' || version_compare(PHP_VERSION, '5.2.4', '>=')) &&
+ function_exists('checkdnsrr')
+ )
{
- // @exec('nslookup -retry=1 -timout=1 -type=' . escapeshellarg($type) . ' ' . escapeshellarg($host), $output);
- @exec('nslookup -type=' . escapeshellarg($type) . ' ' . escapeshellarg($host) . '.', $output);
+ return checkdnsrr($host_fqdn, $type);
+ }
+
+ // dns_get_record() is available since PHP 5; since PHP 5.3 also on Windows,
+ // but on Windows it does not work reliable for AAAA records before PHP 5.3.1
+
+ // Call dns_get_record() if
+ // we're not looking for an AAAA record or
+ // we're not on Windows or
+ // we're running a PHP version where AAAA lookups work reliable
+ if (
+ ($type != 'AAAA' || DIRECTORY_SEPARATOR != '\\' || version_compare(PHP_VERSION, '5.3.1', '>=')) &&
+ function_exists('dns_get_record')
+ )
+ {
+ // dns_get_record() expects an integer as second parameter
+ // We have to convert the string $type to the corresponding integer constant.
+ $type_constant = 'DNS_' . $type;
+ $type_param = (defined($type_constant)) ? constant($type_constant) : DNS_ANY;
+
+ // dns_get_record() might throw E_WARNING and return false for records that do not exist
+ $resultset = @dns_get_record($host_fqdn, $type_param);
+
+ if (empty($resultset) || !is_array($resultset))
+ {
+ return false;
+ }
+ else if ($type_param == DNS_ANY)
+ {
+ // $resultset is a non-empty array
+ return true;
+ }
+
+ foreach ($resultset as $result)
+ {
+ if (
+ isset($result['host']) && $result['host'] == $host &&
+ isset($result['type']) && $result['type'] == $type
+ )
+ {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ // If we're on Windows we can still try to call nslookup via exec() as a last resort
+ if (DIRECTORY_SEPARATOR == '\\' && function_exists('exec'))
+ {
+ @exec('nslookup -type=' . escapeshellarg($type) . ' ' . escapeshellarg($host_fqdn), $output);
// If output is empty, the nslookup failed
if (empty($output))
@@ -3467,15 +3575,66 @@ function phpbb_checkdnsrr($host, $type = '')
foreach ($output as $line)
{
- if (!trim($line))
+ $line = trim($line);
+
+ if (empty($line))
{
continue;
}
- // Valid records begin with host name:
- if (strpos($line, $host) === 0)
+ // Squash tabs and multiple whitespaces to a single whitespace.
+ $line = preg_replace('/\s+/', ' ', $line);
+
+ switch ($type)
{
- return true;
+ case 'MX':
+ if (stripos($line, "$host MX") === 0)
+ {
+ return true;
+ }
+ break;
+
+ case 'NS':
+ if (stripos($line, "$host nameserver") === 0)
+ {
+ return true;
+ }
+ break;
+
+ case 'TXT':
+ if (stripos($line, "$host text") === 0)
+ {
+ return true;
+ }
+ break;
+
+ case 'CNAME':
+ if (stripos($line, "$host canonical name") === 0)
+ {
+ return true;
+ }
+
+ default:
+ case 'A':
+ case 'AAAA':
+ if (!empty($host_matches))
+ {
+ // Second line
+ if (stripos($line, "Address: ") === 0)
+ {
+ return true;
+ }
+ else
+ {
+ $host_matches = false;
+ }
+ }
+ else if (stripos($line, "Name: $host") === 0)
+ {
+ // First line
+ $host_matches = true;
+ }
+ break;
}
}
@@ -4318,7 +4477,7 @@ function page_header($page_title = '', $display_online_list = true, $item_id = 0
'T_ICONS_PATH' => "{$web_path}{$config['icons_path']}/",
'T_RANKS_PATH' => "{$web_path}{$config['ranks_path']}/",
'T_UPLOAD_PATH' => "{$web_path}{$config['upload_path']}/",
- 'T_STYLESHEET_LINK' => (!$user->theme['theme_storedb']) ? "{$web_path}styles/" . $user->theme['theme_path'] . '/theme/stylesheet.css' : append_sid("{$phpbb_root_path}style.$phpEx", 'id=' . $user->theme['style_id'] . '&amp;lang=' . $user->data['user_lang'], true, $user->session_id),
+ 'T_STYLESHEET_LINK' => (!$user->theme['theme_storedb']) ? "{$web_path}styles/" . $user->theme['theme_path'] . '/theme/stylesheet.css' : append_sid("{$phpbb_root_path}style.$phpEx", 'id=' . $user->theme['style_id'] . '&amp;lang=' . $user->data['user_lang']),
'T_STYLESHEET_NAME' => $user->theme['theme_name'],
'T_THEME_NAME' => $user->theme['theme_path'],
diff --git a/phpBB/includes/functions_admin.php b/phpBB/includes/functions_admin.php
index 4cd2962e3b..3178d35c34 100644
--- a/phpBB/includes/functions_admin.php
+++ b/phpBB/includes/functions_admin.php
@@ -573,8 +573,8 @@ function move_posts($post_ids, $topic_id, $auto_sync = true)
while ($row = $db->sql_fetchrow($result))
{
- $forum_ids[] = $row['forum_id'];
- $topic_ids[] = $row['topic_id'];
+ $forum_ids[] = (int) $row['forum_id'];
+ $topic_ids[] = (int) $row['topic_id'];
}
$db->sql_freeresult($result);
@@ -591,7 +591,7 @@ function move_posts($post_ids, $topic_id, $auto_sync = true)
}
$sql = 'UPDATE ' . POSTS_TABLE . '
- SET forum_id = ' . $forum_row['forum_id'] . ", topic_id = $topic_id
+ SET forum_id = ' . (int) $forum_row['forum_id'] . ", topic_id = $topic_id
WHERE " . $db->sql_in_set('post_id', $post_ids);
$db->sql_query($sql);
@@ -602,7 +602,7 @@ function move_posts($post_ids, $topic_id, $auto_sync = true)
if ($auto_sync)
{
- $forum_ids[] = $forum_row['forum_id'];
+ $forum_ids[] = (int) $forum_row['forum_id'];
sync('topic_reported', 'topic_id', $topic_ids);
sync('topic_attachment', 'topic_id', $topic_ids);
@@ -1125,53 +1125,65 @@ function delete_attachments($mode, $ids, $resync = true)
}
/**
-* Remove topic shadows
+* Deletes shadow topics pointing to a specified forum.
+*
+* @param int $forum_id The forum id
+* @param string $sql_more Additional WHERE statement, e.g. t.topic_time < (time() - 1234)
+* @param bool $auto_sync Will call sync() if this is true
+*
+* @return array Array with affected forums
+*
+* @author bantu
*/
-function delete_topic_shadows($max_age, $forum_id = '', $auto_sync = true)
+function delete_topic_shadows($forum_id, $sql_more = '', $auto_sync = true)
{
- $where = (is_array($forum_id)) ? 'AND ' . $db->sql_in_set('t.forum_id', array_map('intval', $forum_id)) : (($forum_id) ? 'AND t.forum_id = ' . (int) $forum_id : '');
+ global $db;
- switch ($db->sql_layer)
+ if (!$forum_id)
{
- case 'mysql4':
- case 'mysqli':
- $sql = 'DELETE t.*
- FROM ' . TOPICS_TABLE . ' t, ' . TOPICS_TABLE . ' t2
- WHERE t.topic_moved_id = t2.topic_id
- AND t.topic_time < ' . (time() - $max_age)
- . $where;
- $db->sql_query($sql);
- break;
+ // Nothing to do.
+ return;
+ }
- default:
- $sql = 'SELECT t.topic_id
- FROM ' . TOPICS_TABLE . ' t, ' . TOPICS_TABLE . ' t2
- WHERE t.topic_moved_id = t2.topic_id
- AND t.topic_time < ' . (time() - $max_age)
- . $where;
- $result = $db->sql_query($sql);
+ // Set of affected forums we have to resync
+ $sync_forum_ids = array();
- $topic_ids = array();
- while ($row = $db->sql_fetchrow($result))
- {
- $topic_ids[] = $row['topic_id'];
- }
- $db->sql_freeresult($result);
+ // Amount of topics we select and delete at once.
+ $batch_size = 500;
- if (sizeof($topic_ids))
- {
- $sql = 'DELETE FROM ' . TOPICS_TABLE . '
- WHERE ' . $db->sql_in_set('topic_id', $topic_ids);
- $db->sql_query($sql);
- }
- break;
+ do
+ {
+ $sql = 'SELECT t2.forum_id, t2.topic_id
+ FROM ' . TOPICS_TABLE . ' t2, ' . TOPICS_TABLE . ' t
+ WHERE t2.topic_moved_id = t.topic_id
+ AND t.forum_id = ' . (int) $forum_id . '
+ ' . (($sql_more) ? 'AND ' . $sql_more : '');
+ $result = $db->sql_query_limit($sql, $batch_size);
+
+ $topic_ids = array();
+ while ($row = $db->sql_fetchrow($result))
+ {
+ $topic_ids[] = (int) $row['topic_id'];
+
+ $sync_forum_ids[(int) $row['forum_id']] = (int) $row['forum_id'];
+ }
+ $db->sql_freeresult($result);
+
+ if (!empty($topic_ids))
+ {
+ $sql = 'DELETE FROM ' . TOPICS_TABLE . '
+ WHERE ' . $db->sql_in_set('topic_id', $topic_ids);
+ $db->sql_query($sql);
+ }
}
+ while (sizeof($topic_ids) == $batch_size);
if ($auto_sync)
{
- $where_type = ($forum_id) ? 'forum_id' : '';
- sync('forum', $where_type, $forum_id, true, true);
+ sync('forum', 'forum_id', $sync_forum_ids, true, true);
}
+
+ return $sync_forum_ids;
}
/**
diff --git a/phpBB/includes/functions_convert.php b/phpBB/includes/functions_convert.php
index 0fdae9b274..c035fd3739 100644
--- a/phpBB/includes/functions_convert.php
+++ b/phpBB/includes/functions_convert.php
@@ -1025,6 +1025,9 @@ function set_user_options()
'bbcode' => array('bit' => 8, 'default' => 1),
'smilies' => array('bit' => 9, 'default' => 1),
'popuppm' => array('bit' => 10, 'default' => 0),
+ 'sig_bbcode' => array('bit' => 15, 'default' => 1),
+ 'sig_smilies' => array('bit' => 16, 'default' => 1),
+ 'sig_links' => array('bit' => 17, 'default' => 1),
);
$option_field = 0;
diff --git a/phpBB/includes/functions_display.php b/phpBB/includes/functions_display.php
index 5e6239b070..2de7e1b169 100644
--- a/phpBB/includes/functions_display.php
+++ b/phpBB/includes/functions_display.php
@@ -396,7 +396,7 @@ function display_forums($root_data = '', $display_moderators = true, $return_mod
}
else
{
- $folder_alt = ($forum_unread) ? 'NEW_POSTS' : 'NO_NEW_POSTS';
+ $folder_alt = ($forum_unread) ? 'UNREAD_POSTS' : 'NO_UNREAD_POSTS';
}
// Create last post link information, if appropriate
@@ -425,7 +425,7 @@ function display_forums($root_data = '', $display_moderators = true, $return_mod
$s_subforums_list = array();
foreach ($subforums_list as $subforum)
{
- $s_subforums_list[] = '<a href="' . $subforum['link'] . '" class="subforum ' . (($subforum['unread']) ? 'unread' : 'read') . '" title="' . (($subforum['unread']) ? $user->lang['NEW_POSTS'] : $user->lang['NO_NEW_POSTS']) . '">' . $subforum['name'] . '</a>';
+ $s_subforums_list[] = '<a href="' . $subforum['link'] . '" class="subforum ' . (($subforum['unread']) ? 'unread' : 'read') . '" title="' . (($subforum['unread']) ? $user->lang['UNREAD_POSTS'] : $user->lang['NO_UNREAD_POSTS']) . '">' . $subforum['name'] . '</a>';
}
$s_subforums_list = (string) implode(', ', $s_subforums_list);
$catless = ($row['parent_id'] == $root_data['forum_id']) ? true : false;
@@ -854,7 +854,7 @@ function topic_status(&$topic_row, $replies, $unread_topic, &$folder_img, &$fold
$folder_img = ($unread_topic) ? $folder_new : $folder;
- $folder_alt = ($unread_topic) ? 'NEW_POSTS' : (($topic_row['topic_status'] == ITEM_LOCKED) ? 'TOPIC_LOCKED' : 'NO_NEW_POSTS');
+ $folder_alt = ($unread_topic) ? 'UNREAD_POSTS' : (($topic_row['topic_status'] == ITEM_LOCKED) ? 'TOPIC_LOCKED' : 'NO_UNREAD_POSTS');
// Posted image?
if (!empty($topic_row['topic_posted']) && $topic_row['topic_posted'])
diff --git a/phpBB/includes/functions_messenger.php b/phpBB/includes/functions_messenger.php
index 99883cd9ca..bb0d88ec1b 100644
--- a/phpBB/includes/functions_messenger.php
+++ b/phpBB/includes/functions_messenger.php
@@ -671,11 +671,18 @@ class queue
$package_size = $data_ary['package_size'];
$num_items = (!$package_size || sizeof($data_ary['data']) < $package_size) ? sizeof($data_ary['data']) : $package_size;
+ /*
+ * This code is commented out because it causes problems on some web hosts.
+ * The core problem is rather restrictive email sending limits.
+ * This code is nly useful if you have no such restrictions from the
+ * web host and the package size setting is wrong.
+
// If the amount of emails to be sent is way more than package_size than we need to increase it to prevent backlogs...
if (sizeof($data_ary['data']) > $package_size * 2.5)
{
$num_items = sizeof($data_ary['data']);
}
+ */
switch ($object)
{
diff --git a/phpBB/includes/functions_posting.php b/phpBB/includes/functions_posting.php
index f6f90575d4..5e25648eb8 100644
--- a/phpBB/includes/functions_posting.php
+++ b/phpBB/includes/functions_posting.php
@@ -2537,7 +2537,7 @@ function submit_post($mode, $subject, $username, $topic_type, &$poll, &$data, $u
if ($mode == 'post' || $mode == 'reply' || $mode == 'quote')
{
// Mark this topic as posted to
- markread('post', $data['forum_id'], $data['topic_id'], $data['post_time']);
+ markread('post', $data['forum_id'], $data['topic_id']);
}
// Mark this topic as read
diff --git a/phpBB/includes/functions_privmsgs.php b/phpBB/includes/functions_privmsgs.php
index 4fc5034f7b..4c34bc92ca 100644
--- a/phpBB/includes/functions_privmsgs.php
+++ b/phpBB/includes/functions_privmsgs.php
@@ -1380,6 +1380,9 @@ function submit_pm($mode, $subject, &$data, $put_in_outbox = true)
}
}
+ // First of all make sure the subject are having the correct length.
+ $subject = truncate_string($subject);
+
$db->sql_transaction('begin');
$sql = '';
@@ -1751,6 +1754,8 @@ function message_history($msg_id, $user_id, $message_row, $folder, $in_post_mode
return false;
}
+ $title = $row['message_subject'];
+
$rowset = array();
$bbcode_bitfield = '';
$folder_url = append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm') . '&amp;folder=';
@@ -1774,8 +1779,6 @@ function message_history($msg_id, $user_id, $message_row, $folder, $in_post_mode
while ($row = $db->sql_fetchrow($result));
$db->sql_freeresult($result);
- $title = $row['message_subject'];
-
if (sizeof($rowset) == 1 && !$in_post_mode)
{
return false;
diff --git a/phpBB/includes/functions_user.php b/phpBB/includes/functions_user.php
index e622630b67..1cc7a69ad6 100644
--- a/phpBB/includes/functions_user.php
+++ b/phpBB/includes/functions_user.php
@@ -528,7 +528,7 @@ function user_delete($mode, $user_id, $post_username = false)
$db->sql_transaction('begin');
- $table_ary = array(USERS_TABLE, USER_GROUP_TABLE, TOPICS_WATCH_TABLE, FORUMS_WATCH_TABLE, ACL_USERS_TABLE, TOPICS_TRACK_TABLE, TOPICS_POSTED_TABLE, FORUMS_TRACK_TABLE, PROFILE_FIELDS_DATA_TABLE, MODERATOR_CACHE_TABLE, DRAFTS_TABLE, BOOKMARKS_TABLE, SESSIONS_KEYS_TABLE);
+ $table_ary = array(USERS_TABLE, USER_GROUP_TABLE, TOPICS_WATCH_TABLE, FORUMS_WATCH_TABLE, ACL_USERS_TABLE, TOPICS_TRACK_TABLE, TOPICS_POSTED_TABLE, FORUMS_TRACK_TABLE, PROFILE_FIELDS_DATA_TABLE, MODERATOR_CACHE_TABLE, DRAFTS_TABLE, BOOKMARKS_TABLE, SESSIONS_KEYS_TABLE, PRIVMSGS_FOLDER_TABLE, PRIVMSGS_RULES_TABLE);
foreach ($table_ary as $table)
{
@@ -766,7 +766,8 @@ function user_ban($mode, $ban, $ban_len, $ban_len_other, $ban_exclude, $ban_reas
if (sizeof($ban_other) == 3 && ((int)$ban_other[0] < 9999) &&
(strlen($ban_other[0]) == 4) && (strlen($ban_other[1]) == 2) && (strlen($ban_other[2]) == 2))
{
- $ban_end = max($current_time, gmmktime(0, 0, 0, (int)$ban_other[1], (int)$ban_other[2], (int)$ban_other[0]));
+ $time_offset = (isset($user->timezone) && isset($user->dst)) ? (int) $user->timezone + (int) $user->dst : 0;
+ $ban_end = max($current_time, gmmktime(0, 0, 0, (int)$ban_other[1], (int)$ban_other[2], (int)$ban_other[0]) - $time_offset);
}
else
{
@@ -837,14 +838,15 @@ function user_ban($mode, $ban, $ban_len, $ban_len_other, $ban_exclude, $ban_reas
FROM ' . USERS_TABLE . '
WHERE ' . $db->sql_in_set('username_clean', $sql_usernames);
- // Do not allow banning yourself
+ // Do not allow banning yourself, the guest account, or founders.
+ $non_bannable = array($user->data['user_id'], ANONYMOUS);
if (sizeof($founder))
{
- $sql .= ' AND ' . $db->sql_in_set('user_id', array_merge(array_keys($founder), array($user->data['user_id'])), true);
+ $sql .= ' AND ' . $db->sql_in_set('user_id', array_merge(array_keys($founder), $non_bannable), true);
}
else
{
- $sql .= ' AND user_id <> ' . $user->data['user_id'];
+ $sql .= ' AND ' . $db->sql_in_set('user_id', $non_bannable, true);
}
$result = $db->sql_query($sql);
@@ -1228,22 +1230,39 @@ function user_unban($mode, $ban)
}
/**
-* Whois facility
+* Internet Protocol Address Whois
+* RFC3912: WHOIS Protocol Specification
*
-* @link http://tools.ietf.org/html/rfc3912 RFC3912: WHOIS Protocol Specification
+* @param string $ip Ip address, either IPv4 or IPv6.
+*
+* @return string Empty string if not a valid ip address.
+* Otherwise make_clickable()'ed whois result.
*/
function user_ipwhois($ip)
{
- $ipwhois = '';
+ if (empty($ip))
+ {
+ return '';
+ }
- // Check IP
- // Only supporting IPv4 at the moment...
- if (empty($ip) || !preg_match(get_preg_expression('ipv4'), $ip))
+ if (preg_match(get_preg_expression('ipv4'), $ip))
+ {
+ // IPv4 address
+ $whois_host = 'whois.arin.net.';
+ }
+ else if (preg_match(get_preg_expression('ipv6'), $ip))
+ {
+ // IPv6 address
+ $whois_host = 'whois.sixxs.net.';
+ }
+ else
{
return '';
}
- if (($fsk = @fsockopen('whois.arin.net', 43)))
+ $ipwhois = '';
+
+ if (($fsk = @fsockopen($whois_host, 43)))
{
// CRLF as per RFC3912
fputs($fsk, "$ip\r\n");
@@ -1256,7 +1275,7 @@ function user_ipwhois($ip)
$match = array();
- // Test for referrals from ARIN to other whois databases, roll on rwhois
+ // Test for referrals from $whois_host to other whois databases, roll on rwhois
if (preg_match('#ReferralServer: whois://(.+)#im', $ipwhois, $match))
{
if (strpos($match[1], ':') !== false)
@@ -1284,7 +1303,7 @@ function user_ipwhois($ip)
@fclose($fsk);
}
- // Use the result from ARIN if we don't get any result here
+ // Use the result from $whois_host if we don't get any result here
$ipwhois = (empty($buffer)) ? $ipwhois : $buffer;
}
@@ -2284,7 +2303,7 @@ function avatar_get_dimensions($avatar, $avatar_type, &$error, $current_x = 0, $
/**
* Uploading/Changing user avatar
*/
-function avatar_process_user(&$error, $custom_userdata = false)
+function avatar_process_user(&$error, $custom_userdata = false, $can_upload = null)
{
global $config, $phpbb_root_path, $auth, $user, $db;
@@ -2323,7 +2342,10 @@ function avatar_process_user(&$error, $custom_userdata = false)
$avatar_select = basename(request_var('avatar_select', ''));
// Can we upload?
- $can_upload = ($config['allow_avatar_upload'] && file_exists($phpbb_root_path . $config['avatar_path']) && @is_writable($phpbb_root_path . $config['avatar_path']) && $change_avatar && (@ini_get('file_uploads') || strtolower(@ini_get('file_uploads')) == 'on')) ? true : false;
+ if (is_null($can_upload))
+ {
+ $can_upload = ($config['allow_avatar_upload'] && file_exists($phpbb_root_path . $config['avatar_path']) && @is_writable($phpbb_root_path . $config['avatar_path']) && $change_avatar && (@ini_get('file_uploads') || strtolower(@ini_get('file_uploads')) == 'on')) ? true : false;
+ }
if ((!empty($_FILES['uploadfile']['name']) || $data['uploadurl']) && $can_upload)
{
@@ -2348,7 +2370,7 @@ function avatar_process_user(&$error, $custom_userdata = false)
}
else
{
- list($sql_ary['user_avatar_width'], $sql_ary['user_avatar_height']) = getimagesize($phpbb_root_path . $config['avatar_gallery_path'] . '/' . $category . '/' . $sql_ary['user_avatar']);
+ list($sql_ary['user_avatar_width'], $sql_ary['user_avatar_height']) = getimagesize($phpbb_root_path . $config['avatar_gallery_path'] . '/' . $category . '/' . urldecode($sql_ary['user_avatar']));
$sql_ary['user_avatar'] = $category . '/' . $sql_ary['user_avatar'];
}
}
diff --git a/phpBB/includes/mcp/mcp_main.php b/phpBB/includes/mcp/mcp_main.php
index 80c3559649..d5551f5114 100644
--- a/phpBB/includes/mcp/mcp_main.php
+++ b/phpBB/includes/mcp/mcp_main.php
@@ -1048,6 +1048,35 @@ function mcp_fork_topic($topic_ids)
$total_posts = 0;
$new_topic_id_list = array();
+ if ($topic_data['enable_indexing'])
+ {
+ // Select the search method and do some additional checks to ensure it can actually be utilised
+ $search_type = basename($config['search_type']);
+
+ if (!file_exists($phpbb_root_path . 'includes/search/' . $search_type . '.' . $phpEx))
+ {
+ trigger_error('NO_SUCH_SEARCH_MODULE');
+ }
+
+ if (!class_exists($search_type))
+ {
+ include("{$phpbb_root_path}includes/search/$search_type.$phpEx");
+ }
+
+ $error = false;
+ $search = new $search_type($error);
+ $search_mode = 'post';
+
+ if ($error)
+ {
+ trigger_error($error);
+ }
+ }
+ else
+ {
+ $search_type = false;
+ }
+
foreach ($topic_data as $topic_id => $topic_row)
{
$sql_ary = array(
@@ -1158,6 +1187,12 @@ function mcp_fork_topic($topic_ids)
// Copy whether the topic is dotted
markread('post', $to_forum_id, $new_topic_id, 0, $row['poster_id']);
+ if ($search_type)
+ {
+ $search->index($search_mode, $sql_ary['post_id'], $sql_ary['post_text'], $sql_ary['post_subject'], $sql_ary['poster_id'], ($topic_row['topic_type'] == POST_GLOBAL) ? 0 : $to_forum_id);
+ $search_mode = 'reply'; // After one we index replies
+ }
+
// Copy Attachments
if ($row['post_attachment'])
{
diff --git a/phpBB/includes/mcp/mcp_post.php b/phpBB/includes/mcp/mcp_post.php
index fa44e006dd..7098b4bbce 100644
--- a/phpBB/includes/mcp/mcp_post.php
+++ b/phpBB/includes/mcp/mcp_post.php
@@ -176,7 +176,7 @@ function mcp_post_details($id, $mode, $action)
}
$template->assign_vars(array(
- 'U_MCP_ACTION' => "$url&amp;i=main&amp;quickmod=1", // Use this for mode paramaters
+ 'U_MCP_ACTION' => "$url&amp;i=main&amp;quickmod=1&amp;mode=post_details", // Use this for mode paramaters
'U_POST_ACTION' => "$url&amp;i=$id&amp;mode=post_details", // Use this for action parameters
'U_APPROVE_ACTION' => append_sid("{$phpbb_root_path}mcp.$phpEx", "i=queue&amp;p=$post_id&amp;f={$post_info['forum_id']}"),
@@ -200,7 +200,7 @@ function mcp_post_details($id, $mode, $action)
'U_VIEW_POST' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $post_info['forum_id'] . '&amp;p=' . $post_info['post_id'] . '#p' . $post_info['post_id']),
'U_VIEW_TOPIC' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $post_info['forum_id'] . '&amp;t=' . $post_info['topic_id']),
- 'MINI_POST_IMG' => ($post_unread) ? $user->img('icon_post_target_unread', 'NEW_POST') : $user->img('icon_post_target', 'POST'),
+ 'MINI_POST_IMG' => ($post_unread) ? $user->img('icon_post_target_unread', 'UNREAD_POST') : $user->img('icon_post_target', 'POST'),
'RETURN_TOPIC' => sprintf($user->lang['RETURN_TOPIC'], '<a href="' . append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f={$post_info['forum_id']}&amp;p=$post_id") . "#p$post_id\">", '</a>'),
'RETURN_FORUM' => sprintf($user->lang['RETURN_FORUM'], '<a href="' . append_sid("{$phpbb_root_path}viewforum.$phpEx", "f={$post_info['forum_id']}&amp;start={$start}") . '">', '</a>'),
diff --git a/phpBB/includes/mcp/mcp_queue.php b/phpBB/includes/mcp/mcp_queue.php
index 8d9ece5205..e43881fab2 100644
--- a/phpBB/includes/mcp/mcp_queue.php
+++ b/phpBB/includes/mcp/mcp_queue.php
@@ -196,7 +196,7 @@ class mcp_queue
'U_VIEW_POST' => $post_url,
'U_VIEW_TOPIC' => $topic_url,
- 'MINI_POST_IMG' => ($post_unread) ? $user->img('icon_post_target_unread', 'NEW_POST') : $user->img('icon_post_target', 'POST'),
+ 'MINI_POST_IMG' => ($post_unread) ? $user->img('icon_post_target_unread', 'UNREAD_POST') : $user->img('icon_post_target', 'POST'),
'RETURN_QUEUE' => sprintf($user->lang['RETURN_QUEUE'], '<a href="' . append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=queue' . (($topic_id) ? '&amp;mode=unapproved_topics' : '&amp;mode=unapproved_posts')) . "&amp;start=$start\">", '</a>'),
'RETURN_POST' => sprintf($user->lang['RETURN_POST'], '<a href="' . $post_url . '">', '</a>'),
@@ -691,16 +691,19 @@ function approve_post($post_id_list, $id, $mode)
{
$show_notify = false;
- foreach ($post_info as $post_data)
+ if ($config['email_enable'] || $config['jab_enable'])
{
- if ($post_data['poster_id'] == ANONYMOUS)
- {
- continue;
- }
- else
+ foreach ($post_info as $post_data)
{
- $show_notify = true;
- break;
+ if ($post_data['poster_id'] == ANONYMOUS)
+ {
+ continue;
+ }
+ else
+ {
+ $show_notify = true;
+ break;
+ }
}
}
diff --git a/phpBB/includes/mcp/mcp_reports.php b/phpBB/includes/mcp/mcp_reports.php
index e19fe96963..39d9fbd4af 100644
--- a/phpBB/includes/mcp/mcp_reports.php
+++ b/phpBB/includes/mcp/mcp_reports.php
@@ -205,7 +205,7 @@ class mcp_reports
'U_VIEW_TOPIC' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $post_info['forum_id'] . '&amp;t=' . $post_info['topic_id']),
'EDIT_IMG' => $user->img('icon_post_edit', $user->lang['EDIT_POST']),
- 'MINI_POST_IMG' => ($post_unread) ? $user->img('icon_post_target_unread', 'NEW_POST') : $user->img('icon_post_target', 'POST'),
+ 'MINI_POST_IMG' => ($post_unread) ? $user->img('icon_post_target_unread', 'UNREAD_POST') : $user->img('icon_post_target', 'POST'),
'UNAPPROVED_IMG' => $user->img('icon_topic_unapproved', $user->lang['POST_UNAPPROVED']),
'RETURN_REPORTS' => sprintf($user->lang['RETURN_REPORTS'], '<a href="' . append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=reports' . (($post_info['post_reported']) ? '&amp;mode=reports' : '&amp;mode=reports_closed') . '&amp;start=' . $start . '&amp;f=' . $post_info['forum_id']) . '">', '</a>'),
diff --git a/phpBB/includes/mcp/mcp_topic.php b/phpBB/includes/mcp/mcp_topic.php
index 9779478330..76cd9beb92 100644
--- a/phpBB/includes/mcp/mcp_topic.php
+++ b/phpBB/includes/mcp/mcp_topic.php
@@ -237,7 +237,7 @@ function mcp_topic_view($id, $mode, $action)
'POST_ID' => $row['post_id'],
'RETURN_TOPIC' => sprintf($user->lang['RETURN_TOPIC'], '<a href="' . append_sid("{$phpbb_root_path}viewtopic.$phpEx", 't=' . $topic_id) . '">', '</a>'),
- 'MINI_POST_IMG' => ($post_unread) ? $user->img('icon_post_target_unread', 'NEW_POST') : $user->img('icon_post_target', 'POST'),
+ 'MINI_POST_IMG' => ($post_unread) ? $user->img('icon_post_target_unread', 'UNREAD_POST') : $user->img('icon_post_target', 'POST'),
'S_POST_REPORTED' => ($row['post_reported']) ? true : false,
'S_POST_UNAPPROVED' => ($row['post_approved']) ? false : true,
diff --git a/phpBB/includes/search/fulltext_mysql.php b/phpBB/includes/search/fulltext_mysql.php
index da3833754e..0be3a10e5f 100644
--- a/phpBB/includes/search/fulltext_mysql.php
+++ b/phpBB/includes/search/fulltext_mysql.php
@@ -122,7 +122,7 @@ class fulltext_mysql extends search_backend
if ($terms == 'all')
{
- $match = array('#\sand\s#iu', '#\sor\s#iu', '#\snot\s#iu', '#\+#', '#-#', '#\|#');
+ $match = array('#\sand\s#iu', '#\sor\s#iu', '#\snot\s#iu', '#(^|\s)\+#', '#(^|\s)-#', '#(^|\s)\|#');
$replace = array(' +', ' |', ' -', ' +', ' -', ' |');
$keywords = preg_replace($match, $replace, $keywords);
diff --git a/phpBB/includes/search/fulltext_native.php b/phpBB/includes/search/fulltext_native.php
index c89e92711e..727e3aaffb 100644
--- a/phpBB/includes/search/fulltext_native.php
+++ b/phpBB/includes/search/fulltext_native.php
@@ -83,7 +83,9 @@ class fulltext_native extends search_backend
{
global $db, $user, $config;
- $keywords = trim($this->cleanup($keywords, '+-|()*'));
+ $tokens = '+-|()*';
+
+ $keywords = trim($this->cleanup($keywords, $tokens));
// allow word|word|word without brackets
if ((strpos($keywords, ' ') === false) && (strpos($keywords, '|') !== false) && (strpos($keywords, '(') === false))
@@ -114,6 +116,15 @@ class fulltext_native extends search_backend
case ' ':
$keywords[$i] = '|';
break;
+ case '*':
+ if ($i === 0 || ($keywords[$i - 1] !== '*' && strcspn($keywords[$i - 1], $tokens) === 0))
+ {
+ if ($i === $n - 1 || ($keywords[$i + 1] !== '*' && strcspn($keywords[$i + 1], $tokens) === 0))
+ {
+ $keywords = substr($keywords, 0, $i) . substr($keywords, $i + 1);
+ }
+ }
+ break;
}
}
else
diff --git a/phpBB/includes/session.php b/phpBB/includes/session.php
index ec7d1e149b..7da72cb6d2 100644
--- a/phpBB/includes/session.php
+++ b/phpBB/includes/session.php
@@ -1831,7 +1831,7 @@ class user extends session
// Is load exceeded?
if ($config['limit_load'] && $this->load !== false)
{
- if ($this->load > floatval($config['limit_load']) && !defined('IN_LOGIN'))
+ if ($this->load > floatval($config['limit_load']) && !defined('IN_LOGIN') && !defined('IN_ADMIN'))
{
// Set board disabled to true to let the admins/mods get the proper notification
$config['board_disable'] = '1';
@@ -2134,9 +2134,9 @@ class user extends session
// Zone offset
$zone_offset = $this->timezone + $this->dst;
- // Show date <= 1 hour ago as 'xx min ago'
+ // Show date <= 1 hour ago as 'xx min ago' but not greater than 60 seconds in the future
// A small tolerence is given for times in the future but in the same minute are displayed as '< than a minute ago'
- if ($delta <= 3600 && ($delta >= -5 || (($now / 60) % 60) == (($gmepoch / 60) % 60)) && $date_cache[$format]['is_short'] !== false && !$forcedate && isset($this->lang['datetime']['AGO']))
+ if ($delta <= 3600 && $delta > -60 && ($delta >= -5 || (($now / 60) % 60) == (($gmepoch / 60) % 60)) && $date_cache[$format]['is_short'] !== false && !$forcedate && isset($this->lang['datetime']['AGO']))
{
return $this->lang(array('datetime', 'AGO'), max(0, (int) floor($delta / 60)));
}
diff --git a/phpBB/includes/ucp/ucp_main.php b/phpBB/includes/ucp/ucp_main.php
index 6ac2412ef0..a6f71669ce 100644
--- a/phpBB/includes/ucp/ucp_main.php
+++ b/phpBB/includes/ucp/ucp_main.php
@@ -119,7 +119,7 @@ class ucp_main
$unread_topic = (isset($topic_tracking_info[$topic_id]) && $row['topic_last_post_time'] > $topic_tracking_info[$topic_id]) ? true : false;
$folder_img = ($unread_topic) ? $folder_new : $folder;
- $folder_alt = ($unread_topic) ? 'NEW_POSTS' : (($row['topic_status'] == ITEM_LOCKED) ? 'TOPIC_LOCKED' : 'NO_NEW_POSTS');
+ $folder_alt = ($unread_topic) ? 'UNREAD_POSTS' : (($row['topic_status'] == ITEM_LOCKED) ? 'TOPIC_LOCKED' : 'NO_UNREAD_POSTS');
if ($row['topic_status'] == ITEM_LOCKED)
{
@@ -318,7 +318,7 @@ class ucp_main
else
{
$folder_image = ($unread_forum) ? 'forum_unread' : 'forum_read';
- $folder_alt = ($unread_forum) ? 'NEW_POSTS' : 'NO_NEW_POSTS';
+ $folder_alt = ($unread_forum) ? 'UNREAD_POSTS' : 'NO_UNREAD_POSTS';
}
// Create last post link information, if appropriate
diff --git a/phpBB/includes/ucp/ucp_profile.php b/phpBB/includes/ucp/ucp_profile.php
index f4f4abad4a..4fd25b7d1c 100644
--- a/phpBB/includes/ucp/ucp_profile.php
+++ b/phpBB/includes/ucp/ucp_profile.php
@@ -141,10 +141,7 @@ class ucp_profile
$server_url = generate_board_url();
- $user_actkey = gen_rand_string(10);
- $key_len = 54 - (strlen($server_url));
- $key_len = ($key_len > 6) ? $key_len : 6;
- $user_actkey = substr($user_actkey, 0, $key_len);
+ $user_actkey = gen_rand_string(mt_rand(6, 10));
$messenger = new messenger(false);
@@ -572,7 +569,7 @@ class ucp_profile
{
if (check_form_key('ucp_avatar'))
{
- if (avatar_process_user($error))
+ if (avatar_process_user($error, false, $can_upload))
{
meta_refresh(3, $this->u_action);
$message = $user->lang['PROFILE_UPDATED'] . '<br /><br />' . sprintf($user->lang['RETURN_UCP'], '<a href="' . $this->u_action . '">', '</a>');
diff --git a/phpBB/includes/ucp/ucp_register.php b/phpBB/includes/ucp/ucp_register.php
index 9656a4a3af..7fd99da55a 100644
--- a/phpBB/includes/ucp/ucp_register.php
+++ b/phpBB/includes/ucp/ucp_register.php
@@ -286,11 +286,7 @@ class ucp_register
$config['require_activation'] == USER_ACTIVATION_SELF ||
$config['require_activation'] == USER_ACTIVATION_ADMIN) && $config['email_enable'])
{
- $user_actkey = gen_rand_string(10);
- $key_len = 54 - (strlen($server_url));
- $key_len = ($key_len < 6) ? 6 : $key_len;
- $user_actkey = substr($user_actkey, 0, $key_len);
-
+ $user_actkey = gen_rand_string(mt_rand(6, 10));
$user_type = USER_INACTIVE;
$user_inactive_reason = INACTIVE_REGISTER;
$user_inactive_time = time();
diff --git a/phpBB/includes/ucp/ucp_remind.php b/phpBB/includes/ucp/ucp_remind.php
index f9b792de20..cb89ad99be 100644
--- a/phpBB/includes/ucp/ucp_remind.php
+++ b/phpBB/includes/ucp/ucp_remind.php
@@ -79,10 +79,10 @@ class ucp_remind
// Make password at least 8 characters long, make it longer if admin wants to.
// gen_rand_string() however has a limit of 12 or 13.
- $user_password = gen_rand_string(max(8, rand((int) $config['min_pass_chars'], (int) $config['max_pass_chars'])));
+ $user_password = gen_rand_string_friendly(max(8, mt_rand((int) $config['min_pass_chars'], (int) $config['max_pass_chars'])));
// For the activation key a random length between 6 and 10 will do.
- $user_actkey = gen_rand_string(rand(6, 10));
+ $user_actkey = gen_rand_string(mt_rand(6, 10));
$sql = 'UPDATE ' . USERS_TABLE . "
SET user_newpasswd = '" . $db->sql_escape(phpbb_hash($user_password)) . "', user_actkey = '" . $db->sql_escape($user_actkey) . "'
diff --git a/phpBB/index.php b/phpBB/index.php
index c3dbbd346e..cc83641acd 100644
--- a/phpBB/index.php
+++ b/phpBB/index.php
@@ -115,10 +115,10 @@ $template->assign_vars(array(
'LEGEND' => $legend,
'BIRTHDAY_LIST' => $birthday_list,
- 'FORUM_IMG' => $user->img('forum_read', 'NO_NEW_POSTS'),
- 'FORUM_NEW_IMG' => $user->img('forum_unread', 'NEW_POSTS'),
- 'FORUM_LOCKED_IMG' => $user->img('forum_read_locked', 'NO_NEW_POSTS_LOCKED'),
- 'FORUM_NEW_LOCKED_IMG' => $user->img('forum_unread_locked', 'NO_NEW_POSTS_LOCKED'),
+ 'FORUM_IMG' => $user->img('forum_read', 'NO_UNREAD_POSTS'),
+ 'FORUM_UNREAD_IMG' => $user->img('forum_unread', 'UNREAD_POSTS'),
+ 'FORUM_LOCKED_IMG' => $user->img('forum_read_locked', 'NO_UNREAD_POSTS_LOCKED'),
+ 'FORUM_UNREAD_LOCKED_IMG' => $user->img('forum_unread_locked', 'UNREAD_POSTS_LOCKED'),
'S_LOGIN_ACTION' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=login'),
'S_DISPLAY_BIRTHDAY_LIST' => ($config['load_birthdays']) ? true : false,
diff --git a/phpBB/install/database_update.php b/phpBB/install/database_update.php
index 47d261dc46..fec09f89db 100644
--- a/phpBB/install/database_update.php
+++ b/phpBB/install/database_update.php
@@ -685,7 +685,6 @@ function _add_modules($modules_to_install)
WHERE module_class = '" . $db->sql_escape($module_data['class']) . "'
AND parent_id = {$parent_id}
AND left_id BETWEEN {$first_left_id} AND {$module_row['left_id']}
- GROUP BY left_id
ORDER BY left_id";
$result = $db->sql_query($sql);
$steps = (int) $db->sql_fetchfield('num_modules');
@@ -1684,6 +1683,117 @@ function change_database_data(&$no_updates, $version)
}
$db->sql_freeresult($result);
+ // Install modules
+ $modules_to_install = array(
+ 'post' => array(
+ 'base' => 'board',
+ 'class' => 'acp',
+ 'title' => 'ACP_POST_SETTINGS',
+ 'auth' => 'acl_a_board',
+ 'cat' => 'ACP_MESSAGES',
+ 'after' => array('message', 'ACP_MESSAGE_SETTINGS')
+ ),
+ );
+
+ _add_modules($modules_to_install);
+
+ // add Bing Bot
+ $sql = 'SELECT group_id, group_colour
+ FROM ' . GROUPS_TABLE . "
+ WHERE group_name = 'BOTS'";
+ $result = $db->sql_query($sql);
+ $group_row = $db->sql_fetchrow($result);
+ $db->sql_freeresult($result);
+
+ if (!$group_row)
+ {
+ // default fallback, should never get here
+ $group_row['group_id'] = 6;
+ $group_row['group_colour'] = '9E8DA7';
+ }
+
+ if (!function_exists('user_add'))
+ {
+ include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
+ }
+
+ $bot_name = 'Bing [Bot]';
+ $bot_agent = 'bingbot/';
+ $bot_ip = '';
+
+ $user_row = array(
+ 'user_type' => USER_IGNORE,
+ 'group_id' => $group_row['group_id'],
+ 'username' => $bot_name,
+ 'user_regdate' => time(),
+ 'user_password' => '',
+ 'user_colour' => $group_row['group_colour'],
+ 'user_email' => '',
+ 'user_lang' => $config['default_lang'],
+ 'user_style' => $config['default_style'],
+ 'user_timezone' => 0,
+ 'user_dateformat' => $config['default_dateformat'],
+ 'user_allow_massemail' => 0,
+ );
+
+ $user_id = user_add($user_row);
+
+ $sql = 'INSERT INTO ' . BOTS_TABLE . ' ' . $db->sql_build_array('INSERT', array(
+ 'bot_active' => 1,
+ 'bot_name' => (string) $bot_name,
+ 'user_id' => (int) $user_id,
+ 'bot_agent' => (string) $bot_agent,
+ 'bot_ip' => (string) $bot_ip,
+ ));
+
+ _sql($sql, $errored, $error_ary);
+ // end Bing Bot addition
+
+ // Delete shadow topics pointing to not existing topics
+ $batch_size = 500;
+
+ // Set of affected forums we have to resync
+ $sync_forum_ids = array();
+
+ do
+ {
+ $sql_array = array(
+ 'SELECT' => 't1.topic_id, t1.forum_id',
+ 'FROM' => array(
+ TOPICS_TABLE => 't1',
+ ),
+ 'LEFT_JOIN' => array(
+ array(
+ 'FROM' => array(TOPICS_TABLE => 't2'),
+ 'ON' => 't1.topic_moved_id = t2.topic_id',
+ ),
+ ),
+ 'WHERE' => 't1.topic_moved_id <> 0
+ AND t2.topic_id IS NULL',
+ );
+ $sql = $db->sql_build_query('SELECT', $sql_array);
+ $result = $db->sql_query_limit($sql, $batch_size);
+
+ $topic_ids = array();
+ while ($row = $db->sql_fetchrow($result))
+ {
+ $topic_ids[] = (int) $row['topic_id'];
+
+ $sync_forum_ids[(int) $row['forum_id']] = (int) $row['forum_id'];
+ }
+ $db->sql_freeresult($result);
+
+ if (!empty($topic_ids))
+ {
+ $sql = 'DELETE FROM ' . TOPICS_TABLE . '
+ WHERE ' . $db->sql_in_set('topic_id', $topic_ids);
+ $db->sql_query($sql);
+ }
+ }
+ while (sizeof($topic_ids) == $batch_size);
+
+ // Sync the forums we have deleted shadow topics from.
+ sync('forum', 'forum_id', $sync_forum_ids, true, true);
$no_updates = false;
break;
diff --git a/phpBB/install/install_convert.php b/phpBB/install/install_convert.php
index 06c3a8b4a6..8c3ffd61a8 100644
--- a/phpBB/install/install_convert.php
+++ b/phpBB/install/install_convert.php
@@ -685,7 +685,7 @@ class install_convert extends module
// Thanks MySQL, for silently converting...
case 'mysql':
case 'mysql4':
- if (version_compare($src_db->sql_server_info(true), '4.1.3', '>='))
+ if (version_compare($src_db->sql_server_info(true, false), '4.1.3', '>='))
{
$convert->mysql_convert = true;
}
diff --git a/phpBB/install/install_install.php b/phpBB/install/install_install.php
index f4989b5bd7..4c22db07b2 100644
--- a/phpBB/install/install_install.php
+++ b/phpBB/install/install_install.php
@@ -2108,6 +2108,7 @@ class install_install extends module
'Alta Vista [Bot]' => array('Scooter/', ''),
'Ask Jeeves [Bot]' => array('Ask Jeeves', ''),
'Baidu [Spider]' => array('Baiduspider+(', ''),
+ 'Bing [Bot]' => array('bingbot/', ''),
'Exabot [Bot]' => array('Exabot/', ''),
'FAST Enterprise [Crawler]' => array('FAST Enterprise Crawler', ''),
'FAST WebCrawler [Crawler]' => array('FAST-WebCrawler/', ''),
diff --git a/phpBB/install/install_update.php b/phpBB/install/install_update.php
index e717fe3dd4..6184cbbc33 100644
--- a/phpBB/install/install_update.php
+++ b/phpBB/install/install_update.php
@@ -192,6 +192,17 @@ class install_update extends module
return;
}
+ // Check if the update files are actually meant to update from the current version
+ if ($config['version'] != $this->update_info['version']['from'])
+ {
+ $this->unequal_version = true;
+
+ $template->assign_vars(array(
+ 'S_ERROR' => true,
+ 'ERROR_MSG' => sprintf($user->lang['INCOMPATIBLE_UPDATE_FILES'], $config['version'], $this->update_info['version']['from'], $this->update_info['version']['to']),
+ ));
+ }
+
// Check if the update files stored are for the latest version...
if ($this->latest_version != $this->update_info['version']['to'])
{
diff --git a/phpBB/language/en/acp/board.php b/phpBB/language/en/acp/board.php
index 52389d85b9..ac0ddf1b73 100644
--- a/phpBB/language/en/acp/board.php
+++ b/phpBB/language/en/acp/board.php
@@ -50,7 +50,8 @@ $lang = array_merge($lang, array(
'SITE_DESC' => 'Site description',
'SITE_NAME' => 'Site name',
'SYSTEM_DST' => 'Enable Summer Time/<abbr title="Daylight Saving Time">DST</abbr>',
- 'SYSTEM_TIMEZONE' => 'System timezone',
+ 'SYSTEM_TIMEZONE' => 'Guest timezone',
+ 'SYSTEM_TIMEZONE_EXPLAIN' => 'Timezone to use for displaying times to users who are not logged in (guests, bots). Logged in users set their timezone during registration and can change it in user control panel.',
'WARNINGS_EXPIRE' => 'Warning duration',
'WARNINGS_EXPIRE_EXPLAIN' => 'Number of days that will elapse before the warning will automatically expire from a user’s record.',
));
@@ -176,8 +177,8 @@ $lang = array_merge($lang, array(
'MIN_CHAR_LIMIT_EXPLAIN' => 'The minimum number of characters the user need to enter within a post/private message.',
'POSTING' => 'Posting',
'POSTS_PER_PAGE' => 'Posts per page',
- 'QUOTE_DEPTH_LIMIT' => 'Maximum nested quotes per post',
- 'QUOTE_DEPTH_LIMIT_EXPLAIN' => 'Maximum number of nested quotes in a post. Set to 0 for unlimited depth.',
+ 'QUOTE_DEPTH_LIMIT' => 'Maximum nesting depth for quotes',
+ 'QUOTE_DEPTH_LIMIT_EXPLAIN' => 'Maximum quote nesting depth in a post. Set to 0 for unlimited depth.',
'SMILIES_LIMIT' => 'Maximum smilies per post',
'SMILIES_LIMIT_EXPLAIN' => 'Maximum number of smilies in a post. Set to 0 for unlimited smilies.',
'SMILIES_PER_PAGE' => 'Smilies per page',
@@ -359,7 +360,7 @@ $lang = array_merge($lang, array(
'RECOMPILE_STYLES' => 'Recompile stale style components',
'RECOMPILE_STYLES_EXPLAIN' => 'Check for updated style components on filesystem and recompile.',
'YES_ANON_READ_MARKING' => 'Enable topic marking for guests',
- 'YES_ANON_READ_MARKING_EXPLAIN' => 'Stores read/unread status information for guests. If disabled posts are always read for guests.',
+ 'YES_ANON_READ_MARKING_EXPLAIN' => 'Stores read/unread status information for guests. If disabled, posts are always marked read for guests.',
'YES_BIRTHDAYS' => 'Enable birthday listing',
'YES_BIRTHDAYS_EXPLAIN' => 'If disabled the birthday listing is no longer displayed. To let this setting take effect the birthday feature needs to be enabled too.',
'YES_JUMPBOX' => 'Enable display of jumpbox',
@@ -392,7 +393,7 @@ $lang = array_merge($lang, array(
'LDAP_NO_EMAIL' => 'The specified e-mail attribute does not exist.',
'LDAP_NO_IDENTITY' => 'Could not find a login identity for %s.',
'LDAP_PASSWORD' => 'LDAP password',
- 'LDAP_PASSWORD_EXPLAIN' => 'Leave blank to use anonymous binding. Else fill in the password for the above user. Required for Active Directory Servers.<br /><em><strong>Warning:</strong> This password will be stored as plain text in the database visible to everybody who can access your database or who can view this configuration page.</em>',
+ 'LDAP_PASSWORD_EXPLAIN' => 'Leave blank to use anonymous binding. Else fill in the password for the above user. Required for Active Directory Servers.<br /><em><strong>Warning:</strong> This password will be stored as plain text in the database, visible to everybody who can access your database or who can view this configuration page.</em>',
'LDAP_PORT' => 'LDAP server port',
'LDAP_PORT_EXPLAIN' => 'Optionally you can specify a port which should be used to connect to the LDAP server instead of the default port 389.',
'LDAP_SERVER' => 'LDAP server name',
@@ -504,7 +505,7 @@ $lang = array_merge($lang, array(
'SMTP_DIGEST_MD5' => 'DIGEST-MD5',
'SMTP_LOGIN' => 'LOGIN',
'SMTP_PASSWORD' => 'SMTP password',
- 'SMTP_PASSWORD_EXPLAIN' => 'Only enter a password if your SMTP server requires it.<br /><em><strong>Warning:</strong> This password will be stored as plain text in the database visible to everybody who can access your database or who can view this configuration page.</em>',
+ 'SMTP_PASSWORD_EXPLAIN' => 'Only enter a password if your SMTP server requires it.<br /><em><strong>Warning:</strong> This password will be stored as plain text in the database, visible to everybody who can access your database or who can view this configuration page.</em>',
'SMTP_PLAIN' => 'PLAIN',
'SMTP_POP_BEFORE_SMTP' => 'POP-BEFORE-SMTP',
'SMTP_PORT' => 'SMTP server port',
@@ -527,7 +528,7 @@ $lang = array_merge($lang, array(
'JAB_PACKAGE_SIZE' => 'Jabber package size',
'JAB_PACKAGE_SIZE_EXPLAIN' => 'This is the number of messages sent in one package. If set to 0 the message is sent immediately and will not be queued for later sending.',
'JAB_PASSWORD' => 'Jabber password',
- 'JAB_PASSWORD_EXPLAIN' => '<em><strong>Warning:</strong> This password will be stored as plain text in the database visible to everybody who can access your database or who can view this configuration page.</em>',
+ 'JAB_PASSWORD_EXPLAIN' => '<em><strong>Warning:</strong> This password will be stored as plain text in the database, visible to everybody who can access your database or who can view this configuration page.</em>',
'JAB_PORT' => 'Jabber port',
'JAB_PORT_EXPLAIN' => 'Leave blank unless you know it is not port 5222.',
'JAB_SERVER' => 'Jabber server',
diff --git a/phpBB/language/en/acp/styles.php b/phpBB/language/en/acp/styles.php
index 247d8a4140..951c69f915 100644
--- a/phpBB/language/en/acp/styles.php
+++ b/phpBB/language/en/acp/styles.php
@@ -165,11 +165,11 @@ $lang = array_merge($lang, array(
'IMG_FORUM_READ' => 'Forum',
'IMG_FORUM_READ_LOCKED' => 'Forum locked',
'IMG_FORUM_READ_SUBFORUM' => 'Subforum',
- 'IMG_FORUM_UNREAD' => 'Forum new posts',
- 'IMG_FORUM_UNREAD_LOCKED' => 'Forum new posts locked',
- 'IMG_FORUM_UNREAD_SUBFORUM' => 'Subforum new posts',
+ 'IMG_FORUM_UNREAD' => 'Forum unread posts',
+ 'IMG_FORUM_UNREAD_LOCKED' => 'Forum unread posts locked',
+ 'IMG_FORUM_UNREAD_SUBFORUM' => 'Subforum unread posts',
'IMG_SUBFORUM_READ' => 'Legend subforum',
- 'IMG_SUBFORUM_UNREAD' => 'Legend subforum new posts',
+ 'IMG_SUBFORUM_UNREAD' => 'Legend subforum unread posts',
'IMG_TOPIC_MOVED' => 'Topic moved',
@@ -180,39 +180,39 @@ $lang = array_merge($lang, array(
'IMG_TOPIC_READ_LOCKED' => 'Topic locked',
'IMG_TOPIC_READ_LOCKED_MINE' => 'Topic locked posted to',
- 'IMG_TOPIC_UNREAD' => 'Topic new posts',
- 'IMG_TOPIC_UNREAD_MINE' => 'Topic posted to new',
- 'IMG_TOPIC_UNREAD_HOT' => 'Topic popular new posts',
- 'IMG_TOPIC_UNREAD_HOT_MINE' => 'Topic popular posted to new',
- 'IMG_TOPIC_UNREAD_LOCKED' => 'Topic locked new',
- 'IMG_TOPIC_UNREAD_LOCKED_MINE' => 'Topic locked posted to new',
+ 'IMG_TOPIC_UNREAD' => 'Topic unread posts',
+ 'IMG_TOPIC_UNREAD_MINE' => 'Topic posted to unread',
+ 'IMG_TOPIC_UNREAD_HOT' => 'Topic popular unread posts',
+ 'IMG_TOPIC_UNREAD_HOT_MINE' => 'Topic popular posted to unread',
+ 'IMG_TOPIC_UNREAD_LOCKED' => 'Topic locked unread',
+ 'IMG_TOPIC_UNREAD_LOCKED_MINE' => 'Topic locked posted to unread',
'IMG_STICKY_READ' => 'Sticky topic',
'IMG_STICKY_READ_MINE' => 'Sticky topic posted to',
'IMG_STICKY_READ_LOCKED' => 'Sticky topic locked',
'IMG_STICKY_READ_LOCKED_MINE' => 'Sticky topic locked posted to',
- 'IMG_STICKY_UNREAD' => 'Sticky topic new posts',
- 'IMG_STICKY_UNREAD_MINE' => 'Sticky topic posted to new',
- 'IMG_STICKY_UNREAD_LOCKED' => 'Sticky topic locked new posts',
- 'IMG_STICKY_UNREAD_LOCKED_MINE' => 'Sticky topic locked posted to new',
+ 'IMG_STICKY_UNREAD' => 'Sticky topic unread posts',
+ 'IMG_STICKY_UNREAD_MINE' => 'Sticky topic posted to unread',
+ 'IMG_STICKY_UNREAD_LOCKED' => 'Sticky topic locked unread posts',
+ 'IMG_STICKY_UNREAD_LOCKED_MINE' => 'Sticky topic locked posted to unread',
'IMG_ANNOUNCE_READ' => 'Announcement',
'IMG_ANNOUNCE_READ_MINE' => 'Announcement posted to',
'IMG_ANNOUNCE_READ_LOCKED' => 'Announcement locked',
'IMG_ANNOUNCE_READ_LOCKED_MINE' => 'Announcement locked posted to',
- 'IMG_ANNOUNCE_UNREAD' => 'Announcement new posts',
- 'IMG_ANNOUNCE_UNREAD_MINE' => 'Announcement posted to new',
- 'IMG_ANNOUNCE_UNREAD_LOCKED' => 'Announcement locked new posts',
- 'IMG_ANNOUNCE_UNREAD_LOCKED_MINE' => 'Announcement locked posted to new',
+ 'IMG_ANNOUNCE_UNREAD' => 'Announcement unread posts',
+ 'IMG_ANNOUNCE_UNREAD_MINE' => 'Announcement posted to unread',
+ 'IMG_ANNOUNCE_UNREAD_LOCKED' => 'Announcement locked unread posts',
+ 'IMG_ANNOUNCE_UNREAD_LOCKED_MINE' => 'Announcement locked posted to unread',
'IMG_GLOBAL_READ' => 'Global',
'IMG_GLOBAL_READ_MINE' => 'Global posted to',
'IMG_GLOBAL_READ_LOCKED' => 'Global locked',
'IMG_GLOBAL_READ_LOCKED_MINE' => 'Global locked posted to',
- 'IMG_GLOBAL_UNREAD' => 'Global new posts',
- 'IMG_GLOBAL_UNREAD_MINE' => 'Global posted to new',
- 'IMG_GLOBAL_UNREAD_LOCKED' => 'Global locked new posts',
- 'IMG_GLOBAL_UNREAD_LOCKED_MINE' => 'Global locked posted to new',
+ 'IMG_GLOBAL_UNREAD' => 'Global unread posts',
+ 'IMG_GLOBAL_UNREAD_MINE' => 'Global posted to unread',
+ 'IMG_GLOBAL_UNREAD_LOCKED' => 'Global locked unread posts',
+ 'IMG_GLOBAL_UNREAD_LOCKED_MINE' => 'Global locked posted to unread',
'IMG_PM_READ' => 'Read private message',
'IMG_PM_UNREAD' => 'Unread private message',
diff --git a/phpBB/language/en/acp/users.php b/phpBB/language/en/acp/users.php
index 8d9bf0d486..eda9659795 100644
--- a/phpBB/language/en/acp/users.php
+++ b/phpBB/language/en/acp/users.php
@@ -42,6 +42,7 @@ $lang = array_merge($lang, array(
'BAN_ALREADY_ENTERED' => 'The ban had been previously entered successfully. The ban list has not been updated.',
'BAN_SUCCESSFUL' => 'Ban entered successfully.',
+ 'CANNOT_BAN_ANONYMOUS' => 'You are not allowed to ban the anonymous account. Permissions for anonymous users can be set under the Permissions tab.',
'CANNOT_BAN_FOUNDER' => 'You are not allowed to ban founder accounts.',
'CANNOT_BAN_YOURSELF' => 'You are not allowed to ban yourself.',
'CANNOT_DEACTIVATE_BOT' => 'You are not allowed to deactivate bot accounts. Please deactivate the bot within the bots page instead.',
diff --git a/phpBB/language/en/common.php b/phpBB/language/en/common.php
index 03986c0361..bc38c1563d 100644
--- a/phpBB/language/en/common.php
+++ b/phpBB/language/en/common.php
@@ -347,8 +347,8 @@ $lang = array_merge($lang, array(
'NEW_MESSAGES' => 'New messages',
'NEW_PM' => '<strong>%d</strong> new message',
'NEW_PMS' => '<strong>%d</strong> new messages',
- 'NEW_POST' => 'New post',
- 'NEW_POSTS' => 'New posts',
+ 'NEW_POST' => 'New post', // Not used anymore
+ 'NEW_POSTS' => 'New posts', // Not used anymore
'NEXT' => 'Next', // Used in pagination
'NEXT_STEP' => 'Next',
'NEVER' => 'Never',
@@ -381,7 +381,7 @@ $lang = array_merge($lang, array(
'NO_MODERATORS' => 'There are no moderators.',
'NO_NEW_MESSAGES' => 'No new messages',
'NO_NEW_PM' => '<strong>0</strong> new messages',
- 'NO_NEW_POSTS' => 'No new posts',
+ 'NO_NEW_POSTS' => 'No new posts', // Not used anymore
'NO_ONLINE_USERS' => 'No registered users',
'NO_POSTS' => 'No posts',
'NO_POSTS_TIME_FRAME' => 'No posts exist inside this topic for the selected time frame.',
@@ -395,6 +395,7 @@ $lang = array_merge($lang, array(
'NO_TOPICS' => 'There are no topics or posts in this forum.',
'NO_TOPICS_TIME_FRAME' => 'No topics exist inside this forum for the selected time frame.',
'NO_UNREAD_PM' => '<strong>0</strong> unread messages',
+ 'NO_UNREAD_POSTS' => 'No unread posts',
'NO_UPLOAD_FORM_FOUND' => 'Upload initiated but no valid file upload form found.',
'NO_USER' => 'The requested user does not exist.',
'NO_USERS' => 'The requested users do not exist.',
@@ -641,6 +642,8 @@ $lang = array_merge($lang, array(
'UNREAD_MESSAGES' => 'Unread messages',
'UNREAD_PM' => '<strong>%d</strong> unread message',
'UNREAD_PMS' => '<strong>%d</strong> unread messages',
+ 'UNREAD_POST' => 'Unread post',
+ 'UNREAD_POSTS' => 'Unread posts',
'UNWATCHED_FORUMS' => 'You are no longer subscribed to the selected forums.',
'UNWATCHED_TOPICS' => 'You are no longer subscribed to the selected topics.',
'UNWATCHED_FORUMS_TOPICS' => 'You are no longer subscribed to the selected entries.',
diff --git a/phpBB/language/en/help_faq.php b/phpBB/language/en/help_faq.php
index c76c281df5..3b7dc02d3f 100644
--- a/phpBB/language/en/help_faq.php
+++ b/phpBB/language/en/help_faq.php
@@ -128,7 +128,7 @@ $help = array(
),
array(
0 => 'Why can’t I add more poll options?',
- 1 => 'The limit for poll options is set by the board administrator. If you feel you need to add more options to your poll then the allowed amount, contact the board administrator.'
+ 1 => 'The limit for poll options is set by the board administrator. If you feel you need to add more options to your poll than the allowed amount, contact the board administrator.'
),
array(
0 => 'How do I edit or delete a poll?',
diff --git a/phpBB/language/en/viewforum.php b/phpBB/language/en/viewforum.php
index 546f91587d..d2fae20c62 100644
--- a/phpBB/language/en/viewforum.php
+++ b/phpBB/language/en/viewforum.php
@@ -48,16 +48,21 @@ $lang = array_merge($lang, array(
'MARK_TOPICS_READ' => 'Mark topics read',
- 'NEW_POSTS_HOT' => 'New posts [ Popular ]',
- 'NEW_POSTS_LOCKED' => 'New posts [ Locked ]',
- 'NO_NEW_POSTS_HOT' => 'No new posts [ Popular ]',
- 'NO_NEW_POSTS_LOCKED' => 'No new posts [ Locked ]',
+ 'NEW_POSTS_HOT' => 'New posts [ Popular ]', // Not used anymore
+ 'NEW_POSTS_LOCKED' => 'New posts [ Locked ]', // Not used anymore
+ 'NO_NEW_POSTS_HOT' => 'No new posts [ Popular ]', // Not used anymore
+ 'NO_NEW_POSTS_LOCKED' => 'No new posts [ Locked ]', // Not used anymore
'NO_READ_ACCESS' => 'You do not have the required permissions to read topics within this forum.',
+ 'NO_UNREAD_POSTS_HOT' => 'No unread posts [ Popular ]',
+ 'NO_UNREAD_POSTS_LOCKED' => 'No unread posts [ Locked ]',
'POST_FORUM_LOCKED' => 'Forum is locked',
'TOPICS_MARKED' => 'The topics for this forum have now been marked read.',
+ 'UNREAD_POSTS_HOT' => 'Unread posts [ Popular ]',
+ 'UNREAD_POSTS_LOCKED' => 'Unread posts [ Locked ]',
+
'VIEW_FORUM' => 'View forum',
'VIEW_FORUM_TOPIC' => '1 topic',
'VIEW_FORUM_TOPICS' => '%d topics',
diff --git a/phpBB/style.php b/phpBB/style.php
index fa77815670..8ca1751391 100644
--- a/phpBB/style.php
+++ b/phpBB/style.php
@@ -45,15 +45,8 @@ if (!empty($load_extensions) && function_exists('dl'))
}
}
-
-$sid = (isset($_GET['sid']) && !is_array($_GET['sid'])) ? htmlspecialchars($_GET['sid']) : '';
$id = (isset($_GET['id'])) ? intval($_GET['id']) : 0;
-if (strspn($sid, 'abcdefABCDEF0123456789') !== strlen($sid))
-{
- $sid = '';
-}
-
// This is a simple script to grab and output the requested CSS data stored in the DB
// We include a session_id check to try and limit 3rd party linking ... unless they
// happen to have a current session it will output nothing. We will also cache the
@@ -81,6 +74,20 @@ if ($id)
$config = $cache->obtain_config();
$user = false;
+ // try to get a session ID from REQUEST array
+ $sid = request_var('sid', '');
+
+ if (!$sid)
+ {
+ // if that failed, then look in the cookies
+ $sid = request_var($config['cookie_name'] . '_sid', '', false, true);
+ }
+
+ if (strspn($sid, 'abcdefABCDEF0123456789') !== strlen($sid))
+ {
+ $sid = '';
+ }
+
if ($sid)
{
$sql = 'SELECT u.user_id, u.user_lang
diff --git a/phpBB/styles/prosilver/template/editor.js b/phpBB/styles/prosilver/template/editor.js
index c4c3483766..ddc862bb8c 100644
--- a/phpBB/styles/prosilver/template/editor.js
+++ b/phpBB/styles/prosilver/template/editor.js
@@ -200,6 +200,12 @@ function addquote(post_id, username, l_wrote)
var theSelection = '';
var divarea = false;
+ if (l_wrote === undefined)
+ {
+ // Backwards compatibility
+ l_wrote = 'wrote';
+ }
+
if (document.all)
{
divarea = document.all[message_name];
diff --git a/phpBB/styles/prosilver/template/forum_fn.js b/phpBB/styles/prosilver/template/forum_fn.js
index 6fb3778952..4a85858df5 100644
--- a/phpBB/styles/prosilver/template/forum_fn.js
+++ b/phpBB/styles/prosilver/template/forum_fn.js
@@ -98,16 +98,21 @@ function viewableArea(e, itself)
/**
* Set display of page element
* s[-1,0,1] = hide,toggle display,show
+* type = string: inline, block, inline-block or other CSS "display" type
*/
-function dE(n, s)
+function dE(n, s, type)
{
- var e = document.getElementById(n);
+ if (!type)
+ {
+ type = 'block';
+ }
+ var e = document.getElementById(n);
if (!s)
{
- s = (e.style.display == '' || e.style.display == 'block') ? -1 : 1;
+ s = (e.style.display == '' || e.style.display == type) ? -1 : 1;
}
- e.style.display = (s == 1) ? 'block' : 'none';
+ e.style.display = (s == 1) ? type : 'none';
}
/**
diff --git a/phpBB/styles/prosilver/template/mcp_post.html b/phpBB/styles/prosilver/template/mcp_post.html
index 0265d7ce12..dab2d572a9 100644
--- a/phpBB/styles/prosilver/template/mcp_post.html
+++ b/phpBB/styles/prosilver/template/mcp_post.html
@@ -54,6 +54,8 @@
</ul>
<!-- ENDIF -->
+ <span class="right-box clear" id="expand"><a href="#post_details" onclick="viewableArea(getElementById('post_details'), true); var rev_text = getElementById('expand').getElementsByTagName('a').item(0).firstChild; if (rev_text.data == '{LA_EXPAND_VIEW}'){rev_text.data = '{LA_COLLAPSE_VIEW}'; } else if (rev_text.data == '{LA_COLLAPSE_VIEW}'){rev_text.data = '{LA_EXPAND_VIEW}'}; return false;">{L_EXPAND_VIEW}</a></span>
+
<h3><a href="{U_VIEW_POST}">{POST_SUBJECT}</a></h3>
<!-- IF S_PM -->
<p class="author">
@@ -84,7 +86,7 @@
</p>
<!-- ENDIF -->
- <div class="content">
+ <div class="content" id="post_details">
{POST_PREVIEW}
</div>
diff --git a/phpBB/styles/prosilver/template/posting_topic_review.html b/phpBB/styles/prosilver/template/posting_topic_review.html
index 879e6bb7fc..a05f057e21 100644
--- a/phpBB/styles/prosilver/template/posting_topic_review.html
+++ b/phpBB/styles/prosilver/template/posting_topic_review.html
@@ -24,7 +24,7 @@
<div class="postbody" id="pr{topic_review_row.POST_ID}">
<!-- IF topic_review_row.POSTER_QUOTE and topic_review_row.DECODED_MESSAGE -->
<ul class="profile-icons">
- <li class="quote-icon"><a href="#postingbox" onclick="addquote({topic_review_row.POST_ID}, '{topic_review_row.POSTER_QUOTE}', '{L_WROTE}');" title="{L_QUOTE} {topic_review_row.POST_AUTHOR}"><span>{L_QUOTE} {topic_review_row.POST_AUTHOR}</span></a></li>
+ <li class="quote-icon"><a href="#postingbox" onclick="addquote({topic_review_row.POST_ID}, '{topic_review_row.POSTER_QUOTE}', '{LA_WROTE}');" title="{L_QUOTE} {topic_review_row.POST_AUTHOR}"><span>{L_QUOTE} {topic_review_row.POST_AUTHOR}</span></a></li>
</ul>
<!-- ENDIF -->
<!-- IF topic_review_row.U_MCP_DETAILS --><div class="right-box"><a href="{topic_review_row.U_MCP_DETAILS}">{L_POST_DETAILS}</a></div><!-- ENDIF -->
diff --git a/phpBB/styles/prosilver/template/ucp_pm_history.html b/phpBB/styles/prosilver/template/ucp_pm_history.html
index 32b8072082..9051eb2ee0 100644
--- a/phpBB/styles/prosilver/template/ucp_pm_history.html
+++ b/phpBB/styles/prosilver/template/ucp_pm_history.html
@@ -1,7 +1,7 @@
<h3 id="review">
<span class="right-box"><a href="#review" onclick="viewableArea(getElementById('topicreview'), true); var rev_text = getElementById('review').getElementsByTagName('a').item(0).firstChild; if (rev_text.data == '{LA_EXPAND_VIEW}'){rev_text.data = '{LA_COLLAPSE_VIEW}'; } else if (rev_text.data == '{LA_COLLAPSE_VIEW}'){rev_text.data = '{LA_EXPAND_VIEW}'};">{L_EXPAND_VIEW}</a></span>
- {L_MESSAGE_HISTORY}: {HISTORY_TITLE}
+ {L_MESSAGE_HISTORY}:
</h3>
<div id="topicreview">
@@ -17,7 +17,7 @@
<div class="postbody" id="pr{history_row.MSG_ID}">
<!-- IF history_row.U_QUOTE or history_row.MESSAGE_AUTHOR_QUOTE -->
<ul class="profile-icons">
- <li class="quote-icon"><a <!-- IF history_row.U_QUOTE -->href="{history_row.U_QUOTE}"<!-- ELSE -->href="#postingbox" onclick="addquote({history_row.MSG_ID}, '{history_row.MESSAGE_AUTHOR_QUOTE}', '{L_WROTE}');"<!-- ENDIF --> title="{L_QUOTE} {history_row.MESSAGE_AUTHOR}"><span>{L_QUOTE} {history_row.MESSAGE_AUTHOR}</span></a></li>
+ <li class="quote-icon"><a <!-- IF history_row.U_QUOTE -->href="{history_row.U_QUOTE}"<!-- ELSE -->href="#postingbox" onclick="addquote({history_row.MSG_ID}, '{history_row.MESSAGE_AUTHOR_QUOTE}', '{LA_WROTE}');"<!-- ENDIF --> title="{L_QUOTE} {history_row.MESSAGE_AUTHOR}"><span>{L_QUOTE} {history_row.MESSAGE_AUTHOR}</span></a></li>
</ul>
<!-- ENDIF -->
diff --git a/phpBB/styles/prosilver/template/viewforum_body.html b/phpBB/styles/prosilver/template/viewforum_body.html
index 309375c269..12073a39d2 100644
--- a/phpBB/styles/prosilver/template/viewforum_body.html
+++ b/phpBB/styles/prosilver/template/viewforum_body.html
@@ -39,7 +39,7 @@
<!-- IF not S_IS_BOT and S_DISPLAY_POST_INFO -->
<div class="buttons">
- <div class="<!-- IF S_IS_LOCKED -->locked-icon<!-- ELSE -->post-icon<!-- ENDIF -->"><a href="{U_POST_NEW_TOPIC}" title="<!-- IF S_IS_LOCKED -->{L_FORUM_LOCKED}<!-- ELSE -->{L_POST_TOPIC}<!-- ENDIF -->"><span></span><!-- IF S_IS_LOCKED -->{L_FORUM_LOCKED}<!-- ELSE -->{L_POST_TOPIC}<!-- ENDIF --></a></div>
+ <div class="<!-- IF S_IS_LOCKED -->locked-icon<!-- ELSE -->post-icon<!-- ENDIF -->" title="<!-- IF S_IS_LOCKED -->{L_FORUM_LOCKED}<!-- ELSE -->{L_POST_TOPIC}<!-- ENDIF -->"><a href="{U_POST_NEW_TOPIC}"><span></span><!-- IF S_IS_LOCKED -->{L_FORUM_LOCKED}<!-- ELSE -->{L_POST_TOPIC}<!-- ENDIF --></a></div>
</div>
<!-- ENDIF -->
diff --git a/phpBB/styles/prosilver/theme/bidi.css b/phpBB/styles/prosilver/theme/bidi.css
index 109312ac1b..f441784d85 100644
--- a/phpBB/styles/prosilver/theme/bidi.css
+++ b/phpBB/styles/prosilver/theme/bidi.css
@@ -236,6 +236,7 @@
}
.rtl a.top2 {
+ background-position: 100% 50%;
padding-left: 0;
padding-right: 15px;
}
diff --git a/phpBB/styles/prosilver/theme/content.css b/phpBB/styles/prosilver/theme/content.css
index 417537e660..dfe00371e4 100644
--- a/phpBB/styles/prosilver/theme/content.css
+++ b/phpBB/styles/prosilver/theme/content.css
@@ -298,6 +298,15 @@ div[class].topic-actions {
display: none;
}
+/* MCP Post details
+----------------------------------------*/
+#post_details
+{
+ /* This will only work in IE7+, plus the others */
+ overflow: auto;
+ max-height: 300px;
+}
+
/* Content container styles
----------------------------------------*/
.content {
diff --git a/phpBB/styles/subsilver2/imageset/announce_read.gif b/phpBB/styles/subsilver2/imageset/announce_read.gif
new file mode 100644
index 0000000000..0589feb14f
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/announce_read.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/announce_read_locked.gif b/phpBB/styles/subsilver2/imageset/announce_read_locked.gif
new file mode 100644
index 0000000000..a738616e06
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/announce_read_locked.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/announce_read_locked_mine.gif b/phpBB/styles/subsilver2/imageset/announce_read_locked_mine.gif
new file mode 100644
index 0000000000..f7ffe7f8dd
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/announce_read_locked_mine.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/announce_read_mine.gif b/phpBB/styles/subsilver2/imageset/announce_read_mine.gif
new file mode 100644
index 0000000000..636d353867
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/announce_read_mine.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/announce_unread.gif b/phpBB/styles/subsilver2/imageset/announce_unread.gif
new file mode 100644
index 0000000000..56b2702b17
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/announce_unread.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/announce_unread_locked.gif b/phpBB/styles/subsilver2/imageset/announce_unread_locked.gif
new file mode 100644
index 0000000000..37033da653
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/announce_unread_locked.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/announce_unread_locked_mine.gif b/phpBB/styles/subsilver2/imageset/announce_unread_locked_mine.gif
new file mode 100644
index 0000000000..d91f2520ca
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/announce_unread_locked_mine.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/announce_unread_mine.gif b/phpBB/styles/subsilver2/imageset/announce_unread_mine.gif
new file mode 100644
index 0000000000..e1dd23a0bf
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/announce_unread_mine.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/en/button_pm_new.gif b/phpBB/styles/subsilver2/imageset/en/button_pm_new.gif
new file mode 100644
index 0000000000..07df748d3a
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/en/button_pm_new.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/en/button_pm_reply.gif b/phpBB/styles/subsilver2/imageset/en/button_pm_reply.gif
new file mode 100644
index 0000000000..c476f06a44
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/en/button_pm_reply.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/en/button_topic_locked.gif b/phpBB/styles/subsilver2/imageset/en/button_topic_locked.gif
new file mode 100644
index 0000000000..124a2d4a7d
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/en/button_topic_locked.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/en/button_topic_new.gif b/phpBB/styles/subsilver2/imageset/en/button_topic_new.gif
new file mode 100644
index 0000000000..66e1007129
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/en/button_topic_new.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/en/button_topic_reply.gif b/phpBB/styles/subsilver2/imageset/en/button_topic_reply.gif
new file mode 100644
index 0000000000..e8fe5115a0
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/en/button_topic_reply.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/en/icon_contact_aim.gif b/phpBB/styles/subsilver2/imageset/en/icon_contact_aim.gif
new file mode 100644
index 0000000000..c6533e2817
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/en/icon_contact_aim.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/en/icon_contact_email.gif b/phpBB/styles/subsilver2/imageset/en/icon_contact_email.gif
new file mode 100644
index 0000000000..f126a1960d
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/en/icon_contact_email.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/en/icon_contact_icq.gif b/phpBB/styles/subsilver2/imageset/en/icon_contact_icq.gif
new file mode 100644
index 0000000000..ba3fa12436
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/en/icon_contact_icq.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/en/icon_contact_jabber.gif b/phpBB/styles/subsilver2/imageset/en/icon_contact_jabber.gif
new file mode 100644
index 0000000000..be2e53f9c2
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/en/icon_contact_jabber.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/en/icon_contact_msnm.gif b/phpBB/styles/subsilver2/imageset/en/icon_contact_msnm.gif
new file mode 100644
index 0000000000..e3a5901bfc
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/en/icon_contact_msnm.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/en/icon_contact_pm.gif b/phpBB/styles/subsilver2/imageset/en/icon_contact_pm.gif
new file mode 100644
index 0000000000..26ac558c2f
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/en/icon_contact_pm.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/en/icon_contact_www.gif b/phpBB/styles/subsilver2/imageset/en/icon_contact_www.gif
new file mode 100644
index 0000000000..14a33b36a5
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/en/icon_contact_www.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/en/icon_contact_yahoo.gif b/phpBB/styles/subsilver2/imageset/en/icon_contact_yahoo.gif
new file mode 100644
index 0000000000..d11711789f
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/en/icon_contact_yahoo.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/en/icon_post_delete.gif b/phpBB/styles/subsilver2/imageset/en/icon_post_delete.gif
new file mode 100644
index 0000000000..e008e5ff9f
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/en/icon_post_delete.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/en/icon_post_edit.gif b/phpBB/styles/subsilver2/imageset/en/icon_post_edit.gif
new file mode 100644
index 0000000000..1511ee34d3
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/en/icon_post_edit.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/en/icon_post_info.gif b/phpBB/styles/subsilver2/imageset/en/icon_post_info.gif
new file mode 100644
index 0000000000..166de2724f
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/en/icon_post_info.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/en/icon_post_quote.gif b/phpBB/styles/subsilver2/imageset/en/icon_post_quote.gif
new file mode 100644
index 0000000000..4cf103280c
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/en/icon_post_quote.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/en/icon_post_report.gif b/phpBB/styles/subsilver2/imageset/en/icon_post_report.gif
new file mode 100644
index 0000000000..9a3f65b1e3
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/en/icon_post_report.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/en/icon_user_offline.gif b/phpBB/styles/subsilver2/imageset/en/icon_user_offline.gif
new file mode 100644
index 0000000000..3065f4d7fe
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/en/icon_user_offline.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/en/icon_user_online.gif b/phpBB/styles/subsilver2/imageset/en/icon_user_online.gif
new file mode 100644
index 0000000000..b950612c57
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/en/icon_user_online.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/en/icon_user_profile.gif b/phpBB/styles/subsilver2/imageset/en/icon_user_profile.gif
new file mode 100644
index 0000000000..d9cf7f4c4a
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/en/icon_user_profile.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/en/icon_user_search.gif b/phpBB/styles/subsilver2/imageset/en/icon_user_search.gif
new file mode 100644
index 0000000000..46475fbf4c
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/en/icon_user_search.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/en/icon_user_warn.gif b/phpBB/styles/subsilver2/imageset/en/icon_user_warn.gif
new file mode 100644
index 0000000000..44cbcc953a
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/en/icon_user_warn.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/en/imageset.cfg b/phpBB/styles/subsilver2/imageset/en/imageset.cfg
new file mode 100644
index 0000000000..c0cc699737
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/en/imageset.cfg
@@ -0,0 +1,47 @@
+#
+# phpBB Imageset Configuration File
+#
+# @package phpBB3
+# @copyright (c) 2005 phpBB Group
+# @license http://opensource.org/licenses/gpl-license.php GNU Public License
+#
+#
+# At the left is the name, please do not change this
+# At the right the value is entered
+# For on/off options the valid values are on, off, 1, 0, true and false
+#
+# Values get trimmed, if you want to add a space in front or at the end of
+# the value, then enclose the value with single or double quotes.
+# Single and double quotes do not need to be escaped.
+#
+#
+
+# Images
+img_icon_contact_aim = icon_contact_aim.gif
+img_icon_contact_email = icon_contact_email.gif
+img_icon_contact_icq = icon_contact_icq.gif
+img_icon_contact_jabber = icon_contact_jabber.gif
+img_icon_contact_msnm = icon_contact_msnm.gif
+img_icon_contact_pm = icon_contact_pm.gif
+img_icon_contact_yahoo = icon_contact_yahoo.gif
+img_icon_contact_www = icon_contact_www.gif
+
+img_icon_post_delete = icon_post_delete.gif
+img_icon_post_edit = icon_post_edit.gif
+img_icon_post_info = icon_post_info.gif
+img_icon_post_quote = icon_post_quote.gif
+img_icon_post_report = icon_post_report.gif
+
+img_icon_user_online = icon_user_online.gif
+img_icon_user_offline = icon_user_offline.gif
+img_icon_user_profile = icon_user_profile.gif
+img_icon_user_search = icon_user_search.gif
+img_icon_user_warn = icon_user_warn.gif
+
+img_button_pm_forward =
+img_button_pm_new = button_pm_new.gif
+img_button_pm_reply = button_pm_reply.gif
+img_button_topic_locked = button_topic_locked.gif
+img_button_topic_new = button_topic_new.gif
+img_button_topic_reply = button_topic_reply.gif
+
diff --git a/phpBB/styles/subsilver2/imageset/forum_link.gif b/phpBB/styles/subsilver2/imageset/forum_link.gif
new file mode 100644
index 0000000000..d5e86d47d7
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/forum_link.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/forum_read.gif b/phpBB/styles/subsilver2/imageset/forum_read.gif
new file mode 100644
index 0000000000..9b2bc47c67
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/forum_read.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/forum_read_locked.gif b/phpBB/styles/subsilver2/imageset/forum_read_locked.gif
new file mode 100644
index 0000000000..436f3d21c8
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/forum_read_locked.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/forum_read_subforum.gif b/phpBB/styles/subsilver2/imageset/forum_read_subforum.gif
new file mode 100644
index 0000000000..9179303e7f
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/forum_read_subforum.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/forum_unread.gif b/phpBB/styles/subsilver2/imageset/forum_unread.gif
new file mode 100644
index 0000000000..5eec565b38
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/forum_unread.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/forum_unread_locked.gif b/phpBB/styles/subsilver2/imageset/forum_unread_locked.gif
new file mode 100644
index 0000000000..58a79c376c
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/forum_unread_locked.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/forum_unread_subforum.gif b/phpBB/styles/subsilver2/imageset/forum_unread_subforum.gif
new file mode 100644
index 0000000000..af3c93b1a1
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/forum_unread_subforum.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/icon_post_target.gif b/phpBB/styles/subsilver2/imageset/icon_post_target.gif
new file mode 100644
index 0000000000..d172abb060
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/icon_post_target.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/icon_post_target_unread.gif b/phpBB/styles/subsilver2/imageset/icon_post_target_unread.gif
new file mode 100644
index 0000000000..8ec44a1787
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/icon_post_target_unread.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/icon_topic_attach.gif b/phpBB/styles/subsilver2/imageset/icon_topic_attach.gif
new file mode 100644
index 0000000000..1c9c89bc70
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/icon_topic_attach.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/icon_topic_latest.gif b/phpBB/styles/subsilver2/imageset/icon_topic_latest.gif
new file mode 100644
index 0000000000..b45e57aedb
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/icon_topic_latest.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/icon_topic_newest.gif b/phpBB/styles/subsilver2/imageset/icon_topic_newest.gif
new file mode 100644
index 0000000000..eca2861836
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/icon_topic_newest.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/icon_topic_reported.gif b/phpBB/styles/subsilver2/imageset/icon_topic_reported.gif
new file mode 100644
index 0000000000..026092854a
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/icon_topic_reported.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/icon_topic_unapproved.gif b/phpBB/styles/subsilver2/imageset/icon_topic_unapproved.gif
new file mode 100644
index 0000000000..2ccaf19c23
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/icon_topic_unapproved.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/imageset.cfg b/phpBB/styles/subsilver2/imageset/imageset.cfg
new file mode 100644
index 0000000000..7709070734
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/imageset.cfg
@@ -0,0 +1,100 @@
+#
+# phpBB Imageset Configuration File
+#
+# @package phpBB3
+# @copyright (c) 2005 phpBB Group
+# @license http://opensource.org/licenses/gpl-license.php GNU Public License
+#
+#
+# At the left is the name, please do not change this
+# At the right the value is entered
+# For on/off options the valid values are on, off, 1, 0, true and false
+#
+# Values get trimmed, if you want to add a space in front or at the end of
+# the value, then enclose the value with single or double quotes.
+# Single and double quotes do not need to be escaped.
+#
+#
+
+# General Information about this style
+name = subsilver2
+copyright = &copy; phpBB Group, 2003
+version = 3.0.7
+
+# Images
+img_site_logo = site_logo.gif*94*170
+img_upload_bar = upload_bar.gif*16*280
+img_poll_left = poll_left.gif*12*4
+img_poll_center = poll_center.gif*12*1
+img_poll_right = poll_right.gif*12*4
+img_icon_friend =
+img_icon_foe =
+
+img_forum_link = forum_link.gif*25*46
+img_forum_read = forum_read.gif*25*46
+img_forum_read_locked = forum_read_locked.gif*25*46
+img_forum_read_subforum = forum_read_subforum.gif*25*46
+img_forum_unread = forum_unread.gif*25*46
+img_forum_unread_locked = forum_unread_locked.gif*25*46
+img_forum_unread_subforum = forum_unread_subforum.gif*25*46
+
+img_topic_moved = topic_moved.gif*18*19
+
+img_topic_read = topic_read.gif*18*19
+img_topic_read_mine = topic_read_mine.gif*18*19
+img_topic_read_hot = topic_read_hot.gif*18*19
+img_topic_read_hot_mine = topic_read_hot_mine.gif*18*19
+img_topic_read_locked = topic_read_locked.gif*18*19
+img_topic_read_locked_mine = topic_read_locked_mine.gif*18*19
+
+img_topic_unread = topic_unread.gif*18*19
+img_topic_unread_mine = topic_unread_mine.gif*18*19
+img_topic_unread_hot = topic_unread_hot.gif*18*19
+img_topic_unread_hot_mine = topic_unread_hot_mine.gif*18*19
+img_topic_unread_locked = topic_unread_locked.gif*18*19
+img_topic_unread_locked_mine = topic_unread_locked_mine.gif*18*19
+
+img_sticky_read = sticky_read.gif*18*19
+img_sticky_read_mine = sticky_read_mine.gif*18*19
+img_sticky_read_locked = sticky_read_locked.gif*18*19
+img_sticky_read_locked_mine = sticky_read_locked_mine.gif*18*19
+img_sticky_unread = sticky_unread.gif*18*19
+img_sticky_unread_mine = sticky_unread_mine.gif*18*19
+img_sticky_unread_locked = sticky_unread_locked.gif*18*19
+img_sticky_unread_locked_mine = sticky_unread_locked_mine.gif*18*19
+
+img_announce_read = announce_read.gif*18*19
+img_announce_read_mine = announce_read_mine.gif*18*19
+img_announce_read_locked = announce_read_locked.gif*18*19
+img_announce_read_locked_mine = announce_read_locked_mine.gif*18*19
+img_announce_unread = announce_unread.gif*18*19
+img_announce_unread_mine = announce_unread_mine.gif*18*19
+img_announce_unread_locked = announce_unread_locked.gif*18*19
+img_announce_unread_locked_mine = announce_unread_locked_mine.gif*18*19
+
+img_global_read = announce_read.gif*18*19
+img_global_read_mine = announce_read_mine.gif*18*19
+img_global_read_locked = announce_read_locked.gif*18*19
+img_global_read_locked_mine = announce_read_locked_mine.gif*18*19
+img_global_unread = announce_unread.gif*18*19
+img_global_unread_mine = announce_unread_mine.gif*18*19
+img_global_unread_locked = announce_unread_locked.gif*18*19
+img_global_unread_locked_mine = announce_unread_locked_mine.gif*18*19
+
+img_subforum_read =
+img_subforum_unread =
+
+img_pm_read = topic_read.gif*18*19
+img_pm_unread = topic_unread.gif*18*19
+
+img_icon_back_top =
+
+img_icon_post_target = icon_post_target.gif*9*12
+img_icon_post_target_unread = icon_post_target_unread.gif*9*12
+
+img_icon_topic_attach = icon_topic_attach.gif*18*14
+img_icon_topic_latest = icon_topic_latest.gif*9*18
+img_icon_topic_newest = icon_topic_newest.gif*9*18
+img_icon_topic_reported = icon_topic_reported.gif*18*19
+img_icon_topic_unapproved = icon_topic_unapproved.gif*18*19
+
diff --git a/phpBB/styles/subsilver2/imageset/poll_center.gif b/phpBB/styles/subsilver2/imageset/poll_center.gif
new file mode 100644
index 0000000000..99473151ec
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/poll_center.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/poll_left.gif b/phpBB/styles/subsilver2/imageset/poll_left.gif
new file mode 100644
index 0000000000..269088b81d
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/poll_left.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/poll_right.gif b/phpBB/styles/subsilver2/imageset/poll_right.gif
new file mode 100644
index 0000000000..f9584e23a1
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/poll_right.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/site_logo.gif b/phpBB/styles/subsilver2/imageset/site_logo.gif
new file mode 100644
index 0000000000..abce3cd51d
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/site_logo.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/sticky_read.gif b/phpBB/styles/subsilver2/imageset/sticky_read.gif
new file mode 100644
index 0000000000..09861a996c
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/sticky_read.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/sticky_read_locked.gif b/phpBB/styles/subsilver2/imageset/sticky_read_locked.gif
new file mode 100644
index 0000000000..24bca303d6
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/sticky_read_locked.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/sticky_read_locked_mine.gif b/phpBB/styles/subsilver2/imageset/sticky_read_locked_mine.gif
new file mode 100644
index 0000000000..3fd04ec3a9
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/sticky_read_locked_mine.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/sticky_read_mine.gif b/phpBB/styles/subsilver2/imageset/sticky_read_mine.gif
new file mode 100644
index 0000000000..381634c364
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/sticky_read_mine.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/sticky_unread.gif b/phpBB/styles/subsilver2/imageset/sticky_unread.gif
new file mode 100644
index 0000000000..dd2e366543
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/sticky_unread.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/sticky_unread_locked.gif b/phpBB/styles/subsilver2/imageset/sticky_unread_locked.gif
new file mode 100644
index 0000000000..608f4822e3
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/sticky_unread_locked.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/sticky_unread_locked_mine.gif b/phpBB/styles/subsilver2/imageset/sticky_unread_locked_mine.gif
new file mode 100644
index 0000000000..fe5e115312
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/sticky_unread_locked_mine.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/sticky_unread_mine.gif b/phpBB/styles/subsilver2/imageset/sticky_unread_mine.gif
new file mode 100644
index 0000000000..b5fc3b3627
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/sticky_unread_mine.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/topic_moved.gif b/phpBB/styles/subsilver2/imageset/topic_moved.gif
new file mode 100644
index 0000000000..fe758f02ca
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/topic_moved.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/topic_read.gif b/phpBB/styles/subsilver2/imageset/topic_read.gif
new file mode 100644
index 0000000000..c16bfa75d5
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/topic_read.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/topic_read_hot.gif b/phpBB/styles/subsilver2/imageset/topic_read_hot.gif
new file mode 100644
index 0000000000..a7a7e8fc78
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/topic_read_hot.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/topic_read_hot_mine.gif b/phpBB/styles/subsilver2/imageset/topic_read_hot_mine.gif
new file mode 100644
index 0000000000..853452a74b
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/topic_read_hot_mine.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/topic_read_locked.gif b/phpBB/styles/subsilver2/imageset/topic_read_locked.gif
new file mode 100644
index 0000000000..10eb776972
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/topic_read_locked.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/topic_read_locked_mine.gif b/phpBB/styles/subsilver2/imageset/topic_read_locked_mine.gif
new file mode 100644
index 0000000000..3f24928b48
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/topic_read_locked_mine.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/topic_read_mine.gif b/phpBB/styles/subsilver2/imageset/topic_read_mine.gif
new file mode 100644
index 0000000000..560927aa06
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/topic_read_mine.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/topic_unread.gif b/phpBB/styles/subsilver2/imageset/topic_unread.gif
new file mode 100644
index 0000000000..4e56157dce
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/topic_unread.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/topic_unread_hot.gif b/phpBB/styles/subsilver2/imageset/topic_unread_hot.gif
new file mode 100644
index 0000000000..ceef4919d5
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/topic_unread_hot.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/topic_unread_hot_mine.gif b/phpBB/styles/subsilver2/imageset/topic_unread_hot_mine.gif
new file mode 100644
index 0000000000..1c748f708a
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/topic_unread_hot_mine.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/topic_unread_locked.gif b/phpBB/styles/subsilver2/imageset/topic_unread_locked.gif
new file mode 100644
index 0000000000..720e210289
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/topic_unread_locked.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/topic_unread_locked_mine.gif b/phpBB/styles/subsilver2/imageset/topic_unread_locked_mine.gif
new file mode 100644
index 0000000000..90873431ef
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/topic_unread_locked_mine.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/topic_unread_mine.gif b/phpBB/styles/subsilver2/imageset/topic_unread_mine.gif
new file mode 100644
index 0000000000..34fd2ec179
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/topic_unread_mine.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/imageset/upload_bar.gif b/phpBB/styles/subsilver2/imageset/upload_bar.gif
new file mode 100644
index 0000000000..75cf61c59e
--- /dev/null
+++ b/phpBB/styles/subsilver2/imageset/upload_bar.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/style.cfg b/phpBB/styles/subsilver2/style.cfg
new file mode 100644
index 0000000000..86b5b8a4e8
--- /dev/null
+++ b/phpBB/styles/subsilver2/style.cfg
@@ -0,0 +1,22 @@
+#
+# phpBB Style Configuration File
+#
+# @package phpBB3
+# @copyright (c) 2005 phpBB Group
+# @license http://opensource.org/licenses/gpl-license.php GNU Public License
+#
+#
+# At the left is the name, please do not change this
+# At the right the value is entered
+# For on/off options the valid values are on, off, 1, 0, true and false
+#
+# Values get trimmed, if you want to add a space in front or at the end of
+# the value, then enclose the value with single or double quotes.
+# Single and double quotes do not need to be escaped.
+#
+#
+
+# General Information about this style
+name = subsilver2
+copyright = &copy; 2005 phpBB Group
+version = 3.0.7
diff --git a/phpBB/styles/subsilver2/template/attachment.html b/phpBB/styles/subsilver2/template/attachment.html
new file mode 100644
index 0000000000..833bd4d55f
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/attachment.html
@@ -0,0 +1,121 @@
+
+<!-- BEGIN _file -->
+
+ <!-- IF _file.S_DENIED -->
+ <span class="genmed">[{_file.DENIED_MESSAGE}]</span><br />
+ <!-- ELSE -->
+
+ <!-- IF _file.COMMENT -->
+ <span class="gensmall"><b>{L_FILE_COMMENT}:</b> {_file.COMMENT}</span><br />
+ <!-- ENDIF -->
+
+ <!-- IF _file.S_THUMBNAIL -->
+ <a href="{_file.U_DOWNLOAD_LINK}"><img src="{_file.THUMB_IMAGE}" alt="{_file.DOWNLOAD_NAME}" /></a><br />
+ <span class="gensmall">{_file.DOWNLOAD_NAME} [ {_file.FILESIZE} {_file.SIZE_LANG} | {_file.L_DOWNLOAD_COUNT} ]</span>
+ <!-- ENDIF -->
+
+ <!-- IF _file.S_IMAGE -->
+ <img src="{_file.U_INLINE_LINK}" alt="{_file.DOWNLOAD_NAME}" /><br />
+ <span class="gensmall">{_file.DOWNLOAD_NAME} [ {_file.FILESIZE} {_file.SIZE_LANG} | {_file.L_DOWNLOAD_COUNT} ]</span>
+ <!-- ENDIF -->
+
+ <!-- IF _file.S_FILE -->
+ <span class="genmed">
+ <!-- IF _file.UPLOAD_ICON -->{_file.UPLOAD_ICON} <!-- ENDIF -->
+ <a href="{_file.U_DOWNLOAD_LINK}">{_file.DOWNLOAD_NAME}</a> [{_file.FILESIZE} {_file.SIZE_LANG}]
+ </span><br />
+ <span class="gensmall">{_file.L_DOWNLOAD_COUNT}</span>
+ <!-- ENDIF -->
+
+ <!-- IF _file.S_WM_FILE -->
+ <!-- method used here from http://alistapart.com/articles/byebyeembed / autosizing seems to not work always, this will not fix -->
+ <object width="320" height="285" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" id="wmstream_{_file.ATTACH_ID}">
+ <param name="url" value="{_file.U_DOWNLOAD_LINK}" />
+ <param name="showcontrols" value="1" />
+ <param name="showdisplay" value="0" />
+ <param name="showstatusbar" value="0" />
+ <param name="autosize" value="1" />
+ <param name="autostart" value="0" />
+ <param name="visible" value="1" />
+ <param name="animationstart" value="0" />
+ <param name="loop" value="0" />
+ <param name="src" value="{_file.U_DOWNLOAD_LINK}" />
+ <!--[if !IE]>-->
+ <object width="320" height="285" type="video/x-ms-wmv" data="{_file.U_DOWNLOAD_LINK}">
+ <param name="src" value="{_file.U_DOWNLOAD_LINK}" />
+ <param name="controller" value="1" />
+ <param name="showcontrols" value="1" />
+ <param name="showdisplay" value="0" />
+ <param name="showstatusbar" value="0" />
+ <param name="autosize" value="1" />
+ <param name="autostart" value="0" />
+ <param name="visible" value="1" />
+ <param name="animationstart" value="0" />
+ <param name="loop" value="0" />
+ </object>
+ <!--<![endif]-->
+ </object>
+
+ <!-- ELSEIF _file.S_FLASH_FILE -->
+ <object classid="clsid:D27CDB6E-AE6D-11CF-96B8-444553540000" codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=5,0,0,0" width="{_file.WIDTH}" height="{_file.HEIGHT}">
+ <param name="movie" value="{_file.U_VIEW_LINK}" />
+ <param name="play" value="true" />
+ <param name="loop" value="true" />
+ <param name="quality" value="high" />
+ <param name="allowScriptAccess" value="never" />
+ <param name="allowNetworking" value="internal" />
+ <embed src="{_file.U_VIEW_LINK}" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" width="{_file.WIDTH}" height="{_file.HEIGHT}" play="true" loop="true" quality="high" allowscriptaccess="never" allownetworking="internal"></embed>
+ </object>
+ <!-- ELSEIF _file.S_QUICKTIME_FILE -->
+ <object id="qtstream_{_file.ATTACH_ID}" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0" width="0" height="16">
+ <param name="src" value="{_file.U_DOWNLOAD_LINK}">
+ <param name="controller" value="true">
+ <param name="autoplay" value="false" />
+ <param name="type" value="video/quicktime">
+ <embed name="qtstream_{_file.ATTACH_ID}" src="{_file.U_DOWNLOAD_LINK}" pluginspage="http://www.apple.com/quicktime/download/" enablejavascript="true" controller="true" width="0" height="16" type="video/quicktime" autoplay="false">
+ </object>
+ <!-- ELSEIF _file.S_RM_FILE -->
+ <object id="rmstream_{_file.ATTACH_ID}" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="200" height="50">
+ <param name="src" value="{_file.U_DOWNLOAD_LINK}">
+ <param name="autostart" value="false">
+ <param name="controls" value="ImageWindow">
+ <param name="console" value="ctrls_{_file.ATTACH_ID}">
+ <param name="prefetch" value="false">
+ <embed name="rmstream_{_file.ATTACH_ID}" type="audio/x-pn-realaudio-plugin" src="{_file.U_DOWNLOAD_LINK}" width="0" height="0" autostart="false" controls="ImageWindow" console="ctrls_{_file.ATTACH_ID}" prefetch="false"></embed>
+ </object>
+ <br />
+ <object id="ctrls_{_file.ATTACH_ID}" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="0" height="36">
+ <param name="controls" value="ControlPanel">
+ <param name="console" value="ctrls_{_file.ATTACH_ID}">
+ <embed name="ctrls_{_file.ATTACH_ID}" type="audio/x-pn-realaudio-plugin" width="200" height="36" controls="ControlPanel" console="ctrls_{_file.ATTACH_ID}"></embed>
+ </object>
+
+ <script type="text/javascript">
+ // <![CDATA[
+ if (document.rmstream_{_file.ATTACH_ID}.GetClipWidth)
+ {
+ while (!document.rmstream_{_file.ATTACH_ID}.GetClipWidth())
+ {
+ }
+
+ var width = document.rmstream_{_file.ATTACH_ID}.GetClipWidth();
+ var height = document.rmstream_{_file.ATTACH_ID}.GetClipHeight();
+
+ document.rmstream_{_file.ATTACH_ID}.width = width;
+ document.rmstream_{_file.ATTACH_ID}.height = height;
+ document.ctrls_{_file.ATTACH_ID}.width = width;
+ }
+ // ]]>
+ </script>
+ <!-- ENDIF -->
+
+ <!-- IF _file.S_WM_FILE or _file.S_RM_FILE or _file.S_FLASH_FILE or _file.S_QUICKTIME_FILE -->
+ <br />
+ <!-- IF _file.S_QUICKTIME_FILE --><a href="#" onclick="play_qt_file(document.qtstream_{_file.ATTACH_ID}); return false;">[ {L_PLAY_QUICKTIME_FILE} ]</a> <!-- ENDIF -->
+ <span class="gensmall"><a href="{_file.U_DOWNLOAD_LINK}">{_file.DOWNLOAD_NAME}</a> [ {_file.FILESIZE} {_file.SIZE_LANG} | {_file.L_DOWNLOAD_COUNT} ]</span>
+ <!-- ENDIF -->
+
+ <br />
+ <!-- ENDIF -->
+
+<!-- END _file -->
diff --git a/phpBB/styles/subsilver2/template/bbcode.html b/phpBB/styles/subsilver2/template/bbcode.html
new file mode 100644
index 0000000000..50162740d0
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/bbcode.html
@@ -0,0 +1,69 @@
+<!-- BEGIN ulist_open --><ul style="list-style-type: {LIST_TYPE}"><!-- END ulist_open -->
+<!-- BEGIN ulist_open_default --><ul><!-- END ulist_open_default -->
+<!-- BEGIN ulist_close --></ul><!-- END ulist_close -->
+
+<!-- BEGIN olist_open --><ol style="list-style-type: {LIST_TYPE}"><!-- END olist_open -->
+<!-- BEGIN olist_close --></ol><!-- END olist_close -->
+
+<!-- BEGIN listitem --><li><!-- END listitem -->
+<!-- BEGIN listitem_close --></li><!-- END listitem_close -->
+
+<!-- BEGIN quote_username_open -->
+<div class="quotetitle">{USERNAME} {L_WROTE}:</div><div class="quotecontent">
+<!-- END quote_username_open -->
+
+<!-- BEGIN quote_open -->
+<div class="quotetitle"><b>{L_QUOTE}:</b></div><div class="quotecontent">
+<!-- END quote_open -->
+
+<!-- BEGIN quote_close -->
+</div>
+<!-- END quote_close -->
+
+<!-- BEGIN code_open -->
+<div class="codetitle"><b>{L_CODE}:</b></div><div class="codecontent">
+<!-- END code_open -->
+
+<!-- BEGIN code_close -->
+</div>
+<!-- END code_close -->
+
+<!-- BEGIN inline_attachment_open -->
+<div class="attachtitle">{L_ATTACHMENT}:</div><div class="attachcontent">
+<!-- END inline_attachment_open -->
+
+<!-- BEGIN inline_attachment_close -->
+</div>
+<!-- END inline_attachment_close -->
+
+
+<!-- BEGIN b_open --><strong><!-- END b_open -->
+<!-- BEGIN b_close --></strong><!-- END b_close -->
+
+<!-- BEGIN u_open --><span style="text-decoration: underline"><!-- END u_open -->
+<!-- BEGIN u_close --></span><!-- END u_close -->
+
+<!-- BEGIN i_open --><em><!-- END i_open -->
+<!-- BEGIN i_close --></em><!-- END i_close -->
+
+<!-- BEGIN color --><span style="color: {COLOR}">{TEXT}</span><!-- END color -->
+
+<!-- BEGIN size --><span style="font-size: {SIZE}%; line-height: normal">{TEXT}</span><!-- END size -->
+
+<!-- BEGIN img --><img src="{URL}" alt="{L_IMAGE}" /><!-- END img -->
+
+<!-- BEGIN url --><a href="{URL}" class="postlink">{DESCRIPTION}</a><!-- END url -->
+
+<!-- BEGIN email --><a href="mailto:{EMAIL}">{DESCRIPTION}</a><!-- END email -->
+
+<!-- BEGIN flash -->
+ <object classid="clsid:D27CDB6E-AE6D-11CF-96B8-444553540000" codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=5,0,0,0" width="{WIDTH}" height="{HEIGHT}">
+ <param name="movie" value="{URL}" />
+ <param name="play" value="false" />
+ <param name="loop" value="false" />
+ <param name="quality" value="high" />
+ <param name="allowScriptAccess" value="never" />
+ <param name="allowNetworking" value="internal" />
+ <embed src="{URL}" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" width="{WIDTH}" height="{HEIGHT}" play="false" loop="false" quality="high" allowscriptaccess="never" allownetworking="internal"></embed>
+ </object>
+<!-- END flash -->
diff --git a/phpBB/styles/subsilver2/template/breadcrumbs.html b/phpBB/styles/subsilver2/template/breadcrumbs.html
new file mode 100644
index 0000000000..ad180250ce
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/breadcrumbs.html
@@ -0,0 +1,8 @@
+ <table class="tablebg" width="100%" cellspacing="1" cellpadding="0" style="margin-top: 5px;">
+ <tr>
+ <td class="row1">
+ <p class="breadcrumbs"><a href="{U_INDEX}">{L_INDEX}</a><!-- BEGIN navlinks --> &#187; <a href="{navlinks.U_VIEW_FORUM}">{navlinks.FORUM_NAME}</a><!-- END navlinks --></p>
+ <p class="datetime">{S_TIMEZONE}</p>
+ </td>
+ </tr>
+ </table> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/captcha_default.html b/phpBB/styles/subsilver2/template/captcha_default.html
new file mode 100644
index 0000000000..e0116ae42c
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/captcha_default.html
@@ -0,0 +1,15 @@
+ <tr>
+ <th colspan="2" valign="middle">{L_CONFIRM_CODE}</th>
+ </tr>
+ <tr>
+ <td class="row3" colspan="2"><span class="gensmall">{L_CONFIRM_EXPLAIN}</span></td>
+ </tr>
+ <tr>
+ <td class="row1" colspan="2" align="center"><img src="{CONFIRM_IMAGE_LINK}" alt="{L_CONFIRM_CODE}" />
+ <input type="hidden" name="confirm_id" id="confirm_id" value="{CONFIRM_ID}" /></td>
+ </tr>
+ <tr>
+ <td class="row1"><b class="genmed">{L_CONFIRM_CODE}:</b><br /><span class="gensmall">{L_CONFIRM_CODE_EXPLAIN}</span></td>
+ <td class="row2"><input class="post" type="text" name="confirm_code" size="8" maxlength="8" />
+ <!-- IF S_CONFIRM_REFRESH --><input type="submit" name="refresh_vc" id="refresh_vc" class="btnlite" value="{L_VC_REFRESH}" /><!-- ENDIF --></td>
+ </tr>
diff --git a/phpBB/styles/subsilver2/template/captcha_qa.html b/phpBB/styles/subsilver2/template/captcha_qa.html
new file mode 100644
index 0000000000..23d2a92f68
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/captcha_qa.html
@@ -0,0 +1,8 @@
+ <tr>
+ <th colspan="2" valign="middle">{L_CONFIRM_QUESTION}</th>
+ </tr>
+ <tr>
+ <td class="row1"><b class="genmed">{QA_CONFIRM_QUESTION}:</b><br /><span class="gensmall">{L_CONFIRM_QUESTION_EXPLAIN}</span></td>
+ <td class="row2"><input class="post" type="text" name="qa_answer" size="80" /></td>
+ <input type="hidden" name="qa_confirm_id" id="confirm_id" value="{QA_CONFIRM_ID}" /></td>
+ </tr>
diff --git a/phpBB/styles/subsilver2/template/captcha_recaptcha.html b/phpBB/styles/subsilver2/template/captcha_recaptcha.html
new file mode 100644
index 0000000000..3776c77ea4
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/captcha_recaptcha.html
@@ -0,0 +1,35 @@
+<!-- IF S_RECAPTCHA_AVAILABLE -->
+ <tr>
+ <th colspan="2" valign="middle">{L_CONFIRM_CODE}</th>
+ </tr>
+ <tr>
+ <td class="row1"><b class="genmed">{L_CONFIRM_CODE}:</b><br /><span class="gensmall">{L_RECAPTCHA_EXPLAIN}</span></td>
+ <td class="row2">
+ <script type="text/javascript">
+ // <![CDATA[
+ var RecaptchaOptions = {
+ lang : '{LA_RECAPTCHA_LANG}',
+ tabindex : <!-- IF $CAPTCHA_TAB_INDEX -->{$CAPTCHA_TAB_INDEX}<!-- ELSE -->10<!-- ENDIF -->
+ };
+ // ]]>
+ </script>
+ <script type="text/javascript" src="{RECAPTCHA_SERVER}/challenge?k={RECAPTCHA_PUBKEY}{RECAPTCHA_ERRORGET}" ></script>
+ <script type="text/javascript">
+ // <![CDATA[
+ <!-- IF S_CONTENT_DIRECTION eq 'rtl' -->
+ document.getElementById('recaptcha_table').style.direction = 'ltr';
+ <!-- ENDIF -->
+ // ]]>
+ </script>
+
+ <noscript>
+ <iframe src="{RECAPTCHA_SERVER}/noscript?k={RECAPTCHA_PUBKEY}{RECAPTCHA_ERRORGET}" height="300" width="500" frameborder="0"></iframe><br />
+ <textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
+ <input type="hidden" name="recaptcha_response_field" value="manual_challenge" />
+ </noscript>
+ </td>
+ </tr>
+
+<!-- ELSE -->
+{L_RECAPTCHA_NOT_AVAILABLE}
+<!-- ENDIF -->
diff --git a/phpBB/styles/subsilver2/template/confirm_body.html b/phpBB/styles/subsilver2/template/confirm_body.html
new file mode 100644
index 0000000000..92c2481c2d
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/confirm_body.html
@@ -0,0 +1,28 @@
+<!-- INCLUDE overall_header.html -->
+
+<div id="pagecontent">
+
+ <form name="confirm" action="{S_CONFIRM_ACTION}" method="post">
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th>{MESSAGE_TITLE}</th>
+ </tr>
+ <tr>
+ <td class="row1" align="center"><br /><p class="gen">{MESSAGE_TEXT}</p><br />{S_HIDDEN_FIELDS}<input type="submit" name="confirm" value="{YES_VALUE}" class="btnmain" />&nbsp;&nbsp;<input type="submit" name="cancel" value="{L_NO}" class="btnlite" /></td>
+ </tr>
+ </table>
+
+ </form>
+
+</div>
+
+<br clear="all" />
+
+<!-- INCLUDE breadcrumbs.html -->
+
+<br clear="all" />
+
+<div align="{S_CONTENT_FLOW_END}"><!-- INCLUDE jumpbox.html --></div>
+
+<!-- INCLUDE overall_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/custom_profile_fields.html b/phpBB/styles/subsilver2/template/custom_profile_fields.html
new file mode 100644
index 0000000000..c8f287ddb4
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/custom_profile_fields.html
@@ -0,0 +1,31 @@
+<!-- BEGIN dropdown -->
+ <select name="{dropdown.FIELD_IDENT}">
+ <!-- BEGIN options --><option value="{dropdown.options.OPTION_ID}"{dropdown.options.SELECTED}>{dropdown.options.VALUE}</option><!-- END options -->
+ </select>
+<!-- END dropdown -->
+
+<!-- BEGIN text -->
+ <textarea name="{text.FIELD_IDENT}" rows="{text.FIELD_ROWS}" cols="{text.FIELD_COLS}">{text.FIELD_VALUE}</textarea>
+<!-- END text -->
+
+<!-- BEGIN string -->
+ <input type="text" class="post" name="{string.FIELD_IDENT}" size="{string.FIELD_LENGTH}" maxlength="{string.FIELD_MAXLEN}" value="{string.FIELD_VALUE}" />
+<!-- END string -->
+
+<!-- BEGIN bool -->
+ <!-- IF bool.FIELD_LENGTH eq 1 -->
+ <!-- BEGIN options --><input type="radio" class="radio" name="{bool.FIELD_IDENT}" value="{bool.options.OPTION_ID}"{bool.options.CHECKED} /><span class="genmed">{bool.options.VALUE}</span>&nbsp; &nbsp;<!-- END options -->
+ <!-- ELSE -->
+ <input type="checkbox" class="radio" name="{bool.FIELD_IDENT}" value="1"<!-- IF bool.FIELD_VALUE eq 1 --> checked="checked"<!-- ENDIF --> />
+ <!-- ENDIF -->
+<!-- END bool -->
+
+<!-- BEGIN int -->
+ <input type="text" class="post" name="{int.FIELD_IDENT}" size="{int.FIELD_LENGTH}" value="{int.FIELD_VALUE}" />
+<!-- END int -->
+
+<!-- BEGIN date -->
+ <span class="genmed">{L_DAY}:</span> <select name="{date.FIELD_IDENT}_day">{date.S_DAY_OPTIONS}</select>
+ <span class="genmed">{L_MONTH}:</span> <select name="{date.FIELD_IDENT}_month">{date.S_MONTH_OPTIONS}</select>
+ <span class="genmed">{L_YEAR}:</span> <select name="{date.FIELD_IDENT}_year">{date.S_YEAR_OPTIONS}</select>
+<!-- END date -->
diff --git a/phpBB/styles/subsilver2/template/editor.js b/phpBB/styles/subsilver2/template/editor.js
new file mode 100644
index 0000000000..cd22812bab
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/editor.js
@@ -0,0 +1,459 @@
+/**
+* bbCode control by subBlue design [ www.subBlue.com ]
+* Includes unixsafe colour palette selector by SHS`
+*/
+
+// Startup variables
+var imageTag = false;
+var theSelection = false;
+var bbcodeEnabled = true;
+
+// Check for Browser & Platform for PC & IE specific bits
+// More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
+var clientPC = navigator.userAgent.toLowerCase(); // Get client info
+var clientVer = parseInt(navigator.appVersion); // Get browser version
+
+var is_ie = ((clientPC.indexOf('msie') != -1) && (clientPC.indexOf('opera') == -1));
+var is_win = ((clientPC.indexOf('win') != -1) || (clientPC.indexOf('16bit') != -1));
+
+var baseHeight;
+
+/**
+* Shows the help messages in the helpline window
+*/
+function helpline(help)
+{
+ document.forms[form_name].helpbox.value = help_line[help];
+}
+
+/**
+* Fix a bug involving the TextRange object. From
+* http://www.frostjedi.com/terra/scripts/demo/caretBug.html
+*/
+function initInsertions()
+{
+ var doc;
+
+ if (document.forms[form_name])
+ {
+ doc = document;
+ }
+ else
+ {
+ doc = opener.document;
+ }
+
+ var textarea = doc.forms[form_name].elements[text_name];
+ if (is_ie && typeof(baseHeight) != 'number')
+ {
+ textarea.focus();
+ baseHeight = doc.selection.createRange().duplicate().boundingHeight;
+
+ if (!document.forms[form_name])
+ {
+ document.body.focus();
+ }
+ }
+}
+
+/**
+* bbstyle
+*/
+function bbstyle(bbnumber)
+{
+ if (bbnumber != -1)
+ {
+ bbfontstyle(bbtags[bbnumber], bbtags[bbnumber+1]);
+ }
+ else
+ {
+ insert_text('[*]');
+ document.forms[form_name].elements[text_name].focus();
+ }
+}
+
+/**
+* Apply bbcodes
+*/
+function bbfontstyle(bbopen, bbclose)
+{
+ theSelection = false;
+
+ var textarea = document.forms[form_name].elements[text_name];
+
+ textarea.focus();
+
+ if ((clientVer >= 4) && is_ie && is_win)
+ {
+ // Get text selection
+ theSelection = document.selection.createRange().text;
+
+ if (theSelection)
+ {
+ // Add tags around selection
+ document.selection.createRange().text = bbopen + theSelection + bbclose;
+ document.forms[form_name].elements[text_name].focus();
+ theSelection = '';
+ return;
+ }
+ }
+ else if (document.forms[form_name].elements[text_name].selectionEnd && (document.forms[form_name].elements[text_name].selectionEnd - document.forms[form_name].elements[text_name].selectionStart > 0))
+ {
+ mozWrap(document.forms[form_name].elements[text_name], bbopen, bbclose);
+ document.forms[form_name].elements[text_name].focus();
+ theSelection = '';
+ return;
+ }
+
+ //The new position for the cursor after adding the bbcode
+ var caret_pos = getCaretPosition(textarea).start;
+ var new_pos = caret_pos + bbopen.length;
+
+ // Open tag
+ insert_text(bbopen + bbclose);
+
+ // Center the cursor when we don't have a selection
+ // Gecko and proper browsers
+ if (!isNaN(textarea.selectionStart))
+ {
+ textarea.selectionStart = new_pos;
+ textarea.selectionEnd = new_pos;
+ }
+ // IE
+ else if (document.selection)
+ {
+ var range = textarea.createTextRange();
+ range.move("character", new_pos);
+ range.select();
+ storeCaret(textarea);
+ }
+
+ textarea.focus();
+ return;
+}
+
+/**
+* Insert text at position
+*/
+function insert_text(text, spaces, popup)
+{
+ var textarea;
+
+ if (!popup)
+ {
+ textarea = document.forms[form_name].elements[text_name];
+ }
+ else
+ {
+ textarea = opener.document.forms[form_name].elements[text_name];
+ }
+ if (spaces)
+ {
+ text = ' ' + text + ' ';
+ }
+
+ if (!isNaN(textarea.selectionStart))
+ {
+ var sel_start = textarea.selectionStart;
+ var sel_end = textarea.selectionEnd;
+
+ mozWrap(textarea, text, '');
+ textarea.selectionStart = sel_start + text.length;
+ textarea.selectionEnd = sel_end + text.length;
+ }
+
+ else if (textarea.createTextRange && textarea.caretPos)
+ {
+ if (baseHeight != textarea.caretPos.boundingHeight)
+ {
+ textarea.focus();
+ storeCaret(textarea);
+ }
+ var caret_pos = textarea.caretPos;
+ caret_pos.text = caret_pos.text.charAt(caret_pos.text.length - 1) == ' ' ? caret_pos.text + text + ' ' : caret_pos.text + text;
+
+ }
+ else
+ {
+ textarea.value = textarea.value + text;
+ }
+ if (!popup)
+ {
+ textarea.focus();
+ }
+
+}
+
+/**
+* Add inline attachment at position
+*/
+function attach_inline(index, filename)
+{
+ insert_text('[attachment=' + index + ']' + filename + '[/attachment]');
+ document.forms[form_name].elements[text_name].focus();
+}
+
+/**
+* Add quote text to message
+*/
+function addquote(post_id, username, l_wrote)
+{
+ var message_name = 'message_' + post_id;
+ var theSelection = '';
+ var divarea = false;
+
+ if (l_wrote === undefined)
+ {
+ // Backwards compatibility
+ l_wrote = 'wrote';
+ }
+
+ if (document.all)
+ {
+ divarea = document.all[message_name];
+ }
+ else
+ {
+ divarea = document.getElementById(message_name);
+ }
+
+ // Get text selection - not only the post content :(
+ if (window.getSelection)
+ {
+ theSelection = window.getSelection().toString();
+ }
+ else if (document.getSelection)
+ {
+ theSelection = document.getSelection();
+ }
+ else if (document.selection)
+ {
+ theSelection = document.selection.createRange().text;
+ }
+
+ if (theSelection == '' || typeof theSelection == 'undefined' || theSelection == null)
+ {
+ if (divarea.innerHTML)
+ {
+ theSelection = divarea.innerHTML.replace(/<br>/ig, '\n');
+ theSelection = theSelection.replace(/<br\/>/ig, '\n');
+ theSelection = theSelection.replace(/&lt\;/ig, '<');
+ theSelection = theSelection.replace(/&gt\;/ig, '>');
+ theSelection = theSelection.replace(/&amp\;/ig, '&');
+ theSelection = theSelection.replace(/&nbsp\;/ig, ' ');
+ }
+ else if (document.all)
+ {
+ theSelection = divarea.innerText;
+ }
+ else if (divarea.textContent)
+ {
+ theSelection = divarea.textContent;
+ }
+ else if (divarea.firstChild.nodeValue)
+ {
+ theSelection = divarea.firstChild.nodeValue;
+ }
+ }
+
+ if (theSelection)
+ {
+ if (bbcodeEnabled)
+ {
+ insert_text('[quote="' + username + '"]' + theSelection + '[/quote]');
+ }
+ else
+ {
+ insert_text(username + ' ' + l_wrote + ':' + '\n');
+ var lines = split_lines(theSelection);
+ for (i = 0; i < lines.length; i++)
+ {
+ insert_text('> ' + lines[i] + '\n');
+ }
+ }
+ }
+
+ return;
+}
+
+
+function split_lines(text)
+{
+ var lines = text.split('\n');
+ var splitLines = new Array();
+ var j = 0;
+ for(i = 0; i < lines.length; i++)
+ {
+ if (lines[i].length <= 80)
+ {
+ splitLines[j] = lines[i];
+ j++;
+ }
+ else
+ {
+ var line = lines[i];
+ do
+ {
+ var splitAt = line.indexOf(' ', 80);
+
+ if (splitAt == -1)
+ {
+ splitLines[j] = line;
+ j++;
+ }
+ else
+ {
+ splitLines[j] = line.substring(0, splitAt);
+ line = line.substring(splitAt);
+ j++;
+ }
+ }
+ while(splitAt != -1);
+ }
+ }
+ return splitLines;
+}
+
+/**
+* From http://www.massless.org/mozedit/
+*/
+function mozWrap(txtarea, open, close)
+{
+ var selLength = (typeof(txtarea.textLength) == 'undefined') ? txtarea.value.length : txtarea.textLength;
+ var selStart = txtarea.selectionStart;
+ var selEnd = txtarea.selectionEnd;
+ var scrollTop = txtarea.scrollTop;
+
+ if (selEnd == 1 || selEnd == 2)
+ {
+ selEnd = selLength;
+ }
+
+ var s1 = (txtarea.value).substring(0,selStart);
+ var s2 = (txtarea.value).substring(selStart, selEnd);
+ var s3 = (txtarea.value).substring(selEnd, selLength);
+
+ txtarea.value = s1 + open + s2 + close + s3;
+ txtarea.selectionStart = selStart + open.length;
+ txtarea.selectionEnd = selEnd + open.length;
+ txtarea.focus();
+ txtarea.scrollTop = scrollTop;
+
+ return;
+}
+
+/**
+* Insert at Caret position. Code from
+* http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130
+*/
+function storeCaret(textEl)
+{
+ if (textEl.createTextRange)
+ {
+ textEl.caretPos = document.selection.createRange().duplicate();
+ }
+}
+
+/**
+* Color pallette
+*/
+function colorPalette(dir, width, height)
+{
+ var r = 0, g = 0, b = 0;
+ var numberList = new Array(6);
+ var color = '';
+
+ numberList[0] = '00';
+ numberList[1] = '40';
+ numberList[2] = '80';
+ numberList[3] = 'BF';
+ numberList[4] = 'FF';
+
+ document.writeln('<table cellspacing="1" cellpadding="0" border="0">');
+
+ for (r = 0; r < 5; r++)
+ {
+ if (dir == 'h')
+ {
+ document.writeln('<tr>');
+ }
+
+ for (g = 0; g < 5; g++)
+ {
+ if (dir == 'v')
+ {
+ document.writeln('<tr>');
+ }
+
+ for (b = 0; b < 5; b++)
+ {
+ color = String(numberList[r]) + String(numberList[g]) + String(numberList[b]);
+ document.write('<td bgcolor="#' + color + '" style="width: ' + width + 'px; height: ' + height + 'px;">');
+ document.write('<a href="#" onclick="bbfontstyle(\'[color=#' + color + ']\', \'[/color]\'); return false;"><img src="images/spacer.gif" width="' + width + '" height="' + height + '" alt="#' + color + '" title="#' + color + '" /></a>');
+ document.writeln('</td>');
+ }
+
+ if (dir == 'v')
+ {
+ document.writeln('</tr>');
+ }
+ }
+
+ if (dir == 'h')
+ {
+ document.writeln('</tr>');
+ }
+ }
+ document.writeln('</table>');
+}
+
+
+/**
+* Caret Position object
+*/
+function caretPosition()
+{
+ var start = null;
+ var end = null;
+}
+
+
+/**
+* Get the caret position in an textarea
+*/
+function getCaretPosition(txtarea)
+{
+ var caretPos = new caretPosition();
+
+ // simple Gecko/Opera way
+ if(txtarea.selectionStart || txtarea.selectionStart == 0)
+ {
+ caretPos.start = txtarea.selectionStart;
+ caretPos.end = txtarea.selectionEnd;
+ }
+ // dirty and slow IE way
+ else if(document.selection)
+ {
+ // get current selection
+ var range = document.selection.createRange();
+
+ // a new selection of the whole textarea
+ var range_all = document.body.createTextRange();
+ range_all.moveToElementText(txtarea);
+
+ // calculate selection start point by moving beginning of range_all to beginning of range
+ var sel_start;
+ for (sel_start = 0; range_all.compareEndPoints('StartToStart', range) < 0; sel_start++)
+ {
+ range_all.moveStart('character', 1);
+ }
+
+ txtarea.sel_start = sel_start;
+
+ // we ignore the end value for IE, this is already dirty enough and we don't need it
+ caretPos.start = txtarea.sel_start;
+ caretPos.end = txtarea.sel_start;
+ }
+
+ return caretPos;
+} \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/faq_body.html b/phpBB/styles/subsilver2/template/faq_body.html
new file mode 100644
index 0000000000..bbd9b82b19
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/faq_body.html
@@ -0,0 +1,63 @@
+<!-- INCLUDE overall_header.html -->
+
+<a name="faqtop"></a>
+
+<div id="pagecontent">
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th>{L_FAQ_TITLE}</th>
+ </tr>
+ <tr>
+ <td class="row1">
+ <!-- BEGIN faq_block -->
+ <span class="gen"><b>{faq_block.BLOCK_TITLE}</b></span><br />
+ <!-- BEGIN faq_row -->
+ <span class="gen"><a class="postlink" href="#f{faq_block.S_ROW_COUNT}r{faq_block.faq_row.S_ROW_COUNT}">{faq_block.faq_row.FAQ_QUESTION}</a></span><br />
+ <!-- END faq_row -->
+ <br />
+ <!-- END faq_block -->
+ </td>
+ </tr>
+ <tr>
+ <td class="cat">&nbsp;</td>
+ </tr>
+ </table>
+
+ <br clear="all" />
+
+ <!-- BEGIN faq_block -->
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <td class="cat" align="center"><h4>{faq_block.BLOCK_TITLE}</h4></td>
+ </tr>
+ <!-- BEGIN faq_row -->
+ <tr>
+ <!-- IF faq_block.faq_row.S_ROW_COUNT is even -->
+ <td class="row1" valign="top">
+ <!-- ELSE -->
+ <td class="row2" valign="top">
+ <!-- ENDIF -->
+ <div class="postbody"><a name="f{faq_block.S_ROW_COUNT}r{faq_block.faq_row.S_ROW_COUNT}"></a><b>&#187; {faq_block.faq_row.FAQ_QUESTION}</b></div>
+ <div class="postbody">{faq_block.faq_row.FAQ_ANSWER}</div>
+ <p class="gensmall"><a href="#faqtop">{L_BACK_TO_TOP}</a></p>
+ </td>
+ </tr>
+ <tr>
+ <td class="spacer" height="1"><img src="images/spacer.gif" alt="" width="1" height="1" /></td>
+ </tr>
+ <!-- END faq_row -->
+ </table>
+
+ <br clear="all" />
+ <!-- END faq_block -->
+
+</div>
+
+<!-- INCLUDE breadcrumbs.html -->
+
+<br clear="all" />
+
+<div align="{S_CONTENT_FLOW_END}"><!-- INCLUDE jumpbox.html --></div>
+
+<!-- INCLUDE overall_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/forumlist_body.html b/phpBB/styles/subsilver2/template/forumlist_body.html
new file mode 100644
index 0000000000..a994e9e676
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/forumlist_body.html
@@ -0,0 +1,74 @@
+<table class="tablebg" cellspacing="1" width="100%">
+<tr>
+ <td class="cat" colspan="5" align="{S_CONTENT_FLOW_END}"><!-- IF not S_IS_BOT and U_MARK_FORUMS --><a class="nav" href="{U_MARK_FORUMS}">{L_MARK_FORUMS_READ}</a><!-- ENDIF -->&nbsp;</td>
+</tr>
+<tr>
+ <th colspan="2">&nbsp;{L_FORUM}&nbsp;</th>
+ <th width="50">&nbsp;{L_TOPICS}&nbsp;</th>
+ <th width="50">&nbsp;{L_POSTS}&nbsp;</th>
+ <th>&nbsp;{L_LAST_POST}&nbsp;</th>
+</tr>
+<!-- BEGIN forumrow -->
+ <!-- IF forumrow.S_IS_CAT -->
+ <tr>
+ <td class="cat" colspan="2"><h4><a href="{forumrow.U_VIEWFORUM}">{forumrow.FORUM_NAME}</a></h4></td>
+ <td class="catdiv" colspan="3">&nbsp;</td>
+ </tr>
+ <!-- ELSEIF forumrow.S_IS_LINK -->
+ <tr>
+ <td class="row1" width="50" align="center">{forumrow.FORUM_FOLDER_IMG}</td>
+ <td class="row1">
+ <!-- IF forumrow.FORUM_IMAGE -->
+ <div style="float: {S_CONTENT_FLOW_BEGIN}; margin-{S_CONTENT_FLOW_END}: 5px;">{forumrow.FORUM_IMAGE}</div>
+ <!-- ENDIF -->
+ <a class="forumlink" href="{forumrow.U_VIEWFORUM}">{forumrow.FORUM_NAME}</a>
+ <p class="forumdesc">{forumrow.FORUM_DESC}</p>
+ </td>
+ <!-- IF forumrow.CLICKS -->
+ <td class="row2" colspan="3" align="center"><span class="genmed">{L_REDIRECTS}: {forumrow.CLICKS}</span></td>
+ <!-- ELSE -->
+ <td class="row2" colspan="3" align="center">&nbsp;</td>
+ <!-- ENDIF -->
+ </tr>
+ <!-- ELSE -->
+ <!-- IF forumrow.S_NO_CAT -->
+ <tr>
+ <td class="cat" colspan="2"><h4>{L_FORUM}</h4></td>
+ <td class="catdiv" colspan="3">&nbsp;</td>
+ </tr>
+ <!-- ENDIF -->
+ <tr>
+ <td class="row1" width="50" align="center">{forumrow.FORUM_FOLDER_IMG}</td>
+ <td class="row1" width="100%">
+ <!-- IF forumrow.FORUM_IMAGE -->
+ <div style="float: {S_CONTENT_FLOW_BEGIN}; margin-{S_CONTENT_FLOW_END}: 5px;">{forumrow.FORUM_IMAGE}</div>
+ <!-- ENDIF -->
+ <a class="forumlink" href="{forumrow.U_VIEWFORUM}">{forumrow.FORUM_NAME}</a>
+ <p class="forumdesc">{forumrow.FORUM_DESC}</p>
+ <!-- IF forumrow.MODERATORS -->
+ <p class="forumdesc"><strong>{forumrow.L_MODERATOR_STR}:</strong> {forumrow.MODERATORS}</p>
+ <!-- ENDIF -->
+ <!-- IF forumrow.SUBFORUMS and forumrow.S_LIST_SUBFORUMS -->
+ <p class="forumdesc"><strong>{forumrow.L_SUBFORUM_STR}</strong> {forumrow.SUBFORUMS}</p>
+ <!-- ENDIF -->
+ </td>
+ <td class="row2" align="center"><p class="topicdetails">{forumrow.TOPICS}</p></td>
+ <td class="row2" align="center"><p class="topicdetails">{forumrow.POSTS}</p></td>
+ <td class="row2" align="center" nowrap="nowrap">
+ <!-- IF forumrow.LAST_POST_TIME -->
+ <p class="topicdetails"><!-- IF forumrow.U_UNAPPROVED_TOPICS --><a href="{forumrow.U_UNAPPROVED_TOPICS}">{UNAPPROVED_IMG}</a>&nbsp;<!-- ENDIF -->{forumrow.LAST_POST_TIME}</p>
+ <p class="topicdetails">{forumrow.LAST_POSTER_FULL}
+ <!-- IF not S_IS_BOT --><a href="{forumrow.U_LAST_POST}">{LAST_POST_IMG}</a><!-- ENDIF -->
+ </p>
+ <!-- ELSE -->
+ <p class="topicdetails">{L_NO_POSTS}</p>
+ <!-- ENDIF -->
+ </td>
+ </tr>
+ <!-- ENDIF -->
+<!-- BEGINELSE -->
+ <tr>
+ <td class="row1" colspan="5" align="center"><p class="gensmall">{L_NO_FORUMS}</p></td>
+ </tr>
+<!-- END forumrow -->
+</table> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/index.htm b/phpBB/styles/subsilver2/template/index.htm
new file mode 100644
index 0000000000..4763c05f0e
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/index.htm
@@ -0,0 +1,16 @@
+<html>
+<head>
+<title>subSilver created by subBlue Design</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body bgcolor="#FFFFFF" text="#000000">
+
+<table width="100%" height="100%" cellspacing="0" cellpadding="0" border="0">
+ <tr>
+ <td align="center" valign="middle"><a href="http://www.subblue.com/" target="_new"><img src="images/created_by.jpg" width="400" height="300" alt="Created by subBlue Design" /></a></td>
+ </tr>
+</table>
+
+</body>
+</html> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/index_body.html b/phpBB/styles/subsilver2/template/index_body.html
new file mode 100644
index 0000000000..8faf76e9ee
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/index_body.html
@@ -0,0 +1,103 @@
+<!-- INCLUDE overall_header.html -->
+
+<!-- IF U_MCP -->
+ <div id="pageheader">
+ <p class="linkmcp">[ <a href="{U_MCP}">{L_MCP}</a> ]</p>
+ </div>
+
+ <br clear="all" /><br />
+<!-- ENDIF -->
+
+<!-- INCLUDE forumlist_body.html -->
+
+<!-- IF not S_IS_BOT or U_TEAM -->
+<span class="gensmall"><!-- IF not S_IS_BOT --><a href="{U_DELETE_COOKIES}">{L_DELETE_COOKIES}</a><!-- ENDIF --><!-- IF not S_IS_BOT and U_TEAM --> | <!-- ENDIF --><!-- IF U_TEAM --><a href="{U_TEAM}">{L_THE_TEAM}</a><!-- ENDIF --></span><br />
+<!-- ENDIF -->
+
+<br clear="all" />
+
+<!-- INCLUDE breadcrumbs.html -->
+
+<!-- IF S_DISPLAY_ONLINE_LIST -->
+ <br clear="all" />
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <td class="cat" colspan="2"><!-- IF U_VIEWONLINE --><h4><a href="{U_VIEWONLINE}">{L_WHO_IS_ONLINE}</a></h4><!-- ELSE --><h4>{L_WHO_IS_ONLINE}</h4><!-- ENDIF --></td>
+ </tr>
+ <tr>
+ <!-- IF LEGEND -->
+ <td class="row1" rowspan="2" align="center" valign="middle"><img src="{T_THEME_PATH}/images/whosonline.gif" alt="{L_WHO_IS_ONLINE}" /></td>
+ <!-- ELSE -->
+ <td class="row1" align="center" valign="middle"><img src="{T_THEME_PATH}/images/whosonline.gif" alt="{L_WHO_IS_ONLINE}" /></td>
+ <!-- ENDIF -->
+ <td class="row1" width="100%"><span class="genmed">{TOTAL_USERS_ONLINE} ({L_ONLINE_EXPLAIN})<br />{RECORD_USERS}<br /><br />{LOGGED_IN_USER_LIST}</span></td>
+ </tr>
+ <!-- IF LEGEND -->
+ <tr>
+ <td class="row1"><b class="gensmall">{L_LEGEND} :: {LEGEND}</b></td>
+ </tr>
+ <!-- ENDIF -->
+ </table>
+<!-- ENDIF -->
+
+<!-- IF S_DISPLAY_BIRTHDAY_LIST -->
+ <br clear="all" />
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <td class="cat" colspan="2"><h4>{L_BIRTHDAYS}</h4></td>
+ </tr>
+ <tr>
+ <td class="row1" align="center" valign="middle"><img src="{T_THEME_PATH}/images/whosonline.gif" alt="{L_BIRTHDAYS}" /></td>
+ <td class="row1" width="100%"><p class="genmed"><!-- IF BIRTHDAY_LIST -->{L_CONGRATULATIONS}: <b>{BIRTHDAY_LIST}</b><!-- ELSE -->{L_NO_BIRTHDAYS}<!-- ENDIF --></p></td>
+ </tr>
+ </table>
+<!-- ENDIF -->
+
+<br clear="all" />
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <td class="cat" colspan="2"><h4>{L_STATISTICS}</h4></td>
+</tr>
+<tr>
+ <td class="row1"><img src="{T_THEME_PATH}/images/whosonline.gif" alt="{L_STATISTICS}" /></td>
+ <td class="row1" width="100%" valign="middle"><p class="genmed">{TOTAL_POSTS} | {TOTAL_TOPICS} | {TOTAL_USERS} | {NEWEST_USER}</p></td>
+</tr>
+</table>
+
+<!-- IF not S_USER_LOGGED_IN and not S_IS_BOT -->
+ <br clear="all" />
+
+ <form method="post" action="{S_LOGIN_ACTION}">
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <td class="cat"><h4><a href="{U_LOGIN_LOGOUT}">{L_LOGIN_LOGOUT}</a></h4></td>
+ </tr>
+ <tr>
+ <td class="row1" align="center"><span class="genmed">{L_USERNAME}:</span> <input class="post" type="text" name="username" size="10" />&nbsp; <span class="genmed">{L_PASSWORD}:</span> <input class="post" type="password" name="password" size="10" />&nbsp; <!-- IF S_AUTOLOGIN_ENABLED --> <span class="gensmall">{L_LOG_ME_IN}</span> <input type="checkbox" class="radio" name="autologin" /><!-- ENDIF -->&nbsp; <input type="submit" class="btnmain" name="login" value="{L_LOGIN}" /></td>
+ </tr>
+ </table>
+ {S_LOGIN_REDIRECT}
+ {S_FORM_TOKEN}
+ </form>
+<!-- ENDIF -->
+
+<br clear="all" />
+
+<table class="legend">
+<tr>
+ <td width="20" align="center">{FORUM_UNREAD_IMG}</td>
+ <td><span class="gensmall">{L_UNREAD_POSTS}</span></td>
+ <td>&nbsp;&nbsp;</td>
+ <td width="20" align="center">{FORUM_IMG}</td>
+ <td><span class="gensmall">{L_NO_UNREAD_POSTS}</span></td>
+ <td>&nbsp;&nbsp;</td>
+ <td width="20" align="center">{FORUM_LOCKED_IMG}</td>
+ <td><span class="gensmall">{L_FORUM_LOCKED}</span></td>
+</tr>
+</table>
+
+<!-- INCLUDE overall_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/jumpbox.html b/phpBB/styles/subsilver2/template/jumpbox.html
new file mode 100644
index 0000000000..f46fed9f27
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/jumpbox.html
@@ -0,0 +1,19 @@
+
+<!-- IF S_DISPLAY_JUMPBOX -->
+ <form method="post" name="jumpbox" action="{S_JUMPBOX_ACTION}" onsubmit="if(document.jumpbox.f.value == -1){return false;}">
+
+ <table cellspacing="0" cellpadding="0" border="0">
+ <tr>
+ <td nowrap="nowrap"><span class="gensmall"><!-- IF S_IN_MCP and S_MERGE_SELECT -->{L_SELECT_TOPICS_FROM}<!-- ELSEIF S_IN_MCP -->{L_MODERATE_FORUM}<!-- ELSE -->{L_JUMP_TO}<!-- ENDIF -->:</span>&nbsp;<select name="f" onchange="if(this.options[this.selectedIndex].value != -1){ document.forms['jumpbox'].submit() }">
+
+ <!-- BEGIN jumpbox_forums -->
+ <!-- IF jumpbox_forums.S_FORUM_COUNT eq 1 --><option value="-1">------------------</option><!-- ENDIF -->
+ <option value="{jumpbox_forums.FORUM_ID}"{jumpbox_forums.SELECTED}><!-- BEGIN level -->&nbsp; &nbsp;<!-- END level -->{jumpbox_forums.FORUM_NAME}</option>
+ <!-- END jumpbox_forums -->
+
+ </select>&nbsp;<input class="btnlite" type="submit" value="{L_GO}" /></td>
+ </tr>
+ </table>
+
+ </form>
+<!-- ENDIF --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/login_body.html b/phpBB/styles/subsilver2/template/login_body.html
new file mode 100644
index 0000000000..51f7068b5f
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/login_body.html
@@ -0,0 +1,91 @@
+<!-- INCLUDE overall_header.html -->
+
+<form action="{S_LOGIN_ACTION}" method="post">
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <!-- IF not S_ADMIN_AUTH -->
+ <th colspan="2">{L_LOGIN}</th>
+ <!-- ELSE -->
+ <th>{LOGIN_EXPLAIN}</th>
+ <!-- ENDIF -->
+</tr>
+<!-- IF LOGIN_EXPLAIN && not S_ADMIN_AUTH -->
+ <tr>
+ <td class="row3" colspan="2" align="center"><span class="gensmall">{LOGIN_EXPLAIN}</span></td>
+ </tr>
+<!-- ENDIF -->
+<tr><!-- IF not S_ADMIN_AUTH and S_REGISTER_ENABLED -->
+ <td class="row1" width="50%">
+ <p class="genmed">{L_LOGIN_INFO}</p>
+
+ <p class="genmed" align="center">
+ <a href="{U_TERMS_USE}">{L_TERMS_USE}</a> | <a href="{U_PRIVACY}">{L_PRIVACY}</a>
+ </p>
+ </td>
+ <!-- ENDIF -->
+ <td <!-- IF not S_ADMIN_AUTH -->class="row2"<!-- ELSE -->class="row1"<!-- ENDIF -->>
+
+ <table align="center" cellspacing="1" cellpadding="4" style="width: 100%;">
+ <!-- IF LOGIN_ERROR -->
+ <tr>
+ <td class="gensmall" colspan="2" align="center"><span class="error">{LOGIN_ERROR}</span></td>
+ </tr>
+ <!-- ENDIF -->
+
+ <tr>
+ <td valign="top" <!-- IF S_ADMIN_AUTH -->style="width: 50%; text-align: {S_CONTENT_FLOW_END};"<!-- ENDIF -->><b class="gensmall">{L_USERNAME}:</b></td>
+ <td><input class="post" type="text" name="{USERNAME_CREDENTIAL}" size="25" value="{USERNAME}" tabindex="1" />
+ <!-- IF not S_ADMIN_AUTH and S_REGISTER_ENABLED -->
+ <br /><a class="gensmall" href="{U_REGISTER}">{L_REGISTER}</a>
+ <!-- ENDIF -->
+ </td>
+ </tr>
+ <tr>
+ <td valign="top" <!-- IF S_ADMIN_AUTH -->style="width: 50%; text-align: {S_CONTENT_FLOW_END};"<!-- ENDIF -->><b class="gensmall">{L_PASSWORD}:</b></td>
+ <td>
+ <input class="post" type="password" name="{PASSWORD_CREDENTIAL}" size="25" tabindex="2" />
+ <!-- IF U_SEND_PASSWORD --><br /><a class="gensmall" href="{U_SEND_PASSWORD}">{L_FORGOT_PASS}</a><!-- ENDIF -->
+ <!-- IF U_RESEND_ACTIVATION and not S_ADMIN_AUTH --><br /><a class="gensmall" href="{U_RESEND_ACTIVATION}">{L_RESEND_ACTIVATION}</a><!-- ENDIF -->
+ </td>
+ </tr>
+ <!-- IF S_DISPLAY_FULL_LOGIN -->
+ <!-- IF S_AUTOLOGIN_ENABLED -->
+ <tr>
+ <td>&nbsp;</td>
+ <td><input type="checkbox" class="radio" name="autologin" tabindex="3" /> <span class="gensmall">{L_LOG_ME_IN}</span></td>
+ </tr>
+ <!-- ENDIF -->
+ <tr>
+ <td>&nbsp;</td>
+ <td><input type="checkbox" class="radio" name="viewonline" tabindex="4" /> <span class="gensmall">{L_HIDE_ME}</span></td>
+ </tr>
+ <!-- ENDIF -->
+ </table>
+ </td>
+</tr>
+
+<!-- IF CAPTCHA_TEMPLATE and S_CONFIRM_CODE -->
+</table>
+<table class="tablebg" width="100%" cellspacing="1">
+
+ <!-- INCLUDE {CAPTCHA_TEMPLATE} -->
+<!-- ENDIF -->
+
+<tr>
+ <td class="cat" <!-- IF not S_ADMIN_AUTH or S_CONFIRM_CODE -->colspan="2"<!-- ENDIF --> align="center">{S_HIDDEN_FIELDS}<input type="submit" name="login" class="btnmain" value="{L_LOGIN}" tabindex="5" /></td>
+</tr>
+</table>
+{S_FORM_TOKEN}
+{S_LOGIN_REDIRECT}
+</form>
+
+<br clear="all" />
+
+<!-- INCLUDE breadcrumbs.html -->
+
+<br clear="all" />
+
+<div align="{S_CONTENT_FLOW_END}"><!-- INCLUDE jumpbox.html --></div>
+
+<!-- INCLUDE overall_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/login_forum.html b/phpBB/styles/subsilver2/template/login_forum.html
new file mode 100644
index 0000000000..96b025a2f9
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/login_forum.html
@@ -0,0 +1,48 @@
+<!-- INCLUDE overall_header.html -->
+
+<div id="pagecontent">
+
+ <form name="login_forum" method="post" action="{S_LOGIN_ACTION}">
+
+ <table class="tablebg" width="100%" cellspacing="1" align="center">
+ <tr>
+ <th>{L_LOGIN}</th>
+ </tr>
+ <tr>
+ <td class="row3" align="center"><span class="gensmall">{L_LOGIN_FORUM}</span></td>
+ </tr>
+ <tr>
+ <td class="row1" align="center">
+
+ <table cellspacing="1" cellpadding="4" border="0">
+ <!-- IF LOGIN_ERROR -->
+ <tr>
+ <td class="gensmall" colspan="2" align="center"><span class="error">{LOGIN_ERROR}</span></td>
+ </tr>
+ <!-- ENDIF -->
+ <tr>
+ <td class="gensmall"><b>{L_PASSWORD}:</b></td>
+ <td><input class="post" type="password" name="password" size="25" tabindex="2" /></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td class="cat" colspan="2" align="center">{S_HIDDEN_FIELDS}<input type="submit" name="login" class="btnmain" value="{L_LOGIN}" tabindex="3" /></td>
+ </tr>
+ </table>
+ {S_FORM_TOKEN}
+ {S_LOGIN_REDIRECT}
+ </form>
+
+</div>
+
+<br clear="all" />
+
+<!-- INCLUDE breadcrumbs.html -->
+
+<br clear="all" />
+
+<div align="{S_CONTENT_FLOW_END}"><!-- INCLUDE jumpbox.html --></div>
+
+<!-- INCLUDE overall_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/mcp_approve.html b/phpBB/styles/subsilver2/template/mcp_approve.html
new file mode 100644
index 0000000000..2d2013f05c
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/mcp_approve.html
@@ -0,0 +1,49 @@
+<!-- INCLUDE overall_header.html -->
+
+<div id="pagecontent">
+
+ <form name="confirm" action="{S_CONFIRM_ACTION}" method="post">
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th>{MESSAGE_TITLE}</th>
+ </tr>
+ <tr>
+ <td class="row1" align="center">
+ <!-- IF ADDITIONAL_MSG -->
+ <span class="gen error">{ADDITIONAL_MSG}</span><br />
+ <!-- ENDIF -->
+ <!-- IF S_NOTIFY_POSTER -->
+ <input type="checkbox" class="radio" name="notify_poster" checked="checked" /><span class="gen"><!-- IF S_APPROVE -->{L_NOTIFY_POSTER_APPROVAL}<!-- ELSE -->{L_NOTIFY_POSTER_DISAPPROVAL}<!-- ENDIF --></span><br />
+ <!-- ENDIF -->
+ <!-- IF not S_APPROVE -->
+ <br />
+ <table border="0" width="90%" cellspacing="2" cellpadding="1">
+ <tr>
+ <td class="row1" width="22%"><b class="gen">{L_DISAPPROVE_REASON}:</b></td>
+ <td class="row1" width="78%"><select name="reason_id"><!-- BEGIN reason --><option value="{reason.ID}"<!-- IF reason.S_SELECTED --> selected="selected"<!-- ENDIF -->>{reason.DESCRIPTION}</option><!-- END reason --></select></td>
+ </tr>
+ <tr>
+ <td class="row1" valign="top"><span class="gen"><b>{L_MORE_INFO}:</b></span><br /><span class="gensmall">{L_CAN_LEAVE_BLANK}</span></td>
+ <td class="row1"><textarea class="post" style="width:500px" name="reason" rows="10" cols="40">{REASON}</textarea></td>
+ </tr>
+ </table>
+ <br />
+ <!-- ENDIF -->
+ <br />{S_HIDDEN_FIELDS}<span class="gen">{MESSAGE_TEXT}</span><br /><br />
+ <input type="submit" name="confirm" value="{YES_VALUE}" class="btnmain" />&nbsp;&nbsp;<input type="submit" name="cancel" value="{L_NO}" class="btnlite" /></span>
+ </td>
+ </tr>
+ </table>
+ {S_FORM_TOKEN}
+ </form>
+
+</div>
+
+<br clear="all" />
+
+<!-- INCLUDE breadcrumbs.html -->
+
+<br clear="all" />
+
+<!-- INCLUDE overall_footer.html -->
diff --git a/phpBB/styles/subsilver2/template/mcp_ban.html b/phpBB/styles/subsilver2/template/mcp_ban.html
new file mode 100644
index 0000000000..706c8b2cd2
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/mcp_ban.html
@@ -0,0 +1,109 @@
+<!-- INCLUDE mcp_header.html -->
+
+<script type="text/javascript">
+// <![CDATA[
+
+ var ban_length = new Array();
+ ban_length[-1] = '';
+ <!-- BEGIN ban_length -->
+ ban_length['{ban_length.BAN_ID}'] = '{ban_length.A_LENGTH}';
+ <!-- END ban_length -->
+
+ var ban_reason = new Array();
+ ban_reason[-1] = '';
+ <!-- BEGIN ban_reason -->
+ ban_reason['{ban_reason.BAN_ID}'] = '{ban_reason.A_REASON}';
+ <!-- END ban_reason -->
+
+ var ban_give_reason = new Array();
+ ban_give_reason[-1] = '';
+ <!-- BEGIN ban_give_reason -->
+ ban_give_reason['{ban_give_reason.BAN_ID}'] = '{ban_give_reason.A_REASON}';
+ <!-- END ban_give_reason -->
+
+ function display_details(option)
+ {
+ document.getElementById('mcp_ban').unbangivereason.value = ban_give_reason[option];
+ document.getElementById('mcp_ban').unbanreason.value = ban_reason[option];
+ document.getElementById('mcp_ban').unbanlength.value = ban_length[option];
+ }
+
+// ]]>
+</script>
+
+<form id="mcp_ban" method="post" action="{U_ACTION}">
+
+<table width="100%" class="tablebg" cellspacing="1" cellpadding="4" border="0">
+<tr>
+ <th colspan="2" nowrap="nowrap">{L_TITLE}</th>
+</tr>
+<tr>
+ <td class="row3" colspan="2">{L_EXPLAIN}</td>
+</tr>
+<tr>
+ <td class="row1" width="45%" valign="top"><b>{L_BAN_CELL}:</b></td>
+ <td class="row2">
+ <textarea name="ban" id="ban" cols="40" rows="3" class="post">{USERNAMES}</textarea>
+ <!-- IF S_USERNAME_BAN --><br />[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]<!-- ENDIF -->
+ </td>
+</tr>
+<tr>
+ <td class="row1" valign="top"><b>{L_BAN_LENGTH}:</b></td>
+ <td class="row2"><select name="banlength">{S_BAN_END_OPTIONS}</select><br /><input type="text" name="banlengthother" class="post" /> {L_YEAR_MONTH_DAY}</td>
+</tr>
+<tr>
+ <td class="row1" valign="top"><b>{L_BAN_EXCLUDE}:</b><br /><span class="gensmall">{L_BAN_EXCLUDE_EXPLAIN}</span></td>
+ <td class="row2"><input type="radio" class="radio" name="banexclude" value="1" /> {L_YES} &nbsp; <input type="radio" class="radio" name="banexclude" value="0" checked="checked" /> {L_NO}</td>
+</tr>
+<tr>
+ <td class="row1" valign="top"><b>{L_BAN_REASON}:</b></td>
+ <td class="row2"><input name="banreason" type="text" class="post" maxlength="255" /></td>
+</tr>
+<tr>
+ <td class="row1" valign="top"><b>{L_BAN_GIVE_REASON}:</b></td>
+ <td class="row2"><input name="bangivereason" type="text" class="post" maxlength="255" /></td>
+</tr>
+<tr>
+ <td class="cat" colspan="2" align="center"><input type="submit" name="bansubmit" value="{L_SUBMIT}" class="btnmain" />&nbsp; <input type="reset" value="{L_RESET}" class="btnlite" />&nbsp;</td>
+</tr>
+</table>
+
+<br /><br />
+
+<table width="100%" class="tablebg" cellspacing="1" cellpadding="4" border="0">
+<tr>
+ <th colspan="2" nowrap="nowrap">{L_UNBAN_TITLE}</th>
+</tr>
+<tr>
+ <td class="row3" colspan="2">{L_UNBAN_EXPLAIN}</td>
+</tr>
+<!-- IF S_BANNED_OPTIONS -->
+ <tr>
+ <td class="row1" valign="top" width="45%"><b>{L_BAN_CELL}:</b></td>
+ <td class="row2"><select name="unban[]" multiple="multiple" size="10" style="width: 50%" onchange="if (this.selectedIndex > -1) display_details(this.options[this.selectedIndex].value); else display_details(-1);">{BANNED_OPTIONS}</select></td>
+ </tr>
+ <tr>
+ <td class="row1" valign="top"><b>{L_BAN_LENGTH}:</b></td>
+ <td class="row2"><input style="border: 0; width: 100%" type="text" name="unbanlength" readonly="readonly" /></td>
+ </tr>
+ <tr>
+ <td class="row1" valign="top"><b>{L_BAN_REASON}:</b></td>
+ <td class="row2"><textarea style="border: 0; width: 100%" name="unbanreason" readonly="readonly" rows="5" cols="80">&nbsp;</textarea></td>
+ </tr>
+ <tr>
+ <td class="row1" valign="top"><b>{L_BAN_GIVE_REASON}:</b></td>
+ <td class="row2"><textarea style="border: 0; width: 100%" name="unbangivereason" readonly="readonly" rows="5" cols="80">&nbsp;</textarea></td>
+ </tr>
+ <tr>
+ <td class="cat" colspan="2" align="center"><input type="submit" name="unbansubmit" value="{L_SUBMIT}" class="btnmain" />&nbsp; <input type="reset" value="{L_RESET}" class="btnlite" />&nbsp;</td>
+ </tr>
+<!-- ELSE -->
+ <tr>
+ <td class="row1" colspan="2"><b>{L_NO_BAN_CELL}</b></td>
+ </tr>
+<!-- ENDIF -->
+</table>
+{S_FORM_TOKEN}
+</form>
+
+<!-- INCLUDE mcp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/mcp_footer.html b/phpBB/styles/subsilver2/template/mcp_footer.html
new file mode 100644
index 0000000000..3105c15ae4
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/mcp_footer.html
@@ -0,0 +1,27 @@
+
+ </td>
+ </tr>
+ </table>
+
+ <!-- IF PAGINATION -->
+ <table width="80%" align="{S_CONTENT_FLOW_END}" cellspacing="1">
+ <tr>
+ <td class="nav" valign="middle" nowrap="nowrap">&nbsp;{PAGE_NUMBER}<br /></td>
+ <td class="gensmall" nowrap="nowrap">&nbsp;[ <!-- IF TOTAL_TOPICS -->{TOTAL_TOPICS}<!-- ELSEIF TOTAL_POSTS -->{TOTAL_POSTS}<!-- ELSE -->{TOTAL}<!-- ENDIF --> ]&nbsp;</td>
+ <td class="gensmall" width="100%" align="{S_CONTENT_FLOW_END}" nowrap="nowrap"><!-- INCLUDE pagination.html --></td>
+ </tr>
+ </table>
+ <br />
+ <!-- ENDIF -->
+
+</div>
+
+<br clear="all" />
+
+<!-- INCLUDE breadcrumbs.html -->
+
+<br clear="all" />
+
+<div align="{S_CONTENT_FLOW_END}"><!-- INCLUDE jumpbox.html --></div>
+
+<!-- INCLUDE overall_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/mcp_forum.html b/phpBB/styles/subsilver2/template/mcp_forum.html
new file mode 100644
index 0000000000..80a6047858
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/mcp_forum.html
@@ -0,0 +1,89 @@
+<!-- INCLUDE mcp_header.html -->
+
+<!-- IF S_MERGE_SELECT --><div style="float: {S_CONTENT_FLOW_END};"><!-- INCLUDE jumpbox.html --></div><!-- ENDIF -->
+
+<!-- IF U_VIEW_FORUM_LOGS --><a href="{U_VIEW_FORUM_LOGS}">{L_VIEW_FORUM_LOGS}</a><!-- ENDIF -->
+
+<!-- IF S_MERGE_SELECT --><br clear="{S_CONTENT_FLOW_END}" /><!-- ENDIF -->
+
+<form method="post" id="mcp" action="{S_MCP_ACTION}">
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <td class="cat" colspan="6" align="center"><span class="gensmall">{L_DISPLAY_TOPICS}:</span> {S_SELECT_SORT_DAYS}&nbsp;<span class="gensmall">{L_SORT_BY}</span> {S_SELECT_SORT_KEY} {S_SELECT_SORT_DIR}&nbsp;<input class="btnlite" type="submit" name="sort" value="{L_GO}" /></td>
+</tr>
+<tr>
+ <th width="4%" nowrap="nowrap">&nbsp;</th>
+ <th nowrap="nowrap">&nbsp;{L_TOPICS}&nbsp;</th>
+ <th width="8%" nowrap="nowrap">&nbsp;{L_REPLIES}&nbsp;</th>
+ <th width="17%" nowrap="nowrap">&nbsp;{L_LAST_POST}&nbsp;</th>
+ <th width="5%" nowrap="nowrap">&nbsp;{L_MARK}&nbsp;</th>
+</tr>
+<!-- BEGIN topicrow -->
+ <tr>
+ <td class="row1" width="25" align="center">{topicrow.TOPIC_FOLDER_IMG}</td>
+ <!-- IF S_TOPIC_ICONS -->
+ <!-- td class="row1" width="25" align="center">{topicrow.TOPIC_ICON_IMG}</td -->
+ <!-- ENDIF -->
+ <td class="row1">
+ <!-- IF topicrow.S_SELECT_TOPIC -->
+ <span class="genmed">[ <a href="{topicrow.U_SELECT_TOPIC}">{L_SELECT_MERGE}</a> ]&nbsp;</span>
+ <!-- ENDIF -->
+ <p class="topictitle">{NEWEST_POST_IMG} {topicrow.ATTACH_ICON_IMG} <a href="{topicrow.U_VIEW_TOPIC}">{topicrow.TOPIC_TITLE}</a>
+ <!-- IF topicrow.S_TOPIC_UNAPPROVED or topicrow.S_POSTS_UNAPPROVED -->
+ <a href="{topicrow.U_MCP_QUEUE}">{topicrow.UNAPPROVED_IMG}</a>&nbsp;
+ <!-- ENDIF -->
+ <!-- IF topicrow.S_TOPIC_REPORTED and topicrow.U_MCP_REPORT -->
+ <a href="{topicrow.U_MCP_REPORT}">{REPORTED_IMG}</a>&nbsp;
+ <!-- ENDIF -->
+ <!-- IF topicrow.S_MOVED_TOPIC and S_CAN_DELETE -->
+ [ <a href="{topicrow.U_DELETE_TOPIC}">{L_DELETE_SHADOW_TOPIC}</a> ]&nbsp;
+ <!-- ENDIF -->
+ </p>
+ </td>
+ <td class="row1" width="50" align="center"><p class="topicdetails">{topicrow.REPLIES}</p></td>
+ <td class="row1" width="120" align="center"><p class="topicdetails">{topicrow.LAST_POST_TIME}</p></td>
+ <td class="row2" align="center">
+ <!-- IF not topicrow.S_MOVED_TOPIC and not S_MERGE_SELECT --><input type="checkbox" class="radio" name="topic_id_list[]" value="{topicrow.TOPIC_ID}"<!-- IF topicrow.S_TOPIC_CHECKED --> checked="checked"<!-- ENDIF --> /><!-- ELSE -->&nbsp;<!-- ENDIF -->
+ </td>
+ </tr>
+<!-- BEGINELSE -->
+ <tr>
+ <td class="row1" colspan="8" align="center"><p class="gen">{L_NO_TOPICS}</p></td>
+ </tr>
+<!-- END topicrow -->
+<!-- IF not S_MERGE_SELECT -->
+<tr>
+ <td class="cat" colspan="6" align="{S_CONTENT_FLOW_END}">
+ <select name="action">
+ <option value="" selected="selected">{L_SELECT_ACTION}</option>
+ <!-- IF S_CAN_DELETE --><option value="delete_topic">{L_DELETE}</option><!-- ENDIF -->
+ <!-- IF S_CAN_MERGE --><option value="merge_topics">{L_MERGE}</option><!-- ENDIF -->
+ <!-- IF S_CAN_MOVE --><option value="move">{L_MOVE}</option><!-- ENDIF -->
+ <!-- IF S_CAN_FORK --><option value="fork">{L_FORK}</option><!-- ENDIF -->
+ <!-- IF S_CAN_LOCK --><option value="lock">{L_LOCK}</option><option value="unlock">{L_UNLOCK}</option><!-- ENDIF -->
+ <!-- IF S_CAN_SYNC --><option value="resync">{L_RESYNC}</option><!-- ENDIF -->
+ <!-- IF S_CAN_MAKE_NORMAL --><option value="make_normal">{L_MAKE_NORMAL}</option><!-- ENDIF -->
+ <!-- IF S_CAN_MAKE_STICKY --><option value="make_sticky">{L_MAKE_STICKY}</option><!-- ENDIF -->
+ <!-- IF S_CAN_MAKE_ANNOUNCE -->
+ <option value="make_announce">{L_MAKE_ANNOUNCE}</option>
+ <option value="make_global">{L_MAKE_GLOBAL}</option>
+ <!-- ENDIF -->
+ </select>
+ <input class="btnmain" type="submit" value="{L_SUBMIT}" />
+ </td>
+</tr>
+<!-- ENDIF -->
+</table>
+{S_FORM_TOKEN}
+</form>
+
+<!-- IF not S_MERGE_SELECT -->
+<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">
+<tr>
+ <td align="{S_CONTENT_FLOW_END}" valign="top" nowrap="nowrap"><b class="gensmall"><a href="#" onclick="marklist('mcp', 'topic_id_list', true); return false;">{L_MARK_ALL}</a> :: <a href="#" onclick="marklist('mcp', 'topic_id_list', false); return false;">{L_UNMARK_ALL}</a></b></td>
+</tr>
+</table>
+<!-- ENDIF -->
+
+<!-- INCLUDE mcp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/mcp_front.html b/phpBB/styles/subsilver2/template/mcp_front.html
new file mode 100644
index 0000000000..7c63039259
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/mcp_front.html
@@ -0,0 +1,155 @@
+<!-- INCLUDE mcp_header.html -->
+
+<!-- IF S_SHOW_UNAPPROVED -->
+ <form name="mcp_queue" method="post" action="{S_MCP_QUEUE_ACTION}">
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <td class="row3" colspan="6" align="center"><b class="gen">{L_LATEST_UNAPPROVED}</b></td>
+ </tr>
+ <tr>
+ <th>&nbsp;{L_FORUM}&nbsp;</th>
+ <th>&nbsp;{L_TOPIC}&nbsp;</th>
+ <th>&nbsp;{L_SUBJECT}&nbsp;</th>
+ <th>&nbsp;{L_AUTHOR}&nbsp;</th>
+ <th>&nbsp;{L_POST_TIME}&nbsp;</th>
+ <th width="5%">&nbsp;{L_SELECT}&nbsp;</th>
+ </tr>
+ <!-- BEGIN unapproved -->
+ <tr>
+ <td class="row1" width="15%" valign="top"><span class="gen"><!-- IF unapproved.U_FORUM --><a href="{unapproved.U_FORUM}">{unapproved.FORUM_NAME}</a><!-- ELSE -->{unapproved.FORUM_NAME}<!-- ENDIF --></span><!-- IF unapproved.U_MCP_FORUM --><br /><span class="gensmall">[ <a href="{unapproved.U_MCP_FORUM}">{L_MODERATE}</a> ]</span><!-- ENDIF --></td>
+ <td class="row2" valign="top"><span class="gen"><a href="{unapproved.U_TOPIC}">{unapproved.TOPIC_TITLE}</a></span><br /><span class="gensmall">[ <a href="{unapproved.U_MCP_TOPIC}">{L_MODERATE}</a> ]</span></td>
+ <td class="row1" valign="top"><span class="gen">{unapproved.SUBJECT}</span><br /><span class="gensmall">[ <a href="{unapproved.U_POST_DETAILS}">{L_VIEW_DETAILS}</a> ]</span></td>
+ <td class="row2" align="center" width="15%" nowrap="nowrap" valign="top"><span class="gen">{unapproved.AUTHOR_FULL}</span></td>
+ <td class="row1" align="center" width="15%" nowrap="nowrap" valign="top"><span class="gensmall">{unapproved.POST_TIME}</span></td>
+ <td class="row2" align="center"><input type="checkbox" class="radio" name="post_id_list[]" value="{unapproved.POST_ID}" /></td>
+ </tr>
+ <!-- BEGINELSE -->
+ <tr>
+ <td class="row1" colspan="6" align="center"><span class="gen">{L_UNAPPROVED_POSTS_ZERO_TOTAL}</span></td>
+ </tr>
+ <!-- END unapproved -->
+ <!-- IF S_HAS_UNAPPROVED_POSTS -->
+ <tr>
+ <td class="row3" colspan="6"><span class="gensmall">{L_UNAPPROVED_TOTAL}</span></td>
+ </tr>
+ <!-- ENDIF -->
+ <tr>
+ <td class="cat" colspan="6" align="center">{S_HIDDEN_FIELDS}<input class="btnmain" type="submit" name="action[approve]" value="{L_APPROVE}" />&nbsp;&nbsp;<input class="btnlite" type="submit" name="action[disapprove]" value="{L_DISAPPROVE}" /></td>
+ </tr>
+ </table>
+ {S_FORM_TOKEN}
+ </form>
+
+ <table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">
+ <tr>
+ <td align="{S_CONTENT_FLOW_END}" valign="top" nowrap="nowrap"><b class="gensmall"><a href="#" onclick="marklist('mcp_queue', '', true); return false;">{L_MARK_ALL}</a> :: <a href="#" onclick="marklist('mcp_queue', '', false); return false;">{L_UNMARK_ALL}</a></b></td>
+ </tr>
+ </table>
+
+ <br clear="all" /><br />
+<!-- ENDIF -->
+
+<!-- IF S_SHOW_REPORTS -->
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <td class="row3" colspan="5" align="center"><b class="gen">{L_LATEST_REPORTED}</b></td>
+ </tr>
+ <tr>
+ <th>&nbsp;{L_FORUM}&nbsp;</th>
+ <th>&nbsp;{L_TOPIC}&nbsp;</th>
+ <th>&nbsp;{L_SUBJECT}&nbsp;</th>
+ <th>&nbsp;{L_REPORTER}&nbsp;</th>
+ <th>&nbsp;{L_REPORT_TIME}&nbsp;</th>
+ </tr>
+ <!-- BEGIN report -->
+ <tr>
+ <td class="row1" width="15%" valign="top"><span class="gen"><!-- IF report.U_FORUM --><a href="{report.U_FORUM}">{report.FORUM_NAME}</a><!-- ELSE -->{report.FORUM_NAME}<!-- ENDIF --></span><!-- IF report.U_MCP_FORUM --><br /><span class="gensmall">[ <a href="{report.U_MCP_FORUM}">{L_MODERATE}</a> ]</span><!-- ENDIF --></td>
+ <td class="row2" valign="top"><span class="gen"><a href="{report.U_TOPIC}">{report.TOPIC_TITLE}</a></span><br /><span class="gensmall">[ <a href="{report.U_MCP_TOPIC}">{L_MODERATE}</a> ]</span></td>
+ <td class="row1" valign="top"><span class="gen">{report.SUBJECT}</span><br /><span class="gensmall">[ <a href="{report.U_POST_DETAILS}">{L_VIEW_DETAILS}</a> ]</span></td>
+ <td class="row2" align="center" width="15%" nowrap="nowrap" valign="top"><span class="gen">{report.REPORTER_FULL}</span></td>
+ <td class="row1" align="center" width="15%" nowrap="nowrap" valign="top"><span class="gensmall">{report.REPORT_TIME}</span></td>
+ </tr>
+ <!-- BEGINELSE -->
+ <tr>
+ <td class="row1" colspan="5" align="center"><span class="gen">{L_REPORTS_ZERO_TOTAL}</span></td>
+ </tr>
+ <!-- END report -->
+ <!-- IF S_HAS_REPORTS -->
+ <tr>
+ <td class="row3" colspan="5"><span class="gensmall">{L_REPORTS_TOTAL}</span></td>
+ </tr>
+ <!-- ENDIF -->
+ </table>
+
+ <br clear="all" /><br />
+<!-- ENDIF -->
+
+<!-- IF S_SHOW_PM_REPORTS -->
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <td class="row3" colspan="6" align="center"><b class="gen">{L_LATEST_REPORTED_PMS}</b></td>
+ </tr>
+ <tr>
+ <th>&nbsp;{L_PM_SUBJECT}&nbsp;</th>
+ <th>&nbsp;{L_PM_FROM}&nbsp;</th>
+ <th>&nbsp;{L_TO} &amp; {L_BCC}&nbsp;</th>
+ <th>&nbsp;{L_SENT_AT}&nbsp;</th>
+ <th>&nbsp;{L_REPORTER}&nbsp;</th>
+ <th>&nbsp;{L_REPORT_TIME}&nbsp;</th>
+ </tr>
+ <!-- BEGIN pm_report -->
+ <tr>
+ <td class="row1" valign="top"><span class="gen">{pm_report.PM_SUBJECT}</span><br /><span class="gensmall">[ <a href="{pm_report.U_PM_DETAILS}">{L_VIEW_DETAILS}</a> ]</span></td>
+ <td class="row2" align="center" width="15%" nowrap="nowrap" valign="top"><span class="gen">{pm_report.PM_AUTHOR_FULL}</span></td>
+ <td class="row1" align="center" width="15%" nowrap="nowrap" valign="top"><span class="gen">{pm_report.RECIPIENTS}</span></td>
+ <td class="row2" align="center" width="10%" nowrap="nowrap" valign="top"><span class="gensmall">{pm_report.PM_TIME}</span></td>
+ <td class="row1" align="center" width="15%" nowrap="nowrap" valign="top"><span class="gen">{pm_report.REPORTER_FULL}</span></td>
+ <td class="row2" align="center" width="10%" nowrap="nowrap" valign="top"><span class="gensmall">{pm_report.REPORT_TIME}</span></td>
+ </tr>
+ <!-- BEGINELSE -->
+ <tr>
+ <td class="row1" colspan="6" align="center"><span class="gen">{L_PM_REPORTS_ZERO_TOTAL}</span></td>
+ </tr>
+ <!-- END pm_report -->
+ <!-- IF S_HAS_PM_REPORTS -->
+ <tr>
+ <td class="row3" colspan="6"><span class="gensmall">{L_PM_REPORTS_TOTAL}</span></td>
+ </tr>
+ <!-- ENDIF -->
+ </table>
+
+ <br clear="all" /><br />
+<!-- ENDIF -->
+
+<!-- IF S_SHOW_LOGS -->
+ <table class="tablebg" width="100%" cellspacing="1" cellpadding="4" border="0" align="{S_CONTENT_FLOW_END}">
+ <tr>
+ <td class="row3" colspan="5" align="center"><b class="gen">{L_LATEST_LOGS}</b></td>
+ </tr>
+ <tr>
+ <th width="15%" nowrap="nowrap">{L_USERNAME}</th>
+ <th width="12%" nowrap="nowrap">{L_IP}</th>
+ <th width="45%" nowrap="nowrap">{L_ACTION}</th>
+ <th nowrap="nowrap"></th>
+ <th width="18%" nowrap="nowrap">{L_TIME}</th>
+ </tr>
+ <!-- BEGIN log -->
+ <tr>
+ <td class="row1" nowrap="nowrap"><span class="gen">{log.USERNAME}</span></td>
+ <td class="row1" align="center" nowrap="nowrap"><span class="gen">{log.IP}</span></td>
+ <td class="row1"><span class="genmed">{log.ACTION}</span></td>
+ <td class="row1" align="center" nowrap="nowrap"><span class="gensmall"><!-- IF log.U_VIEW_TOPIC --><a href="{log.U_VIEW_TOPIC}">{L_VIEW_TOPIC}</a><!-- IF log.U_VIEWLOGS --> | <!-- ENDIF --><!-- ENDIF --><!-- IF log.U_VIEWLOGS --><a href="{log.U_VIEWLOGS}">{L_VIEW_TOPIC_LOGS}</a><!-- ENDIF --></span></td>
+ <td class="row1" align="center" nowrap="nowrap"><span class="gensmall">{log.TIME}</span></td>
+ </tr>
+ <!-- BEGINELSE -->
+ <tr>
+ <td class="row1" colspan="5" align="center"><span class="gen">{L_NO_ENTRIES}</span></td>
+ </tr>
+ <!-- END log -->
+ </table>
+
+ <br clear="all" />
+<!-- ENDIF -->
+
+<!-- INCLUDE mcp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/mcp_header.html b/phpBB/styles/subsilver2/template/mcp_header.html
new file mode 100644
index 0000000000..f107732234
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/mcp_header.html
@@ -0,0 +1,79 @@
+<!-- INCLUDE overall_header.html -->
+
+<div id="pageheader">
+ <!-- IF U_MCP -->
+ <p class="linkmcp">
+ [ <a href="{U_MCP}">{L_MCP}</a><!-- IF U_MCP_FORUM --> | <a href="{U_MCP_FORUM}">{L_MODERATE_FORUM}</a><!-- ENDIF -->
+ <!-- IF U_MCP_TOPIC --> | <a href="{U_MCP_TOPIC}">{L_MODERATE_TOPIC}</a><!-- ENDIF -->
+ <!-- IF U_MCP_POST --> | <a href="{U_MCP_POST}">{L_MODERATE_POST}</a><!-- ENDIF --> ]
+ </p>
+ <!-- ENDIF -->
+
+ <!-- IF TOPIC_TITLE or FORUM_NAME -->
+ <h2><!-- IF TOPIC_TITLE --><a class="titles" href="{U_VIEW_TOPIC}">{TOPIC_TITLE}</a><!-- ELSE --><a class="titles" href="{U_VIEW_FORUM}">{FORUM_NAME}</a><!-- ENDIF --></h2>
+ <!-- ENDIF -->
+</div>
+
+<br clear="all" />
+
+<div id="pagecontent">
+
+ <table width="100%" cellspacing="0" cellpadding="0" border="0">
+ <tr>
+ <td width="20%" valign="top">
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th>{L_OPTIONS}</th>
+ </tr>
+ <!-- BEGIN l_block1 -->
+ <tr>
+ <!-- IF l_block1.S_SELECTED -->
+ <td class="row1"><b class="nav">{l_block1.L_TITLE}</b>
+
+ <ul class="nav" style="margin: 0; padding: 0; list-style-type: none; line-height: 175%;">
+ <!-- BEGIN l_block2 -->
+ <li>&#187; <!-- IF l_block1.l_block2.S_SELECTED --><b>{l_block1.l_block2.L_TITLE}</b><!-- ELSE --><a href="{l_block1.l_block2.U_TITLE}">{l_block1.l_block2.L_TITLE}</a><!-- ENDIF --></li>
+ <!-- END l_block2 -->
+ </ul>
+ <!-- ELSE -->
+ <td class="row2" nowrap="nowrap" onmouseover="this.className='row1'" onmouseout="this.className='row2'" onclick="location.href=this.firstChild.href;"><a class="nav" href="{l_block1.U_TITLE}">{l_block1.L_TITLE}</a>
+ <!-- ENDIF -->
+ </td>
+ </tr>
+ <!-- END l_block1 -->
+ </table>
+
+ </td>
+ <td><img src="images/spacer.gif" width="4" alt="" /></td>
+ <td width="80%" valign="top">
+
+ <!-- IF MESSAGE -->
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th>{L_MESSAGE}</th>
+ </tr>
+ <tr>
+ <td class="row1" align="center"><br /><span class="gen">{MESSAGE}<br /><br /><!-- BEGIN return_links -->{return_links.MESSAGE_LINK}<br /><br /><!-- END return_links --></span></td>
+ </tr>
+ </table>
+
+ <br />
+ <!-- ENDIF -->
+
+ <!-- IF CONFIRM_MESSAGE -->
+ <form name="confirm" method="post" action="{S_CONFIRM_ACTION}">
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th>{L_PLEASE_CONFIRM}</th>
+ </tr>
+ <tr>
+ <td class="row1" align="center"><span class="gen"><br />{CONFIRM_MESSAGE}<br /><br />{S_HIDDEN_FIELDS}<input class="btnmain" type="submit" name="confirm" value="{L_YES}" />&nbsp;&nbsp;<input class="btnlite" type="submit" name="cancel" value="{L_NO}" /><br /><br /></span></td>
+ </tr>
+ </table>
+
+ </form>
+
+ <br />
+ <!-- ENDIF -->
diff --git a/phpBB/styles/subsilver2/template/mcp_jumpbox.html b/phpBB/styles/subsilver2/template/mcp_jumpbox.html
new file mode 100644
index 0000000000..14856596f0
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/mcp_jumpbox.html
@@ -0,0 +1,18 @@
+<!-- Note: no longer in use... -->
+
+<form name="jumpbox" method="post" action="{S_JUMPBOX_ACTION}">
+
+ <span class="gensmall">{L_JUMP_TO}:</span>&nbsp;<select name="f" onChange="if(this.options[this.selectedIndex].value != -1 && this.options[this.selectedIndex].value != document.jumpbox.current_f.value){ document.forms['jumpbox'].submit() }">
+
+<!-- IF S_ENABLE_SELECT_ALL -->
+ <option value="0">{L_ALL_FORUMS}</option>
+<!-- ELSE -->
+ <option value="-1">{L_SELECT_FORUM}</option>
+<!-- ENDIF -->
+
+<!-- BEGIN options -->
+ <option value="{options.VALUE}"<!-- IF options.VALUE eq -1 --> class="disabled-option"<!-- ENDIF -->{options.SELECTED}/>{options.TEXT}</option>
+<!-- BEGINELSE -->
+<!-- END options -->
+</select>&nbsp;<input type="hidden" name="current_f" value="{S_CURRENT_FORUM}" /><input name="jumpbox" class="btnlite" type="submit" value="{L_GO}" onclick="if(document.jumpbox.f.value == -1){return false;}" />
+</form>
diff --git a/phpBB/styles/subsilver2/template/mcp_logs.html b/phpBB/styles/subsilver2/template/mcp_logs.html
new file mode 100644
index 0000000000..8b69197b0f
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/mcp_logs.html
@@ -0,0 +1,46 @@
+<!-- INCLUDE mcp_header.html -->
+
+<form method="post" name="mcp" action="{U_POST_ACTION}">
+
+<table width="100%" cellpadding="3" cellspacing="1" border="0" class="tablebg">
+<tr>
+ <th>{L_USERNAME}</th>
+ <th>{L_IP}</th>
+ <th>{L_TIME}</th>
+ <th>{L_ACTION}</th>
+ <!-- IF S_CLEAR_ALLOWED --><th>{L_MARK}</th><!-- ENDIF -->
+</tr>
+<!-- IF S_LOGS -->
+
+ <!-- BEGIN log -->
+ <!-- IF log.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+ <td class="genmed">{log.USERNAME}</td>
+ <td class="genmed" style="text-align: center;">{log.IP}</td>
+ <td class="genmed" style="text-align: center;">{log.DATE}</td>
+ <td class="genmed">{log.ACTION}<br />{log.DATA}</td>
+ <!-- IF S_CLEAR_ALLOWED --><td width="5%" align="center"><input type="checkbox" class="radio" name="mark[]" value="{log.ID}" /></td><!-- ENDIF -->
+ </tr>
+ <!-- END log -->
+ <tr align="center">
+ <td class="row3" colspan="<!-- IF S_CLEAR_ALLOWED -->5<!-- ELSE -->4<!-- ENDIF -->"><span class="gensmall">{L_SEARCH_KEYWORDS}:</span> <input type="text" name="keywords" value="{S_KEYWORDS}" />&nbsp;<input type="submit" class="btnlite" name="filter" value="{L_SEARCH}" /></td>
+ </tr>
+ <tr align="center">
+ <td class="row3" colspan="<!-- IF S_CLEAR_ALLOWED -->5<!-- ELSE -->4<!-- ENDIF -->"><span class="gensmall">{L_DISPLAY_LOG}:</span> {S_SELECT_SORT_DAYS}&nbsp;<span class="gensmall">{L_SORT_BY}</span> {S_SELECT_SORT_KEY} {S_SELECT_SORT_DIR}&nbsp;<input class="btnlite" type="submit" value="{L_GO}" name="sort" /></td>
+ </tr>
+ <!-- IF S_CLEAR_ALLOWED -->
+ <tr>
+ <td class="cat" colspan="5" align="center"><input class="btnlite" type="submit" name="action[del_all]" value="{L_DELETE_ALL}" />&nbsp; <input class="btnlite" type="submit" name="action[del_marked]" value="{L_DELETE_MARKED}" /></td>
+ </tr>
+ <!-- ENDIF -->
+<!-- ELSE -->
+ <tr>
+ <td class="row1" colspan="<!-- IF S_CLEAR_ALLOWED -->5<!-- ELSE -->4<!-- ENDIF -->" align="center"><span class="gen">{L_NO_ENTRIES}</span></td>
+ </tr>
+<!-- ENDIF -->
+</table>
+{S_FORM_TOKEN}
+</form>
+
+<br clear="all" /><br />
+
+<!-- INCLUDE mcp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/mcp_message.html b/phpBB/styles/subsilver2/template/mcp_message.html
new file mode 100644
index 0000000000..7645e5dd81
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/mcp_message.html
@@ -0,0 +1,14 @@
+<!-- INCLUDE mcp_header.html -->
+
+<table class="tablebg" width="100%" cellspacing="1" cellpadding="4" border="0" align="center">
+<tr>
+ <th><b>{MESSAGE_TITLE}</b></th>
+</tr>
+<tr>
+ <td class="row1" align="center"><br /><span class="gen">{MESSAGE_TEXT}</span><br /><br /></td>
+</tr>
+</table>
+
+<br clear="all" />
+
+<!-- INCLUDE mcp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/mcp_move.html b/phpBB/styles/subsilver2/template/mcp_move.html
new file mode 100644
index 0000000000..db7a6e7241
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/mcp_move.html
@@ -0,0 +1,43 @@
+<!-- INCLUDE overall_header.html -->
+
+<div id="pagecontent">
+
+ <form name="confirm" action="{S_CONFIRM_ACTION}" method="post">
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th>{MESSAGE_TITLE}</th>
+ </tr>
+ <tr>
+ <td class="row1" align="center">
+ <!-- IF ADDITIONAL_MSG -->
+ <span class="gen error">{ADDITIONAL_MSG}</span><br />
+ <!-- ENDIF -->
+ <!-- IF S_FORUM_SELECT -->
+ <span class="gen"><br />{L_SELECT_DESTINATION_FORUM}&nbsp;&nbsp;</span>
+ <select name="to_forum_id">{S_FORUM_SELECT}</select><br />
+ <!-- IF S_CAN_LEAVE_SHADOW -->
+ <input type="checkbox" class="radio" name="move_leave_shadow" checked="checked" /><span class="gen">{L_LEAVE_SHADOW}</span><br />
+ <!-- ENDIF -->
+ <br />{S_HIDDEN_FIELDS}<span class="gen">{MESSAGE_TEXT}</span><br /><br />
+ <input type="submit" name="confirm" value="{YES_VALUE}" class="btnmain" />&nbsp;&nbsp;<input type="submit" name="cancel" value="{L_NO}" class="btnlite" />
+ <!-- ELSE -->
+ <span class="gen">{L_NO_DESTINATION_FORUM}</span><br /><br />
+ {S_HIDDEN_FIELDS}
+ <input type="submit" name="cancel" value="{L_CANCEL}" class="btnlite" />
+ <!-- ENDIF -->
+ </td>
+ </tr>
+ </table>
+ {S_FORM_TOKEN}
+ </form>
+
+</div>
+
+<br clear="all" />
+
+<!-- INCLUDE breadcrumbs.html -->
+
+<br clear="all" />
+
+<!-- INCLUDE overall_footer.html -->
diff --git a/phpBB/styles/subsilver2/template/mcp_notes_front.html b/phpBB/styles/subsilver2/template/mcp_notes_front.html
new file mode 100644
index 0000000000..17f389f7f3
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/mcp_notes_front.html
@@ -0,0 +1,22 @@
+<!-- INCLUDE mcp_header.html -->
+
+<form method="post" name="mcp" action="{U_POST_ACTION}">
+
+<table class="tablebg" width="100%" cellspacing="1" cellpadding="4" border="0" align="center">
+<tr>
+ <th colspan="2"align="center">{L_SELECT_USER}</th>
+</tr>
+<tr>
+ <td class="row1" width="40%"><b class="gen">{L_FIND_USERNAME}: </b><br /><span class="gensmall">[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</span></td>
+ <td class="row2"><input type="text" class="post" name="username" size="20" /></td>
+</tr>
+<tr>
+ <td class="cat" colspan="2" align="center"><input type="submit" name="submituser" value="{L_SUBMIT}" class="btnmain" /></td>
+</tr>
+</table>
+{S_FORM_TOKEN}
+</form>
+
+<br clear="all" /><br />
+
+<!-- INCLUDE mcp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/mcp_notes_user.html b/phpBB/styles/subsilver2/template/mcp_notes_user.html
new file mode 100644
index 0000000000..4ee3f9e04e
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/mcp_notes_user.html
@@ -0,0 +1,125 @@
+<!-- INCLUDE mcp_header.html -->
+
+<form method="post" name="mcp" action="{U_POST_ACTION}">
+
+<table width="100%" cellpadding="3" cellspacing="1" border="0" class="tablebg">
+<tr>
+ <th colspan="2" align="center">{USERNAME}</th>
+</tr>
+<tr>
+ <td class="row1" align="center">
+ <table cellspacing="1" cellpadding="2" border="0">
+ <tr>
+ <td class="gen" align="center"><b>{USERNAME_FULL}</b></td>
+ </tr>
+ <!-- IF RANK_TITLE -->
+ <tr>
+ <td class="postdetails" align="center">{RANK_TITLE}</td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- IF RANK_IMG -->
+ <tr>
+ <td align="center">{RANK_IMG}</td>
+ </tr>
+ <!-- ENDIF -->
+ <tr>
+ <td align="center"><!-- IF AVATAR_IMG -->{AVATAR_IMG}<!-- ELSE --><img src="{T_THEME_PATH}/images/no_avatar.gif" alt="" /><!-- ENDIF --></td>
+ </tr>
+ </table>
+ </td>
+ <td class="row1">
+ <table width="100%" cellspacing="1" cellpadding="2" border="0">
+ <tr>
+ <td class="gen" align="{S_CONTENT_FLOW_END}" nowrap="nowrap">{L_JOINED}: </td>
+ <td width="100%"><b class="gen">{JOINED}</b></td>
+ </tr>
+ <tr>
+ <td class="gen" align="{S_CONTENT_FLOW_END}" valign="top" nowrap="nowrap">{L_TOTAL_POSTS}: </td>
+ <td><b class="gen">{POSTS}</b></td>
+ </tr>
+ <tr>
+ <td class="gen" align="{S_CONTENT_FLOW_END}" valign="top" nowrap="nowrap">{L_WARNINGS}: </td>
+ <td><b class="gen">{WARNINGS}</b></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+
+<br />
+
+<table width="100%" cellpadding="3" cellspacing="1" border="0" class="tablebg">
+<tr>
+ <th colspan="5" align="center">{L_FEEDBACK}</th>
+</tr>
+<!-- IF S_USER_NOTES -->
+
+ <tr align="center">
+ <td colspan="5" class="row3"><span class="gensmall">{L_SEARCH_KEYWORDS}:</span> <input type="text" name="keywords" value="{S_KEYWORDS}" />&nbsp;<input type="submit" class="btnlite" name="filter" value="{L_SEARCH}" /></td>
+ </tr>
+ <tr align="center">
+ <td colspan="5" class="row3"><span class="gensmall">{L_DISPLAY_LOG}:</span> {S_SELECT_SORT_DAYS}&nbsp;<span class="gensmall">{L_SORT_BY}:</span> {S_SELECT_SORT_KEY} {S_SELECT_SORT_DIR}&nbsp;<input class="btnlite" type="submit" value="{L_GO}" name="sort" /></td>
+ </tr>
+ <tr>
+ <th>{L_REPORT_BY}</th>
+ <th>{L_IP}</th>
+ <th>{L_TIME}</th>
+ <th>{L_ACTION}</th>
+ <th><!-- IF S_CLEAR_ALLOWED -->{L_MARK}<!-- ENDIF --></th>
+ </tr>
+
+ <!-- BEGIN usernotes -->
+ <!-- IF usernotes.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+ <td class="gen">{usernotes.REPORT_BY}</td>
+ <td style="text-align: center;">{usernotes.IP}</td>
+ <td style="text-align: center;">{usernotes.REPORT_AT}</td>
+ <td class="gen">
+ {usernotes.ACTION}
+ <!-- IF usernotes.DATA --><br />&#187; <span class="gensmall">[ {usernotes.DATA} ]</span><!-- ENDIF -->
+ </td>
+ <td style="text-align: center;"><!-- IF S_CLEAR_ALLOWED --><input type="checkbox" class="radio" name="marknote[]" value="{usernotes.ID}" /><!-- ENDIF --></td>
+ </tr>
+ <!-- END usernotes -->
+
+ <!-- IF S_CLEAR_ALLOWED -->
+ <tr>
+ <td class="cat" colspan="5" align="center"><input class="btnlite" type="submit" name="action[del_all]" value="{L_DELETE_ALL}" />&nbsp; <input class="btnlite" type="submit" name="action[del_marked]" value="{L_DELETE_MARKED}" /></td>
+ </tr>
+ <!-- ENDIF -->
+
+<!-- ELSE -->
+ <tr>
+ <td class="row1" colspan="2" align="center"><span class="gen">{L_NO_FEEDBACK}</span></td>
+ </tr>
+<!-- ENDIF -->
+</table>
+
+<br clear="all" />
+
+<table width="100%" cellpadding="3" cellspacing="1" border="0" class="tablebg">
+<tr>
+ <th colspan="2" align="center">{L_ADD_FEEDBACK}</th>
+</tr>
+<tr>
+ <td class="row3" align="center" colspan="2"><span class="genmed">{L_ADD_FEEDBACK_EXPLAIN}</span></td>
+</tr>
+<tr>
+ <td colspan="2" class="row1" align="center"><textarea name="usernote" rows="10" cols="76"></textarea></td>
+</tr>
+<tr>
+ <td class="cat" colspan="2" align="center"><input class="btnmain" type="submit" name="action[add_feedback]" value="{L_SUBMIT}" />&nbsp;&nbsp;<input class="btnlite" type="reset" value="{L_RESET}" /></td>
+</tr>
+</table>
+
+<table width="100%" cellspacing="0" cellpadding="0">
+<tr>
+ <td class="pagination">{PAGE_NUMBER} [ {TOTAL_REPORTS} ]</td>
+ <td align="{S_CONTENT_FLOW_END}"><span class="pagination"><!-- INCLUDE pagination.html --></span></td>
+</tr>
+</table>
+{S_FORM_TOKEN}
+</form>
+
+<br clear="all" /><br />
+
+<!-- INCLUDE mcp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/mcp_post.html b/phpBB/styles/subsilver2/template/mcp_post.html
new file mode 100644
index 0000000000..6fb68ca680
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/mcp_post.html
@@ -0,0 +1,206 @@
+<!-- INCLUDE mcp_header.html -->
+
+<!-- IF S_MCP_REPORT -->
+ <form method="post" name="mcp_report" action="{S_CLOSE_ACTION}">
+
+ <table width="100%" cellpadding="3" cellspacing="1" border="0" class="tablebg">
+ <tr>
+ <th colspan="2" align="center"><!-- IF S_PM -->{L_PM_REPORT_DETAILS}<!-- ELSE -->{L_REPORT_DETAILS}<!-- ENDIF --></th>
+ </tr>
+ <tr>
+ <td class="row1"><b class="gen">{L_REPORT_REASON}: </b></td>
+ <td class="row2"><span class="gen">{REPORT_REASON_TITLE} &raquo; {REPORT_REASON_DESCRIPTION}</span></td>
+ </tr>
+ <tr>
+ <td class="row1" width="20%"><b class="gen">{L_REPORTER}: </b></td>
+ <td class="row2" width="80%"><span class="gen"<!-- IF REPORTER_COLOUR --> style="font-weight: bold; color: {REPORTER_COLOUR};"<!-- ENDIF -->>{REPORTER_NAME}</span> &nbsp; <span class="gen">[ <!-- IF U_VIEW_REPORTER_PROFILE --><a href="{U_VIEW_REPORTER_PROFILE}">{L_READ_PROFILE}</a><!-- ENDIF --><!-- IF S_USER_NOTES --><!-- IF U_VIEW_REPORTER_PROFILE --> | <!-- ENDIF --><a href="{U_MCP_REPORTER_NOTES}">{L_VIEW_NOTES}</a> | <a href="{U_MCP_WARN_REPORTER}">{L_WARN_USER}</a><!-- ENDIF --> ]</span></td>
+ </tr>
+ <tr>
+ <td class="row1"><b class="gen">{L_REPORTED}: </b></td>
+ <td class="row2"><span class="postdetails">{REPORT_DATE}</span></td>
+ </tr>
+ <!-- IF REPORT_TEXT -->
+ <tr>
+ <th colspan="2" align="center">{L_MORE_INFO}</th>
+ </tr>
+ <tr>
+ <td class="row1" colspan="2"><div class="gen" style="overflow: auto; width: 100%; height: 80pt; border: 1px;">{REPORT_TEXT}</div></td>
+ </tr>
+ <!-- ENDIF -->
+ <tr>
+ <td class="cat" align="center" colspan="2"><!-- IF S_POST_REPORTED --><input class="btnmain" type="submit" value="{L_CLOSE_REPORT}" name="action[close]" /><!-- ELSE -->{L_REPORT_CLOSED}<!-- ENDIF --> &nbsp; <input class="btnlite" type="submit" value="{L_DELETE_REPORT}" name="action[delete]" /></td>
+ </tr>
+ </table>
+
+ <input type="hidden" name="report_id_list[]" value="{REPORT_ID}" />
+ {S_FORM_TOKEN}
+ </form>
+
+ <br clear="all"/>
+<!-- ENDIF -->
+
+<!-- IF S_MCP_QUEUE --><form method="post" name="mcp_approve" action="{U_APPROVE_ACTION}"><!-- ELSE --><form method="post" name="mcp_report_details" action="{S_CLOSE_ACTION}"><!-- ENDIF -->
+
+<table width="100%" cellpadding="3" cellspacing="1" border="0" class="tablebg">
+<tr>
+ <th colspan="2" align="center"><!-- IF S_PM -->{L_PM}<!-- ELSE -->{L_POST_DETAILS}<!-- ENDIF --></th>
+</tr>
+<tr>
+ <td class="row3" colspan="2" align="center"><span class="gensmall"><!-- IF S_MCP_QUEUE -->{RETURN_QUEUE} | {RETURN_TOPIC_SIMPLE} | {RETURN_POST}<!-- ELSEIF S_MCP_REPORT -->{RETURN_REPORTS}<!-- IF not S_PM --> | <a href="{U_VIEW_POST}">{L_VIEW_POST}</a> | <a href="{U_VIEW_TOPIC}">{L_VIEW_TOPIC}</a> | <a href="{U_VIEW_FORUM}">{L_VIEW_FORUM}</a><!-- ENDIF --><!-- ELSE -->{RETURN_TOPIC}<!-- ENDIF --></span></td>
+</tr>
+<tr>
+ <td class="row1"><b class="gen"><!-- IF S_PM -->{L_PM_SUBJECT}<!-- ELSE -->{L_POST_SUBJECT}<!-- ENDIF -->: </b></td>
+ <td class="row2"><span class="gen">{POST_SUBJECT}</span> <!-- IF S_POST_UNAPPROVED --><span class="postapprove">{UNAPPROVED_IMG} <a href="{U_MCP_APPROVE}">{L_POST_UNAPPROVED}</a></span> <!-- ENDIF --> <!-- IF S_POST_REPORTED and not S_MCP_REPORT --><span class="postreported">{REPORTED_IMG} <a href="{U_MCP_REPORT}">{L_POST_REPORTED}</a></span><!-- ENDIF --></td>
+</tr>
+<tr>
+ <td class="row1" width="20%"><b class="gen"><!-- IF S_PM -->{L_PM_FROM}<!-- ELSE -->{L_POSTER}<!-- ENDIF -->: </b></td>
+ <td class="row2" width="80%"><span class="gen"<!-- IF POST_AUTHOR_COLOUR --> style="font-weight: bold; color: {POST_AUTHOR_COLOUR}"<!-- ENDIF -->>{POST_AUTHOR}</span><span class="gen"> &nbsp; [ <!-- IF U_POST_AUTHOR --><a href="{U_POST_AUTHOR}">{L_READ_PROFILE}</a><!-- ENDIF --><!-- IF S_USER_NOTES --><!-- IF U_POST_AUTHOR --> | <!-- ENDIF --><a href="{U_MCP_USER_NOTES}">{L_VIEW_NOTES}</a> <!-- IF U_MCP_WARN_USER -->| <a href="{U_MCP_WARN_USER}">{L_WARN_USER}</a><!-- ENDIF --><!-- ENDIF --> ]</span></td>
+</tr>
+<!-- IF S_CAN_VIEWIP -->
+ <tr>
+ <td class="row1"><b class="gen"><!-- IF S_PM -->{L_THIS_PM_IP}<!-- ELSE -->{L_THIS_POST_IP}<!-- ENDIF -->: </b></td>
+ <td class="row2"><span class="gen">
+ <!-- IF U_WHOIS -->
+ <a href="{U_WHOIS}"><!-- IF POST_IPADDR -->{POST_IPADDR}<!-- ELSE -->{POST_IP}<!-- ENDIF --></a> (<!-- IF POST_IPADDR -->{POST_IP}<!-- ELSE --><a href="{U_LOOKUP_IP}">{L_LOOKUP_IP}</a><!-- ENDIF -->)
+ <!-- ELSE -->
+ <!-- IF POST_IPADDR -->{POST_IPADDR} ({POST_IP})<!-- ELSE -->{POST_IP}<!-- IF U_LOOKUP_IP --> (<a href="{U_LOOKUP_IP}">{L_LOOKUP_IP}</a>)<!-- ENDIF --><!-- ENDIF -->
+ <!-- ENDIF -->
+ </span></td>
+ </tr>
+<!-- ENDIF -->
+<tr>
+ <td class="row1"><b class="gen"><!-- IF S_PM -->{L_SENT_AT}<!-- ELSE -->{L_POSTED}<!-- ENDIF -->: </b></td>
+ <td class="row2"><span class="postdetails">{POST_DATE}</span></td>
+</tr>
+<!-- IF S_TO_RECIPIENT -->
+ <tr>
+ <td class="row1" nowrap="nowrap" width="150"><b class="gen">{L_TO}:</b></td>
+ <td class="row2 gen">
+ <!-- BEGIN to_recipient -->
+ <!-- IF to_recipient.IS_GROUP --><span class="sep"><a href="{to_recipient.U_VIEW}">{to_recipient.NAME}</a></span><!-- ELSE -->{to_recipient.NAME_FULL}&nbsp;<!-- ENDIF -->
+ <!-- END to_recipient -->
+ </td>
+ </tr>
+<!-- ENDIF -->
+
+<!-- IF S_BCC_RECIPIENT -->
+ <tr>
+ <td class="row1" nowrap="nowrap" width="150"><b class="gen">{L_BCC}:</b></td>
+ <td class="row2 gen">
+ <!-- BEGIN bcc_recipient -->
+ <!-- IF bcc_recipient.IS_GROUP --><span class="sep"><a href="{bcc_recipient.U_VIEW}">{bcc_recipient.NAME}</a></span><!-- ELSE -->{bcc_recipient.NAME_FULL}&nbsp;<!-- ENDIF -->
+ <!-- END bcc_recipient -->
+ </td>
+ </tr>
+<!-- ENDIF -->
+<tr>
+ <th colspan="2" align="center">{L_PREVIEW}</th>
+</tr>
+<tr>
+ <td class="row1" colspan="2">
+ <!-- IF U_EDIT --><div class="gen" style="float: {S_CONTENT_FLOW_END};"><a href="{U_EDIT}">{EDIT_IMG}</a></div><!-- ENDIF -->
+
+ <div class="postbody">{POST_PREVIEW}</div>
+
+ <!-- IF S_HAS_ATTACHMENTS -->
+ <br clear="all" /><br />
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <td class="row3"><b class="genmed">{L_ATTACHMENTS}: </b></td>
+ </tr>
+ <!-- BEGIN attachment -->
+ <tr>
+ <!-- IF attachment.S_ROW_COUNT is even --><td class="row2"><!-- ELSE --><td class="row1"><!-- ENDIF -->{attachment.DISPLAY_ATTACHMENT}</td>
+ </tr>
+ <!-- END attachment -->
+ </table>
+ <!-- ENDIF -->
+
+ </td>
+</tr>
+<!-- IF S_POST_UNAPPROVED and S_MCP_QUEUE -->
+ <tr>
+ <td class="cat" align="center" colspan="2"><input class="btnmain" type="submit" value="{L_APPROVE}" name="action[approve]" /> &nbsp; <input class="btnlite" type="submit" value="{L_DISAPPROVE}" name="action[disapprove]" /></td>
+ </tr>
+ <input type="hidden" name="post_id_list[]" value="{POST_ID}" />
+<!-- ENDIF -->
+</table>
+{S_FORM_TOKEN}
+</form>
+
+<!-- IF S_MCP_QUEUE -->
+ <br clear="all" />
+
+ <!-- IF S_TOPIC_REVIEW --><!-- INCLUDE posting_topic_review.html --><!-- ENDIF -->
+<!-- ELSEIF S_MCP_REPORT -->
+ <br clear="all" />
+
+ <!-- IF S_TOPIC_REVIEW --><!-- INCLUDE posting_topic_review.html --><!-- ENDIF -->
+<!-- ELSE -->
+ <!-- IF S_CAN_LOCK_POST or S_CAN_DELETE_POST or S_CAN_CHGPOSTER -->
+ <br /><a name="mod"></a>
+
+ <table width="100%" cellpadding="3" cellspacing="1" border="0" class="tablebg">
+ <tr>
+ <th colspan="2" align="center">{L_MOD_OPTIONS}</th>
+ </tr>
+ <!-- IF S_CAN_CHGPOSTER -->
+ <tr>
+ <td class="row1" valign="top"><b class="gen">{L_CHANGE_POSTER}</b></td>
+ <td class="row2"><form method="post" name="mcp_chgposter" action="{U_POST_ACTION}"><input class="post" type="text" name="username" value="" /> <input class="btnmain" type="submit" value="{L_CONFIRM}" name="action[chgposter]" /><br /><span class="gensmall">[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</span><!-- IF S_USER_SELECT --><br /><select name="u">{S_USER_SELECT}</select> <input type="submit" class="btnmain" name="action[chgposter_ip]" value="{L_CONFIRM}" /><!-- ENDIF -->{S_FORM_TOKEN}</form></td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- IF S_CAN_LOCK_POST or S_CAN_DELETE_POST -->
+ <tr>
+ <td class="row1" valign="top"><b class="gen">{L_MOD_OPTIONS}</b></td>
+ <td class="row2"><form method="post" name="mcp" action="{U_MCP_ACTION}"><select name="action"><!-- IF S_CAN_LOCK_POST --><!-- IF S_POST_LOCKED --><option value="unlock_post">{L_UNLOCK_POST} [{L_UNLOCK_POST_EXPLAIN}]</option><!-- ELSE --><option value="lock_post">{L_LOCK_POST} [{L_LOCK_POST_EXPLAIN}]</option><!-- ENDIF --><!-- ENDIF --><!-- IF S_CAN_DELETE_POST --><option value="delete_post">{L_DELETE_POST}</option><!-- ENDIF --></select> <input class="btnmain" type="submit" value="{L_SUBMIT}" /> {S_FORM_TOKEN}</form></td>
+ </tr>
+ <!-- ENDIF -->
+ </table>
+ <!-- ENDIF -->
+
+ <!-- IF S_CAN_VIEWIP -->
+ <br /><a name="ip"></a>
+
+ <table width="100%" cellpadding="3" cellspacing="1" border="0" class="tablebg">
+ <tr>
+ <th colspan="2" align="center">{L_IP_INFO}</th>
+ </tr>
+ <tr>
+ <td colspan="2" class="cat"><b class="gen">{L_OTHER_USERS}</b></td>
+ </tr>
+ <!-- BEGIN userrow -->
+ <!-- IF userrow.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+ <td><span class="gen"><!-- IF userrow.U_PROFILE --><a href="{userrow.U_PROFILE}">{userrow.USERNAME}</a><!-- ELSE -->{userrow.USERNAME}<!-- ENDIF --> [ {userrow.NUM_POSTS} {userrow.L_POST_S} ]</span></td>
+ <td align="center"><a href="{userrow.U_SEARCHPOSTS}">{SEARCH_IMG}</a></td>
+ </tr>
+ <!-- BEGINELSE -->
+ <tr class="row1">
+ <td colspan="2" align="center"><span class="gen">{L_NO_MATCHES_FOUND}</span></td>
+ </tr>
+ <!-- END userrow -->
+ <tr>
+ <td class="cat"><b class="gen">{L_IPS_POSTED_FROM}</b></td>
+ <td class="cat" width="10%" nowrap="nowrap"><!-- IF U_LOOKUP_ALL --><span class="gen">[ <a href="{U_LOOKUP_ALL}">{L_LOOKUP_ALL}</a> ]</span><!-- ENDIF --></td>
+ </tr>
+ <!-- BEGIN iprow -->
+ <!-- IF iprow.S_ROW_COUNT is even -->
+ <tr class="row1">
+ <!-- ELSE -->
+ <tr class="row2">
+ <!-- ENDIF -->
+ <td><span class="gen"><!-- IF iprow.HOSTNAME --><a href="{iprow.U_WHOIS}">{iprow.HOSTNAME}</a> ({iprow.IP})<!-- ELSE --><a href="{iprow.U_WHOIS}">{iprow.IP}</a><!-- ENDIF --> [ {iprow.NUM_POSTS} {iprow.L_POST_S} ]</span></td>
+ <td align="center"><!-- IF iprow.U_LOOKUP_IP --><span class="gen">[ <a href="{iprow.U_LOOKUP_IP}">{L_LOOKUP_IP}</a> ]</span><!-- ENDIF --></td>
+ </tr>
+ <!-- BEGINELSE -->
+ <tr class="row1">
+ <td colspan="2" align="center"><span class="gen">{L_NO_MATCHES_FOUND}</span></td>
+ </tr>
+ <!-- END iprow -->
+ </table>
+ <!-- ENDIF -->
+
+<!-- ENDIF -->
+
+<!-- INCLUDE mcp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/mcp_queue.html b/phpBB/styles/subsilver2/template/mcp_queue.html
new file mode 100644
index 0000000000..4def047e51
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/mcp_queue.html
@@ -0,0 +1,46 @@
+<!-- INCLUDE mcp_header.html -->
+
+<form name="mcp" id="mcp" method="post" action="{S_MCP_ACTION}">
+
+<table width="100%" class="tablebg" cellspacing="1" cellpadding="4" border="0">
+<tr>
+ <th colspan="4" nowrap="nowrap">{L_DISPLAY_OPTIONS}</th>
+</tr>
+<tr>
+ <td colspan="4" class="cat" align="center"><span class="gensmall">{L_DISPLAY_ITEMS}:</span> {S_SELECT_SORT_DAYS}&nbsp;<span class="gensmall">{L_SORT_BY}</span> {S_SELECT_SORT_KEY} {S_SELECT_SORT_DIR}&nbsp;<span class="gensmall">{L_FORUM}</span> <select name="f">{S_FORUM_OPTIONS}</select> &nbsp; <!-- IF TOPIC_ID --><input type="checkbox" class="radio" name="t" value="{TOPIC_ID}" checked="checked" />&nbsp; <b>{L_ONLY_TOPIC}</b> &nbsp; <!-- ENDIF --><input class="btnlite" type="submit" name="sort" value="{L_GO}" /></td>
+</tr>
+<tr>
+ <th>&nbsp;<!-- IF S_TOPICS -->{L_TOPIC}<!-- ELSE -->{L_POST}<!-- ENDIF -->&nbsp;</th>
+ <th>&nbsp;{L_AUTHOR}&nbsp;</th>
+ <th>&nbsp;{L_POST_TIME}&nbsp;</th>
+ <th width="5%">&nbsp;{L_SELECT}&nbsp;</th>
+</tr>
+<!-- BEGIN postrow -->
+
+ <!-- IF postrow.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+ <td style="padding: 4px;"><p class="topictitle"><a href="{postrow.U_VIEWPOST}">{postrow.POST_SUBJECT}</a></p>
+ <span class="gensmall"><!-- IF postrow.U_VIEWFORUM -->{L_FORUM}: <a href="{postrow.U_VIEWFORUM}">{postrow.FORUM_NAME}</a><!-- ELSE -->{postrow.FORUM_NAME}<!-- ENDIF --></span></td>
+ <td style="padding: 4px;" align="{S_CONTENT_FLOW_BEGIN}" valign="top" nowrap="nowrap"><span class="gen">{postrow.POST_AUTHOR_FULL}</span><br />
+ <span class="gensmall">[ <a href="{postrow.U_VIEW_DETAILS}">{L_VIEW_DETAILS}</a> ]</span></td>
+ <td class="postdetails" style="padding: 4px;" align="{S_CONTENT_FLOW_BEGIN}" valign="top" nowrap="nowrap">{postrow.POST_TIME}</td>
+ <td align="center"><input type="checkbox" class="radio" name="post_id_list[]" value="{postrow.POST_ID}" /></td>
+ </tr>
+<!-- BEGINELSE -->
+ <tr>
+ <td class="row1" colspan="4" height="30" align="center" valign="middle"><span class="gen"><!-- IF S_TOPICS -->{L_NO_TOPICS_QUEUE}<!-- ELSE -->{L_UNAPPROVED_POSTS_ZERO_TOTAL}<!-- ENDIF --></span></td>
+ </tr>
+<!-- END postrow -->
+<tr>
+ <td class="cat" colspan="4" align="center"><input class="btnmain" type="submit" name="action[approve]" value="{L_APPROVE}" />&nbsp;&nbsp;<input class="btnlite" type="submit" name="action[disapprove]" value="{L_DISAPPROVE}" /></td>
+</tr>
+</table>
+{S_FORM_TOKEN}
+</form>
+
+<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">
+<tr>
+ <td align="{S_CONTENT_FLOW_END}" valign="top" nowrap="nowrap"><b class="gensmall"><a href="#" onclick="marklist('mcp', '', true); return false;">{L_MARK_ALL}</a> :: <a href="#" onclick="marklist('mcp', '', false); return false;">{L_UNMARK_ALL}</a></b></td>
+</tr>
+</table>
+
+<!-- INCLUDE mcp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/mcp_reports.html b/phpBB/styles/subsilver2/template/mcp_reports.html
new file mode 100644
index 0000000000..1b6a3b82b6
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/mcp_reports.html
@@ -0,0 +1,67 @@
+<!-- INCLUDE mcp_header.html -->
+
+<form name="mcp" id="mcp" method="post" action="{S_MCP_ACTION}">
+
+<table width="100%" class="tablebg" cellspacing="1" cellpadding="4" border="0">
+<tr>
+ <th colspan="5" nowrap="nowrap">{L_DISPLAY_OPTIONS}</th>
+</tr>
+<tr>
+ <td colspan="5" class="cat" align="center"><span class="gensmall">{L_DISPLAY_POSTS}:</span> {S_SELECT_SORT_DAYS}&nbsp;<span class="gensmall">{L_SORT_BY}</span> {S_SELECT_SORT_KEY} {S_SELECT_SORT_DIR}<!-- IF not S_PM -->&nbsp;<span class="gensmall">{L_FORUM}</span> <select name="f">{S_FORUM_OPTIONS}</select> &nbsp; <!-- IF TOPIC_ID --><input type="checkbox" class="radio" name="t" value="{TOPIC_ID}" checked="checked" />&nbsp; <b>{L_ONLY_TOPIC}</b> &nbsp; <!-- ENDIF --><!-- ENDIF --><input class="btnlite" type="submit" name="sort" value="{L_GO}" /></td>
+</tr>
+<tr>
+ <!-- IF S_PM -->
+ <th>&nbsp;{L_PM}&nbsp;</th>
+ <th>&nbsp;{L_TO} &amp; {L_BCC}&nbsp;</th>
+ <!-- ELSE -->
+ <th>&nbsp;{L_POST}&nbsp;</th>
+ <th>&nbsp;{L_AUTHOR}&nbsp;</th>
+ <!-- ENDIF -->
+ <th>&nbsp;{L_REPORTER}&nbsp;</th>
+ <th>&nbsp;{L_REPORT_TIME}&nbsp;</th>
+ <th width="5%">&nbsp;{L_SELECT}&nbsp;</th>
+</tr>
+<!-- BEGIN postrow -->
+
+ <!-- IF postrow.S_ROW_ is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+ <!-- IF S_PM -->
+ <td style="padding: 4px;"><p class="topictitle"><a href="{postrow.U_VIEW_DETAILS}">{postrow.PM_SUBJECT}</a></p>
+ <span class="gensmall">{L_PM_FROM}: {postrow.PM_AUTHOR_FULL}</span></td>
+ <td style="padding: 4px;" align="{S_CONTENT_FLOW_BEGIN}" valign="top"><span class="gen">{postrow.RECIPIENTS}</span><br />
+ <span class="gensmall">{L_SENT_AT}: {postrow.PM_TIME}</span></td>
+ <!-- ELSE -->
+ <td style="padding: 4px;"><p class="topictitle"><a href="{postrow.U_VIEWPOST}">{postrow.POST_SUBJECT}</a></p>
+ <span class="gensmall"><!-- IF postrow.U_VIEWFORUM -->{L_FORUM}: <a href="{postrow.U_VIEWFORUM}">{postrow.FORUM_NAME}</a><!-- ELSE -->{postrow.FORUM_NAME}<!-- ENDIF --></span></td>
+ <td style="padding: 4px;" align="{S_CONTENT_FLOW_BEGIN}" valign="top" nowrap="nowrap"><span class="gen">{postrow.POST_AUTHOR_FULL}</span><br />
+ <span class="gensmall">{postrow.POST_TIME}</span></td>
+ <!-- ENDIF -->
+ <td style="padding: 4px;" align="{S_CONTENT_FLOW_BEGIN}" valign="top" nowrap="nowrap"><span class="gen">{postrow.REPORTER_FULL}</span></td>
+ <td style="padding: 4px;" align="{S_CONTENT_FLOW_BEGIN}" valign="top" nowrap="nowrap"><span class="gen">{postrow.REPORT_TIME}</span><br />
+ <span class="gensmall">[ <a href="{postrow.U_VIEW_DETAILS}">{L_VIEW_DETAILS}</a> ]</span></td>
+ <td align="center"><input type="checkbox" class="radio" name="report_id_list[]" value="{postrow.REPORT_ID}" /></td>
+ </tr>
+<!-- BEGINELSE -->
+ <tr>
+ <td class="row1" colspan="5" height="30" align="center" valign="middle"><span class="gen">{L_NO_POSTS}</span></td>
+ </tr>
+<!-- END postrow -->
+<tr>
+ <td class="cat" colspan="5" align="center">
+ <!-- IF S_CLOSED -->
+ <input class="btnmain" type="submit" value="{L_DELETE_REPORTS}" name="action[delete]" />
+ <!-- ELSE -->
+ <input class="btnmain" type="submit" name="action[close]" value="{L_CLOSE_REPORTS}" /> &nbsp; <input class="btnlite" type="submit" value="{L_DELETE_REPORTS}" name="action[delete]" />
+ <!-- ENDIF -->
+ </td>
+</tr>
+</table>
+{S_FORM_TOKEN}
+</form>
+
+<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">
+<tr>
+ <td align="{S_CONTENT_FLOW_END}" valign="top" nowrap="nowrap"><b class="gensmall"><a href="#" onclick="marklist('mcp', '', true); return false;">{L_MARK_ALL}</a> :: <a href="#" onclick="marklist('mcp', '', false); return false;">{L_UNMARK_ALL}</a></b></td>
+</tr>
+</table>
+
+<!-- INCLUDE mcp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/mcp_topic.html b/phpBB/styles/subsilver2/template/mcp_topic.html
new file mode 100644
index 0000000000..12c0f73b97
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/mcp_topic.html
@@ -0,0 +1,151 @@
+<!-- INCLUDE mcp_header.html -->
+
+<form name="mcp" id="mcp" method="post" action="{S_MCP_ACTION}">
+
+<table class="tablebg" width="100%" cellspacing="1">
+<!-- IF S_CAN_SPLIT -->
+ <tr>
+ <th colspan="3" nowrap="nowrap">{L_SPLIT_TOPIC}</th>
+ </tr>
+ <tr>
+ <td class="row2" colspan="3" align="center"><span class="gensmall">{L_SPLIT_TOPIC_EXPLAIN}</span></td>
+ </tr>
+ <tr>
+ <td class="row1" nowrap="nowrap"><span class="gen">{L_SPLIT_SUBJECT}</span></td>
+ <td class="row2" colspan="2"><input class="post" style="width: 350px" type="text" size="35" maxlength="64" name="subject" value="{SPLIT_SUBJECT}" /></td>
+ </tr>
+ <tr>
+ <td class="row1" nowrap="nowrap"><span class="gen">{L_SPLIT_FORUM}</span></td>
+ <td class="row2" colspan="2"><select name="to_forum_id">{S_FORUM_SELECT}</select></td>
+ </tr>
+
+ <!-- IF S_SHOW_TOPIC_ICONS -->
+ <tr>
+ <td class="row1"><span class="gen">{L_TOPIC_ICON}</span></td>
+ <td class="row2" colspan="2">
+ <table width="100%" cellspacing="0" cellpadding="0" border="0">
+ <tr>
+ <td><span class="genmed nowrap"><input type="radio" class="radio" name="icon" value="0"<!-- IF not S_TOPIC_ICON --> checked="checked"<!-- ENDIF --> />{L_NO_TOPIC_ICON}</span> <!-- BEGIN topic_icon --><span class="nowrap"><input type="radio" class="radio" name="icon" value="{topic_icon.ICON_ID}"<!-- IF topic_icon.S_CHECKED --> checked="checked"<!-- ENDIF --> /><img src="{topic_icon.ICON_IMG}" width="{topic_icon.ICON_WIDTH}" height="{topic_icon.ICON_HEIGHT}" alt="" title="" hspace="2" vspace="2" /></span> <!-- END topic_icon --></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <!-- ENDIF -->
+<!-- ENDIF -->
+
+<!-- IF S_CAN_MERGE -->
+ <tr>
+ <th colspan="3" nowrap="nowrap">{L_MERGE_TOPIC}</th>
+ </tr>
+ <tr>
+ <td class="row2" colspan="3" align="center"><span class="gensmall">{L_MERGE_TOPIC_EXPLAIN}</span></td>
+ </tr>
+ <tr>
+ <td class="row1" nowrap="nowrap"><span class="gen">{L_MERGE_TOPIC_ID}</span></td>
+ <td class="row2" colspan="2"><input class="post" type="text" size="6" name="to_topic_id" value="{TO_TOPIC_ID}" /> <a href="{U_SELECT_TOPIC}">{L_SELECT_TOPIC}</a></td>
+ </tr>
+ <!-- IF TO_TOPIC_INFO -->
+ <tr>
+ <td class="row3" colspan="3" align="center"><b class="gen">{TO_TOPIC_INFO}</b></td>
+ </tr>
+ <!-- ENDIF -->
+<!-- ENDIF -->
+<tr>
+ <th colspan="3" nowrap="nowrap">{L_DISPLAY_OPTIONS}</th>
+</tr>
+<tr>
+ <td class="row1" nowrap="nowrap"><span class="gen">{L_POSTS_PER_PAGE}</span><br /><span class="gensmall">{L_POSTS_PER_PAGE_EXPLAIN}</span></td>
+ <td class="row2" colspan="2"><input class="post" type="text" name="posts_per_page" size="6" value="{POSTS_PER_PAGE}" /></td>
+</tr>
+<tr>
+ <td class="cat" colspan="3" align="center"><span class="gensmall">{L_DISPLAY_POSTS}:</span> {S_SELECT_SORT_DAYS}&nbsp;<span class="gensmall">{L_SORT_BY}</span> {S_SELECT_SORT_KEY} {S_SELECT_SORT_DIR}&nbsp;<input class="btnlite" type="submit" name="sort" value="{L_GO}" /></td>
+</tr>
+<tr>
+ <th nowrap="nowrap" colspan="3">{L_TOPIC_REVIEW}: {TOPIC_TITLE}</th>
+</tr>
+<tr>
+ <td class="row3" colspan="3" align="center"><span class="gensmall">{RETURN_TOPIC}</span></td>
+</tr>
+<!-- BEGIN postrow -->
+
+ <!-- IF postrow.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+
+ <td align="center"><b class="postauthor">{postrow.POST_AUTHOR_FULL}</b></td>
+ <td width="100%">
+ <table width="100%" cellspacing="0" cellpadding="0" border="0">
+ <tr valign="top">
+ <td class="gensmall" nowrap="nowrap">&nbsp;<b>{L_POST_SUBJECT}:</b>&nbsp;</td>
+ <td class="gensmall" width="100%">{postrow.POST_SUBJECT}</td>
+ </tr>
+ </table>
+ </td>
+ <td width="5%" align="center"><a href="{postrow.U_POST_DETAILS}">{INFO_IMG}</a></td>
+ </tr>
+
+ <!-- IF postrow.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+
+ <td width="100%" valign="top" colspan="2">
+ <table width="100%" cellspacing="0" cellpadding="2" border="0">
+ <tr>
+ <td valign="top">
+ <div class="postbody">{postrow.MESSAGE}</div>
+ <!-- IF postrow.S_HAS_ATTACHMENTS -->
+ <br clear="all" /><br />
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <td class="row3"><b class="genmed">{L_ATTACHMENTS}: </b></td>
+ </tr>
+ <!-- BEGIN attachment -->
+ <tr>
+ <!-- IF postrow.attachment.S_ROW_COUNT is even --><td class="row2"><!-- ELSE --><td class="row1"><!-- ENDIF -->{postrow.attachment.DISPLAY_ATTACHMENT}</td>
+ </tr>
+ <!-- END attachment -->
+ </table>
+ <!-- ENDIF -->
+
+ </td>
+ </tr>
+ <tr>
+ <td valign="bottom">
+ <table width="100%" cellspacing="0" cellpadding="0" border="0">
+ <tr valign="middle">
+ <td width="100%">
+ <!-- IF postrow.S_POST_UNAPPROVED and postrow.U_MCP_APPROVE --><span class="postapprove">{UNAPPROVED_IMG} <a href="{postrow.U_MCP_APPROVE}">{L_POST_UNAPPROVED}</a></span><br /><!-- ENDIF -->
+ <!-- IF postrow.S_POST_REPORTED and postrow.U_MCP_REPORT --><span class="postreported">{REPORTED_IMG} <a href="{postrow.U_MCP_REPORT}">{L_POST_REPORTED}</a></span><!-- ENDIF -->
+ </td>
+ <td width="10" nowrap="nowrap">{postrow.MINI_POST_IMG}</td>
+ <td class="gensmall" nowrap="nowrap"><b>{L_POSTED}:</b> {postrow.POST_DATE}</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td width="5%" align="center"><input type="checkbox" class="radio" name="post_id_list[]" value="{postrow.POST_ID}"<!-- IF postrow.S_CHECKED --> checked="checked"<!-- ENDIF --> /></td>
+ </tr>
+ <tr>
+ <td class="row3" colspan="3" height="1"><img src="images/spacer.gif" width="1" height="1" alt="" /></td>
+ </tr>
+<!-- END postrow -->
+<tr>
+ <td class="cat" colspan="3" align="center"><select name="action"><option value="" selected="selected">{L_SELECT_ACTION}</option>
+ <!-- IF S_CAN_APPROVE --><option value="approve">{L_APPROVE_POSTS}</option><!-- ENDIF -->
+ <!-- IF S_CAN_LOCK --><option value="lock_post">{L_LOCK_POST_POSTS} [ {L_LOCK_POST_EXPLAIN} ]</option><option value="unlock_post">{L_UNLOCK_POST_POSTS}</option><!-- ENDIF -->
+ <!-- IF S_CAN_DELETE --><option value="delete_post">{L_DELETE_POSTS}</option><!-- ENDIF -->
+ <!-- IF S_CAN_MERGE --><option value="merge_posts"<!-- IF ACTION eq 'merge' --> selected="selected"<!-- ENDIF -->>{L_MERGE_POSTS}</option><!-- ENDIF -->
+ <!-- IF S_CAN_SPLIT --><option value="split_all"<!-- IF ACTION eq 'split' --> selected="selected"<!-- ENDIF -->>{L_SPLIT_POSTS}</option><option value="split_beyond">{L_SPLIT_AFTER}</option><!-- ENDIF -->
+ </select>&nbsp;<input class="btnmain" type="submit" name="mcp_topic_submit" value="{L_SUBMIT}" /></td>
+</tr>
+</table>
+{S_HIDDEN_FIELDS}
+{S_FORM_TOKEN}
+</form>
+
+<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">
+<tr>
+ <td align="{S_CONTENT_FLOW_END}" valign="top" nowrap="nowrap"><b class="gensmall"><a href="#" onclick="marklist('mcp', '', true); return false;">{L_MARK_ALL}</a> :: <a href="#" onclick="marklist('mcp', '', false); return false;">{L_UNMARK_ALL}</a></b></td>
+</tr>
+</table>
+
+<!-- INCLUDE mcp_footer.html -->
diff --git a/phpBB/styles/subsilver2/template/mcp_viewlogs.html b/phpBB/styles/subsilver2/template/mcp_viewlogs.html
new file mode 100644
index 0000000000..b6431e4d51
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/mcp_viewlogs.html
@@ -0,0 +1,52 @@
+<!-- INCLUDE mcp_header.html -->
+
+<form method="post" name="mcp" action="{S_MCP_ACTION}">
+
+<table class="tablebg" width="100%" cellspacing="1" cellpadding="2" border="0">
+<tr>
+ <th colspan="<!-- IF S_TOPIC_ID -->4<!-- ELSE -->5<!-- ENDIF -->" nowrap="nowrap">{L_DISPLAY_OPTIONS}</th>
+</tr>
+<tr>
+ <td colspan="<!-- IF S_TOPIC_ID -->4<!-- ELSE -->5<!-- ENDIF -->" class="cat" align="center"><span class="gensmall">{L_DISPLAY_LOG}:</span> {S_SELECT_SORT_DAYS}&nbsp;<span class="gensmall">{L_SORT_BY}</span> {S_SELECT_SORT_KEY} {S_SELECT_SORT_DIR}&nbsp;<input class="btnlite" type="submit" name="sort" value="{L_GO}" /></span></td>
+</tr>
+<tr>
+ <th width="15%" nowrap="nowrap">{L_USERNAME}</th>
+ <th width="12%" nowrap="nowrap">{L_IP}</th>
+ <th width="18%" nowrap="nowrap">{L_TIME}</th>
+ <th width="45%" nowrap="nowrap">{L_ACTION}</th>
+ <!-- IF not S_TOPIC_ID -->
+ <th width="8%" nowrap="nowrap"></th>
+ <!-- ENDIF -->
+</tr>
+<!-- IF S_TOPIC_ID -->
+ <tr>
+ <td class="row3" colspan="5"><span class="gensmall">{L_LOGS_CURRENT_TOPIC} <a href="{U_VIEW_TOPIC}"><b>{TOPIC_NAME}</b></a></span></td>
+ </tr>
+<!-- ENDIF -->
+<!-- BEGIN log -->
+ <tr>
+ <td class="row1" nowrap="nowrap"><span class="gen">{log.USERNAME}</span></td>
+ <td class="row1" align="center" nowrap="nowrap"><span class="gen">{log.IP}</span></td>
+ <td class="row1" align="center" nowrap="nowrap"><span class="gensmall">{log.TIME}</span></td>
+ <td class="row1"><span class="gen">{log.ACTION}</span></td>
+ <!-- IF not S_TOPIC_ID -->
+ <td class="row1" align="center" nowrap="nowrap"><span class="gensmall"><!-- IF log.U_VIEW_TOPIC --><a href="{log.U_VIEW_TOPIC}">{L_VIEW_TOPIC}</a><!-- IF log.U_VIEWLOGS --> | <!-- ENDIF --><!-- ENDIF --><!-- IF log.U_VIEWLOGS --><a href="{log.U_VIEWLOGS}">{L_VIEW_TOPIC_LOGS}</a><!-- ENDIF --></span></td>
+ <!-- ENDIF -->
+ </tr>
+<!-- BEGINELSE -->
+ <tr>
+ <td class="row1" colspan="<!-- IF S_TOPIC_ID -->4<!-- ELSE -->5<!-- ENDIF -->" align="center"><span class="gen">{L_NO_ENTRIES}</span></td>
+ </tr>
+<!-- END log -->
+</table>
+{S_FORM_TOKEN}
+</form>
+
+<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">
+<tr>
+ <td class="nav" align="{S_CONTENT_FLOW_BEGIN}" valign="middle">{PAGE_NUMBER}</td>
+ <td align="{S_CONTENT_FLOW_END}" valign="top" nowrap="nowrap"><!-- INCLUDE pagination.html --></td>
+</tr>
+</table>
+
+<!-- INCLUDE mcp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/mcp_warn_front.html b/phpBB/styles/subsilver2/template/mcp_warn_front.html
new file mode 100644
index 0000000000..78673b690e
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/mcp_warn_front.html
@@ -0,0 +1,74 @@
+<!-- INCLUDE mcp_header.html -->
+
+<form method="post" name="mcp" action="{U_POST_ACTION}">
+
+<table class="tablebg" width="100%" cellspacing="1" border="0" align="center">
+<tr>
+ <th colspan="2"align="center">{L_SELECT_USER}</th>
+</tr>
+<tr>
+ <td class="row1" width="40%"><b class="gen">{L_FIND_USERNAME}: </b><br /><span class="gensmall">[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</span></td>
+ <td class="row2"><input type="text" class="post" name="username" size="20" /></td>
+</tr>
+<tr>
+ <td class="cat" colspan="2" align="center"><input type="submit" name="submituser" value="{L_SUBMIT}" class="btnmain" /></td>
+</tr>
+</table>
+{S_FORM_TOKEN}
+</form>
+
+<br clear="all" /><br />
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <td class="row3" colspan="4" align="center"><b class="gen">{L_MOST_WARNINGS}</b></td>
+</tr>
+<tr>
+ <th>&nbsp;{L_USERNAME}&nbsp;</th>
+ <th>&nbsp;{L_WARNINGS}&nbsp;</th>
+ <th>&nbsp;{L_LATEST_WARNING_TIME}&nbsp;</th>
+ <th>&nbsp;</th>
+</tr>
+<!-- BEGIN highest -->
+ <tr>
+ <td class="row1" width="15%" valign="top"><span class="gen">{highest.USERNAME_FULL}</span></td>
+ <td class="row2" width="15%" valign="top"><span class="gen">{highest.WARNINGS}</span></td>
+ <td class="row1" width="15%" valign="top"><span class="gen">{highest.WARNING_TIME}</span></td>
+ <td class="row2" width="15%" valign="top"><span class="gen"><a href="{highest.U_NOTES}">{L_VIEW_NOTES}</a></span></td>
+ </tr>
+<!-- BEGINELSE -->
+ <tr>
+ <td class="row1" colspan="4" align="center"><span class="gen">{L_WARNINGS_ZERO_TOTAL}</span></td>
+ </tr>
+<!-- END highest -->
+</table>
+
+<br clear="all" /><br />
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <td class="row3" colspan="4" align="center"><b class="gen">{L_LATEST_WARNINGS}</b></td>
+</tr>
+<tr>
+ <th>&nbsp;{L_USERNAME}&nbsp;</th>
+ <th>&nbsp;{L_TIME}&nbsp;</th>
+ <th>&nbsp;{L_TOTAL_WARNINGS}&nbsp;</th>
+ <th>&nbsp;</th>
+</tr>
+<!-- BEGIN latest -->
+ <tr>
+ <td class="row1" width="15%" valign="top"><span class="gen">{latest.USERNAME_FULL}</span></td>
+ <td class="row2" width="15%" valign="top"><span class="gen">{latest.WARNING_TIME}</span></td>
+ <td class="row1" width="15%" valign="top"><span class="gen">{latest.WARNINGS}</span></td>
+ <td class="row2" width="15%" valign="top"><span class="gen"><a href="{latest.U_NOTES}">{L_VIEW_NOTES}</a></span></td>
+ </tr>
+<!-- BEGINELSE -->
+ <tr>
+ <td class="row1" colspan="4" align="center"><span class="gen">{L_WARNINGS_ZERO_TOTAL}</span></td>
+ </tr>
+<!-- END latest -->
+</table>
+
+<br clear="all" /><br />
+
+<!-- INCLUDE mcp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/mcp_warn_list.html b/phpBB/styles/subsilver2/template/mcp_warn_list.html
new file mode 100644
index 0000000000..078bbc0b34
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/mcp_warn_list.html
@@ -0,0 +1,43 @@
+<!-- INCLUDE mcp_header.html -->
+
+<form method="post" name="mcp" action="{U_POST_ACTION}">
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <td class="row3" colspan="4" align="center"><b class="gen">{L_WARNED_USERS}</b></td>
+</tr>
+<tr>
+ <th>&nbsp;{L_USERNAME}&nbsp;</th>
+ <th>&nbsp;{L_WARNINGS}&nbsp;</th>
+ <th>&nbsp;{L_LATEST_WARNING_TIME}&nbsp;</th>
+ <th>&nbsp;</th>
+</tr>
+<!-- BEGIN user -->
+ <tr>
+ <td class="row1" width="15%" valign="top"><span class="gen">{user.USERNAME_FULL}</span></td>
+ <td class="row2" width="15%" valign="top"><span class="gen">{user.WARNINGS}</span></td>
+ <td class="row1" width="15%" valign="top"><span class="gen">{user.WARNING_TIME}</span></td>
+ <td class="row2" width="15%" valign="top"><span class="gen"><a href="{user.U_NOTES}">{L_VIEW_NOTES}</a></span></td>
+ </tr>
+<!-- BEGINELSE -->
+ <tr>
+ <td class="row1" colspan="4" align="center"><span class="gen">{L_WARNINGS_ZERO_TOTAL}</span></td>
+ </tr>
+<!-- END user -->
+<tr align="center">
+ <td class="row3" colspan="4"><span class="gensmall">{L_DISPLAY_POSTS}:</span> {S_SELECT_SORT_DAYS}&nbsp;<span class="gensmall">{L_SORT_BY}</span> {S_SELECT_SORT_KEY} {S_SELECT_SORT_DIR}&nbsp;<input class="btnlite" type="submit" value="{L_GO}" name="sort" /></td>
+</tr>
+</table>
+
+<table width="100%" cellspacing="0" cellpadding="0">
+<tr>
+ <td class="pagination">{PAGE_NUMBER} [ {TOTAL_USERS} ]</td>
+ <td align="{S_CONTENT_FLOW_END}"><span class="pagination"><!-- INCLUDE pagination.html --></span></td>
+</tr>
+</table>
+{S_FORM_TOKEN}
+</form>
+
+<br clear="all" /><br />
+
+<!-- INCLUDE mcp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/mcp_warn_post.html b/phpBB/styles/subsilver2/template/mcp_warn_post.html
new file mode 100644
index 0000000000..ef0595e48e
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/mcp_warn_post.html
@@ -0,0 +1,62 @@
+<!-- INCLUDE mcp_header.html -->
+
+<table width="100%" cellpadding="3" cellspacing="1" border="0" class="tablebg">
+<tr>
+ <th colspan="2" align="center">{L_POST}</th>
+</tr>
+<tr>
+ <td class="row1" align="center">
+ <table cellspacing="1" cellpadding="2" border="0">
+ <tr>
+ <td class="gen" align="center"><!-- IF USER_COLOR --><b style="color: #{USER_COLOR}"><!-- ELSE --><b><!-- ENDIF -->{USERNAME}</b></td>
+ </tr>
+ <!-- IF RANK_TITLE -->
+ <tr>
+ <td class="postdetails" align="center">{RANK_TITLE}</td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- IF RANK_IMG -->
+ <tr>
+ <td align="center">{RANK_IMG}</td>
+ </tr>
+ <!-- ENDIF -->
+ <tr>
+ <td align="center"><!-- IF AVATAR_IMG -->{AVATAR_IMG}<!-- ELSE --><img src="{T_THEME_PATH}/images/no_avatar.gif" alt="" /><!-- ENDIF --></td>
+ </tr>
+ </table>
+ </td>
+ <td class="row1">
+ <span class="gen">{POST}</span>
+ </td>
+</tr>
+</table>
+
+<br clear="all" /><br />
+
+<form method="post" name="mcp" action="{U_POST_ACTION}">
+
+<table width="100%" cellpadding="3" cellspacing="1" border="0" class="tablebg">
+<tr>
+ <th align="center">{L_ADD_WARNING}</th>
+</tr>
+<tr>
+ <td class="row3" align="center"><span class="genmed">{L_ADD_WARNING_EXPLAIN}</span></td>
+</tr>
+<tr>
+ <td class="row1" align="center"><textarea name="warning" rows="10" cols="76">{L_WARNING_POST_DEFAULT}</textarea></td>
+</tr>
+<!-- IF S_CAN_NOTIFY -->
+<tr>
+ <td class="row1" align="center"><input type="checkbox" class="radio" name="notify_user" checked="checked" /><span class="genmed">{L_NOTIFY_USER_WARN}</span></td>
+</tr>
+<!-- ENDIF -->
+<tr>
+ <td class="cat" align="center"><input class="btnmain" type="submit" name="action[add_warning]" value="{L_SUBMIT}" />&nbsp;&nbsp;<input class="btnlite" type="reset" value="{L_RESET}" /></td>
+</tr>
+</table>
+{S_FORM_TOKEN}
+</form>
+
+<br clear="all" /><br />
+
+<!-- INCLUDE mcp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/mcp_warn_user.html b/phpBB/styles/subsilver2/template/mcp_warn_user.html
new file mode 100644
index 0000000000..4bf6cabad3
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/mcp_warn_user.html
@@ -0,0 +1,75 @@
+<!-- INCLUDE mcp_header.html -->
+
+<table width="100%" cellpadding="3" cellspacing="1" border="0" class="tablebg">
+<tr>
+ <th colspan="2" align="center">{USERNAME}</th>
+</tr>
+<tr>
+ <td class="row1" align="center">
+ <table cellspacing="1" cellpadding="2" border="0">
+ <tr>
+ <td class="gen" align="center"><b>{USERNAME_FULL}</b></td>
+ </tr>
+ <!-- IF RANK_TITLE -->
+ <tr>
+ <td class="postdetails" align="center">{RANK_TITLE}</td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- IF RANK_IMG -->
+ <tr>
+ <td align="center">{RANK_IMG}</td>
+ </tr>
+ <!-- ENDIF -->
+ <tr>
+ <td align="center"><!-- IF AVATAR_IMG -->{AVATAR_IMG}<!-- ELSE --><img src="{T_THEME_PATH}/images/no_avatar.gif" alt="" /><!-- ENDIF --></td>
+ </tr>
+ </table>
+ </td>
+ <td class="row1">
+ <table width="100%" cellspacing="1" cellpadding="2" border="0">
+ <tr>
+ <td class="gen" align="{S_CONTENT_FLOW_END}" nowrap="nowrap">{L_JOINED}: </td>
+ <td width="100%"><b class="gen">{JOINED}</b></td>
+ </tr>
+ <tr>
+ <td class="gen" align="{S_CONTENT_FLOW_END}" valign="top" nowrap="nowrap">{L_TOTAL_POSTS}: </td>
+ <td><b class="gen">{POSTS}</b></td>
+ </tr>
+ <tr>
+ <td class="gen" align="{S_CONTENT_FLOW_END}" valign="top" nowrap="nowrap">{L_WARNINGS}: </td>
+ <td><b class="gen">{WARNINGS}</b></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+
+<br clear="all" /><br />
+
+<form method="post" name="mcp" action="{U_POST_ACTION}">
+
+<table width="100%" cellpadding="3" cellspacing="1" border="0" class="tablebg">
+<tr>
+ <th align="center">{L_ADD_WARNING}</th>
+</tr>
+<tr>
+ <td class="row3" align="center"><span class="genmed">{L_ADD_WARNING_EXPLAIN}</span></td>
+</tr>
+<tr>
+ <td class="row1" align="center"><textarea name="warning" rows="10" cols="76"></textarea></td>
+</tr>
+<!-- IF S_CAN_NOTIFY -->
+<tr>
+ <td class="row1" align="center"><input type="checkbox" class="radio" name="notify_user" checked="checked" /><span class="genmed">{L_NOTIFY_USER_WARN}</span></td>
+</tr>
+<!-- ENDIF -->
+<tr>
+ <td class="cat" align="center"><input class="btnmain" type="submit" name="action[add_warning]" value="{L_SUBMIT}" />&nbsp;&nbsp;<input class="btnlite" type="reset" value="{L_RESET}" /></td>
+</tr>
+</table>
+{S_FORM_TOKEN}
+</form>
+
+<br clear="all" /><br />
+
+<!-- INCLUDE mcp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/mcp_whois.html b/phpBB/styles/subsilver2/template/mcp_whois.html
new file mode 100644
index 0000000000..54b93eec69
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/mcp_whois.html
@@ -0,0 +1,15 @@
+<!-- INCLUDE mcp_header.html -->
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th>{L_WHOIS}</th>
+</tr>
+<tr>
+ <td class="row3" align="center"><span class="gensmall">{RETURN_POST}</span></td>
+</tr>
+<tr>
+ <td class="row1"><pre>{WHOIS}</pre></td>
+</tr>
+</table>
+
+<!-- INCLUDE mcp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/memberlist_body.html b/phpBB/styles/subsilver2/template/memberlist_body.html
new file mode 100644
index 0000000000..cb7a7b20c7
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/memberlist_body.html
@@ -0,0 +1,116 @@
+<!-- IF S_IN_SEARCH_POPUP -->
+ <!-- INCLUDE simple_header.html -->
+<!-- ELSE -->
+ <!-- INCLUDE overall_header.html -->
+<!-- ENDIF -->
+
+<!-- IF S_SEARCH_USER -->
+ <!-- INCLUDE memberlist_search.html -->
+<!-- ENDIF -->
+
+<!-- IF S_SHOW_GROUP --><!-- INCLUDE memberlist_group.html --><!-- ENDIF -->
+
+<!-- IF not S_SHOW_GROUP -->
+ <form method="post" name="charsearch" action="{S_MODE_ACTION}">
+ <table width="100%" cellspacing="1">
+ <tr>
+ <td align="{S_CONTENT_FLOW_BEGIN}"><span class="genmed">{L_USERNAME_BEGINS_WITH}: </span><select name="first_char" onchange="this.form.submit();">{S_CHAR_OPTIONS}</select>&nbsp;<input type="submit" name="char" value="{L_DISPLAY}" class="btnlite" /></td>
+ <!-- IF U_FIND_MEMBER and not S_SEARCH_USER -->
+ <td class="genmed" align="{S_CONTENT_FLOW_END}"><a href="{U_FIND_MEMBER}">{L_FIND_USERNAME}</a></td>
+ <!-- ELSEIF S_SEARCH_USER and U_HIDE_FIND_MEMBER and not S_IN_SEARCH_POPUP -->
+ <td class="genmed" align="{S_CONTENT_FLOW_END}"><a href="{U_HIDE_FIND_MEMBER}">{L_HIDE_MEMBER_SEARCH}</a></td>
+ <!-- ENDIF -->
+ </tr>
+ </table>
+ {S_FORM_TOKEN}
+ </form>
+<!-- ENDIF -->
+
+<!-- IF S_IN_SEARCH_POPUP -->
+ <form method="post" name="results" action="{S_MODE_ACTION}" onsubmit="insert_marked(this.user);return false">
+<!-- ELSE -->
+ <form method="post" action="{S_MODE_ACTION}">
+<!-- ENDIF -->
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th nowrap="nowrap">#</th>
+ <th nowrap="nowrap" width="25%" align="{S_CONTENT_FLOW_BEGIN}"><a href="{U_SORT_USERNAME}">{L_USERNAME}</a></th>
+ <th nowrap="nowrap" width="15%"><a href="{U_SORT_JOINED}">{L_JOINED}</a></th>
+ <th nowrap="nowrap" width="10%"><a href="{U_SORT_POSTS}">{L_POSTS}</a></th>
+ <th nowrap="nowrap" width="15%"><a href="{U_SORT_RANK}">{L_RANK}</a></th>
+ <th nowrap="nowrap" width="11%">{L_SEND_MESSAGE}</th>
+ <th nowrap="nowrap" width="11%"><a href="{U_SORT_EMAIL}">{L_EMAIL}</a></th>
+ <th nowrap="nowrap" width="11%"><a href="{U_SORT_WEBSITE}">{L_WEBSITE}</a></th>
+ <!-- IF S_IN_SEARCH_POPUP and not S_SELECT_SINGLE --><th width="2%" nowrap="nowrap">{L_MARK}</th><!-- ENDIF -->
+</tr>
+<!-- BEGIN memberrow -->
+
+ <!-- IF S_SHOW_GROUP -->
+ <!-- IF memberrow.S_FIRST_ROW and memberrow.S_GROUP_LEADER -->
+ <tr class="row3">
+ <td colspan="8"><b class="gensmall">{L_GROUP_LEADER}</b></td>
+ </tr>
+ <!-- ELSEIF not memberrow.S_GROUP_LEADER and not $S_MEMBER_HEADER -->
+ <tr class="row3">
+ <td colspan="8"><b class="gensmall">{L_GROUP_MEMBERS}</b></td>
+ </tr>
+ <!-- DEFINE $S_MEMBER_HEADER = 1 -->
+ <!-- ENDIF -->
+ <!-- ENDIF -->
+
+ <!-- IF memberrow.S_ROW_COUNT is even --><tr class="row2"><!-- ELSE --> <tr class="row1"><!-- ENDIF -->
+
+ <td class="gen" align="center">&nbsp;{memberrow.ROW_NUMBER}&nbsp;</td>
+ <td class="genmed" align="{S_CONTENT_FLOW_BEGIN}">{memberrow.USERNAME_FULL}<!-- IF S_SELECT_SINGLE --> [&nbsp;<a href="#" onclick="insert_single('{memberrow.A_USERNAME}'); return false;">{L_SELECT}</a>&nbsp;]<!-- ENDIF --></td>
+ <td class="genmed" align="center" nowrap="nowrap">&nbsp;{memberrow.JOINED}&nbsp;</td>
+ <td class="gen" align="center">{memberrow.POSTS}</td>
+ <td class="gen" align="center"><!-- IF memberrow.RANK_IMG -->{memberrow.RANK_IMG}<!-- ELSE -->{memberrow.RANK_TITLE}<!-- ENDIF --></td>
+ <td class="gen" align="center">&nbsp;<!-- IF memberrow.U_PM --><a href="{memberrow.U_PM}">{PM_IMG}</a><!-- ENDIF -->&nbsp;</td>
+ <td class="gen" align="center">&nbsp;<!-- IF memberrow.U_EMAIL --><a href="{memberrow.U_EMAIL}">{EMAIL_IMG}</a><!-- ENDIF -->&nbsp;</td>
+ <td class="gen" align="center">&nbsp;<!-- IF memberrow.U_WWW --><a href="{memberrow.U_WWW}">{WWW_IMG}</a><!-- ENDIF -->&nbsp;</td>
+ <!-- IF memberrow.S_PROFILE_FIELD1 -->
+ <!-- Use a construct like this to include admin defined profile fields. Replace FIELD1 with the name of your field. -->
+ <td class="gen" align="center">&nbsp;{memberrow.PROFILE_FIELD1_VALUE}</td>
+ <!-- ENDIF -->
+ <!-- IF S_IN_SEARCH_POPUP and not S_SELECT_SINGLE --><td align="center"><input type="checkbox" class="radio" name="user" value="{memberrow.USERNAME}" /></td><!-- ENDIF -->
+ </tr>
+
+<!-- BEGINELSE -->
+
+ <tr>
+ <td class="row1" colspan="<!-- IF S_IN_SEARCH_POPUP -->9<!-- ELSE -->8<!-- ENDIF -->" align="center">
+ <span class="gen"><!-- IF S_SHOW_GROUP -->{L_NO_GROUP_MEMBERS}<!-- ELSE -->{L_NO_MEMBERS}<!-- ENDIF --></span>
+ </td>
+ </tr>
+
+<!-- END memberrow -->
+
+<tr>
+ <td class="cat" colspan="<!-- IF S_IN_SEARCH_POPUP -->9<!-- ELSE -->8<!-- ENDIF -->" align="center"><!-- IF S_IN_SEARCH_POPUP and not S_SELECT_SINGLE --><input class="btnlite" type="submit" value="{L_SELECT_MARKED}" /><!-- ELSE --><span class="gensmall">{L_SELECT_SORT_METHOD}:</span>&nbsp;<select name="sk">{S_MODE_SELECT}</select>&nbsp; <span class="gensmall">{L_ORDER}</span>&nbsp;<select name="sd">{S_ORDER_SELECT}</select>&nbsp; <input type="submit" name="submit" value="{L_SUBMIT}" class="btnlite" /><!-- ENDIF --></td>
+</tr>
+</table>
+{S_FORM_TOKEN}
+
+</form>
+
+<table width="100%" cellspacing="0" cellpadding="0">
+<tr>
+ <td class="pagination">{PAGE_NUMBER} [ {TOTAL_USERS} ]</td>
+ <td align="{S_CONTENT_FLOW_END}"><!-- IF S_IN_SEARCH_POPUP and not S_SELECT_SINGLE --><b class="nav"><a href="#" onclick="marklist('results', 'user', true); return false;">{L_MARK_ALL}</a> :: <a href="#" onclick="marklist('results', 'user', false); return false;">{L_UNMARK_ALL}</a></b><br /><!-- ENDIF --><span class="pagination"><!-- INCLUDE pagination.html --></span></td>
+</tr>
+</table>
+
+
+
+<!-- IF S_IN_SEARCH_POPUP -->
+ <!-- INCLUDE simple_footer.html -->
+<!-- ELSE -->
+ <br clear="all" />
+
+ <!-- INCLUDE breadcrumbs.html -->
+
+ <br clear="all" />
+
+ <div align="{S_CONTENT_FLOW_END}"><!-- INCLUDE jumpbox.html --></div>
+ <!-- INCLUDE overall_footer.html -->
+<!-- ENDIF --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/memberlist_email.html b/phpBB/styles/subsilver2/template/memberlist_email.html
new file mode 100644
index 0000000000..976ac1ad89
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/memberlist_email.html
@@ -0,0 +1,73 @@
+<!-- INCLUDE overall_header.html -->
+
+<div id="pagecontent">
+
+ <form action="{S_POST_ACTION}" method="post" name="postform">
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th colspan="2">{L_SEND_EMAIL_USER} {USERNAME}</th>
+ </tr>
+ <!-- IF ERROR_MESSAGE -->
+ <tr>
+ <td class="row3" colspan="2" align="center"><span class="error">{ERROR_MESSAGE}</span></td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- IF S_SEND_USER -->
+ <tr>
+ <td class="row1" width="35%"><b class="genmed">{L_RECIPIENT}</b></td>
+ <td class="row2" width="65%"><b class="genmed">{USERNAME}</b></td>
+ </tr>
+ <tr>
+ <td class="row1" width="35%"><b class="genmed">{L_SUBJECT}</b></td>
+ <td class="row2"><input class="post" type="text" name="subject" size="50" tabindex="2" value="{SUBJECT}" /></td>
+ </tr>
+ <!-- ELSE -->
+ <tr>
+ <td class="row1" width="35%"><b class="genmed">{L_EMAIL_ADDRESS}</b></td>
+ <td class="row2"><input class="post" type="text" name="email" size="50" maxlength="100" value="{EMAIL}" /></td>
+ </tr>
+ <tr>
+ <td class="row1" width="35%"><b class="genmed">{L_REAL_NAME}</b></td>
+ <td class="row2"><input class="post" type="text" name="name" size="50" value="{NAME}" /></td>
+ </tr>
+ <tr>
+ <td class="row1" width="35%"><b class="genmed">{L_DEST_LANG}</b><br /><span class="gensmall">{L_DEST_LANG_EXPLAIN}</span></td>
+ <td class="row2"><select name="lang">{S_LANG_OPTIONS}</select></td>
+ </tr>
+ <!-- ENDIF -->
+ <tr>
+ <td class="row1" valign="top"><b class="genmed">{L_MESSAGE_BODY}</b><br /><span class="gensmall">{L_EMAIL_BODY_EXPLAIN}</span></td>
+ <td class="row2"><textarea class="post" name="message" rows="15" cols="76" tabindex="3">{MESSAGE}</textarea></td>
+ </tr>
+ <tr>
+ <td class="row1" valign="top"><span class="gen"><b>{L_OPTIONS}</b></span></td>
+ <td class="row2">
+ <table cellspacing="0" cellpadding="1" border="0">
+ <tr>
+ <td><input type="checkbox" class="radio" name="cc_email" value="1" checked="checked" /></td>
+ <td class="gen">{L_CC_EMAIL}</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td class="cat" colspan="2" align="center"><input type="submit" tabindex="6" name="submit" class="btnmain" value="{L_SEND_EMAIL}" /></td>
+ </tr>
+ </table>
+
+ {S_FORM_TOKEN}
+
+ </form>
+
+</div>
+
+<br clear="all" />
+
+<!-- INCLUDE breadcrumbs.html -->
+
+<br clear="all" />
+
+<div style="float: {S_CONTENT_FLOW_END};"><!-- INCLUDE jumpbox.html --></div>
+
+<!-- INCLUDE overall_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/memberlist_group.html b/phpBB/styles/subsilver2/template/memberlist_group.html
new file mode 100644
index 0000000000..650868f810
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/memberlist_group.html
@@ -0,0 +1,17 @@
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th colspan="3">{L_GROUP_INFORMATION}</th>
+</tr>
+<tr>
+ <td class="row1" width="20%"><b class="genmed">{L_GROUP_NAME}:</b></td>
+ <td class="row2"><b class="gen"<!-- IF GROUP_COLOR --> style="color:#{GROUP_COLOR}"<!-- ENDIF -->>{GROUP_NAME}</b></td>
+<!-- IF AVATAR_IMG or RANK_IMG or GROUP_RANK or U_PM -->
+ <td class="row1" width="33%" rowspan="2" align="center"><!-- IF AVATAR_IMG -->{AVATAR_IMG}<br /><!-- ENDIF --><!-- IF RANK_IMG -->{RANK_IMG}<!-- ENDIF --><!-- IF GROUP_RANK --><span class="gensmall">{GROUP_RANK}</span><br /><br /><!-- ENDIF --><!-- IF U_PM --><a href="{U_PM}">{PM_IMG}</a><!-- ENDIF --></td>
+<!-- ENDIF -->
+</tr>
+<tr>
+ <td class="row1" width="20%"><b class="genmed">{L_GROUP_DESC}:</b></td>
+ <td class="row2"><span class="gen">{GROUP_DESC}</span><p class="forumdesc">{GROUP_TYPE}</p></td>
+</tr>
+</table>
diff --git a/phpBB/styles/subsilver2/template/memberlist_im.html b/phpBB/styles/subsilver2/template/memberlist_im.html
new file mode 100644
index 0000000000..e8d86128c7
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/memberlist_im.html
@@ -0,0 +1,139 @@
+<!-- INCLUDE simple_header.html -->
+
+<br clear="all" />
+
+<!-- MSNM info from http://www.cdolive.net/ - doesn't seem to work with MSN Messenger -->
+
+<form method="post" action="{S_IM_ACTION}">
+ <table class="tablebg" width="95%" cellspacing="1" cellpadding="4" border="0" align="center">
+ <tr>
+ <th colspan="2">{L_SEND_IM}</th>
+ </tr>
+ <tr>
+ <td class="row3" colspan="2"><span class="gensmall">{L_SEND_IM_EXPLAIN}</span></td>
+ </tr>
+ <tr>
+ <td class="row1"><b class="genmed">{L_IM_RECIPIENT}: </b></td>
+ <td class="row2"><span class="gen"><b>{USERNAME}</b><!-- IF S_SEND_ICQ or S_SEND_AIM or S_SEND_MSNM or S_NO_SEND_JABBER --> [ {IM_CONTACT} ]<!-- ENDIF --></span> <!-- IF PRESENCE_IMG -->{PRESENCE_IMG}<!-- ENDIF --></td>
+ </tr>
+
+ <!-- IF S_SEND_AIM -->
+ <tr>
+ <td class="row1" colspan="2" align="center"><br /><a class="gen" href="{U_AIM_CONTACT}">{L_IM_ADD_CONTACT}</a><br /><a class="gen" href="{U_AIM_MESSAGE}">{L_IM_SEND_MESSAGE}</a><br /><br /><a class="gensmall" href="http://www.aim.com/download.adp">{L_IM_DOWNLOAD_APP}</a> | <a class="gensmall" href="http://aimexpress.oscar.aol.com/aimexpress/launch.adp?Brand=AIM">{L_IM_AIM_EXPRESS}</a> </td>
+ </tr>
+ <tr>
+ <td class="cat" colspan="2" align="center">&nbsp;</td>
+ </tr>
+ <!-- ENDIF -->
+
+ <!-- IF S_SEND_MSNM -->
+ <tr>
+ <td class="row1" colspan="2" align="center">
+ <object classid="clsid:B69003B3-C55E-4B48-836C-BC5946FC3B28" codetype="application/x-oleobject" id="objMessengerApp" width="0" height="0"></object>
+ <script type="text/javascript">
+ // <![CDATA[
+ var app = document.getElementById('objMessengerApp');
+
+ /**
+ * Check whether the browser supports this and whether MSNM is connected
+ */
+ function msn_supported()
+ {
+ // Does the browser support the MSNM object?
+ if (app.MyStatus)
+ {
+ // Is MSNM connected?
+ if (app.MyStatus == 1)
+ {
+ alert('{LA_IM_MSNM_CONNECT}');
+ return false;
+ }
+ }
+ else
+ {
+ alert('{LA_IM_MSNM_BROWSER}');
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Add to your contact list
+ */
+ function add_contact(address)
+ {
+ if (msn_supported())
+ {
+ // Could return an error while MSNM is connecting, don't want that
+ try
+ {
+ app.AddContact(0, address);
+ }
+ catch (e)
+ {
+ return;
+ }
+ }
+ }
+
+ /**
+ * Write IM to contact
+ */
+ function im_contact(address)
+ {
+ if (msn_supported())
+ {
+ // Could return an error while MSNM is connecting, don't want that
+ try
+ {
+ app.InstantMessage(address);
+ }
+ catch (e)
+ {
+ return;
+ }
+ }
+ }
+ // ]]>
+ </script>
+
+ <a class="gen" href="#" onclick="add_contact('{A_IM_CONTACT}'); return false;">{L_IM_ADD_CONTACT}</a><br /><a class="gen" href="#" onclick="im_contact('{A_IM_CONTACT}'); return false;">{L_IM_SEND_MESSAGE}</a>
+ </td>
+ </tr>
+ <tr>
+ <td class="cat" colspan="2" align="center">&nbsp;</td>
+ </tr>
+ <!-- ENDIF -->
+
+ <!-- IF S_SEND_JABBER -->
+ <tr>
+ <td class="row1"><b class="genmed">{L_IM_MESSAGE}: </b></td>
+ <td class="row2"><textarea class="post" name="message" rows="5" cols="45"></textarea></td>
+ </tr>
+ <tr>
+ <td class="cat" colspan="2" align="center"><input class="btnmain" name="submit" type="submit" value="{L_IM_SEND}" /></td>
+ </tr>
+ <!-- ENDIF -->
+
+ <!-- IF S_NO_SEND_JABBER -->
+ <tr>
+ <td class="row1" colspan="2"><span class="genmed">{L_IM_NO_JABBER}</span></td>
+ </tr>
+ <!-- ENDIF -->
+
+ <!-- IF S_SENT_JABBER -->
+ <tr>
+ <td class="row1" colspan="2" align="center"><span class="gen">{L_IM_SENT_JABBER}</span></td>
+ </tr>
+ <tr>
+ <td class="cat" colspan="2" align="center"></td>
+ </tr>
+ <!-- ENDIF -->
+
+ </table>
+{S_FORM_TOKEN}
+</form>
+
+<a class="nav" href="#" onclick="window.close(); return false;">{L_CLOSE_WINDOW}</a>
+
+<!-- INCLUDE simple_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/memberlist_leaders.html b/phpBB/styles/subsilver2/template/memberlist_leaders.html
new file mode 100644
index 0000000000..ba6dbde617
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/memberlist_leaders.html
@@ -0,0 +1,71 @@
+<!-- INCLUDE overall_header.html -->
+
+<form method="post" action="{S_MODE_ACTION}">
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th nowrap="nowrap" width="20%">{L_USERNAME}</th>
+ <th nowrap="nowrap" width="25%">{L_FORUMS}</th>
+ <th nowrap="nowrap" width="20%">{L_PRIMARY_GROUP}</th>
+ <th nowrap="nowrap" width="15%">{L_RANK}</th>
+ <th nowrap="nowrap" width="11%">{L_SEND_MESSAGE}</th>
+</tr>
+<tr class="row3">
+ <td colspan="5"><b class="gensmall">{L_ADMINISTRATORS}</b></td>
+</tr>
+<!-- BEGIN admin -->
+ <!-- IF admin.S_ROW_COUNT is even --><tr class="row2"><!-- ELSE --><tr class="row1"><!-- ENDIF -->
+
+ <td class="gen" align="center"><strong>{admin.USERNAME_FULL}</strong></td>
+ <td class="gensmall" align="center">&nbsp;</td>
+ <td class="gensmall" align="center" nowrap="nowrap">&nbsp;
+ <!-- IF admin.U_GROUP -->
+ <a<!-- IF admin.GROUP_COLOR --> style="font-weight: bold; color:#{admin.GROUP_COLOR}"<!-- ENDIF --> href="{admin.U_GROUP}">{admin.GROUP_NAME}</a>
+ <!-- ELSE -->
+ {admin.GROUP_NAME}
+ <!-- ENDIF -->
+ &nbsp;</td>
+ <td class="gen" align="center"><!-- IF admin.RANK_IMG -->{admin.RANK_IMG}<!-- ELSE -->{admin.RANK_TITLE}<!-- ENDIF --></td>
+ <td class="gen" align="center">&nbsp;<!-- IF admin.U_PM --><a href="{admin.U_PM}">{PM_IMG}</a><!-- ENDIF -->&nbsp;</td>
+</tr>
+<!-- BEGINELSE -->
+ <tr>
+ <td class="row1" colspan="5" align="center"><span class="gen">{L_NO_ADMINISTRATORS}</span></td>
+ </tr>
+<!-- END admin -->
+<tr class="row3">
+ <td colspan="5"><b class="gensmall">{L_MODERATORS}</b></td>
+</tr>
+<!-- BEGIN mod -->
+ <!-- IF mod.S_ROW_COUNT is even --><tr class="row2"><!-- ELSE --><tr class="row1"><!-- ENDIF -->
+
+ <td class="gen" align="center"><strong>{mod.USERNAME_FULL}</strong></td>
+ <td align="center"><!-- IF not mod.FORUMS -->{L_ALL_FORUMS}<!-- ELSE --><select style="width: 200px;">{mod.FORUMS}</select><!-- ENDIF -->&nbsp;</td>
+ <td class="gensmall" align="center" nowrap="nowrap">&nbsp;
+ <!-- IF mod.U_GROUP -->
+ <a<!-- IF mod.GROUP_COLOR --> style="font-weight: bold; color:#{mod.GROUP_COLOR}"<!-- ENDIF --> href="{mod.U_GROUP}">{mod.GROUP_NAME}</a>
+ <!-- ELSE -->
+ {mod.GROUP_NAME}
+ <!-- ENDIF -->
+ &nbsp;</td>
+ <td class="gen" align="center"><!-- IF mod.RANK_IMG -->{mod.RANK_IMG}<!-- ELSE -->{mod.RANK_TITLE}<!-- ENDIF --></td>
+ <td class="gen" align="center">&nbsp;<!-- IF mod.U_PM --><a href="{mod.U_PM}">{PM_IMG}</a><!-- ENDIF -->&nbsp;</td>
+</tr>
+<!-- BEGINELSE -->
+ <tr>
+ <td class="row1" colspan="5" align="center"><span class="gen">{L_NO_MODERATORS}</span></td>
+ </tr>
+<!-- END mod -->
+</table>
+
+</form>
+
+<br clear="all" />
+
+<!-- INCLUDE breadcrumbs.html -->
+
+<br clear="all" />
+
+<div style="float: {S_CONTENT_FLOW_END};"><!-- INCLUDE jumpbox.html --></div>
+
+<!-- INCLUDE overall_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/memberlist_search.html b/phpBB/styles/subsilver2/template/memberlist_search.html
new file mode 100644
index 0000000000..96ffad00d6
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/memberlist_search.html
@@ -0,0 +1,143 @@
+<!-- You should retain this javascript in your own template! -->
+
+<!-- IF S_IN_SEARCH_POPUP -->
+ <script type="text/javascript">
+ // <![CDATA[
+ function insert_user(user)
+ {
+ opener.document.forms['{S_FORM_NAME}'].{S_FIELD_NAME}.value = ( opener.document.forms['{S_FORM_NAME}'].{S_FIELD_NAME}.value.length && opener.document.forms['{S_FORM_NAME}'].{S_FIELD_NAME}.type == "textarea" ) ? opener.document.forms['{S_FORM_NAME}'].{S_FIELD_NAME}.value + "\n" + user : user;
+ }
+
+ function insert_marked(users)
+ {
+ if (typeof(users.length) == "undefined")
+ {
+ if (users.checked)
+ {
+ insert_user(users.value);
+ }
+ }
+ else if (users.length > 0)
+ {
+ for (i = 0; i < users.length; i++)
+ {
+ if (users[i].checked)
+ {
+ insert_user(users[i].value);
+ }
+ }
+ }
+
+ self.close();
+ }
+
+ function insert_single(user)
+ {
+ opener.document.forms['{S_FORM_NAME}'].{S_FIELD_NAME}.value = user;
+ self.close();
+ }
+
+ /**
+ * Mark/unmark checklist
+ * id = ID of parent container, name = name prefix, state = state [true/false]
+ */
+ function marklist(id, name, state)
+ {
+ var parent = document.getElementById(id);
+ if (!parent)
+ {
+ eval('parent = document.' + id);
+ }
+
+ if (!parent)
+ {
+ return;
+ }
+
+ var rb = parent.getElementsByTagName('input');
+
+ for (var r = 0; r < rb.length; r++)
+ {
+ if (rb[r].name.substr(0, name.length) == name)
+ {
+ rb[r].checked = state;
+ }
+ }
+ }
+ // ]]>
+ </script>
+<!-- ENDIF -->
+
+<form method="post" action="{S_MODE_ACTION}" name="search">
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th colspan="4">{L_FIND_USERNAME}</th>
+</tr>
+<tr>
+ <td class="row3" colspan="4"><span class="gensmall">{L_FIND_USERNAME_EXPLAIN}</span></td>
+</tr>
+<tr>
+ <td class="row1"><b class="genmed">{L_USERNAME}:</b></td>
+ <td class="row2"><input class="post" type="text" name="username" value="{USERNAME}" /></td>
+ <td class="row1"><b class="genmed">{L_ICQ}:</b></td>
+ <td class="row2"><input class="post" type="text" name="icq" value="{ICQ}" /></td>
+</tr>
+<tr>
+<!-- IF S_EMAIL_SEARCH_ALLOWED -->
+ <td class="row1"><b class="genmed">{L_EMAIL}:</b></td>
+ <td class="row2"><input class="post" type="text" name="email" value="{EMAIL}" /></td>
+<!-- ELSE -->
+ <td colspan="2" class="row1">&nbsp;</td>
+<!-- ENDIF -->
+ <td class="row1"><b class="genmed">{L_AIM}:</b></td>
+ <td class="row2"><input class="post" type="text" name="aim" value="{AIM}" /></td>
+</tr>
+<tr>
+ <td class="row1"><b class="genmed">{L_JOINED}:</b></td>
+ <td class="row2"><select name="joined_select">{S_JOINED_TIME_OPTIONS}</select> <input class="post" type="text" name="joined" value="{JOINED}" /></td>
+ <td class="row1"><b class="genmed">{L_YIM}:</b></td>
+ <td class="row2"><input class="post" type="text" name="yahoo" value="{YAHOO}" /></td>
+</tr>
+<tr>
+<!-- IF S_VIEWONLINE -->
+ <td class="row1"><b class="genmed">{L_LAST_ACTIVE}:</b></td>
+ <td class="row2"><select name="active_select">{S_ACTIVE_TIME_OPTIONS}</select> <input class="post" type="text" name="active" value="{ACTIVE}" /></td>
+<!-- ELSE -->
+ <td colspan="2" class="row1">&nbsp;</td>
+<!-- ENDIF -->
+ <td class="row1"><b class="genmed">{L_MSNM}:</b></td>
+ <td class="row2"><input class="post" type="text" name="msn" value="{MSNM}" /></td>
+</tr>
+<tr>
+ <td class="row1"><b class="genmed">{L_POSTS}:</b></td>
+ <td class="row2"><select name="count_select">{S_COUNT_OPTIONS}</select> <input class="post" type="text" name="count" value="{COUNT}" /></td>
+ <td class="row1"><b class="genmed">{L_JABBER}:</b></td>
+ <td class="row2"><input class="post" type="text" name="jabber" value="{JABBER}" /></td>
+</tr>
+<tr>
+ <td class="row1"><b class="genmed">{L_SORT_BY}:</b></td>
+ <td class="row2" nowrap="nowrap"><select name="sk">{S_SORT_OPTIONS}</select> <select name="sd">{S_ORDER_SELECT}</select>&nbsp;</td>
+<!-- IF S_IP_SEARCH_ALLOWED -->
+ <td class="row1"><b class="genmed">{L_POST_IP}:</b></td>
+ <td class="row2"><input class="post" type="text" name="ip" value="{IP}" /></td>
+</tr>
+<tr>
+ <td class="row1"><b class="genmed">{L_GROUP}:</b></td>
+ <td class="row2" nowrap="nowrap"><select name="search_group_id">{S_GROUP_SELECT}</select></td>
+ <td class="row1">&nbsp;</td>
+ <td class="row2">&nbsp;</td>
+</tr>
+<!-- ELSE -->
+ <td class="row1"><b class="genmed">{L_GROUP}:</b></td>
+ <td class="row2" nowrap="nowrap"><select name="search_group_id">{S_GROUP_SELECT}</select></td>
+</tr>
+<!-- ENDIF -->
+<tr>
+ <td class="cat" colspan="4" align="center"><input class="btnmain" type="submit" name="submit" value="{L_SEARCH}" />&nbsp;&nbsp;<input class="btnlite" type="reset" value="{L_RESET}" /></td>
+</tr>
+</table>
+{S_FORM_TOKEN}
+</form>
+
+<br clear="all" />
diff --git a/phpBB/styles/subsilver2/template/memberlist_view.html b/phpBB/styles/subsilver2/template/memberlist_view.html
new file mode 100644
index 0000000000..9ef2b85878
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/memberlist_view.html
@@ -0,0 +1,207 @@
+<!-- INCLUDE overall_header.html -->
+
+<div id="pagecontent">
+
+ <form method="post" action="{S_PROFILE_ACTION}">
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th colspan="2" nowrap="nowrap">{L_VIEWING_PROFILE}</th>
+ </tr>
+ <tr>
+ <td class="cat" width="40%" align="center"><h4>{L_USER_PRESENCE}</h4></td>
+ <td class="cat" width="60%" align="center"><h4>{L_USER_FORUM}</h4></td>
+ </tr>
+ <tr>
+ <td class="row1" align="center">
+
+ <table cellspacing="1" cellpadding="2" border="0">
+ <!-- IF S_USER_INACTIVE -->
+ <tr>
+ <td align="center" style="color: red;"><b class="gen">{L_USER_IS_INACTIVE}</b><br />{L_INACTIVE_REASON}: {USER_INACTIVE_REASON}<br /><br /></td>
+ </tr>
+ <!-- ENDIF -->
+ <tr>
+ <td align="center"><!-- IF USER_COLOR --><b class="gen" style="color: {USER_COLOR}"><!-- ELSE --><b class="gen"><!-- ENDIF -->{USERNAME}</b><!-- IF U_USER_BAN --><span class="genmed"> [ <a href="{U_USER_BAN}">{L_USER_BAN}</a> ]</span><!-- ENDIF --><!-- IF U_USER_ADMIN --><span class="genmed"> [ <a href="{U_USER_ADMIN}">{L_USER_ADMIN}</a> ]</span><!-- ENDIF --></td>
+ </tr>
+ <!-- IF RANK_TITLE -->
+ <tr>
+ <td class="postdetails" align="center">{RANK_TITLE}</td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- IF RANK_IMG -->
+ <tr>
+ <td align="center">{RANK_IMG}</td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- IF AVATAR_IMG -->
+ <tr>
+ <td align="center">{AVATAR_IMG}</td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- IF ONLINE_IMG -->
+ <tr>
+ <td align="center">{ONLINE_IMG}</td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- IF U_SWITCH_PERMISSIONS -->
+ <tr>
+ <td class="genmed" align="center">[ <a href="{U_SWITCH_PERMISSIONS}">{L_USE_PERMISSIONS}</a> ]</td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- IF S_USER_LOGGED_IN and S_ZEBRA -->
+ <tr>
+ <td class="genmed" align="center">[
+ <!-- IF U_REMOVE_FRIEND -->
+ <a href="{U_REMOVE_FRIEND}">{L_REMOVE_FRIEND}</a>
+ <!-- ELSEIF U_REMOVE_FOE -->
+ <a href="{U_REMOVE_FOE}">{L_REMOVE_FOE}</a>
+ <!-- ELSE -->
+ <!-- IF U_ADD_FRIEND --><a href="{U_ADD_FRIEND}">{L_ADD_FRIEND}</a><!-- ENDIF --><!-- IF U_ADD_FOE --><!-- IF U_ADD_FRIEND --> | <!-- ENDIF --><a href="{U_ADD_FOE}">{L_ADD_FOE}</a><!-- ENDIF -->
+ <!-- ENDIF -->
+ ]</td>
+ </tr>
+ <!-- ENDIF -->
+ </table>
+ </td>
+ <td class="row1">
+ <table width="100%" cellspacing="1" cellpadding="2" border="0">
+ <tr>
+ <td class="gen" align="{S_CONTENT_FLOW_END}" nowrap="nowrap">{L_JOINED}: </td>
+ <td width="100%"><b class="gen">{JOINED}</b></td>
+ </tr>
+ <tr>
+ <td class="gen" align="{S_CONTENT_FLOW_END}" nowrap="nowrap">{L_VISITED}: </td>
+ <td width="100%"><b class="gen">{VISITED}</b></td>
+ </tr>
+ <!-- IF S_WARNINGS -->
+ <tr>
+ <td class="gen" align="{S_CONTENT_FLOW_END}" valign="top" nowrap="nowrap">{L_WARNINGS}: </td>
+ <td width="100%"><b class="gen">{WARNINGS}</b><!-- IF U_NOTES or U_WARN --><br /><span class="genmed"> [ <!-- IF U_NOTES --><a href="{U_NOTES}">{L_VIEW_NOTES}</a><!-- ENDIF --> <!-- IF U_WARN --><!-- IF U_NOTES --> | <!-- ENDIF --><a href="{U_WARN}">{L_WARN_USER}</a><!-- ENDIF --> ]</span><!-- ENDIF --></td>
+ </tr>
+ <!-- ENDIF -->
+ <tr>
+ <td class="gen" align="{S_CONTENT_FLOW_END}" valign="top" nowrap="nowrap">{L_TOTAL_POSTS}: </td>
+ <td><b class="gen">{POSTS}</b><span class="genmed"><!-- IF POSTS_PCT --><br />[{POSTS_PCT} / {POSTS_DAY}]<!-- ENDIF -->
+ <!-- IF POSTS_IN_QUEUE and U_MCP_QUEUE --><br />[<a href="{U_MCP_QUEUE}">{L_POSTS_IN_QUEUE}</a>]<!-- ELSEIF POSTS_IN_QUEUE --><br />[{L_POSTS_IN_QUEUE}]<!-- ENDIF -->
+ <!-- IF S_DISPLAY_SEARCH --><br /><a href="{U_SEARCH_USER}">{L_SEARCH_USER_POSTS}</a><!-- ENDIF --></span></td>
+ </tr>
+ <!-- IF S_SHOW_ACTIVITY -->
+ <tr>
+ <td class="gen" align="{S_CONTENT_FLOW_END}" valign="top" nowrap="nowrap">{L_ACTIVE_IN_FORUM}: </td>
+ <td><!-- IF ACTIVE_FORUM --><b><a class="gen" href="{U_ACTIVE_FORUM}">{ACTIVE_FORUM}</a></b><br /><span class="genmed">[ {ACTIVE_FORUM_POSTS} / {ACTIVE_FORUM_PCT} ]</span><!-- ELSE --><span class="gen">-</span><!-- ENDIF --></td>
+ </tr>
+ <tr>
+ <td class="gen" align="{S_CONTENT_FLOW_END}" valign="top" nowrap="nowrap">{L_ACTIVE_IN_TOPIC}: </td>
+ <td><!-- IF ACTIVE_TOPIC --><b><a class="gen" href="{U_ACTIVE_TOPIC}">{ACTIVE_TOPIC}</a></b><br /><span class="genmed">[ {ACTIVE_TOPIC_POSTS} / {ACTIVE_TOPIC_PCT} ]</span><!-- ELSE --><span class="gen">-</span><!-- ENDIF --></td>
+ </tr>
+ <!-- ENDIF -->
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td class="cat" align="center"><h4>{L_CONTACT_USER}</h4></td>
+ <td class="cat" align="center"><h4>{L_ABOUT_USER}</h4></td>
+ </tr>
+ <tr>
+ <td class="row1">
+ <table width="100%" cellspacing="1" cellpadding="2" border="0">
+ <tr>
+ <td class="gen" align="{S_CONTENT_FLOW_END}" nowrap="nowrap">{L_EMAIL_ADDRESS}: </td>
+ <td width="100%"><!-- IF U_EMAIL --><a href="{U_EMAIL}">{EMAIL_IMG}</a><!-- ENDIF --></td>
+ </tr>
+ <!-- IF U_PM -->
+ <tr>
+ <td class="gen" nowrap="nowrap" align="{S_CONTENT_FLOW_END}">{L_PM}: </td>
+ <td><a href="{U_PM}">{PM_IMG}</a></td>
+ </tr>
+ <!-- ENDIF -->
+ <tr>
+ <td class="gen" nowrap="nowrap" align="{S_CONTENT_FLOW_END}">{L_MSNM}: </td>
+ <td><!-- IF U_MSN --><a href="{U_MSN}" onclick="popup(this.href, 550, 320); return false">{MSN_IMG}</a><!-- ELSEIF USER_MSN -->{USER_MSN}<!-- ENDIF --></td>
+ </tr>
+ <tr>
+ <td class="gen" nowrap="nowrap" align="{S_CONTENT_FLOW_END}">{L_YIM}: </td>
+ <td><!-- IF U_YIM --><a href="{U_YIM}" onclick="popup(this.href, 780, 550); return false">{YIM_IMG}</a><!-- ELSEIF USER_YIM -->{USER_YIM}<!-- ENDIF --></td>
+ </tr>
+ <tr>
+ <td class="gen" nowrap="nowrap" align="{S_CONTENT_FLOW_END}">{L_AIM}: </td>
+ <td><!-- IF U_AIM --><a href="{U_AIM}" onclick="popup(this.href, 550, 320); return false">{AIM_IMG}</a><!-- ELSEIF USER_AIM -->{USER_AIM}<!-- ENDIF --></td>
+ </tr>
+ <tr>
+ <td class="gen" nowrap="nowrap" align="{S_CONTENT_FLOW_END}">{L_ICQ}: </td>
+ <td><!-- IF U_ICQ --><a href="{U_ICQ}" onclick="popup(this.href, 550, 320); return false">{ICQ_IMG}</a><!-- ELSEIF USER_ICQ -->{USER_ICQ}<!-- ENDIF --></td>
+ </tr>
+ <tr>
+ <td class="gen" nowrap="nowrap" align="{S_CONTENT_FLOW_END}">{L_JABBER}: </td>
+ <td><!-- IF U_JABBER --><a href="{U_JABBER}" onclick="popup(this.href, 550, 320); return false">{JABBER_IMG}</a><!-- ELSEIF USER_JABBER -->{USER_JABBER_IMG}<!-- ENDIF --></td>
+ </tr>
+ </table>
+ </td>
+ <td class="row1">
+ <table cellspacing="1" cellpadding="2" border="0">
+ <tr>
+ <td class="gen" align="{S_CONTENT_FLOW_END}" nowrap="nowrap">{L_USERGROUPS}: </td>
+ <td><select name="g">{S_GROUP_OPTIONS}</select> <input class="btnlite" type="submit" name="submit" value="{L_GO}" /></td>
+ </tr>
+ <tr>
+ <td class="gen" align="{S_CONTENT_FLOW_END}" nowrap="nowrap">{L_LOCATION}: </td>
+ <td><!-- IF LOCATION --><b class="genmed">{LOCATION}</b><!-- ENDIF --></td>
+ </tr>
+ <!-- IF AGE -->
+ <tr>
+ <td class="gen" align="{S_CONTENT_FLOW_END}" nowrap="nowrap">{L_AGE}: </td>
+ <td><b class="genmed"><!-- IF AGE -->{AGE}<!-- ELSE --> - <!-- ENDIF --></b></td>
+ </tr>
+ <!-- ENDIF -->
+ <tr>
+ <td class="gen" align="{S_CONTENT_FLOW_END}" nowrap="nowrap">{L_OCCUPATION}: </td>
+ <td><!-- IF OCCUPATION --><b class="genmed">{OCCUPATION}</b><!-- ENDIF --></td>
+ </tr>
+ <tr>
+ <td class="gen" align="{S_CONTENT_FLOW_END}" nowrap="nowrap">{L_INTERESTS}: </td>
+ <td><!-- IF INTERESTS --><b class="genmed">{INTERESTS}</b><!-- ENDIF --></td>
+ </tr>
+ <tr>
+ <td class="gen" align="{S_CONTENT_FLOW_END}" nowrap="nowrap">{L_WEBSITE}: </td>
+ <td><!-- IF U_WWW --><b><a class="genmed" href="{U_WWW}">{U_WWW}</a></b><!-- ENDIF --></td>
+ </tr>
+ <!-- IF S_PROFILE_FIELD1 -->
+ <!-- Use a construct like this to include admin defined profile fields. Replace FIELD1 with the name of your field. -->
+ <tr>
+ <td class="gen" align="{S_CONTENT_FLOW_END}" nowrap="nowrap">{PROFILE_FIELD1_NAME}: </td>
+ <td><b class="genmed">{PROFILE_FIELD1_VALUE}</b></td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- BEGIN custom_fields -->
+ <tr>
+ <td class="gen" align="{S_CONTENT_FLOW_END}" nowrap="nowrap">{custom_fields.PROFILE_FIELD_NAME}: </td>
+ <td><b class="genmed">{custom_fields.PROFILE_FIELD_VALUE}</b></td>
+ </tr>
+ <!-- END custom_fields -->
+ </table>
+ </td>
+ </tr>
+ <!-- IF SIGNATURE -->
+ <tr>
+ <td class="cat" colspan="2" align="center"><h4>{L_SIGNATURE}</h4></td>
+ </tr>
+ <tr>
+ <td class="row1" colspan="2"><div class="postbody" style="padding: 10px;">{SIGNATURE}</div></td>
+ </tr>
+ <!-- ENDIF -->
+ </table>
+
+ </form>
+
+</div>
+
+<br clear="all" />
+
+<!-- INCLUDE breadcrumbs.html -->
+
+<br clear="all" />
+
+<div style="float: {S_CONTENT_FLOW_END};"><!-- INCLUDE jumpbox.html --></div>
+
+<!-- INCLUDE overall_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/message_body.html b/phpBB/styles/subsilver2/template/message_body.html
new file mode 100644
index 0000000000..f61a3e6365
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/message_body.html
@@ -0,0 +1,16 @@
+<!-- INCLUDE overall_header.html -->
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th>{MESSAGE_TITLE}</th>
+</tr>
+<tr>
+ <td class="row1" align="center"><br /><p class="gen">{MESSAGE_TEXT}</p><br /></td>
+</tr>
+</table>
+
+<br clear="all" />
+
+<!-- INCLUDE breadcrumbs.html -->
+
+<!-- INCLUDE overall_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/overall_footer.html b/phpBB/styles/subsilver2/template/overall_footer.html
new file mode 100644
index 0000000000..64201ff2b9
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/overall_footer.html
@@ -0,0 +1,23 @@
+ <!-- IF not S_IS_BOT -->{RUN_CRON_TASK}<!-- ENDIF -->
+</div>
+
+<!--
+ We request you retain the full copyright notice below including the link to www.phpbb.com.
+ This not only gives respect to the large amount of time given freely by the developers
+ but also helps build interest, traffic and use of phpBB3. If you (honestly) cannot retain
+ the full copyright we ask you at least leave in place the "Powered by phpBB" line, with
+ "phpBB" linked to www.phpbb.com. If you refuse to include even this then support on our
+ forums may be affected.
+
+ The phpBB Group : 2006
+//-->
+
+<div id="wrapfooter">
+ <!-- IF U_ACP --><span class="gensmall">[ <a href="{U_ACP}">{L_ACP}</a> ]</span><br /><br /><!-- ENDIF -->
+ <span class="copyright">Powered by <a href="http://www.phpbb.com/">phpBB</a> &copy; 2000, 2002, 2005, 2007 phpBB Group
+ <!-- IF TRANSLATION_INFO --><br />{TRANSLATION_INFO}<!-- ENDIF -->
+ <!-- IF DEBUG_OUTPUT --><br /><bdo dir="ltr">[ {DEBUG_OUTPUT} ]</bdo><!-- ENDIF --></span>
+</div>
+
+</body>
+</html> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/overall_header.html b/phpBB/styles/subsilver2/template/overall_header.html
new file mode 100644
index 0000000000..963f5160dd
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/overall_header.html
@@ -0,0 +1,214 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" dir="{S_CONTENT_DIRECTION}" lang="{S_USER_LANG}" xml:lang="{S_USER_LANG}">
+<head>
+
+<meta http-equiv="content-type" content="text/html; charset={S_CONTENT_ENCODING}" />
+<meta http-equiv="content-language" content="{S_USER_LANG}" />
+<meta http-equiv="content-style-type" content="text/css" />
+<meta http-equiv="imagetoolbar" content="no" />
+<meta name="resource-type" content="document" />
+<meta name="distribution" content="global" />
+<meta name="copyright" content="2000, 2002, 2005, 2007 phpBB Group" />
+<meta name="keywords" content="" />
+<meta name="description" content="" />
+<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
+{META}
+<title>{SITENAME} &bull; <!-- IF S_IN_MCP -->{L_MCP} &bull; <!-- ELSEIF S_IN_UCP -->{L_UCP} &bull; <!-- ENDIF -->{PAGE_TITLE}</title>
+
+<!-- IF S_ENABLE_FEEDS -->
+ <!-- IF S_ENABLE_FEEDS_OVERALL --><link rel="alternate" type="application/atom+xml" title="{L_FEED} - {SITENAME}" href="{U_FEED}" /><!-- ENDIF -->
+ <!-- IF S_ENABLE_FEEDS_NEWS --><link rel="alternate" type="application/atom+xml" title="{L_FEED} - {L_FEED_NEWS}" href="{U_FEED}?mode=news" /><!-- ENDIF -->
+ <!-- IF S_ENABLE_FEEDS_FORUMS --><link rel="alternate" type="application/atom+xml" title="{L_FEED} - {L_ALL_FORUMS}" href="{U_FEED}?mode=forums" /><!-- ENDIF -->
+ <!-- IF S_ENABLE_FEEDS_TOPICS --><link rel="alternate" type="application/atom+xml" title="{L_FEED} - {L_FEED_TOPICS_NEW}" href="{U_FEED}?mode=topics" /><!-- ENDIF -->
+ <!-- IF S_ENABLE_FEEDS_TOPICS_ACTIVE --><link rel="alternate" type="application/atom+xml" title="{L_FEED} - {L_FEED_TOPICS_ACTIVE}" href="{U_FEED}?mode=topics_active" /><!-- ENDIF -->
+ <!-- IF S_ENABLE_FEEDS_FORUM and S_FORUM_ID --><link rel="alternate" type="application/atom+xml" title="{L_FEED} - {L_FORUM} - {FORUM_NAME}" href="{U_FEED}?f={S_FORUM_ID}" /><!-- ENDIF -->
+ <!-- IF S_ENABLE_FEEDS_TOPIC and S_TOPIC_ID --><link rel="alternate" type="application/atom+xml" title="{L_FEED} - {L_TOPIC} - {TOPIC_TITLE}" href="{U_FEED}?f={S_FORUM_ID}&amp;t={S_TOPIC_ID}" /><!-- ENDIF -->
+<!-- ENDIF -->
+
+<link rel="stylesheet" href="{T_STYLESHEET_LINK}" type="text/css" />
+
+<script type="text/javascript">
+// <![CDATA[
+<!-- IF S_USER_PM_POPUP -->
+ if ({S_NEW_PM})
+ {
+ popup('{UA_POPUP_PM}', 400, 225, '_phpbbprivmsg');
+ }
+<!-- ENDIF -->
+
+function popup(url, width, height, name)
+{
+ if (!name)
+ {
+ name = '_popup';
+ }
+
+ window.open(url.replace(/&amp;/g, '&'), name, 'height=' + height + ',resizable=yes,scrollbars=yes,width=' + width);
+ return false;
+}
+
+function jumpto()
+{
+ var page = prompt('{LA_JUMP_PAGE}:', '{ON_PAGE}');
+ var per_page = '{PER_PAGE}';
+ var base_url = '{A_BASE_URL}';
+
+ if (page !== null && !isNaN(page) && page == Math.floor(page) && page > 0)
+ {
+ if (base_url.indexOf('?') == -1)
+ {
+ document.location.href = base_url + '?start=' + ((page - 1) * per_page);
+ }
+ else
+ {
+ document.location.href = base_url.replace(/&amp;/g, '&') + '&start=' + ((page - 1) * per_page);
+ }
+ }
+}
+
+/**
+* Find a member
+*/
+function find_username(url)
+{
+ popup(url, 760, 570, '_usersearch');
+ return false;
+}
+
+/**
+* Mark/unmark checklist
+* id = ID of parent container, name = name prefix, state = state [true/false]
+*/
+function marklist(id, name, state)
+{
+ var parent = document.getElementById(id);
+ if (!parent)
+ {
+ eval('parent = document.' + id);
+ }
+
+ if (!parent)
+ {
+ return;
+ }
+
+ var rb = parent.getElementsByTagName('input');
+
+ for (var r = 0; r < rb.length; r++)
+ {
+ if (rb[r].name.substr(0, name.length) == name)
+ {
+ rb[r].checked = state;
+ }
+ }
+}
+
+<!-- IF ._file -->
+
+ /**
+ * Play quicktime file by determining it's width/height
+ * from the displayed rectangle area
+ *
+ * Only defined if there is a file block present.
+ */
+ function play_qt_file(obj)
+ {
+ var rectangle = obj.GetRectangle();
+
+ if (rectangle)
+ {
+ rectangle = rectangle.split(',')
+ var x1 = parseInt(rectangle[0]);
+ var x2 = parseInt(rectangle[2]);
+ var y1 = parseInt(rectangle[1]);
+ var y2 = parseInt(rectangle[3]);
+
+ var width = (x1 < 0) ? (x1 * -1) + x2 : x2 - x1;
+ var height = (y1 < 0) ? (y1 * -1) + y2 : y2 - y1;
+ }
+ else
+ {
+ var width = 200;
+ var height = 0;
+ }
+
+ obj.width = width;
+ obj.height = height + 16;
+
+ obj.SetControllerVisible(true);
+
+ obj.Play();
+ }
+<!-- ENDIF -->
+
+// ]]>
+</script>
+</head>
+<body class="{S_CONTENT_DIRECTION}">
+
+<a name="top"></a>
+
+<div id="wrapheader">
+
+ <div id="logodesc">
+ <table width="100%" cellspacing="0">
+ <tr>
+ <td><a href="{U_INDEX}">{SITE_LOGO_IMG}</a></td>
+ <td width="100%" align="center"><h1>{SITENAME}</h1><span class="gen">{SITE_DESCRIPTION}</span></td>
+ </tr>
+ </table>
+ </div>
+
+ <div id="menubar">
+ <table width="100%" cellspacing="0">
+ <tr>
+ <td class="genmed">
+ <!-- IF not S_IS_BOT --><a href="{U_LOGIN_LOGOUT}"><img src="{T_THEME_PATH}/images/icon_mini_login.gif" width="12" height="13" alt="*" /> {L_LOGIN_LOGOUT}</a>&nbsp;<!-- ENDIF -->
+ <!-- IF U_RESTORE_PERMISSIONS --> &nbsp;<a href="{U_RESTORE_PERMISSIONS}"><img src="{T_THEME_PATH}/images/icon_mini_login.gif" width="12" height="13" alt="*" /> {L_RESTORE_PERMISSIONS}</a><!-- ENDIF -->
+ <!-- IF S_BOARD_DISABLED and S_USER_LOGGED_IN --> &nbsp;<span style="color: red;">{L_BOARD_DISABLED}</span><!-- ENDIF -->
+ <!-- IF not S_IS_BOT -->
+ <!-- IF S_USER_LOGGED_IN -->
+ <!-- IF S_DISPLAY_PM --> &nbsp;<a href="{U_PRIVATEMSGS}"><img src="{T_THEME_PATH}/images/icon_mini_message.gif" width="12" height="13" alt="*" /> {PRIVATE_MESSAGE_INFO}<!-- IF PRIVATE_MESSAGE_INFO_UNREAD -->, {PRIVATE_MESSAGE_INFO_UNREAD}<!-- ENDIF --></a><!-- ENDIF -->
+ <!-- ELSEIF S_REGISTER_ENABLED and not (S_SHOW_COPPA or S_REGISTRATION) --> &nbsp;<a href="{U_REGISTER}"><img src="{T_THEME_PATH}/images/icon_mini_register.gif" width="12" height="13" alt="*" /> {L_REGISTER}</a>
+ <!-- ENDIF -->
+ <!-- ENDIF -->
+ </td>
+ <td class="genmed" align="{S_CONTENT_FLOW_END}">
+ <a href="{U_FAQ}"><img src="{T_THEME_PATH}/images/icon_mini_faq.gif" width="12" height="13" alt="*" /> {L_FAQ}</a>
+ <!-- IF S_DISPLAY_SEARCH -->&nbsp; &nbsp;<a href="{U_SEARCH}"><img src="{T_THEME_PATH}/images/icon_mini_search.gif" width="12" height="13" alt="*" /> {L_SEARCH}</a><!-- ENDIF -->
+ <!-- IF not S_IS_BOT -->
+ <!-- IF S_DISPLAY_MEMBERLIST -->&nbsp; &nbsp;<a href="{U_MEMBERLIST}"><img src="{T_THEME_PATH}/images/icon_mini_members.gif" width="12" height="13" alt="*" /> {L_MEMBERLIST}</a><!-- ENDIF -->
+ <!-- IF S_USER_LOGGED_IN -->&nbsp; &nbsp;<a href="{U_PROFILE}"><img src="{T_THEME_PATH}/images/icon_mini_profile.gif" width="12" height="13" alt="*" /> {L_PROFILE}</a><!-- ENDIF -->
+ <!-- ENDIF -->
+ </td>
+ </tr>
+ </table>
+ </div>
+
+ <div id="datebar">
+ <table width="100%" cellspacing="0">
+ <tr>
+ <td class="gensmall"><!-- IF S_USER_LOGGED_IN -->{LAST_VISIT_DATE}<!-- ENDIF --></td>
+ <td class="gensmall" align="{S_CONTENT_FLOW_END}">{CURRENT_TIME}<br /></td>
+ </tr>
+ </table>
+ </div>
+
+</div>
+
+<div id="wrapcentre">
+
+ <!-- IF S_DISPLAY_SEARCH -->
+ <p class="searchbar">
+ <span style="float: {S_CONTENT_FLOW_BEGIN};"><a href="{U_SEARCH_UNANSWERED}">{L_SEARCH_UNANSWERED}</a> | <a href="{U_SEARCH_ACTIVE_TOPICS}">{L_SEARCH_ACTIVE_TOPICS}</a></span>
+ <!-- IF S_USER_LOGGED_IN -->
+ <span style="float: {S_CONTENT_FLOW_END};"><a href="{U_SEARCH_UNREAD}">{L_SEARCH_UNREAD}</a> | <a href="{U_SEARCH_NEW}">{L_SEARCH_NEW}</a> | <a href="{U_SEARCH_SELF}">{L_SEARCH_SELF}</a></span>
+ <!-- ENDIF -->
+ </p>
+ <!-- ENDIF -->
+
+ <br style="clear: both;" />
+
+ <!-- INCLUDE breadcrumbs.html -->
+
+ <br />
diff --git a/phpBB/styles/subsilver2/template/pagination.html b/phpBB/styles/subsilver2/template/pagination.html
new file mode 100644
index 0000000000..bf9c854d9a
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/pagination.html
@@ -0,0 +1 @@
+<!-- IF PAGINATION --><b><a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{L_GOTO_PAGE}</a> <!-- IF PREVIOUS_PAGE --><a href="{PREVIOUS_PAGE}">{L_PREVIOUS}</a>&nbsp;&nbsp;<!-- ENDIF -->{PAGINATION}<!-- IF NEXT_PAGE --> &nbsp;<a href="{NEXT_PAGE}">{L_NEXT}</a><!-- ENDIF --></b><!-- ENDIF --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/posting_attach_body.html b/phpBB/styles/subsilver2/template/posting_attach_body.html
new file mode 100644
index 0000000000..8c70e4c831
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/posting_attach_body.html
@@ -0,0 +1,83 @@
+<tr>
+ <th colspan="2">
+ <script type="text/javascript">
+ // <![CDATA[
+ /**
+ * Show upload progress bar
+ */
+ function popup_progress_bar()
+ {
+ close_waitscreen = 0;
+ // no scrollbars
+ popup('{UA_PROGRESS_BAR}', 400, 200, '_upload');
+ }
+ // ]]>
+ </script>
+
+ <!-- IF S_CLOSE_PROGRESS_WINDOW -->
+ <script type="text/javascript">
+ // <![CDATA[
+ close_waitscreen = 1;
+ // ]]>
+ </script>
+ <!-- ENDIF -->
+
+ {L_ADD_ATTACHMENT}
+ </th>
+</tr>
+<tr>
+ <td class="row3" colspan="2"><span class="gensmall">{L_ADD_ATTACHMENT_EXPLAIN}</span></td>
+</tr>
+
+<tr>
+ <td class="row1"><b class="genmed">{L_FILENAME}</b></td>
+ <td class="row2"><input type="file" name="fileupload" size="40" maxlength="{FILESIZE}" value="" class="btnfile" /></td>
+</tr>
+<tr>
+ <td class="row1"><b class="genmed">{L_FILE_COMMENT}</b></td>
+ <td class="row2">
+ <table border="0" cellspacing="0" cellpadding="2">
+ <tr>
+ <td><textarea class="post" name="filecomment" rows="3" cols="35">{FILE_COMMENT}</textarea>&nbsp;</td>
+ <td valign="top">
+ <table border="0" cellspacing="4" cellpadding="0">
+ <tr>
+ <td><input class="btnlite" type="submit" style="width:150px" name="add_file" value="{L_ADD_FILE}" onclick="popup_progress_bar();" /></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+<!-- IF S_HAS_ATTACHMENTS -->
+ <tr>
+ <th colspan="2">{L_POSTED_ATTACHMENTS}</th>
+ </tr>
+
+ <!-- BEGIN attach_row -->
+ <tr>
+ <td class="row1"><b class="genmed">{L_FILENAME}</b></td>
+ <td class="row2"><a class="genmed" href="{attach_row.U_VIEW_ATTACHMENT}" target="_blank">{attach_row.FILENAME}</a></td>
+ </tr>
+ <tr>
+ <td class="row1"><b class="genmed">{L_FILE_COMMENT}</b></td>
+ <td class="row2">{attach_row.S_HIDDEN}
+ <table border="0" cellspacing="0" cellpadding="2">
+ <tr>
+ <td><textarea class="post" name="comment_list[{attach_row.ASSOC_INDEX}]" rows="3" cols="35" wrap="virtual">{attach_row.FILE_COMMENT}</textarea>&nbsp;</td>
+ <td valign="top">
+ <table border="0" cellspacing="4" cellpadding="0">
+ <tr>
+ <td><input class="btnlite" type="submit" style="width:150px" name="delete_file[{attach_row.ASSOC_INDEX}]" value="{L_DELETE_FILE}" /></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <!-- END attach_row -->
+
+<!-- ENDIF -->
diff --git a/phpBB/styles/subsilver2/template/posting_body.html b/phpBB/styles/subsilver2/template/posting_body.html
new file mode 100644
index 0000000000..963e6fe966
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/posting_body.html
@@ -0,0 +1,413 @@
+<!-- IF S_PRIVMSGS -->
+ <!-- INCLUDE ucp_header.html -->
+<!-- ELSE -->
+ <!-- INCLUDE overall_header.html -->
+<!-- ENDIF -->
+
+<!-- IF S_FORUM_RULES -->
+ <div class="forumrules">
+ <!-- IF U_FORUM_RULES -->
+ <h3>{L_FORUM_RULES}</h3><br />
+ <a href="{U_FORUM_RULES}"><b>{L_FORUM_RULES_LINK}</b></a>
+ <!-- ELSE -->
+ <h3>{L_FORUM_RULES}</h3><br />
+ {FORUM_RULES}
+ <!-- ENDIF -->
+ </div>
+
+ <br clear="all" />
+<!-- ENDIF -->
+
+<!-- IF not S_PRIVMSGS -->
+ <div id="pageheader">
+ <h2><!-- IF TOPIC_TITLE --><a class="titles" href="{U_VIEW_TOPIC}">{TOPIC_TITLE}</a><!-- ELSE --><a class="titles" href="{U_VIEW_FORUM}">{FORUM_NAME}</a><!-- ENDIF --></h2>
+
+ <!-- IF MODERATORS -->
+ <p class="moderators">{L_MODERATORS}: {MODERATORS}</p>
+ <!-- ENDIF -->
+ <!-- IF U_MCP -->
+ <p class="linkmcp">[ <a href="{U_MCP}">{L_MCP}</a> ]</p>
+ <!-- ENDIF -->
+ </div>
+
+ <br clear="all" /><br />
+<!-- ENDIF -->
+
+<!-- IF not S_SHOW_PM_BOX -->
+ <form action="{S_POST_ACTION}" method="post" name="postform"{S_FORM_ENCTYPE}>
+<!-- ENDIF -->
+
+<!-- IF S_DRAFT_LOADED -->
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th align="center">{L_INFORMATION}</th>
+ </tr>
+ <tr>
+ <td class="row1" align="center"><span class="gen"><!-- IF S_PRIVMSGS -->{L_DRAFT_LOADED_PM}<!-- ELSE -->{L_DRAFT_LOADED}<!-- ENDIF --></span></td>
+ </tr>
+ </table>
+
+ <br clear="all" />
+<!-- ENDIF -->
+
+<!-- IF S_SHOW_DRAFTS -->
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th colspan="3" align="center">{L_LOAD_DRAFT}</th>
+ </tr>
+ <tr>
+ <td class="row1" colspan="3" align="center"><span class="gen">{L_LOAD_DRAFT_EXPLAIN}</span></td>
+ </tr>
+ <tr>
+ <th>{L_SAVE_DATE}</th>
+ <th>{L_DRAFT_TITLE}</th>
+ <th>{L_OPTIONS}</th>
+ </tr>
+ <!-- BEGIN draftrow -->
+
+ <!-- IF draftrow.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+
+ <td class="postdetails" style="padding: 4px;">{draftrow.DATE}</td>
+ <td style="padding: 4px;"><b class="gen">{draftrow.DRAFT_SUBJECT}</b>
+ <!-- IF draftrow.S_LINK_TOPIC --><br /><span class="gensmall">{L_TOPIC}: <a href="{draftrow.U_VIEW}">{draftrow.TITLE}</a></span>
+ <!-- ELSEIF draftrow.S_LINK_FORUM --><br /><span class="gensmall">{L_FORUM}: <a href="{draftrow.U_VIEW}">{draftrow.TITLE}</a></span>
+ <!-- ELSEIF draftrow.S_LINK_PM --><br /><span class="gensmall">{L_PRIVATE_MESSAGE}</span>
+ <!-- ELSE --><br /><span class="gensmall">{L_NO_TOPIC_FORUM}</span><!-- ENDIF -->
+ </td>
+ <td style="padding: 4px;" align="center"><span class="gen"><a href="{draftrow.U_INSERT}">{L_LOAD_DRAFT}</a></span></td>
+ </tr>
+ <!-- END draftrow -->
+ </table>
+
+ <br clear="all" />
+<!-- ENDIF -->
+
+
+<!-- IF S_POST_REVIEW --><!-- INCLUDE posting_review.html --><!-- ENDIF -->
+<!-- IF S_DISPLAY_PREVIEW --><!-- INCLUDE posting_preview.html --><!-- ENDIF -->
+
+
+<!-- IF not S_PRIVMSGS and S_UNGLOBALISE -->
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th>{L_MOVE}</th>
+ </tr>
+ <tr>
+ <td class="spacer" colspan="2"><img src="images/spacer.gif" alt="" width="1" height="1" /></td>
+ </tr>
+ <tr>
+ <td class="row2" align="center"><span class="gen">{L_UNGLOBALISE_EXPLAIN}<br /><br />{L_SELECT_DESTINATION_FORUM}&nbsp;&nbsp;</span><select name="to_forum_id">{S_FORUM_SELECT}</select><br /><br /><input class="btnmain" type="submit" name="post" value="{L_CONFIRM}" />&nbsp;&nbsp; <input class="btnlite" type="submit" name="cancel_unglobalise" value="{L_CANCEL}" /></td>
+ </tr>
+ </table>
+
+ <br clear="all" />
+<!-- ENDIF -->
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th colspan="2"><b>{L_POST_A}</b></th>
+</tr>
+
+<!-- IF ERROR -->
+ <tr>
+ <td class="row2" colspan="2" align="center"><span class="genmed error">{ERROR}</span></td>
+ </tr>
+<!-- ENDIF -->
+
+<!-- IF S_DELETE_ALLOWED -->
+ <tr>
+ <td class="row1"><b class="genmed">{L_DELETE_POST}:</b></td>
+ <td class="row2"><input type="checkbox" class="radio" name="delete" /> <span class="gensmall">[ {L_DELETE_POST_WARN} ]</span></td>
+ </tr>
+<!-- ENDIF -->
+
+<!-- IF S_SHOW_TOPIC_ICONS or S_SHOW_PM_ICONS -->
+ <tr>
+ <td class="row1"><b class="genmed">{L_ICON}:</b></td>
+ <td class="row2">
+ <table width="100%" cellspacing="0" cellpadding="0" border="0">
+ <tr>
+ <td><input type="radio" class="radio" name="icon" value="0"{S_NO_ICON_CHECKED} /><span class="genmed"><!-- IF S_SHOW_TOPIC_ICONS -->{L_NO_TOPIC_ICON}<!-- ELSE -->{L_NO_PM_ICON}<!-- ENDIF --></span> <!-- BEGIN topic_icon --><span style="white-space: nowrap;"><input type="radio" class="radio" name="icon" value="{topic_icon.ICON_ID}"{topic_icon.S_ICON_CHECKED} /><img src="{topic_icon.ICON_IMG}" width="{topic_icon.ICON_WIDTH}" height="{topic_icon.ICON_HEIGHT}" alt="" title="" hspace="2" vspace="2" /></span> <!-- END topic_icon --></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+<!-- ENDIF -->
+
+<!-- IF not S_PRIVMSGS and S_DISPLAY_USERNAME -->
+ <tr>
+ <td class="row1"><b class="genmed">{L_USERNAME}:</b></td>
+ <td class="row2"><input class="post" type="text" tabindex="1" name="username" size="25" value="{USERNAME}" /></td>
+ </tr>
+<!-- ENDIF -->
+
+<!-- IF S_PRIVMSGS -->
+ <tr>
+ <td class="row1"><b class="genmed">{L_TO}:</b></td>
+ <td class="row2">
+ {S_HIDDEN_ADDRESS_FIELD}
+ <!-- BEGIN to_recipient -->
+ <span style="display: block; float: {S_CONTENT_FLOW_BEGIN};" class="nowrap genmed"><strong>
+ <!-- IF to_recipient.IS_GROUP --><a href="{to_recipient.U_VIEW}"><span class="sep">{to_recipient.NAME}</span></a><!-- ELSE -->{to_recipient.NAME_FULL}<!-- ENDIF --></strong>&nbsp;<!-- IF not S_EDIT_POST --><input class="post" type="submit" name="remove_{to_recipient.TYPE}[{to_recipient.UG_ID}]" value="{L_REMOVE}" />&nbsp;<!-- ENDIF -->
+ </span>
+ <!-- BEGINELSE -->
+ <span class="genmed">{L_NO_TO_RECIPIENT}</span>
+ <!-- END to_recipient -->
+ </td>
+ </tr>
+ <!-- IF S_ALLOW_MASS_PM -->
+ <tr>
+ <td class="row1"><b class="genmed">{L_BCC}:</b></td>
+ <td class="row2">
+ <!-- BEGIN bcc_recipient -->
+ <span class="genmed nowrap"><strong>
+ <!-- IF bcc_recipient.IS_GROUP --><a href="{bcc_recipient.U_VIEW}"><span class="sep">{bcc_recipient.NAME}</span></a><!-- ELSE -->{bcc_recipient.NAME_FULL}<!-- ENDIF --></strong>&nbsp;<!-- IF not S_EDIT_POST --><input class="post" type="submit" name="remove_{bcc_recipient.TYPE}[{bcc_recipient.UG_ID}]" value="{L_REMOVE}" />&nbsp;<!-- ENDIF -->
+ </span>
+ <!-- BEGINELSE -->
+ <span class="genmed">{L_NO_BCC_RECIPIENT}</span>
+ <!-- END bcc_recipient -->
+ </td>
+ </tr>
+ <!-- ENDIF -->
+<!-- ENDIF -->
+
+<tr>
+ <td class="row1" width="22%"><b class="genmed">{L_SUBJECT}:</b></td>
+ <td class="row2" width="78%"><input class="post" style="width:450px" type="text" name="subject" size="45" maxlength="<!-- IF S_NEW_MESSAGE -->60<!-- ELSE -->64<!-- ENDIF -->" tabindex="2" value="{SUBJECT}" /></td>
+</tr>
+<tr>
+ <td class="row1" valign="top"><b class="genmed">{L_MESSAGE_BODY}:</b><br /><span class="gensmall">{L_MESSAGE_BODY_EXPLAIN}&nbsp;</span><br /><br />
+ <!-- IF S_SMILIES_ALLOWED -->
+ <table width="100%" cellspacing="5" cellpadding="0" border="0" align="center">
+ <tr>
+ <td class="gensmall" align="center"><b>{L_SMILIES}</b></td>
+ </tr>
+ <tr>
+ <td align="center">
+ <!-- BEGIN smiley -->
+ <a href="#" onclick="insert_text('{smiley.A_SMILEY_CODE}', true); return false;" style="line-height: 20px;"><img src="{smiley.SMILEY_IMG}" width="{smiley.SMILEY_WIDTH}" height="{smiley.SMILEY_HEIGHT}" alt="{smiley.SMILEY_CODE}" title="{smiley.SMILEY_DESC}" hspace="2" vspace="2" /></a>
+ <!-- END smiley -->
+ </td>
+ </tr>
+
+ <!-- IF S_SHOW_SMILEY_LINK -->
+ <tr>
+ <td align="center"><a class="nav" href="{U_MORE_SMILIES}" onclick="popup(this.href, 300, 350, '_phpbbsmilies'); return false;">{L_MORE_SMILIES}</a></td>
+ </tr>
+ <!-- ENDIF -->
+
+ </table>
+ <!-- ENDIF -->
+ </td>
+ <td class="row2" valign="top">
+ <script type="text/javascript">
+ // <![CDATA[
+ var form_name = 'postform';
+ var text_name = 'message';
+ // ]]>
+ </script>
+
+ <table width="100%" cellspacing="0" cellpadding="0" border="0">
+ <!-- INCLUDE posting_buttons.html -->
+ <tr>
+ <td valign="top" style="width: 100%;"><textarea name="message" rows="15" cols="76" tabindex="3" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onfocus="initInsertions();" style="width: 98%;">{MESSAGE}</textarea></td>
+ <!-- IF S_BBCODE_ALLOWED -->
+ <td width="80" align="center" valign="top">
+ <script type="text/javascript">
+ // <![CDATA[
+ colorPalette('v', 7, 6)
+ // ]]>
+ </script>
+ </td>
+ <!-- ENDIF -->
+ </tr>
+ </table>
+ </td>
+</tr>
+
+<!-- IF S_INLINE_ATTACHMENT_OPTIONS -->
+ <tr>
+ <td class="row1"><b class="genmed">{L_ATTACHMENTS}:</b></td>
+ <td class="row2"><select name="attachments">{S_INLINE_ATTACHMENT_OPTIONS}</select>&nbsp;<input type="button" class="btnbbcode" accesskey="a" value="{L_PLACE_INLINE}" name="attachinline" onclick="attach_form = document.forms[form_name].elements['attachments']; attach_inline(attach_form.value, attach_form.options[attach_form.selectedIndex].text);" onmouseover="helpline('a')" onmouseout="helpline('tip')" />
+ </td>
+ </tr>
+<!-- ENDIF -->
+
+<tr>
+ <td class="row1" valign="top"><b class="genmed">{L_OPTIONS}:</b><br />
+ <table cellspacing="2" cellpadding="0" border="0">
+ <tr>
+ <td class="gensmall">{BBCODE_STATUS}</td>
+ </tr>
+ <!-- IF S_BBCODE_ALLOWED -->
+ <tr>
+ <td class="gensmall">{IMG_STATUS}</td>
+ </tr>
+ <tr>
+ <td class="gensmall">{FLASH_STATUS}</td>
+ </tr>
+ <tr>
+ <td class="gensmall">{URL_STATUS}</td>
+ </tr>
+ <!-- ENDIF -->
+ <tr>
+ <td class="gensmall">{SMILIES_STATUS}</td>
+ </tr>
+ </table>
+ </td>
+ <td class="row2">
+ <table cellpadding="1">
+ <!-- IF S_BBCODE_ALLOWED -->
+ <tr>
+ <td><input type="checkbox" class="radio" name="disable_bbcode"{S_BBCODE_CHECKED} /></td>
+ <td class="gen">{L_DISABLE_BBCODE}</td>
+ </tr>
+ <!-- ENDIF -->
+
+ <!-- IF S_SMILIES_ALLOWED -->
+ <tr>
+ <td><input type="checkbox" class="radio" name="disable_smilies"{S_SMILIES_CHECKED} /></td>
+ <td class="gen">{L_DISABLE_SMILIES}</td>
+ </tr>
+ <!-- ENDIF -->
+
+ <!-- IF S_LINKS_ALLOWED -->
+ <tr>
+ <td><input type="checkbox" class="radio" name="disable_magic_url"{S_MAGIC_URL_CHECKED} /></td>
+ <td class="gen">{L_DISABLE_MAGIC_URL}</td>
+ </tr>
+ <!-- ENDIF -->
+
+ <!-- IF S_SIG_ALLOWED -->
+ <tr>
+ <td><input type="checkbox" class="radio" name="attach_sig"{S_SIGNATURE_CHECKED} /></td>
+ <td class="gen">{L_ATTACH_SIG}</td>
+ </tr>
+ <!-- ENDIF -->
+
+ <!-- IF S_NOTIFY_ALLOWED -->
+ <tr>
+ <td><input type="checkbox" class="radio" name="notify"{S_NOTIFY_CHECKED} /></td>
+ <td class="gen">{L_NOTIFY_REPLY}</td>
+ </tr>
+ <!-- ENDIF -->
+
+ <!-- IF not S_PRIVMSGS -->
+ <!-- IF S_LOCK_TOPIC_ALLOWED -->
+ <tr>
+ <td><input type="checkbox" class="radio" name="lock_topic"{S_LOCK_TOPIC_CHECKED} /></td>
+ <td class="gen">{L_LOCK_TOPIC}</td>
+ </tr>
+ <!-- ENDIF -->
+
+ <!-- IF S_LOCK_POST_ALLOWED -->
+ <tr>
+ <td><input type="checkbox" class="radio" name="lock_post"{S_LOCK_POST_CHECKED} /></td>
+ <td class="gen">{L_LOCK_POST} [{L_LOCK_POST_EXPLAIN}]</td>
+ </tr>
+ <!-- ENDIF -->
+
+ <!-- IF S_TYPE_TOGGLE -->
+ <tr>
+ <td>&nbsp;</td>
+ <td class="gen"><!-- IF S_EDIT_POST -->{L_CHANGE_TOPIC_TO}<!-- ELSE -->{L_POST_TOPIC_AS}<!-- ENDIF -->: <!-- BEGIN topic_type --><input type="radio" class="radio" name="topic_type" value="{topic_type.VALUE}"{topic_type.S_CHECKED} />{topic_type.L_TOPIC_TYPE}&nbsp;&nbsp;<!-- END topic_type --></td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- ENDIF -->
+ </table>
+ </td>
+</tr>
+
+<!-- IF S_TOPIC_TYPE_ANNOUNCE or S_TOPIC_TYPE_STICKY -->
+ <tr>
+ <td class="row1"><b class="genmed">{L_STICK_TOPIC_FOR}:</b><br /><span class="gensmall">{L_STICKY_ANNOUNCE_TIME_LIMIT}</span></td>
+ <td class="row2"><input class="post" type="text" name="topic_time_limit" size="3" maxlength="3" value="{TOPIC_TIME_LIMIT}" />&nbsp;<b class="gen">{L_DAYS}</b> <span class="gensmall">{L_STICK_TOPIC_FOR_EXPLAIN}</span></td>
+ </tr>
+<!-- ENDIF -->
+
+<!-- IF S_EDIT_REASON -->
+ <tr>
+ <td class="row1" valign="top"><b class="genmed">{L_EDIT_REASON}:</b></td>
+ <td class="row2"><input class="post" type="text" name="edit_reason" size="50" value="{EDIT_REASON}" /></td>
+ </tr>
+<!-- ENDIF -->
+
+ <!-- IF CAPTCHA_TEMPLATE and S_CONFIRM_CODE -->
+ <!-- INCLUDE {CAPTCHA_TEMPLATE} -->
+ <!-- ENDIF -->
+
+
+<!-- IF S_SHOW_ATTACH_BOX or S_SHOW_POLL_BOX -->
+ <tr>
+ <td class="cat" colspan="2" align="center">
+ <input class="btnlite" type="submit" tabindex="5" name="preview" value="{L_PREVIEW}" />
+ &nbsp; <input class="btnmain" type="submit" accesskey="s" tabindex="6" name="post" value="{L_SUBMIT}" />
+ <!-- IF S_SAVE_ALLOWED -->&nbsp; <input class="btnlite" type="submit" accesskey="k" tabindex="7" name="save" value="{L_SAVE}" /><!-- ENDIF -->
+ <!-- IF S_HAS_DRAFTS -->&nbsp; <input class="btnlite" type="submit" accesskey="d" tabindex="8" name="load" value="{L_LOAD}" /><!-- ENDIF -->
+ &nbsp; <input class="btnlite" type="submit" accesskey="c" tabindex="9" name="cancel" value="{L_CANCEL}" />
+ </td>
+ </tr>
+
+ <!-- IF S_SHOW_ATTACH_BOX --><!-- INCLUDE posting_attach_body.html --><!-- ENDIF -->
+
+ <!-- IF S_SHOW_POLL_BOX -->
+ <!-- INCLUDE posting_poll_body.html -->
+ <!-- ELSEIF S_POLL_DELETE -->
+ <tr>
+ <td class="row1"><span class="genmed"><b>{L_POLL_DELETE}:</b></span></td>
+ <td class="row2"><input type="checkbox" class="radio" name="poll_delete" /></td>
+ </tr>
+ <!-- ENDIF -->
+<!-- ENDIF -->
+
+<tr>
+ <td class="cat" colspan="2" align="center">{S_HIDDEN_FIELDS}
+ <input class="btnlite" type="submit" tabindex="10" name="preview" value="{L_PREVIEW}" />
+ &nbsp; <input class="btnmain" type="submit" accesskey="s" tabindex="11" name="post" value="{L_SUBMIT}" />
+ <!-- IF not S_SHOW_ATTACH_BOX and not S_SHOW_POLL_BOX -->
+ <!-- IF S_SAVE_ALLOWED -->&nbsp; <input class="btnlite" type="submit" accesskey="k" tabindex="12" name="save" value="{L_SAVE}" /><!-- ENDIF -->
+ <!-- IF S_HAS_DRAFTS -->&nbsp; <input class="btnlite" type="submit" accesskey="d" tabindex="13" name="load" value="{L_LOAD}" /><!-- ENDIF -->
+ <!-- ENDIF -->
+ &nbsp; <input class="btnlite" type="submit" accesskey="c" tabindex="14" name="cancel" value="{L_CANCEL}" />
+ </td>
+</tr>
+</table>
+<!-- IF not S_PRIVMSGS -->
+ {S_FORM_TOKEN}
+ </form>
+<!-- ENDIF -->
+<br clear="all" />
+
+<!-- IF S_DISPLAY_REVIEW --><!-- INCLUDE posting_topic_review.html --><!-- ENDIF -->
+<!-- IF S_DISPLAY_HISTORY --><!-- INCLUDE ucp_pm_history.html --><!-- ENDIF -->
+
+<!-- IF S_PRIVMSGS -->
+ <!-- INCLUDE ucp_footer.html -->
+<!-- ELSE -->
+
+ <!-- INCLUDE breadcrumbs.html -->
+
+
+ <!-- IF S_DISPLAY_ONLINE_LIST -->
+ <br clear="all" />
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <td class="cat"><h4>{L_WHO_IS_ONLINE}</h4></td>
+ </tr>
+ <tr>
+ <td class="row1"><span class="gensmall">{LOGGED_IN_USER_LIST}</span></td>
+ </tr>
+ </table>
+ <!-- ENDIF -->
+
+ <br clear="all" />
+
+ <table width="100%" cellspacing="1">
+ <tr>
+ <td align="{S_CONTENT_FLOW_END}"><!-- INCLUDE jumpbox.html --></td>
+ </tr>
+ </table>
+
+ <!-- INCLUDE overall_footer.html -->
+<!-- ENDIF --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/posting_buttons.html b/phpBB/styles/subsilver2/template/posting_buttons.html
new file mode 100644
index 0000000000..2fff9c1991
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/posting_buttons.html
@@ -0,0 +1,88 @@
+<tr valign="middle" align="{S_CONTENT_FLOW_BEGIN}">
+ <td colspan="2">
+ <script type="text/javascript">
+ // <![CDATA[
+
+ // Define the bbCode tags
+ var bbcode = new Array();
+ var bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[/code]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]','[flash=]', '[/flash]','[size=]','[/size]'<!-- BEGIN custom_tags -->, {custom_tags.BBCODE_NAME}<!-- END custom_tags -->);
+ var imageTag = false;
+
+ // Helpline messages
+ var help_line = {
+ b: '{LA_BBCODE_B_HELP}',
+ i: '{LA_BBCODE_I_HELP}',
+ u: '{LA_BBCODE_U_HELP}',
+ q: '{LA_BBCODE_Q_HELP}',
+ c: '{LA_BBCODE_C_HELP}',
+ l: '{LA_BBCODE_L_HELP}',
+ o: '{LA_BBCODE_O_HELP}',
+ p: '{LA_BBCODE_P_HELP}',
+ w: '{LA_BBCODE_W_HELP}',
+ a: '{LA_BBCODE_A_HELP}',
+ s: '{LA_BBCODE_S_HELP}',
+ f: '{LA_BBCODE_F_HELP}',
+ e: '{LA_BBCODE_E_HELP}',
+ d: '{LA_BBCODE_D_HELP}',
+ t: '{LA_BBCODE_T_HELP}',
+ tip: '{L_STYLES_TIP}'
+ <!-- BEGIN custom_tags -->
+ ,cb_{custom_tags.BBCODE_ID}: '{custom_tags.A_BBCODE_HELPLINE}'
+ <!-- END custom_tags -->
+ }
+
+ // ]]>
+ </script>
+ <script type="text/javascript" src="{T_TEMPLATE_PATH}/editor.js"></script>
+
+<!-- IF S_BBCODE_ALLOWED -->
+ <input type="button" class="btnbbcode" accesskey="b" name="addbbcode0" value=" B " style="font-weight:bold; width: 30px;" onclick="bbstyle(0)" onmouseover="helpline('b')" onmouseout="helpline('tip')" />
+ <input type="button" class="btnbbcode" accesskey="i" name="addbbcode2" value=" i " style="font-style:italic; width: 30px;" onclick="bbstyle(2)" onmouseover="helpline('i')" onmouseout="helpline('tip')" />
+ <input type="button" class="btnbbcode" accesskey="u" name="addbbcode4" value=" u " style="text-decoration: underline; width: 30px;" onclick="bbstyle(4)" onmouseover="helpline('u')" onmouseout="helpline('tip')" />
+ <!-- IF S_BBCODE_QUOTE -->
+ <input type="button" class="btnbbcode" accesskey="q" name="addbbcode6" value="Quote" style="width: 50px" onclick="bbstyle(6)" onmouseover="helpline('q')" onmouseout="helpline('tip')" />
+ <!-- ENDIF -->
+ <input type="button" class="btnbbcode" accesskey="c" name="addbbcode8" value="Code" style="width: 40px" onclick="bbstyle(8)" onmouseover="helpline('c')" onmouseout="helpline('tip')" />
+ <input type="button" class="btnbbcode" accesskey="l" name="addbbcode10" value="List" style="width: 40px" onclick="bbstyle(10)" onmouseover="helpline('l')" onmouseout="helpline('tip')" />
+ <input type="button" class="btnbbcode" accesskey="o" name="addbbcode12" value="List=" style="width: 40px" onclick="bbstyle(12)" onmouseover="helpline('o')" onmouseout="helpline('tip')" />
+ <input type="button" class="btnbbcode" accesskey="t" name="addlitsitem" value="[*]" style="width: 40px" onclick="bbstyle(-1)" onmouseover="helpline('e')" onmouseout="helpline('tip')" />
+ <!-- IF S_BBCODE_IMG -->
+ <input type="button" class="btnbbcode" accesskey="p" name="addbbcode14" value="Img" style="width: 40px" onclick="bbstyle(14)" onmouseover="helpline('p')" onmouseout="helpline('tip')" />
+ <!-- ENDIF -->
+ <!-- IF S_LINKS_ALLOWED -->
+ <input type="button" class="btnbbcode" accesskey="w" name="addbbcode16" value="URL" style="text-decoration: underline; width: 40px" onclick="bbstyle(16)" onmouseover="helpline('w')" onmouseout="helpline('tip')" />
+ <!-- ENDIF -->
+ <!-- IF S_BBCODE_FLASH -->
+ <input type="button" class="btnbbcode" accesskey="d" name="addbbcode18" value="Flash" onclick="bbstyle(18)" onmouseover="helpline('d')" onmouseout="helpline('tip')" />
+ <!-- ENDIF -->
+ <span class="genmed nowrap">{L_FONT_SIZE}: <select class="gensmall" name="addbbcode20" onchange="bbfontstyle('[size=' + this.form.addbbcode20.options[this.form.addbbcode20.selectedIndex].value + ']', '[/size]');this.form.addbbcode20.selectedIndex = 2;" onmouseover="helpline('f')" onmouseout="helpline('tip')">
+ <option value="50">{L_FONT_TINY}</option>
+ <option value="85">{L_FONT_SMALL}</option>
+ <option value="100" selected="selected">{L_FONT_NORMAL}</option>
+ <!-- IF not MAX_FONT_SIZE or MAX_FONT_SIZE >= 150 -->
+ <option value="150">{L_FONT_LARGE}</option>
+ <!-- IF not MAX_FONT_SIZE or MAX_FONT_SIZE >= 200 -->
+ <option value="200">{L_FONT_HUGE}</option>
+ <!-- ENDIF -->
+ <!-- ENDIF -->
+ </select></span>
+<!-- ENDIF -->
+ </td>
+</tr>
+<!-- IF S_BBCODE_ALLOWED and .custom_tags -->
+ <tr valign="middle" align="{S_CONTENT_FLOW_BEGIN}">
+ <td colspan="2">
+ <!-- BEGIN custom_tags -->
+ <input type="button" class="btnbbcode" name="addbbcode{custom_tags.BBCODE_ID}" value="{custom_tags.BBCODE_TAG}" onclick="bbstyle({custom_tags.BBCODE_ID})"<!-- IF custom_tags.BBCODE_HELPLINE !== '' --> onmouseover="helpline('cb_{custom_tags.BBCODE_ID}')" onmouseout="helpline('tip')"<!-- ENDIF --> />
+ <!-- END custom_tags -->
+ </td>
+ </tr>
+<!-- ENDIF -->
+<!-- IF S_BBCODE_ALLOWED -->
+<tr>
+ <td<!-- IF $S_SIGNATURE or S_EDIT_DRAFT --> colspan="2"<!-- ENDIF -->><input type="text" readonly="readonly" name="helpbox" style="width:100%" class="helpline" value="{L_STYLES_TIP}" /></td>
+ <!-- IF not $S_SIGNATURE and not S_EDIT_DRAFT -->
+ <td class="genmed" align="center">{L_FONT_COLOR}</td>
+ <!-- ENDIF -->
+</tr>
+<!-- ENDIF -->
diff --git a/phpBB/styles/subsilver2/template/posting_poll_body.html b/phpBB/styles/subsilver2/template/posting_poll_body.html
new file mode 100644
index 0000000000..3a523182f7
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/posting_poll_body.html
@@ -0,0 +1,36 @@
+
+<tr>
+ <th colspan="2">{L_ADD_POLL}</th>
+</tr>
+<tr>
+ <td class="row3" colspan="2"><span class="gensmall">{L_ADD_POLL_EXPLAIN}</span></td>
+</tr>
+<tr>
+ <td class="row1"><b class="genmed">{L_POLL_QUESTION}:</b></td>
+ <td class="row2"><input class="post" type="text" name="poll_title" size="50" maxlength="255" value="{POLL_TITLE}" /></td>
+</tr>
+<tr>
+ <td class="row1"><b class="genmed">{L_POLL_OPTIONS}:</b><br /><span class="gensmall">{L_POLL_OPTIONS_EXPLAIN}</span></td>
+ <td class="row2"><textarea style="width:450px" name="poll_option_text" rows="5" cols="35">{POLL_OPTIONS}</textarea></td>
+</tr>
+<tr>
+ <td class="row1"><b class="genmed">{L_POLL_MAX_OPTIONS}:</b><br /><span class="gensmall">{L_POLL_MAX_OPTIONS_EXPLAIN}</span></td>
+ <td class="row2"><input class="post" type="text" name="poll_max_options" size="3" maxlength="3" value="{POLL_MAX_OPTIONS}" /></td>
+</tr>
+<tr>
+ <td class="row1"><b class="genmed">{L_POLL_FOR}:</b></td>
+ <td class="row2"><input class="post" type="text" name="poll_length" size="3" maxlength="3" value="{POLL_LENGTH}" />&nbsp;<b class="gen">{L_DAYS}</b> <span class="gensmall">{L_POLL_FOR_EXPLAIN}</span></td>
+</tr>
+<!-- IF S_POLL_VOTE_CHANGE -->
+ <tr>
+ <td class="row1"><b class="genmed">{L_POLL_VOTE_CHANGE}:</b><br /><span class="gensmall">{L_POLL_VOTE_CHANGE_EXPLAIN}</span></td>
+ <td class="row2"><input type="checkbox" class="radio" name="poll_vote_change"{VOTE_CHANGE_CHECKED} /></td>
+ </tr>
+<!-- ENDIF -->
+
+<!-- IF S_POLL_DELETE -->
+ <tr>
+ <td class="row1"><b class="genmed">{L_POLL_DELETE}:</b></td>
+ <td class="row2"><input type="checkbox" class="radio" name="poll_delete"<!-- IF S_POLL_DELETE_CHECKED --> checked="checked"<!-- ENDIF --> /></td>
+ </tr>
+<!-- ENDIF -->
diff --git a/phpBB/styles/subsilver2/template/posting_preview.html b/phpBB/styles/subsilver2/template/posting_preview.html
new file mode 100644
index 0000000000..b990428f36
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/posting_preview.html
@@ -0,0 +1,70 @@
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th>{L_PREVIEW}</th>
+</tr>
+<tr>
+ <td class="row1">{MINI_POST_IMG}<span class="postdetails">{L_POSTED}: {POST_DATE} &nbsp;&nbsp;&nbsp; {L_POST_SUBJECT}: {PREVIEW_SUBJECT}</span></td>
+</tr>
+<!-- IF S_HAS_POLL_OPTIONS -->
+ <tr>
+ <td class="row2" colspan="2" align="center"><br clear="all" />
+ <table cellspacing="0" cellpadding="4" border="0" align="center">
+ <tr>
+ <td align="center"><span class="gen"><b>{POLL_QUESTION}</b></span><br /><span class="gensmall">{L_POLL_LENGTH}</span></td>
+ </tr>
+ <tr>
+ <td align="center">
+ <table cellspacing="0" cellpadding="2" border="0">
+ <!-- BEGIN poll_option -->
+ <tr>
+ <td>
+ <!-- IF S_IS_MULTI_CHOICE -->
+ <input type="checkbox" class="radio" name="vote_id" value="" />
+ <!-- ELSE -->
+ <input type="radio" class="radio" name="vote_id" value="" />
+ <!-- ENDIF -->
+ </td>
+ <td><span class="gen">{poll_option.POLL_OPTION_CAPTION}</span></td>
+ </tr>
+ <!-- END poll_option -->
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td align="center"><span class="gensmall">{L_MAX_VOTES}</span></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+<!-- ENDIF -->
+<tr>
+ <td class="row1">
+ <table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><div class="postbody">{PREVIEW_MESSAGE}</div>
+ <!-- IF .attachment -->
+ <br clear="all" /><br />
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <td class="row3"><b class="genmed">{L_ATTACHMENTS}: </b></td>
+ </tr>
+ <!-- BEGIN attachment -->
+ <tr>
+ <td class="row2">{attachment.DISPLAY_ATTACHMENT}</td>
+ </tr>
+ <!-- END attachment -->
+ </table>
+ <!-- ENDIF -->
+ <!-- IF PREVIEW_SIGNATURE --><span class="postbody"><br />_________________<br />{PREVIEW_SIGNATURE}</span><!-- ENDIF --></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td class="spacer"><img src="images/spacer.gif" alt="" width="1" height="1" /></td>
+</tr>
+</table>
+
+<br clear="all" />
diff --git a/phpBB/styles/subsilver2/template/posting_progress_bar.html b/phpBB/styles/subsilver2/template/posting_progress_bar.html
new file mode 100644
index 0000000000..f9decc506b
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/posting_progress_bar.html
@@ -0,0 +1,44 @@
+<!-- INCLUDE simple_header.html -->
+<script type="text/javascript">
+// <![CDATA[
+ /**
+ * Close upload popup
+ */
+ function close_popup()
+ {
+ if (opener != null)
+ {
+ if (opener.close_waitscreen != null)
+ {
+ if (opener.close_waitscreen == 1)
+ {
+ opener.close_waitscreen = 0;
+ self.close();
+ return 0;
+ }
+ }
+ }
+ setTimeout("close_popup()", 1000);
+ return 0;
+ }
+// ]]>
+</script>
+
+<table width="100%" border="0" cellspacing="0" cellpadding="10">
+<tr>
+ <td>
+ <table width="100%" border="0" cellspacing="1" cellpadding="4">
+ <tr>
+ <td valign="top" class="row1" align="center"><br /><span class="genmed">{L_UPLOAD_IN_PROGRESS}</span><br /><br /><div style="align:center">{PROGRESS_BAR}</div><br /><br /><span class="genmed"><a href="#" onclick="window.close(); return false;">{L_CLOSE_WINDOW}</a></span><br /><br /></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+
+<script type="text/javascript">
+// <![CDATA[
+ close_popup();
+// ]]>
+</script>
+<!-- INCLUDE simple_footer.html -->
diff --git a/phpBB/styles/subsilver2/template/posting_review.html b/phpBB/styles/subsilver2/template/posting_review.html
new file mode 100644
index 0000000000..13e895e95a
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/posting_review.html
@@ -0,0 +1,99 @@
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th align="center">{L_POST_REVIEW}</th>
+</tr>
+<tr>
+ <td class="row1" align="center"><span class="gen">{L_POST_REVIEW_EXPLAIN}</span></td>
+</tr>
+<tr>
+ <td class="spacer"><img src="images/spacer.gif" alt="" width="1" height="1" /></td>
+</tr>
+<tr>
+ <td class="row1">
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th width="22%">{L_AUTHOR}</th>
+ <th>{L_MESSAGE}</th>
+ </tr>
+ <!-- BEGIN post_review_row -->
+
+ <!-- IF post_review_row.S_ROW_COUNT is even --> <tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+ <!-- IF post_review_row.S_IGNORE_POST -->
+ <td colspan="2">{post_review_row.L_IGNORE_POST}</td>
+ <!-- ELSE -->
+
+ <td rowspan="2" align="{S_CONTENT_FLOW_BEGIN}" valign="top"><a id="pr{post_review_row.POST_ID}"></a>
+ <table width="150" cellspacing="0" cellpadding="4" border="0">
+ <tr>
+ <td align="center"><b class="postauthor">{post_review_row.POST_AUTHOR_FULL}</b></td>
+ </tr>
+ </table>
+ </td>
+ <td width="100%">
+ <table width="100%" cellspacing="0" cellpadding="0" border="0">
+ <tr>
+ <td>&nbsp;</td>
+ <td class="gensmall" valign="middle" nowrap="nowrap"><b>{L_POST_SUBJECT}:</b>&nbsp;</td>
+ <td class="gensmall" width="100%" valign="middle">{post_review_row.POST_SUBJECT}</td>
+ <td>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <!-- IF post_review_row.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+
+ <td valign="top">
+ <table width="100%" cellspacing="0">
+ <tr>
+ <td valign="top">
+ <table width="100%" cellspacing="0" cellpadding="2">
+ <tr>
+ <td><div class="postbody">{post_review_row.MESSAGE}</div>
+
+ <!-- IF post_review_row.S_HAS_ATTACHMENTS -->
+ <br clear="all" /><br />
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <td class="row3"><b class="genmed">{L_ATTACHMENTS}: </b></td>
+ </tr>
+ <!-- BEGIN attachment -->
+ <tr>
+ <!-- IF post_review_row.attachment.S_ROW_COUNT is even --><td class="row2"><!-- ELSE --><td class="row1"><!-- ENDIF -->{post_review_row.attachment.DISPLAY_ATTACHMENT}</td>
+ </tr>
+ <!-- END attachment -->
+ </table>
+ <!-- ENDIF -->
+
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table width="100%" cellspacing="0" cellpadding="0" border="0">
+ <tr valign="middle">
+ <td width="100%">&nbsp;</td>
+ <td width="10" nowrap="nowrap"><!-- IF S_IS_BOT -->{post_review_row.MINI_POST_IMG}<!-- ELSE --><a href="{post_review_row.U_MINI_POST}">{post_review_row.MINI_POST_IMG}</a><!-- ENDIF --></td>
+ <td class="gensmall" nowrap="nowrap"><b>{L_POSTED}:</b> {post_review_row.POST_DATE}</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <!-- ENDIF -->
+ </tr>
+ <tr>
+ <td class="spacer" colspan="2" height="1"><img src="images/spacer.gif" alt="" width="1" height="1" /></td>
+ </tr>
+ <!-- END post_review_row -->
+ </table>
+ </td>
+</tr>
+</table>
+
+<br clear="all" /> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/posting_smilies.html b/phpBB/styles/subsilver2/template/posting_smilies.html
new file mode 100644
index 0000000000..2586530e55
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/posting_smilies.html
@@ -0,0 +1,25 @@
+<!-- INCLUDE simple_header.html -->
+
+<script type="text/javascript">
+// <![CDATA[
+ var form_name = 'postform';
+ var text_name = 'message';
+// ]]>
+</script>
+<script type="text/javascript" src="{T_TEMPLATE_PATH}/editor.js"></script>
+
+<table width="100%" cellspacing="1" cellpadding="4" border="0">
+<tr>
+ <td>
+ <table class="tablebg" width="95%" cellspacing="1" cellpadding="4" border="0">
+ <tr>
+ <th>{L_SMILIES}</th>
+ </tr>
+ <tr>
+ <td class="row1" align="center" valign="middle"><!-- BEGIN smiley --> <a href="#" onclick="initInsertions(); insert_text('{smiley.A_SMILEY_CODE}', true, true); return false;"><img src="{smiley.SMILEY_IMG}" width="{smiley.SMILEY_WIDTH}" height="{smiley.SMILEY_HEIGHT}" alt="{smiley.SMILEY_CODE}" title="{smiley.SMILEY_DESC}" hspace="2" vspace="2" /></a> <!-- END smiley --><br />{PAGINATION}<br /><a class="nav" href="#" onclick="window.close(); return false;">{L_CLOSE_WINDOW}</a></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+<!-- INCLUDE simple_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/posting_topic_review.html b/phpBB/styles/subsilver2/template/posting_topic_review.html
new file mode 100644
index 0000000000..54bbf6e553
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/posting_topic_review.html
@@ -0,0 +1,103 @@
+<script type="text/javascript">
+// <![CDATA[
+ bbcodeEnabled = {S_BBCODE_ALLOWED};
+// ]]>
+</script>
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th align="center">{L_TOPIC_REVIEW} - {TOPIC_TITLE}</th>
+</tr>
+<tr>
+ <td class="row1"><div style="overflow: auto; width: 100%; height: 300px;">
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th width="22%">{L_AUTHOR}</th>
+ <th>{L_MESSAGE}</th>
+ </tr>
+ <!-- BEGIN topic_review_row -->
+
+ <!-- IF topic_review_row.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+
+ <!-- IF topic_review_row.S_IGNORE_POST -->
+ <td colspan="2">{topic_review_row.L_IGNORE_POST}</td>
+ <!-- ELSE -->
+ <td rowspan="2" align="{S_CONTENT_FLOW_BEGIN}" valign="top"><a id="pr{topic_review_row.POST_ID}"></a>
+ <table width="150" cellspacing="0">
+ <tr>
+ <td align="center"><b class="postauthor"<!-- IF topic_review_row.POST_AUTHOR_COLOUR --> style="color: {topic_review_row.POST_AUTHOR_COLOUR}"<!-- ENDIF -->>{topic_review_row.POST_AUTHOR}</b></td>
+ </tr>
+ </table>
+ </td>
+ <td width="100%">
+ <table width="100%" cellspacing="0">
+ <tr>
+ <td>&nbsp;</td>
+ <td class="gensmall" valign="middle" nowrap="nowrap"><b>{L_POST_SUBJECT}:</b>&nbsp;</td>
+ <td class="gensmall" width="100%" valign="middle">{topic_review_row.POST_SUBJECT}</td>
+ <td valign="top" nowrap="nowrap">&nbsp;<!-- IF topic_review_row.POSTER_QUOTE and topic_review_row.DECODED_MESSAGE --><a href="#" onclick="addquote({topic_review_row.POST_ID},'{topic_review_row.POSTER_QUOTE}', '{LA_WROTE}'); return false;">{QUOTE_IMG}</a><!-- ENDIF --></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <!-- IF topic_review_row.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+
+ <td valign="top">
+ <table width="100%" cellspacing="0">
+ <tr>
+ <td valign="top">
+ <table width="100%" cellspacing="0" cellpadding="2">
+ <tr>
+ <td>
+ <div class="postbody">{topic_review_row.MESSAGE}</div>
+
+ <!-- IF topic_review_row.S_HAS_ATTACHMENTS -->
+ <br clear="all" /><br />
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <td class="row3"><b class="genmed">{L_ATTACHMENTS}: </b></td>
+ </tr>
+ <!-- BEGIN attachment -->
+ <tr>
+ <!-- IF topic_review_row.attachment.S_ROW_COUNT is even --><td class="row2"><!-- ELSE --><td class="row1"><!-- ENDIF -->{topic_review_row.attachment.DISPLAY_ATTACHMENT}</td>
+ </tr>
+ <!-- END attachment -->
+ </table>
+ <!-- ENDIF -->
+
+ <!-- IF topic_review_row.POSTER_QUOTE and topic_review_row.DECODED_MESSAGE -->
+ <div id="message_{topic_review_row.POST_ID}" style="display: none;">{topic_review_row.DECODED_MESSAGE}</div>
+ <!-- ENDIF -->
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table width="100%" cellspacing="0">
+ <tr valign="middle">
+ <td width="100%" align="{S_CONTENT_FLOW_BEGIN}"><span class="gensmall"><!-- IF topic_review_row.U_MCP_DETAILS -->[ <a href="{topic_review_row.U_MCP_DETAILS}">{L_POST_DETAILS}</a> ]<!-- ENDIF --></span></td>
+ <td width="10" nowrap="nowrap"><!-- IF S_IS_BOT -->{topic_review_row.MINI_POST_IMG}<!-- ELSE --><a href="{topic_review_row.U_MINI_POST}">{topic_review_row.MINI_POST_IMG}</a><!-- ENDIF --></td>
+ <td class="gensmall" nowrap="nowrap"><b>{L_POSTED}:</b> {topic_review_row.POST_DATE}</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <!-- ENDIF -->
+ </tr>
+ <tr>
+ <td class="spacer" colspan="2"><img src="images/spacer.gif" alt="" width="1" height="1" /></td>
+ </tr>
+ <!-- END topic_review_row -->
+ </table>
+ </div></td>
+</tr>
+</table>
+
+<br clear="all" /> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/quickreply_editor.html b/phpBB/styles/subsilver2/template/quickreply_editor.html
new file mode 100644
index 0000000000..704c6e1306
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/quickreply_editor.html
@@ -0,0 +1,27 @@
+<form method="post" action="{U_QR_ACTION}">
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th align="center" colspan="2">{L_QUICKREPLY}</th>
+ </tr>
+ <tr>
+ <td class="row1" width="22%"><b class="genmed">{L_SUBJECT}:</b></td>
+ <td class="row2" width="78%"><input class="post" style="width:450px" type="text" name="subject" size="45" maxlength="64" tabindex="2" value="{SUBJECT}" /></td>
+ </tr>
+ <tr>
+ <td class="row1" width="22%"><b class="genmed">{L_MESSAGE}:</b></td>
+ <td class="row2" valign="top" align="left" width="78%"><textarea name="message" rows="7" cols="76" tabindex="3" style="width: 98%;"></textarea> </td>
+ </tr>
+ <tr>
+ <td class="cat" colspan="2" align="center">
+ <input class="btnmain" type="submit" accesskey="s" tabindex="6" name="post" value="{L_SUBMIT}" />&nbsp;
+ <input class="btnlite" type="submit" accesskey="f" tabindex="7" name="full_editor" value="{L_FULL_EDITOR}" />
+
+ {S_FORM_TOKEN}
+ {QR_HIDDEN_FIELDS}
+ </td>
+ </tr>
+ </table>
+
+</form>
+<br clear="all" /> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/report_body.html b/phpBB/styles/subsilver2/template/report_body.html
new file mode 100644
index 0000000000..7cd7d1040f
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/report_body.html
@@ -0,0 +1,41 @@
+<!-- INCLUDE overall_header.html -->
+
+<form method="post" id="report" action="{S_REPORT_ACTION}">
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th colspan="2"><!-- IF S_REPORT_POST -->{L_REPORT_POST}<!-- ELSE -->{L_REPORT_MESSAGE}<!-- ENDIF --></th>
+</tr>
+<tr>
+ <td class="row3" colspan="2"><span class="gensmall"><!-- IF S_REPORT_POST -->{L_REPORT_POST_EXPLAIN}<!-- ELSE -->{L_REPORT_MESSAGE_EXPLAIN}<!-- ENDIF --></span></td>
+</tr>
+<tr>
+ <td class="row1" width="22%"><b class="gen">{L_REASON}:</b></td>
+ <td class="row2" width="78%"><select name="reason_id">
+ <!-- BEGIN reason --><option value="{reason.ID}"<!-- IF reason.S_SELECTED --> selected="selected"<!-- ENDIF -->>{reason.TITLE} &raquo; {reason.DESCRIPTION}</option><!-- END reason -->
+ </select></td>
+</tr>
+<!-- IF S_CAN_NOTIFY -->
+ <tr>
+ <td class="row1"><span class="gen"><b>{L_REPORT_NOTIFY}:</b></span><br /><span class="gensmall">{L_REPORT_NOTIFY_EXPLAIN}</span></td>
+ <td class="row2"><span class="gen"><input type="radio" class="radio" name="notify" value="1"<!-- IF S_NOTIFY --> checked="checked"<!-- ENDIF --> />&nbsp; {L_YES} &nbsp;<input type="radio" class="radio" name="notify" value="0"<!-- IF not S_NOTIFY --> checked="checked"<!-- ENDIF --> />&nbsp; {L_NO}</span></td>
+ </tr>
+<!-- ENDIF -->
+<tr>
+ <td class="row1" valign="top"><span class="gen"><b>{L_MORE_INFO}:</b></span><br /><span class="gensmall">{L_CAN_LEAVE_BLANK}</span></td>
+ <td class="row2"><textarea class="post" name="report_text" rows="10" cols="50">{REPORT_TEXT}</textarea></td>
+</tr>
+<tr>
+ <td class="cat" colspan="2" align="center"><input type="submit" name="submit" class="btnmain" value="{L_SUBMIT}" />&nbsp;<input type="submit" name="cancel" class="btnlite" value="{L_CANCEL}" /></td>
+</tr>
+</table>
+{S_FORM_TOKEN}
+</form>
+
+<br clear="all" />
+
+<!-- INCLUDE breadcrumbs.html -->
+
+<div style="float: {S_CONTENT_FLOW_END};"><!-- INCLUDE jumpbox.html --></div>
+
+<!-- INCLUDE overall_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/search_body.html b/phpBB/styles/subsilver2/template/search_body.html
new file mode 100644
index 0000000000..a0ec30e9ba
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/search_body.html
@@ -0,0 +1,78 @@
+<!-- INCLUDE overall_header.html -->
+
+<div id="pagecontent">
+
+ <form method="get" action="{S_SEARCH_ACTION}">
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th colspan="4">{L_SEARCH_QUERY}</th>
+ </tr>
+ <tr>
+ <td class="row1" colspan="2" width="50%"><b class="genmed">{L_SEARCH_KEYWORDS}: </b><br /><span class="gensmall">{L_SEARCH_KEYWORDS_EXPLAIN}</span></td>
+ <td class="row2" colspan="2" valign="top"><input type="text" style="width: 300px" class="post" name="keywords" size="30" /><br /><input type="radio" class="radio" name="terms" value="all" checked="checked" /> <span class="genmed">{L_SEARCH_ALL_TERMS}</span><br /><input type="radio" class="radio" name="terms" value="any" /> <span class="genmed">{L_SEARCH_ANY_TERMS}</span></td>
+ </tr>
+ <tr>
+ <td class="row1" colspan="2"><b class="genmed">{L_SEARCH_AUTHOR}:</b><br /><span class="gensmall">{L_SEARCH_AUTHOR_EXPLAIN}</span></td>
+ <td class="row2" colspan="2" valign="middle"><input type="text" style="width: 300px" class="post" name="author" size="30" /></td>
+ </tr>
+ <tr>
+ <td class="row1" colspan="2"><b class="genmed">{L_SEARCH_FORUMS}: </b><br /><span class="gensmall">{L_SEARCH_FORUMS_EXPLAIN}</span></td>
+ <td class="row2" colspan="2"><select name="fid[]" multiple="multiple" size="5">{S_FORUM_OPTIONS}</select></td>
+ </tr>
+ <tr>
+ <th colspan="4">{L_SEARCH_OPTIONS}</th>
+ </tr>
+ <tr>
+ <td class="row1" width="25%" nowrap="nowrap"><b class="genmed">{L_SEARCH_SUBFORUMS}: </b></td>
+ <td class="row2" width="25%" nowrap="nowrap"><input type="radio" class="radio" name="sc" value="1" checked="checked" /> <span class="genmed">{L_YES}</span>&nbsp;&nbsp;<input type="radio" class="radio" name="sc" value="0" /> <span class="genmed">{L_NO}</span></td>
+ <td class="row1" width="25%" nowrap="nowrap"><b class="genmed">{L_SEARCH_WITHIN}: </b></td>
+ <td class="row2" width="25%" nowrap="nowrap"><input type="radio" class="radio" name="sf" value="all" checked="checked" /> <span class="genmed">{L_SEARCH_TITLE_MSG}</span><br /><input type="radio" class="radio" name="sf" value="msgonly" /> <span class="genmed">{L_SEARCH_MSG_ONLY}</span> <br /><input type="radio" class="radio" name="sf" value="titleonly" /> <span class="genmed">{L_SEARCH_TITLE_ONLY}</span> <br /><input type="radio" class="radio" name="sf" value="firstpost" /> <span class="genmed">{L_SEARCH_FIRST_POST}</span></td>
+ </tr>
+ <tr>
+ <td class="row1"><b class="genmed">{L_RESULT_SORT}: </b></td>
+ <td class="row2" nowrap="nowrap">{S_SELECT_SORT_KEY}<br /><input type="radio" class="radio" name="sd" value="a" /> <span class="genmed">{L_SORT_ASCENDING}</span><br /><input type="radio" class="radio" name="sd" value="d" checked="checked" /> <span class="genmed">{L_SORT_DESCENDING}</span></td>
+ <td class="row1" nowrap="nowrap"><b class="genmed">{L_DISPLAY_RESULTS}: </b></td>
+ <td class="row2" nowrap="nowrap"><input type="radio" class="radio" name="sr" value="posts" checked="checked" /> <span class="genmed">{L_POSTS}</span>&nbsp;&nbsp;<input type="radio" class="radio" name="sr" value="topics" /> <span class="genmed">{L_TOPICS}</span></td>
+ </tr>
+ <tr>
+ <td class="row1" width="25%"><b class="genmed">{L_RESULT_DAYS}: </b></td>
+ <td class="row2" width="25%" nowrap="nowrap">{S_SELECT_SORT_DAYS}</td>
+ <td class="row1" nowrap="nowrap"><b class="genmed">{L_RETURN_FIRST}: </b></td>
+ <td class="row2" nowrap="nowrap"><select name="ch">{S_CHARACTER_OPTIONS}</select> <span class="genmed">{L_POST_CHARACTERS}</span></td>
+ </tr>
+ <tr>
+ <td class="cat" colspan="4" align="center">{S_HIDDEN_FIELDS}<input class="btnmain" name="submit" type="submit" value="{L_SEARCH}" />&nbsp;&nbsp;<input class="btnlite" type="reset" value="{L_RESET}" /></td>
+ </tr>
+ </table>
+
+ </form>
+
+ <br clear="all" />
+
+ <!-- IF .recentsearch -->
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th colspan="2">{L_RECENT_SEARCHES}</th>
+ </tr>
+ <!-- BEGIN recentsearch -->
+ <!-- IF recentsearch.S_ROW_COUNT is even --><tr class="row2"><!-- ELSE --><tr class="row1"><!-- ENDIF -->
+
+ <td class="genmed" style="padding: 4px;" width="70%"><a href="{recentsearch.U_KEYWORDS}">{recentsearch.KEYWORDS}</a></td>
+ <td class="genmed" style="padding: 4px;" width="30%" align="center">{recentsearch.TIME}</td>
+ </tr>
+ <!-- END recentsearch -->
+ </table>
+
+ <br clear="all" />
+ <!-- ENDIF -->
+
+ </div>
+
+ <!-- INCLUDE breadcrumbs.html -->
+
+ <br clear="all" />
+
+ <div align="{S_CONTENT_FLOW_END}"><!-- INCLUDE jumpbox.html --></div>
+
+<!-- INCLUDE overall_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/search_results.html b/phpBB/styles/subsilver2/template/search_results.html
new file mode 100644
index 0000000000..a6c30f97b2
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/search_results.html
@@ -0,0 +1,146 @@
+<!-- INCLUDE overall_header.html -->
+
+<form method="post" action="{S_SEARCH_ACTION}">
+
+<table width="100%" cellspacing="1">
+<tr>
+ <td colspan="2"><span class="titles"><!-- IF SEARCH_TITLE -->{SEARCH_TITLE}<!-- ELSE -->{SEARCH_MATCHES}<!-- ENDIF --></span><br /></td>
+</tr>
+<tr>
+ <td class="genmed"><!-- IF SEARCH_TOPIC -->{L_SEARCHED_TOPIC}: <a href="{U_SEARCH_TOPIC}"><b>{SEARCH_TOPIC}</b></a><br /><!-- ENDIF --><!-- IF SEARCH_WORDS -->{L_SEARCHED_FOR}: <a href="{U_SEARCH_WORDS}"><b>{SEARCH_WORDS}</b></a><!-- ENDIF --><!-- IF IGNORED_WORDS --> {L_IGNORED_TERMS}: <b>{IGNORED_WORDS}</b><!-- ENDIF --></td>
+ <td align="{S_CONTENT_FLOW_END}"><!-- IF SEARCH_IN_RESULTS --><span class="genmed">{L_SEARCH_IN_RESULTS}: </span><input class="post" type="text" name="add_keywords" value="" /> <input class="btnlite" type="submit" name="submit" value="{L_GO}" /><!-- ENDIF --></td>
+</tr>
+</table>
+
+<br clear="all" />
+
+<!-- IF S_SHOW_TOPICS -->
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th width="4%" nowrap="nowrap">&nbsp;</th>
+ <th colspan="2" nowrap="nowrap">&nbsp;{L_TOPICS}&nbsp;</th>
+ <th nowrap="nowrap">&nbsp;{L_AUTHOR}&nbsp;</th>
+ <th nowrap="nowrap">&nbsp;{L_REPLIES}&nbsp;</th>
+ <th nowrap="nowrap">&nbsp;{L_VIEWS}&nbsp;</th>
+ <th nowrap="nowrap">&nbsp;{L_LAST_POST}&nbsp;</th>
+ </tr>
+ <!-- BEGIN searchresults -->
+ <tr valign="middle">
+ <td class="row1" width="25" align="center">{searchresults.TOPIC_FOLDER_IMG}</td>
+ <td class="row1" width="25" align="center">
+ <!-- IF searchresults.TOPIC_ICON_IMG -->
+ <img src="{T_ICONS_PATH}{searchresults.TOPIC_ICON_IMG}" width="{searchresults.TOPIC_ICON_IMG_WIDTH}" height="{searchresults.TOPIC_ICON_IMG_HEIGHT}" alt="" title="" />
+ <!-- ENDIF -->
+ </td>
+ <td class="row1">
+ <!-- IF searchresults.S_UNREAD_TOPIC --><a href="{searchresults.U_NEWEST_POST}">{NEWEST_POST_IMG}</a><!-- ENDIF -->
+ {searchresults.ATTACH_ICON_IMG} <a href="{searchresults.U_VIEW_TOPIC}" class="topictitle">{searchresults.TOPIC_TITLE}</a>
+ <!-- IF searchresults.S_TOPIC_UNAPPROVED or searchresults.S_POSTS_UNAPPROVED -->
+ <a href="{searchresults.U_MCP_QUEUE}">{searchresults.UNAPPROVED_IMG}</a>&nbsp;
+ <!-- ENDIF -->
+ <!-- IF searchresults.S_TOPIC_REPORTED -->
+ <a href="{searchresults.U_MCP_REPORT}">{REPORTED_IMG}</a>&nbsp;
+ <!-- ENDIF -->
+ <!-- IF searchresults.PAGINATION -->
+ <p class="gensmall"> [ {GOTO_PAGE_IMG}{L_GOTO_PAGE}: {searchresults.PAGINATION} ] </p>
+ <!-- ENDIF -->
+ <!-- IF searchresults.S_TOPIC_GLOBAL -->
+ <p class="gensmall">{L_GLOBAL}</p>
+ <!-- ELSE -->
+ <p class="gensmall">{L_IN} <a href="{searchresults.U_VIEW_FORUM}">{searchresults.FORUM_TITLE}</a></p>
+ <!-- ENDIF -->
+ </td>
+ <td class="row2" width="100" align="center"><p class="topicauthor">{searchresults.TOPIC_AUTHOR_FULL}</p></td>
+ <td class="row1" width="50" align="center"><p class="topicdetails">{searchresults.TOPIC_REPLIES}</p></td>
+ <td class="row2" width="50" align="center"><p class="topicdetails">{searchresults.TOPIC_VIEWS}</p></td>
+ <td class="row1" width="120" align="center">
+ <p class="topicdetails">{searchresults.LAST_POST_TIME}</p>
+ <p class="topicdetails">{searchresults.LAST_POST_AUTHOR_FULL}
+ <a href="{searchresults.U_LAST_POST}">{LAST_POST_IMG}</a>
+ </p>
+ </td>
+ </tr>
+ <!-- BEGINELSE -->
+ <tr valign="middle">
+ <td colspan="7" class="row3" align="center">{L_NO_SEARCH_RESULTS}</td>
+ </tr>
+ <!-- END searchresults -->
+ <tr>
+ <td class="cat" colspan="7" valign="middle" align="center"><!-- IF S_SELECT_SORT_DAYS or S_SELECT_SORT_KEY --><span class="gensmall">{L_DISPLAY_POSTS}:</span> {S_SELECT_SORT_DAYS}<!-- IF S_SELECT_SORT_KEY -->&nbsp;<span class="gensmall">{L_SORT_BY}:</span> {S_SELECT_SORT_KEY} {S_SELECT_SORT_DIR}<!-- ENDIF -->&nbsp;<input class="btnlite" type="submit" value="{L_GO}" name="sort" /><!-- ENDIF --></td>
+ </tr>
+ </table>
+
+<!-- ELSE -->
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th width="150" nowrap="nowrap">{L_AUTHOR}</th>
+ <th width="100%" nowrap="nowrap">{L_MESSAGE}</th>
+ </tr>
+
+ <!-- BEGIN searchresults -->
+ <tr class="row2">
+ <!-- IF searchresults.S_IGNORE_POST -->
+ <td class="gensmall" colspan="2" height="25" align="center">{searchresults.L_IGNORE_POST}</td>
+ <!-- ELSE -->
+ <td colspan="2" height="25"><p class="topictitle"><a name="p{searchresults.POST_ID}" id="p{searchresults.POST_ID}"></a>&nbsp;<!-- IF searchresults.FORUM_TITLE -->{L_FORUM}: <a href="{searchresults.U_VIEW_FORUM}">{searchresults.FORUM_TITLE}</a><!-- ELSE -->{L_GLOBAL}<!-- ENDIF --> &nbsp; {L_TOPIC}: <a href="{searchresults.U_VIEW_TOPIC}">{searchresults.TOPIC_TITLE}</a> </p></td>
+ </tr>
+ <tr class="row1">
+ <td width="150" align="center" valign="middle"><b class="postauthor">{searchresults.POST_AUTHOR_FULL}</b></td>
+ <td height="25">
+ <table width="100%" cellspacing="0" cellpadding="0" border="0">
+ <tr>
+ <td class="gensmall">
+ <div style="float: {S_CONTENT_FLOW_BEGIN};">
+ <!-- IF searchresults.POST_SUBJECT neq "" -->
+ &nbsp;<b>{L_POST_SUBJECT}:</b> <a href="{searchresults.U_VIEW_POST}">{searchresults.POST_SUBJECT}</a>
+ <!-- ELSE -->
+ [ <a href="{searchresults.U_VIEW_POST}">{L_JUMP_TO_POST}</a> ]
+ <!-- ENDIF -->
+ </div>
+ <div style="float: {S_CONTENT_FLOW_END};"><b>{L_POSTED}:</b> {searchresults.POST_DATE}&nbsp;</div>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr class="row1">
+ <td width="150" align="center" valign="top"><br /><span class="postdetails">{L_REPLIES}: <b>{searchresults.TOPIC_REPLIES}</b><br />{L_VIEWS}: <b>{searchresults.TOPIC_VIEWS}</b></span><br /><br /></td>
+ <td valign="top">
+ <table width="100%" cellspacing="5">
+ <tr>
+ <td class="postbody">{searchresults.MESSAGE}</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <!-- ENDIF -->
+ <tr>
+ <td class="spacer" colspan="2"><img src="images/spacer.gif" height="1" alt="" /></td>
+ </tr>
+ <!-- BEGINELSE -->
+ <tr valign="middle">
+ <td colspan="2" class="row3" align="center">{L_NO_SEARCH_RESULTS}</td>
+ </tr>
+ <!-- END searchresults -->
+ <tr>
+ <td class="cat" colspan="2" align="center"><!-- IF S_SELECT_SORT_KEY --><span class="gensmall">{L_SORT_BY}:</span> {S_SELECT_SORT_KEY} {S_SELECT_SORT_DIR}&nbsp;<input class="btnlite" type="submit" name="sort" value="{L_GO}" /><!-- ENDIF --></td>
+ </tr>
+ </table>
+<!-- ENDIF -->
+
+</form>
+
+<div class="gensmall" style="float: {S_CONTENT_FLOW_BEGIN};"><span class="nav">{PAGE_NUMBER}</span> [ {SEARCH_MATCHES} ]</div>
+<div class="nav" style="float: {S_CONTENT_FLOW_END};"><!-- INCLUDE pagination.html --></div>
+
+<br clear="all" /><br />
+
+<!-- INCLUDE breadcrumbs.html -->
+
+<br clear="all" />
+
+<div align="{S_CONTENT_FLOW_END}"><!-- INCLUDE jumpbox.html --></div>
+
+<!-- INCLUDE overall_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/searchbox.html b/phpBB/styles/subsilver2/template/searchbox.html
new file mode 100644
index 0000000000..cb0bb5ba73
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/searchbox.html
@@ -0,0 +1 @@
+<form method="post" name="search" action="{S_SEARCHBOX_ACTION}"><span class="gensmall">{L_SEARCH_FOR}:</span> <input class="post" type="text" name="keywords" size="20" /> <input class="btnlite" type="submit" value="{L_GO}" /></form>
diff --git a/phpBB/styles/subsilver2/template/simple_footer.html b/phpBB/styles/subsilver2/template/simple_footer.html
new file mode 100644
index 0000000000..c8b69dd5ad
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/simple_footer.html
@@ -0,0 +1,20 @@
+
+</div>
+
+<!--
+ We request you retain the full copyright notice below including the link to www.phpbb.com.
+ This not only gives respect to the large amount of time given freely by the developers
+ but also helps build interest, traffic and use of phpBB3. If you (honestly) cannot retain
+ the full copyright we ask you at least leave in place the "Powered by phpBB" line, with
+ "phpBB" linked to www.phpbb.com. If you refuse to include even this then support on our
+ forums may be affected.
+
+ The phpBB Group : 2006
+//-->
+
+<div id="wrapfooter">
+ <span class="copyright">Powered by <a href="http://www.phpbb.com/">phpBB</a> &copy; 2000, 2002, 2005, 2007 phpBB Group</span>
+</div>
+
+</body>
+</html> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/simple_header.html b/phpBB/styles/subsilver2/template/simple_header.html
new file mode 100644
index 0000000000..bcef9a7059
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/simple_header.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" dir="{S_CONTENT_DIRECTION}" lang="{S_USER_LANG}" xml:lang="{S_USER_LANG}">
+<head>
+
+<meta http-equiv="content-type" content="text/html; charset={S_CONTENT_ENCODING}" />
+<meta http-equiv="content-language" content="{S_USER_LANG}" />
+<meta http-equiv="content-style-type" content="text/css" />
+<meta http-equiv="imagetoolbar" content="no" />
+<meta name="resource-type" content="document" />
+<meta name="distribution" content="global" />
+<meta name="copyright" content="2000, 2002, 2005, 2007 phpBB Group" />
+<meta name="keywords" content="" />
+<meta name="description" content="" />
+{META}
+<title>{SITENAME} &bull; <!-- IF S_IN_MCP -->{L_MCP} &bull; <!-- ELSEIF S_IN_UCP -->{L_UCP} &bull; <!-- ENDIF -->{PAGE_TITLE}</title>
+
+<link rel="stylesheet" href="{T_STYLESHEET_LINK}" type="text/css" />
+</head>
+
+<body class="{S_CONTENT_DIRECTION}">
+<a name="top"></a>
+<div id="wrapcentre"> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/template.cfg b/phpBB/styles/subsilver2/template/template.cfg
new file mode 100644
index 0000000000..b6765268bc
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/template.cfg
@@ -0,0 +1,23 @@
+#
+# phpBB Template Configuration File
+#
+# @package phpBB3
+# @copyright (c) 2005 phpBB Group
+# @license http://opensource.org/licenses/gpl-license.php GNU Public License
+#
+#
+# At the left is the name, please do not change this
+# At the right the value is entered
+# For on/off options the valid values are on, off, 1, 0, true and false
+#
+# Values get trimmed, if you want to add a space in front or at the end of
+# the value, then enclose the value with single or double quotes.
+# Single and double quotes do not need to be escaped.
+#
+#
+
+# General Information about this template
+name = subsilver2
+copyright = &copy; phpBB Group, 2003
+version = 3.0.7
+
diff --git a/phpBB/styles/subsilver2/template/ucp_agreement.html b/phpBB/styles/subsilver2/template/ucp_agreement.html
new file mode 100644
index 0000000000..d5420f66a6
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_agreement.html
@@ -0,0 +1,84 @@
+<!-- INCLUDE overall_header.html -->
+
+<!-- IF S_SHOW_COPPA or S_REGISTRATION -->
+
+<!-- IF S_LANG_OPTIONS -->
+<script type="text/javascript">
+// <![CDATA[
+ /**
+ * Change language
+ */
+ function change_language(lang_iso)
+ {
+ document.forms['register'].change_lang.value = lang_iso;
+ document.forms['register'].submit();
+ }
+
+// ]]>
+</script>
+
+ <form method="post" action="{S_UCP_ACTION}" id="register">
+ <table width="100%" cellspacing="0">
+ <tr>
+ <td class="gensmall" align="{S_CONTENT_FLOW_END}">{L_LANGUAGE}: <select name="lang" id="lang" onchange="change_language(this.value); return false;" title="{L_LANGUAGE}">{S_LANG_OPTIONS}</select></td>
+ </tr>
+ </table>
+ {S_HIDDEN_FIELDS}
+ </form>
+<!-- ENDIF -->
+
+ <form method="post" action="{S_UCP_ACTION}">
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th height="25">{SITENAME} - {L_REGISTRATION}</th>
+ </tr>
+ <tr>
+ <td class="row1" align="center">
+ <table width="90%" cellspacing="2" cellpadding="2" border="0" align="center">
+ <tr>
+ <!-- IF S_SHOW_COPPA -->
+ <td class="gen" align="center"><br />{L_COPPA_BIRTHDAY}<br /><br /><a href="{U_COPPA_NO}">{L_COPPA_NO}</a> :: <a href="{U_COPPA_YES}">{L_COPPA_YES}</a><br /><br /></td>
+ <!-- ELSE -->
+ <td>
+ <span class="genmed"><br />{L_TERMS_OF_USE}<br /><br /></span>
+ <div align="center">
+ <input class="btnlite" type="submit" id="agreed" name="agreed" value="{L_AGREE}" /><br /><br />
+ <input class="btnlite" type="submit" name="not_agreed" value="{L_NOT_AGREE}" />
+ </div>
+ </td>
+ <!-- ENDIF -->
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ {S_HIDDEN_FIELDS}
+ {S_FORM_TOKEN}
+ </form>
+
+<!-- ELSEIF S_AGREEMENT -->
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th height="25">{SITENAME} - {AGREEMENT_TITLE}</th>
+ </tr>
+ <tr>
+ <td class="row1" align="center">
+ <table width="90%" cellspacing="2" cellpadding="2" border="0" align="center">
+ <tr>
+ <td>
+ <span class="genmed"><br />{AGREEMENT_TEXT}<br /><br /></span>
+ <div align="center">
+ <a href="{U_BACK}">{L_BACK}</a>
+ </div>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+
+<!-- ENDIF -->
+
+<!-- INCLUDE overall_footer.html -->
diff --git a/phpBB/styles/subsilver2/template/ucp_attachments.html b/phpBB/styles/subsilver2/template/ucp_attachments.html
new file mode 100644
index 0000000000..35dcd33ac4
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_attachments.html
@@ -0,0 +1,58 @@
+<!-- INCLUDE ucp_header.html -->
+
+<!-- IF S_ATTACHMENT_ROWS -->
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th nowrap="nowrap">#</th>
+ <th nowrap="nowrap" width="15%"><a href="{U_SORT_FILENAME}">{L_FILENAME}</a></th>
+ <th nowrap="nowrap" width="5%"><a href="{U_SORT_POST_TIME}">{L_POST_TIME}</a></th>
+ <th nowrap="nowrap" width="5%"><a href="{U_SORT_FILESIZE}">{L_FILESIZE}</a></th>
+ <th nowrap="nowrap" width="5%"><a href="{U_SORT_DOWNLOADS}">{L_DOWNLOADS}</a></th>
+ <th width="2%" nowrap="nowrap">{L_DELETE}</th>
+ </tr>
+ <!-- IF TOTAL_ATTACHMENTS -->
+ <tr>
+ <td class="row3" colspan="6">
+ <table width="100%" cellspacing="1">
+ <tr>
+ <td class="nav" valign="middle" nowrap="nowrap">&nbsp;{PAGE_NUMBER}<br /></td>
+ <td class="gensmall" nowrap="nowrap">&nbsp;[ {TOTAL_ATTACHMENTS} ]&nbsp;</td>
+ <td class="gensmall" width="100%" align="{S_CONTENT_FLOW_END}" nowrap="nowrap"><!-- INCLUDE pagination.html --></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- BEGIN attachrow -->
+ <!-- IF attachrow.S_ROW_COUNT is even --><tr class="row2"><!-- ELSE --><tr class="row1"><!-- ENDIF -->
+
+ <td class="genmed" style="padding: 4px;" align="center" width="2%">&nbsp;{attachrow.ROW_NUMBER}&nbsp;</td>
+ <td style="padding: 4px;"><a class="gen" href="{attachrow.U_VIEW_ATTACHMENT}">{attachrow.FILENAME}</a><br /><span class="gensmall"><!-- IF attachrow.S_IN_MESSAGE --><b>{L_PM}: </b><!-- ELSE --><b>{L_TOPIC}: </b><!-- ENDIF --><a href="{attachrow.U_VIEW_TOPIC}">{attachrow.TOPIC_TITLE}</a></span></td>
+ <td class="gensmall" style="padding: 4px;" align="center" valign="middle" nowrap="nowrap">&nbsp;{attachrow.POST_TIME}&nbsp;</td>
+ <td class="genmed" style="padding: 4px;" align="center" valign="middle" nowrap="nowrap">{attachrow.SIZE}</td>
+ <td class="genmed" style="padding: 4px;" align="center">{attachrow.DOWNLOAD_COUNT}</td>
+ <td style="padding: 4px;" align="center" valign="middle"><input type="checkbox" class="radio" name="attachment[{attachrow.ATTACH_ID}]" value="1" /></td>
+ </tr>
+ <!-- END attachrow -->
+ <tr>
+ <td class="cat" colspan="6"><div style="float: {S_CONTENT_FLOW_BEGIN};"><span class="gensmall">{L_SORT_BY}: </span><select name="sk">{S_SORT_OPTIONS}</select> <select name="sd">{S_ORDER_SELECT}</select>&nbsp;<input class="btnlite" type="submit" name="sort" value="{L_SORT}" /></div><div style="float: {S_CONTENT_FLOW_END};"><input class="btnlite" type="submit" name="delete" value="{L_DELETE_MARKED}" />&nbsp;</div></td>
+ </tr>
+ </table>
+
+ <div style="float: {S_CONTENT_FLOW_END};"><b class="gensmall"><a href="#" onclick="marklist('ucp', 'attachment', true); return false;">{L_MARK_ALL}</a> :: <a href="#" onclick="marklist('ucp', 'attachment', false); return false;">{L_UNMARK_ALL}</a></b></div>
+
+<!-- ELSE -->
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th>{L_TITLE}</th>
+ </tr>
+ <tr class="row1">
+ <td align="center"><b class="genmed">{L_UCP_NO_ATTACHMENTS}</b></td>
+ </tr>
+ </table>
+
+<!-- ENDIF -->
+
+<!-- INCLUDE ucp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/ucp_footer.html b/phpBB/styles/subsilver2/template/ucp_footer.html
new file mode 100644
index 0000000000..1681fe3849
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_footer.html
@@ -0,0 +1,13 @@
+
+ <!-- IF not S_PRIVMSGS or S_SHOW_DRAFTS --> {S_FORM_TOKEN}</form><!-- ENDIF --></td>
+</tr>
+</table>
+<!-- IF (S_SHOW_PM_BOX or S_EDIT_POST) and S_POST_ACTION -->{S_FORM_TOKEN}</form><!-- ENDIF -->
+
+<br clear="all" />
+
+<!-- INCLUDE breadcrumbs.html -->
+
+<div align="{S_CONTENT_FLOW_END}"><!-- INCLUDE jumpbox.html --></div>
+
+<!-- INCLUDE overall_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/ucp_groups_manage.html b/phpBB/styles/subsilver2/template/ucp_groups_manage.html
new file mode 100644
index 0000000000..51e60c8b69
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_groups_manage.html
@@ -0,0 +1,257 @@
+<!-- INCLUDE ucp_header.html -->
+
+<!-- IF S_EDIT -->
+
+ <!-- IF S_ERROR -->
+ <div class="errorbox">
+ <h3>{L_WARNING}</h3>
+ <p>{ERROR_MSG}</p>
+ </div>
+ <!-- ENDIF -->
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th colspan="2">{L_USERGROUPS}</th>
+ </tr>
+ <tr>
+ <td class="row1" colspan="2"><span class="genmed">{L_GROUPS_EXPLAIN}</span></td>
+ </tr>
+
+ <tr>
+ <th colspan="2">{L_GROUP_DETAILS}</th>
+ </tr>
+ <tr>
+ <td class="row1" width="35%"><label<!-- IF not S_SPECIAL_GROUP --> for="group_name"<!-- ENDIF -->>{L_GROUP_NAME}:</label></td>
+ <td class="row2"><!-- IF S_SPECIAL_GROUP --><b<!-- IF GROUP_COLOUR --> style="color: #{GROUP_COLOUR};"<!-- ENDIF -->>{GROUP_NAME}</b><!-- ENDIF --><input name="group_name" type="<!-- IF S_SPECIAL_GROUP -->hidden<!-- ELSE -->text<!-- ENDIF -->" id="group_name" value="{GROUP_INTERNAL_NAME}" /></td>
+ </tr>
+ <tr>
+ <td class="row1" width="35%"><label for="group_desc">{L_GROUP_DESC}:</label></td>
+ <td class="row2"><textarea id="group_desc" name="group_desc" rows="5" cols="45">{GROUP_DESC}</textarea>
+ <br /><input type="checkbox" class="radio" name="desc_parse_bbcode"<!-- IF S_DESC_BBCODE_CHECKED --> checked="checked"<!-- ENDIF --> /> {L_PARSE_BBCODE} &nbsp; <input type="checkbox" class="radio" name="desc_parse_smilies"<!-- IF S_DESC_SMILIES_CHECKED --> checked="checked"<!-- ENDIF --> /> {L_PARSE_SMILIES} &nbsp; <input type="checkbox" class="radio" name="desc_parse_urls"<!-- IF S_DESC_URLS_CHECKED --> checked="checked"<!-- ENDIF --> /> {L_PARSE_URLS}
+ </td>
+ </tr>
+ <!-- IF not S_SPECIAL_GROUP -->
+ <tr>
+ <td class="row1" width="35%"><label for="group_type">{L_GROUP_TYPE}:</label><br /><span>{L_GROUP_TYPE_EXPLAIN}</span></td>
+ <td class="row2">
+ <input name="group_type" type="radio" class="radio" id="group_type" value="{GROUP_TYPE_FREE}"{GROUP_FREE} /> {L_GROUP_OPEN} &nbsp;
+ <input name="group_type" type="radio" class="radio" value="{GROUP_TYPE_OPEN}"{GROUP_OPEN} /> {L_GROUP_REQUEST} &nbsp;
+ <input name="group_type" type="radio" class="radio" value="{GROUP_TYPE_CLOSED}"{GROUP_CLOSED} /> {L_GROUP_CLOSED} &nbsp;
+ <input name="group_type" type="radio" class="radio" value="{GROUP_TYPE_HIDDEN}"{GROUP_HIDDEN} /> {L_GROUP_HIDDEN}
+ </td>
+ </tr>
+ <!-- ELSE -->
+ <tr style="display:none;"><td><input name="group_type" type="hidden" value="{GROUP_TYPE_SPECIAL}" /></td></tr>
+ <!-- ENDIF -->
+
+ <tr>
+ <th colspan="2">{L_GROUP_SETTINGS_SAVE}</th>
+ </tr>
+ <tr>
+ <td class="row1" width="35%"><label for="group_colour">{L_GROUP_COLOR}:</label><br /><span>{L_GROUP_COLOR_EXPLAIN}</span></td>
+ <td class="row2"><input name="group_colour" type="text" id="group_colour" value="{GROUP_COLOUR}" size="6" maxlength="6" />&nbsp;&nbsp;<span>[ <a href="{U_SWATCH}" onclick="popup(this.href, 636, 150, '_swatch'); return false;">{L_COLOUR_SWATCH}</a> ]</span></td>
+ </tr>
+ <tr>
+ <td class="row1" width="35%"><label for="group_rank">{L_GROUP_RANK}:</label></td>
+ <td class="row2"><select name="group_rank" id="group_rank">{S_RANK_OPTIONS}</select></td>
+ </tr>
+ <tr>
+ <th colspan="2">{L_GROUP_AVATAR}</th>
+ </tr>
+ <tr>
+ <td class="row1" width="35%"><label>{L_CURRENT_IMAGE}:</label><br /><span>{L_AVATAR_EXPLAIN}</span></td>
+ <td class="row2">{AVATAR_IMAGE}<br /><br /><input type="checkbox" class="radio" name="delete" />&nbsp;<span>{L_DELETE_AVATAR}</span></td>
+ </tr>
+ <!-- IF not S_IN_AVATAR_GALLERY -->
+ <!-- IF S_UPLOAD_AVATAR_FILE -->
+ <tr>
+ <td class="row1" width="35%"><label for="uploadfile">{L_UPLOAD_AVATAR_FILE}:</label></td>
+ <td class="row2"><input type="hidden" name="MAX_FILE_SIZE" value="{AVATAR_MAX_FILESIZE}" /><input type="file" id="uploadfile" name="uploadfile" /></td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- IF S_UPLOAD_AVATAR_URL -->
+ <tr>
+ <td class="row1" width="35%"><label for="uploadurl">{L_UPLOAD_AVATAR_URL}:</label><br /><span>{L_UPLOAD_AVATAR_URL_EXPLAIN}</span></td>
+ <td class="row2"><input name="uploadurl" type="text" id="uploadurl" value="" /></td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- IF S_LINK_AVATAR -->
+ <tr>
+ <td class="row1" width="35%"><label for="remotelink">{L_LINK_REMOTE_AVATAR}:</label><br /><span>{L_LINK_REMOTE_AVATAR_EXPLAIN}</span></td>
+ <td class="row2"><input name="remotelink" type="text" id="remotelink" value="" /></td>
+ </tr>
+ <tr>
+ <td class="row1" width="35%"><label for="width">{L_LINK_REMOTE_SIZE}:</label><br /><span>{L_LINK_REMOTE_SIZE_EXPLAIN}</span></td>
+ <td class="row2"><input name="width" type="text" id="width" size="3" value="{AVATAR_WIDTH}" /> <span>px X </span> <input type="text" name="height" size="3" value="{AVATAR_HEIGHT}" /> <span>px</span></td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- IF S_DISPLAY_GALLERY -->
+ <tr>
+ <td class="row1" width="35%"><label>{L_AVATAR_GALLERY}:</label></td>
+ <td class="row2"><input class="btnmain" type="submit" name="display_gallery" value="{L_DISPLAY_GALLERY}" /></td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- ELSE -->
+
+ <tr>
+ <th colspan="2">{L_AVATAR_GALLERY}</th>
+ </tr>
+ <tr>
+ <td class="row1" width="35%"><label for="category">{L_AVATAR_CATEGORY}:</label></td>
+ <td class="row2"><select name="category" id="category">{S_CAT_OPTIONS}</select>&nbsp;<input class="btnmain" type="submit" value="{L_GO}" name="display_gallery" /></td>
+ </tr>
+ <tr>
+ <td class="row1" width="35%">
+ <table cellspacing="1">
+ <!-- BEGIN avatar_row -->
+ <tr>
+ <!-- BEGIN avatar_column -->
+ <td class="row1" style="text-align: center;"><img src="{avatar_row.avatar_column.AVATAR_IMAGE}" alt="{avatar_row.avatar_column.AVATAR_NAME}" title="{avatar_row.avatar_column.AVATAR_NAME}" /></td>
+ <!-- END avatar_column -->
+ </tr>
+ <tr>
+ <!-- BEGIN avatar_option_column -->
+ <td class="row2" style="text-align: center;"><input type="radio" class="radio" name="avatar_select" value="{avatar_row.avatar_option_column.S_OPTIONS_AVATAR}" /></td>
+ <!-- END avatar_option_column -->
+ </tr>
+ <!-- END avatar_row -->
+ </table>
+ </td>
+ <td class="row2"><input class="btnmain" type="submit" name="cancel" value="{L_CANCEL}" /></td>
+ </tr>
+
+ <!-- ENDIF -->
+
+ <tr>
+ <td class="cat" colspan="2" align="center"><input class="btnlite" type="submit" id="submit" name="update" value="{L_SUBMIT}" />&nbsp;
+ <input class="btnmain" type="reset" id="reset" name="reset" value="{L_RESET}" /></td>
+ </tr>
+ </table>
+
+<!-- ELSEIF S_LIST -->
+
+ <h1>{L_GROUP_MEMBERS}</h1>
+
+ <p>{L_GROUP_MEMBERS_EXPLAIN}</p>
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th>{L_USERNAME}</th>
+ <th>{L_GROUP_DEFAULT}</th>
+ <th>{L_JOINED}</th>
+ <th>{L_POSTS}</th>
+ <th>{L_MARK}</th>
+ </tr>
+
+ <tr>
+ <td class="row3" colspan="5"><b>{L_GROUP_LEAD}</b></td>
+ </tr>
+ <!-- BEGIN leader -->
+ <!-- IF leader.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+ <td>{leader.USERNAME_FULL}</td>
+ <td style="text-align: center;"><!-- IF leader.S_GROUP_DEFAULT -->{L_YES}<!-- ELSE -->{L_NO}<!-- ENDIF --></td>
+ <td style="text-align: center;">{leader.JOINED}</td>
+ <td style="text-align: center;">{leader.USER_POSTS}</td>
+ <td style="text-align: center;"></td>
+ </tr>
+ <!-- END leader -->
+
+ <!-- BEGIN member -->
+ <!-- IF member.S_PENDING -->
+ <tr>
+ <td class="row3" colspan="5"><b>{L_GROUP_PENDING}</b></td>
+ </tr>
+ <!-- ELSEIF member.S_APPROVED -->
+ <tr>
+ <td class="row3" colspan="5"><b>{L_GROUP_APPROVED}</b></td>
+ </tr>
+ <!-- ELSE -->
+ <!-- IF member.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+ <td>{member.USERNAME_FULL}</td>
+ <td style="text-align: center;"><!-- IF member.S_GROUP_DEFAULT -->{L_YES}<!-- ELSE -->{L_NO}<!-- ENDIF --></td>
+ <td style="text-align: center;">{member.JOINED}</td>
+ <td style="text-align: center;">{member.USER_POSTS}</td>
+ <td style="text-align: center;"><input type="checkbox" class="radio" name="mark[]" value="{member.USER_ID}" /></td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- BEGINELSE -->
+ <tr>
+ <td class="row1" colspan="5" style="text-align: center;">{L_GROUPS_NO_MEMBERS}</td>
+ </tr>
+ <!-- END member -->
+ <tr>
+ <td class="cat" colspan="5" align="center"><div style="float: {S_CONTENT_FLOW_END};"><span class="small"><a href="#" onclick="marklist('ucp', 'mark', true); return false;">{L_MARK_ALL}</a> :: <a href="#" onclick="marklist('ucp', 'mark', false); return false;">{L_UNMARK_ALL}</a></span></div><div style="float: {S_CONTENT_FLOW_BEGIN};"><select name="action"><option class="sep" value="">{L_SELECT_OPTION}</option>{S_ACTION_OPTIONS}</select> <input class="btnmain" type="submit" name="update" value="{L_SUBMIT}" /></div></td>
+ </tr>
+ </table>
+
+ <div class="pagination" style="float: {S_CONTENT_FLOW_BEGIN};">
+ <!-- IF PAGINATION -->
+ <!-- INCLUDE pagination.html -->
+ <!-- ELSE -->
+ {S_ON_PAGE}
+ <!-- ENDIF -->
+ </div>
+
+ <br />
+ <br />
+
+ <h1>{L_ADD_USERS}</h1>
+
+ <p>{L_ADD_USERS_UCP_EXPLAIN}</p>
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th colspan="2">{L_ADD_USERS}</th>
+ </tr>
+ <tr>
+ <td class="row1"><label for="default">{L_USER_GROUP_DEFAULT}:</label><br /><span>{L_USER_GROUP_DEFAULT_EXPLAIN}</span></td>
+ <td class="row2"><input name="default" type="radio" class="radio" value="1" /> {L_YES} &nbsp; <input name="default" type="radio" class="radio" id="default" value="0" checked="checked" /> {L_NO}</td>
+ </tr>
+ <tr>
+ <td class="row1"><label for="usernames">{L_USERNAME}:</label><br /><span>{L_USERNAMES_EXPLAIN}</span></td>
+ <td class="row2"><textarea id="usernames" name="usernames" cols="40" rows="5"></textarea><br />[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</td>
+ </tr>
+ <tr>
+ <td class="cat" colspan="2" align="center"><input class="btnmain" type="submit" name="addusers" value="{L_SUBMIT}" /></td>
+ </tr>
+ </table>
+
+<!-- ELSE -->
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th colspan="3">{L_USERGROUPS}</th>
+ </tr>
+ <tr>
+ <td class="row1" colspan="3"><span class="genmed">{L_GROUPS_EXPLAIN}</span></td>
+ </tr>
+
+ <tr>
+ <th>{L_GROUP_DETAILS}</th>
+ <th colspan="2">{L_OPTIONS}</th>
+ </tr>
+ <tr>
+ <td class="row3" colspan="3"><b class="gensmall">{L_GROUP_LEADER}</b></td>
+ </tr>
+ <!-- BEGIN leader -->
+ <!-- IF leader.S_ROW_COUNT is odd --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+
+ <td><b class="genmed"<!-- IF leader.GROUP_COLOUR --> style="color: #{leader.GROUP_COLOUR};"<!-- ENDIF -->>{leader.GROUP_NAME}</b><!-- IF leader.GROUP_DESC --><p class="forumdesc">{leader.GROUP_DESC}</p><!-- ENDIF --></td>
+ <td style="text-align: center;"><a href="{leader.U_EDIT}">{L_EDIT}</a></td>
+ <td style="text-align: center;"><a href="{leader.U_LIST}">{L_GROUP_LIST}</a></td>
+
+ </tr>
+ <!-- BEGINELSE -->
+ <tr>
+ <td class="row2" align="center" colspan="3"><b class="genmed">{L_NO_LEADERS}</b></td>
+ </tr>
+ <!-- END leader -->
+
+ <tr>
+ <td class="cat" align="{S_CONTENT_FLOW_END}" colspan="3">&nbsp;</td>
+ </tr>
+ </table>
+
+<!-- ENDIF -->
+
+<!-- INCLUDE ucp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/ucp_groups_membership.html b/phpBB/styles/subsilver2/template/ucp_groups_membership.html
new file mode 100644
index 0000000000..b92dabc967
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_groups_membership.html
@@ -0,0 +1,93 @@
+<!-- INCLUDE ucp_header.html -->
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th colspan="3">{L_USERGROUPS}</th>
+</tr>
+<tr>
+ <td class="row1" colspan="3"><span class="genmed">{L_GROUPS_EXPLAIN}</span></td>
+</tr>
+
+<tr>
+ <th colspan="2">{L_GROUP_DETAILS}</th>
+ <th>{L_SELECT}</th>
+</tr>
+
+<!-- BEGIN leader -->
+ <!-- IF leader.S_FIRST_ROW -->
+ <tr>
+ <td class="row3" colspan="3"><b class="gensmall">{L_GROUP_LEADER}</b></td>
+ </tr>
+ <!-- ENDIF -->
+
+ <!-- IF leader.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+ <td width="6%" align="center" nowrap="nowrap"><!-- IF S_CHANGE_DEFAULT --><input type="radio" class="radio" name="default"<!-- IF leader.S_GROUP_DEFAULT --> checked="checked"<!-- ENDIF --> value="{leader.GROUP_ID}" /><!-- ENDIF --></td>
+ <td>
+ <b class="genmed"><a href="{leader.U_VIEW_GROUP}"<!-- IF leader.GROUP_COLOUR --> style="color: #{leader.GROUP_COLOUR};"<!-- ENDIF -->>{leader.GROUP_NAME}</a></b>
+ <!-- IF leader.GROUP_DESC --><br /><span class="genmed">{leader.GROUP_DESC}</span><!-- ENDIF -->
+ <!-- IF not leader.GROUP_SPECIAL --><br /><i class="gensmall">{leader.GROUP_STATUS}</i><!-- ENDIF -->
+ </td>
+ <td width="6%" align="center" nowrap="nowrap"><!-- IF not leader.GROUP_SPECIAL --><input type="radio" class="radio" name="selected" value="{leader.GROUP_ID}" /><!-- ENDIF --></td>
+ </tr>
+<!-- END leader -->
+
+<!-- BEGIN member -->
+ <!-- IF member.S_FIRST_ROW -->
+ <tr>
+ <td class="row3" colspan="3"><b class="gensmall">{L_GROUP_MEMBER}</b></td>
+ </tr>
+ <!-- ENDIF -->
+
+ <!-- IF member.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+ <td width="6%" align="center" nowrap="nowrap"><!-- IF S_CHANGE_DEFAULT --><input type="radio" class="radio" name="default"<!-- IF member.S_GROUP_DEFAULT --> checked="checked"<!-- ENDIF --> value="{member.GROUP_ID}" /><!-- ENDIF --></td>
+ <td>
+ <b class="genmed"><a href="{member.U_VIEW_GROUP}"<!-- IF member.GROUP_COLOUR --> style="color: #{member.GROUP_COLOUR};"<!-- ENDIF -->>{member.GROUP_NAME}</a></b>
+ <!-- IF member.GROUP_DESC --><br /><span class="genmed">{member.GROUP_DESC}</span><!-- ENDIF -->
+ <!-- IF not member.GROUP_SPECIAL --><br /><i class="gensmall">{member.GROUP_STATUS}</i><!-- ENDIF -->
+ </td>
+ <td width="6%" align="center" nowrap="nowrap"><!-- IF not member.GROUP_SPECIAL --><input type="radio" class="radio" name="selected" value="{member.GROUP_ID}" /><!-- ENDIF --></td>
+ </tr>
+<!-- END member -->
+
+<!-- BEGIN pending -->
+ <!-- IF pending.S_FIRST_ROW -->
+ <tr>
+ <td class="row3" colspan="3"><b class="gensmall">{L_GROUP_PENDING}</b></td>
+ </tr>
+ <!-- ENDIF -->
+
+ <!-- IF pending.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+ <td width="6%" align="center" nowrap="nowrap">&nbsp;</td>
+ <td>
+ <b class="genmed"><a href="{pending.U_VIEW_GROUP}"<!-- IF pending.GROUP_COLOUR --> style="color: #{pending.GROUP_COLOUR};"<!-- ENDIF -->>{pending.GROUP_NAME}</a></b>
+ <!-- IF pending.GROUP_DESC --><br /><span class="genmed">{pending.GROUP_DESC}</span><!-- ENDIF -->
+ <!-- IF not pending.GROUP_SPECIAL --><br /><i class="gensmall">{pending.GROUP_STATUS}</i><!-- ENDIF -->
+ </td>
+ <td width="6%" align="center" nowrap="nowrap"><!-- IF not pending.GROUP_SPECIAL --><input type="radio" class="radio" name="selected" value="{pending.GROUP_ID}" /><!-- ENDIF --></td>
+ </tr>
+<!-- END pending -->
+
+<!-- BEGIN nonmember -->
+ <!-- IF nonmember.S_FIRST_ROW -->
+ <tr>
+ <td class="row3" colspan="3"><b class="gensmall">{L_GROUP_NONMEMBER}</b></td>
+ </tr>
+ <!-- ENDIF -->
+
+ <!-- IF nonmember.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+ <td width="6%" align="center" nowrap="nowrap">&nbsp;</td>
+ <td>
+ <b class="genmed"><a href="{nonmember.U_VIEW_GROUP}"<!-- IF nonmember.GROUP_COLOUR --> style="color: #{nonmember.GROUP_COLOUR};"<!-- ENDIF -->>{nonmember.GROUP_NAME}</a></b>
+ <!-- IF nonmember.GROUP_DESC --><br /><span class="genmed">{nonmember.GROUP_DESC}</span><!-- ENDIF -->
+ <!-- IF not nonmember.GROUP_SPECIAL --><br /><i class="gensmall">{nonmember.GROUP_STATUS}</i><!-- ENDIF -->
+ </td>
+ <td width="6%" align="center" nowrap="nowrap"><!-- IF nonmember.S_CAN_JOIN --><input type="radio" class="radio" name="selected" value="{nonmember.GROUP_ID}" /><!-- ENDIF --></td>
+ </tr>
+<!-- END nonmember -->
+
+<tr>
+ <td class="cat" colspan="3"><!-- IF S_CHANGE_DEFAULT --><div style="float: {S_CONTENT_FLOW_BEGIN};"><input class="btnlite" type="submit" name="change_default" value="{L_CHANGE_DEFAULT_GROUP}" /></div><!-- ENDIF --><div style="float: {S_CONTENT_FLOW_END};"><span class="genmed">{L_SELECT}: </span><select name="action"><option value="join">{L_JOIN_SELECTED}</option><option value="resign">{L_RESIGN_SELECTED}</option><option value="demote">{L_DEMOTE_SELECTED}</option></select>&nbsp;<input class="btnmain" type="submit" name="submit" value="{L_SUBMIT}" />&nbsp;</div></td>
+</tr>
+</table>
+
+<!-- INCLUDE ucp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/ucp_header.html b/phpBB/styles/subsilver2/template/ucp_header.html
new file mode 100644
index 0000000000..ea64dcb299
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_header.html
@@ -0,0 +1,163 @@
+<!-- INCLUDE overall_header.html -->
+
+
+<!-- IF S_SHOW_PM_BOX and S_POST_ACTION -->
+ <form action="{S_POST_ACTION}" method="post" name="postform"{S_FORM_ENCTYPE}>
+<!-- ENDIF -->
+<table width="100%" cellspacing="0" cellpadding="0" border="0">
+<tr>
+ <td width="20%" valign="top">
+
+<!-- IF S_SHOW_PM_BOX and S_POST_ACTION -->
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th>{L_PM_TO}</th>
+ </tr>
+ <!-- IF not S_ALLOW_MASS_PM -->
+ <tr>
+ <td class="row1"><b class="genmed">{L_USERNAME}:</b><br />[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</td>
+ </tr>
+
+ <tr>
+ <td class="row2"><input class="post" type="text" name="username_list" size="20" value="" />&nbsp;<input class="post" type="submit" name="add_to" value="{L_ADD}" /></td>
+ </tr>
+ <!-- ELSE -->
+ <tr>
+ <td class="row1"><b class="genmed">{L_USERNAMES}:</b></td>
+ </tr>
+ <tr>
+ <td class="row2"><textarea name="username_list" rows="5" cols="22"></textarea><br />
+ [ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]
+ </td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- IF S_GROUP_OPTIONS -->
+ <tr>
+ <td class="row1"><b class="genmed">{L_USERGROUPS}:</b></td>
+ </tr>
+ <tr>
+ <td class="row2"><select name="group_list[]" multiple="multiple" size="5" style="width:150px">{S_GROUP_OPTIONS}</select></td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- IF S_ALLOW_MASS_PM -->
+ <tr>
+ <td class="row1"><div style="float: {S_CONTENT_FLOW_BEGIN};">&nbsp;<input class="post" type="submit" name="add_bcc" value="{L_ADD_BCC}" />&nbsp;</div><div style="float: {S_CONTENT_FLOW_END};">&nbsp;<input class="post" type="submit" name="add_to" value="{L_ADD_TO}" />&nbsp;</div></td>
+ </tr>
+ <!-- ENDIF -->
+ </table>
+ <div style="padding: 2px;"></div>
+<!-- ENDIF -->
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th>{L_OPTIONS}</th>
+</tr>
+
+<!-- BEGIN l_block1 -->
+ <tr>
+ <!-- IF l_block1.S_SELECTED -->
+ <td class="row1"><b class="nav">{l_block1.L_TITLE}</b>
+
+ <!-- IF S_PRIVMSGS -->
+
+ <!-- the ! at the beginning of the loop name forces the loop to be not a nested one of l_block1 (it gets parsed separately) -->
+ <!-- BEGIN !folder -->
+ <!-- IF folder.S_FIRST_ROW -->
+ <ul class="nav" style="margin: 0; padding: 0; list-style-type: none; line-height: 175%;">
+ <!-- ENDIF -->
+
+ <!-- IF folder.S_CUR_FOLDER -->
+ <li class="row2" style="padding: 1px 0;">&#187; <a href="{folder.U_FOLDER}">{folder.FOLDER_NAME}<!-- IF folder.S_UNREAD_MESSAGES --> ({folder.UNREAD_MESSAGES})<!-- ENDIF --></a></li>
+ <!-- ELSE -->
+ <li>&#187; <a href="{folder.U_FOLDER}">{folder.FOLDER_NAME}<!-- IF folder.S_UNREAD_MESSAGES --> ({folder.UNREAD_MESSAGES})<!-- ENDIF --></a></li>
+ <!-- ENDIF -->
+
+ <!-- IF folder.S_LAST_ROW -->
+ </ul>
+ <hr />
+ <!-- ENDIF -->
+ <!-- END !folder -->
+
+ <!-- ENDIF -->
+
+ <ul class="nav" style="margin: 0; padding: 0; list-style-type: none; line-height: 175%;">
+ <!-- BEGIN l_block2 -->
+ <li>&#187; <!-- IF l_block1.l_block2.S_SELECTED --><b>{l_block1.l_block2.L_TITLE}</b><!-- ELSE --><a href="{l_block1.l_block2.U_TITLE}">{l_block1.l_block2.L_TITLE}</a><!-- ENDIF --></li>
+ <!-- END l_block2 -->
+ </ul>
+ <!-- ELSE -->
+ <td class="row2" nowrap="nowrap" onmouseover="this.className='row1'" onmouseout="this.className='row2'" onclick="location.href=this.firstChild.href;"><a class="nav" href="{l_block1.U_TITLE}">{l_block1.L_TITLE}</a>
+ <!-- ENDIF -->
+ </td>
+ </tr>
+<!-- END l_block1 -->
+</table>
+
+<div style="padding: 2px;"></div>
+
+<!-- IF S_SHOW_COLOUR_LEGEND -->
+ <table class="tablebg" width="100%" cellspacing="1" cellpadding="0">
+ <tr>
+ <th colspan="2">{L_MESSAGE_COLOURS}</th>
+ </tr>
+ <!-- BEGIN pm_colour_info -->
+ <tr>
+ <!-- IF not pm_colour_info.IMG -->
+ <td class="row1 {pm_colour_info.CLASS}" width="5"><img src="images/spacer.gif" width="5" alt="{pm_colour_info.LANG}" /></td>
+ <!-- ELSE -->
+ <td class="row1" width="25" align="center">{pm_colour_info.IMG}</td>
+ <!-- ENDIF -->
+ <td class="row1"><span class="genmed">{pm_colour_info.LANG}</span></td>
+ </tr>
+ <!-- END pm_colour_info -->
+ </table>
+
+ <div style="padding: 2px;"></div>
+<!-- ENDIF -->
+
+<!-- IF S_ZEBRA_ENABLED and S_ZEBRA_FRIENDS_ENABLED -->
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th>{L_FRIENDS}</th>
+ </tr>
+ <tr>
+ <td class="row1" align="center">
+
+ <b class="genmed" style="color:green">{L_FRIENDS_ONLINE}</b>
+
+ <ul class="nav" style="margin: 0; padding: 0; list-style-type: none; line-height: 175%;">
+ <!-- BEGIN friends_online -->
+ <li>{friends_online.USERNAME_FULL}
+ <!-- IF S_SHOW_PM_BOX -->
+ &nbsp;[ <input class="post" style="font-size: 90%;" type="submit" name="add_to[{friends_online.USER_ID}]" value="{L_ADD}" /> ]
+ <!-- ENDIF -->
+ </li>
+ <!-- BEGINELSE -->
+ <li>{L_NO_FRIENDS_ONLINE}</li>
+ <!-- END friends_online -->
+ </ul>
+
+ <hr />
+
+ <b class="genmed" style="color:red">{L_FRIENDS_OFFLINE}</b>
+
+ <ul class="nav" style="margin: 0; padding: 0; list-style-type: none; line-height: 175%;">
+ <!-- BEGIN friends_offline -->
+ <li>{friends_offline.USERNAME_FULL}
+ <!-- IF S_SHOW_PM_BOX -->
+ &nbsp;[ <input class="post" style="font-size: 90%;" type="submit" name="add_to[{friends_offline.USER_ID}]" value="{L_ADD}" /> ]
+ <!-- ENDIF -->
+ </li>
+ <!-- BEGINELSE -->
+ <li>{L_NO_FRIENDS_OFFLINE}</li>
+ <!-- END friends_offline -->
+ </ul>
+
+ </td>
+ </tr>
+ </table>
+<!-- ENDIF -->
+
+</td>
+<td><img src="images/spacer.gif" width="4" alt="" /></td>
+<td width="80%" valign="top"><!-- IF not S_PRIVMSGS or S_SHOW_DRAFTS --><form name="ucp" id="ucp" method="post" action="{S_UCP_ACTION}"{S_FORM_ENCTYPE}><!-- ENDIF -->
diff --git a/phpBB/styles/subsilver2/template/ucp_main_bookmarks.html b/phpBB/styles/subsilver2/template/ucp_main_bookmarks.html
new file mode 100644
index 0000000000..191e25c297
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_main_bookmarks.html
@@ -0,0 +1,77 @@
+<!-- INCLUDE ucp_header.html -->
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th colspan="4">{L_UCP}</th>
+</tr>
+<tr>
+ <td class="row1" colspan="4" align="center"><span class="genmed">{L_BOOKMARKS_EXPLAIN}</span></td>
+</tr>
+<!-- IF .topicrow -->
+<tr>
+ <th colspan="4">{L_BOOKMARKS}</th>
+</tr>
+<!-- ENDIF -->
+
+<!-- IF S_NO_DISPLAY_BOOKMARKS -->
+ <tr class="row1">
+ <td colspan="4" align="center"><b class="genmed">{L_BOOKMARKS_DISABLED}</b></td>
+ </tr>
+<!-- ELSE -->
+
+ <!-- IF TOTAL_TOPICS -->
+ <tr>
+ <td class="row3" colspan="4">
+ <table width="100%" cellspacing="1">
+ <tr>
+ <td class="nav" valign="middle" nowrap="nowrap">&nbsp;{PAGE_NUMBER}<br /></td>
+ <td class="gensmall" nowrap="nowrap">&nbsp;[ {TOTAL_TOPICS} ]&nbsp;</td>
+ <td class="gensmall" width="100%" align="{S_CONTENT_FLOW_END}" nowrap="nowrap"><!-- INCLUDE pagination.html --></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <!-- ENDIF -->
+
+ <!-- BEGIN topicrow -->
+
+ <!-- IF topicrow.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+ <td style="padding: 4px;" width="20" align="center" valign="middle">{topicrow.TOPIC_FOLDER_IMG}</td>
+ <!-- IF topicrow.S_DELETED_TOPIC -->
+ <td class="postdetails" style="padding: 4px" width="100%" colspan="2">{L_DELETED_TOPIC}</td>
+ <!-- ELSE -->
+ <td style="padding: 4px;" width="100%" valign="top">
+ <p class="topictitle"><!-- IF topicrow.S_UNREAD_TOPIC --><a href="{topicrow.U_NEWEST_POST}">{NEWEST_POST_IMG}</a> <!-- ENDIF -->{topicrow.ATTACH_ICON_IMG} <a href="{topicrow.U_VIEW_TOPIC}">{topicrow.TOPIC_TITLE}</a></p>
+ <!-- IF topicrow.S_GLOBAL_TOPIC --><span class="gensmall">{L_GLOBAL_ANNOUNCEMENT}</span><!-- ELSE --><span class="gensmall"><b>{L_FORUM}: </b><a href="{topicrow.U_VIEW_FORUM}">{topicrow.FORUM_NAME}</a></span><!-- ENDIF -->
+ <!-- IF topicrow.PAGINATION -->
+ <p class="gensmall"> [ {GOTO_PAGE_IMG}{L_GOTO_PAGE}: {topicrow.PAGINATION} ] </p>
+ <!-- ENDIF -->
+ </td>
+ <td style="padding: 4px;" align="{S_CONTENT_FLOW_BEGIN}" valign="top" nowrap="nowrap">
+ <p class="topicdetails">{topicrow.LAST_POST_TIME}</p>
+ <p class="topicdetails">{topicrow.LAST_POST_AUTHOR_FULL}
+ <a href="{topicrow.U_LAST_POST}">{LAST_POST_IMG}</a>
+ </p>
+ </td>
+ <!-- ENDIF -->
+ <td style="padding: 4px;"> <input type="checkbox" class="radio" name="t[{topicrow.TOPIC_ID}]" /> </td>
+ </tr>
+ <!-- BEGINELSE -->
+ <tr class="row1">
+ <td colspan="4" align="center"><b class="genmed">{L_NO_BOOKMARKS}</b></td>
+ </tr>
+ <!-- END topicrow -->
+
+ <!-- IF .topicrow -->
+ <tr>
+ <td class="cat" colspan="5" align="{S_CONTENT_FLOW_END}"><input class="btnlite" type="submit" name="unbookmark" value="{L_REMOVE_BOOKMARK_MARKED}" />&nbsp;</td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- ENDIF -->
+</table>
+
+<!-- IF not S_NO_DISPLAY_BOOKMARKS and .topicrow -->
+ <div class="gensmall" style="float: {S_CONTENT_FLOW_END}; padding-top: 2px;"><b><a href="#" onclick="marklist('ucp', 't', true); return false;">{L_MARK_ALL}</a> :: <a href="#" onclick="marklist('ucp', 't', false); return false;">{L_UNMARK_ALL}</a></b></div>
+<!-- ENDIF -->
+
+<!-- INCLUDE ucp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/ucp_main_drafts.html b/phpBB/styles/subsilver2/template/ucp_main_drafts.html
new file mode 100644
index 0000000000..e61c253b04
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_main_drafts.html
@@ -0,0 +1,101 @@
+<!-- INCLUDE ucp_header.html -->
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th colspan="4">{L_UCP}</th>
+</tr>
+<tr>
+ <td class="row1" colspan="4" align="center"><span class="genmed">{L_DRAFTS_EXPLAIN}</span></td>
+</tr>
+
+<!-- IF ERROR -->
+ <tr>
+ <td class="row1" colspan="2" align="center"><span class="genmed error">{ERROR}</span></td>
+ </tr>
+<!-- ENDIF -->
+
+<!-- IF not S_EDIT_DRAFT -->
+
+ <!-- IF S_DRAFT_ROWS -->
+ <tr>
+ <th>{L_SAVE_DATE}</th>
+ <th>{L_DRAFT_TITLE}</th>
+ <th>{L_OPTIONS}</th>
+ <th>{L_DELETE}</th>
+ </tr>
+ <!-- ENDIF -->
+
+ <!-- BEGIN draftrow -->
+
+ <!-- IF draftrow.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+
+ <td class="postdetails" style="padding: 4px;" nowrap="nowrap">{draftrow.DATE}</td>
+ <td style="padding: 4px;" valign="top" width="100%">
+ <p class="topictitle">{draftrow.DRAFT_SUBJECT}</p>
+ <!-- IF draftrow.S_LINK_TOPIC --><span class="gensmall">{L_TOPIC}: <a href="{draftrow.U_VIEW}">{draftrow.TITLE}</a></span>
+ <!-- ELSEIF draftrow.S_LINK_FORUM --><span class="gensmall">{L_FORUM}: <a href="{draftrow.U_VIEW}">{draftrow.TITLE}</a></span>
+ <!-- ELSEIF draftrow.S_LINK_PM --><span class="gensmall">{L_PRIVATE_MESSAGE}</span>
+ <!-- ELSE --><span class="gensmall">{L_NO_TOPIC_FORUM}</span><!-- ENDIF -->
+ </td>
+ <td style="padding: 4px;" align="center" nowrap="nowrap"><span class="genmed"><!-- IF draftrow.U_INSERT --><a href="{draftrow.U_INSERT}">{L_LOAD_DRAFT}</a><br /><!-- ENDIF --><a href="{draftrow.U_VIEW_EDIT}">{L_VIEW_EDIT}</a></span></td>
+ <td style="padding: 4px;" align="center"><input type="checkbox" class="radio" name="d[{draftrow.DRAFT_ID}]" /></td>
+ </tr>
+ <!-- BEGINELSE -->
+ <tr>
+ <td class="row1" colspan="4" align="center"><b class="genmed">{L_NO_SAVED_DRAFTS}</b></td>
+ </tr>
+ <!-- END draftrow -->
+
+ <!-- IF S_DRAFT_ROWS -->
+ <tr>
+ <td class="cat" colspan="4" align="{S_CONTENT_FLOW_END}"><input class="btnlite" type="submit" name="delete" value="{L_DELETE_MARKED}" />&nbsp;</td>
+ </tr>
+ <!-- ENDIF -->
+
+<!-- ELSEIF S_EDIT_DRAFT -->
+ <tr>
+ <td class="row1" width="22%"><b class="genmed">{L_SUBJECT}:</b></td>
+ <td class="row2"><input class="post" style="width:450px" type="text" name="subject" size="45" maxlength="64" tabindex="2" value="{DRAFT_SUBJECT}" /></td>
+ </tr>
+ <tr>
+ <td class="row1" width="22%"><b class="genmed">{L_MESSAGE}: </b><br /><span class="gensmall">{L_EDIT_DRAFT_EXPLAIN}</span></td>
+ <td class="row2">
+ <script type="text/javascript">
+ // <![CDATA[
+ var form_name = 'ucp';
+ var text_name = 'message';
+ // ]]>
+ </script>
+ <table cellspacing="0" cellpadding="2" border="0">
+ <!-- INCLUDE posting_buttons.html -->
+ <tr>
+ <td colspan="9"><textarea class="post" name="message" rows="10" cols="70" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onfocus="initInsertions();">{DRAFT_MESSAGE}</textarea></td>
+ </tr>
+ <tr>
+ <td colspan="9">
+ <table cellspacing="0" cellpadding="0" border="0" width="100%">
+ <tr>
+ <td align="{S_CONTENT_FLOW_BEGIN}">
+ <script type="text/javascript">
+ // <![CDATA[
+ colorPalette('h', 6, 5)
+ // ]]>
+ </script>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr class="row1">
+ <td colspan="9" align="{S_CONTENT_FLOW_BEGIN}"><p class="topictitle"><a href="{S_UCP_ACTION}">{L_BACK_TO_DRAFTS}</a></p></td>
+ </tr>
+ <tr>
+ <td class="cat" colspan="2" align="center">{S_HIDDEN_FIELDS}<input class="btnmain" type="submit" name="submit" value="{L_SUBMIT}" />&nbsp;&nbsp;<input class="btnlite" type="reset" value="{L_RESET}" name="reset" /></td>
+ </tr>
+<!-- ENDIF -->
+</table>
+
+<!-- INCLUDE ucp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/ucp_main_front.html b/phpBB/styles/subsilver2/template/ucp_main_front.html
new file mode 100644
index 0000000000..fdef0bd949
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_main_front.html
@@ -0,0 +1,72 @@
+<!-- INCLUDE ucp_header.html -->
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th colspan="3">{L_UCP}</th>
+</tr>
+<tr>
+ <td class="row1" colspan="3" align="center"><p class="genmed">{L_UCP_WELCOME}</p></td>
+</tr>
+<tr>
+ <th colspan="3">{L_IMPORTANT_NEWS}</th>
+</tr>
+
+<!-- BEGIN topicrow -->
+
+ <!-- IF topicrow.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+ <td class="row1" width="25" align="center">{topicrow.TOPIC_FOLDER_IMG}</td>
+ <td class="row1" width="100%">
+ <p class="topictitle"><!-- IF topicrow.S_UNREAD --><a href="{topicrow.U_NEWEST_POST}">{NEWEST_POST_IMG}</a> <!-- ENDIF -->{topicrow.ATTACH_ICON_IMG} <a href="{topicrow.U_VIEW_TOPIC}">{topicrow.TOPIC_TITLE}</a></p><p class="gensmall">{topicrow.GOTO_PAGE}</p>
+ </td>
+ <td class="row1" width="120" align="center" nowrap="nowrap">
+ <p class="topicdetails">{topicrow.LAST_POST_TIME}</p>
+ <p class="topicdetails">{topicrow.LAST_POST_AUTHOR_FULL}
+ <a href="{topicrow.U_LAST_POST}">{LAST_POST_IMG}</a>
+ </p>
+ </td>
+ </tr>
+<!-- BEGINELSE -->
+ <tr class="row1">
+ <td align="center" colspan="3"><b class="gen">{L_NO_IMPORTANT_NEWS}</b></td>
+ </tr>
+<!-- END topicrow -->
+
+<tr>
+ <th colspan="3">{L_YOUR_DETAILS}</th>
+</tr>
+<tr>
+ <td class="row1" colspan="3">
+ <table width="100%" cellspacing="1" cellpadding="4">
+ <tr>
+ <td align="{S_CONTENT_FLOW_END}" valign="top" nowrap="nowrap"><b class="genmed">{L_JOINED}: </b></td>
+ <td width="100%"><b class="gen">{JOINED}</b></td>
+ </tr>
+ <tr>
+ <td align="{S_CONTENT_FLOW_END}" valign="top" nowrap="nowrap"><b class="genmed">{L_TOTAL_POSTS}: </b></td>
+ <td><!-- IF POSTS_PCT --><b class="gen">{POSTS}</b><br /><span class="genmed">[{POSTS_PCT} / {POSTS_DAY}]<!-- IF S_DISPLAY_SEARCH --><br /><a href="{U_SEARCH_SELF}">{L_SEARCH_YOUR_POSTS}</a><!-- ENDIF --></span><!-- ELSE --><b class="gen">{POSTS}<b><!-- ENDIF --></td>
+ </tr>
+ <!-- IF S_SHOW_ACTIVITY -->
+ <tr>
+ <td align="{S_CONTENT_FLOW_END}" valign="top" nowrap="nowrap"><b class="genmed">{L_ACTIVE_IN_FORUM}: </b></td>
+ <td><!-- IF ACTIVE_FORUM --><b><a class="gen" href="{U_ACTIVE_FORUM}">{ACTIVE_FORUM}</a></b><br /><span class="genmed">[ {ACTIVE_FORUM_POSTS} / {ACTIVE_FORUM_PCT} ]</span><!-- ELSE --><span class="gen">-</span><!-- ENDIF --></td>
+ </tr>
+ <tr>
+ <td align="{S_CONTENT_FLOW_END}" valign="top" nowrap="nowrap"><b class="genmed">{L_ACTIVE_IN_TOPIC}: </b></td>
+ <td><!-- IF ACTIVE_TOPIC --><b><a class="gen" href="{U_ACTIVE_TOPIC}">{ACTIVE_TOPIC}</a></b><br /><span class="genmed">[ {ACTIVE_TOPIC_POSTS} / {ACTIVE_TOPIC_PCT} ]</span><!-- ELSE --><span class="gen">-</span><!-- ENDIF --></td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- IF WARNINGS -->
+ <tr>
+ <td align="{S_CONTENT_FLOW_END}" valign="middle" nowrap="nowrap"><b class="genmed">{L_YOUR_WARNINGS}: </b></td>
+ <td class="genmed">{WARNING_IMG} [ <b>{WARNINGS}</b> ]</td>
+ </tr>
+ <!-- ENDIF -->
+ </table>
+ </td>
+</tr>
+<tr>
+ <td class="cat" colspan="3">&nbsp;</td>
+</tr>
+</table>
+
+<!-- INCLUDE ucp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/ucp_main_subscribed.html b/phpBB/styles/subsilver2/template/ucp_main_subscribed.html
new file mode 100644
index 0000000000..9335d01f12
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_main_subscribed.html
@@ -0,0 +1,84 @@
+<!-- INCLUDE ucp_header.html -->
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th colspan="4">{L_UCP}</th>
+</tr>
+<tr>
+ <td class="row1" colspan="4" align="center"><span class="genmed">{L_WATCHED_EXPLAIN}</span></td>
+</tr>
+<!-- IF S_FORUM_NOTIFY -->
+ <tr>
+ <th colspan="4">{L_WATCHED_FORUMS}</th>
+ </tr>
+
+ <!-- BEGIN forumrow -->
+
+ <!-- IF forumrow.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+ <td style="padding: 4px;" width="20" align="center" valign="middle">{forumrow.FORUM_FOLDER_IMG}</td>
+ <td style="padding: 4px;" width="100%"><p class="topictitle"><a href="{forumrow.U_VIEWFORUM}">{forumrow.FORUM_NAME}</a></p></td>
+ <td class="gensmall" style="padding: 4px;" align="center" valign="middle" nowrap="nowrap"><!-- IF forumrow.LAST_POST_TIME -->{forumrow.LAST_POST_TIME}<br />{forumrow.LAST_POST_AUTHOR_FULL} <a href="{forumrow.U_LAST_POST}">{LAST_POST_IMG}</a><!-- ELSE -->{L_NO_POSTS}<!-- ENDIF --></td>
+ <td style="padding: 4px;"> <input type="checkbox" class="radio" name="f[{forumrow.FORUM_ID}]" /> </td>
+ </tr>
+ <!-- BEGINELSE -->
+ <tr class="row1">
+ <td colspan="4" align="center"><b class="genmed">{L_NO_WATCHED_FORUMS}</b></td>
+ </tr>
+ <!-- END forumrow -->
+<!-- ENDIF -->
+<!-- IF S_TOPIC_NOTIFY -->
+ <tr>
+ <th colspan="4">{L_WATCHED_TOPICS}</th>
+ </tr>
+
+ <!-- IF TOTAL_TOPICS -->
+ <tr>
+ <td class="row3" colspan="4">
+ <table width="100%" cellspacing="1">
+ <tr>
+ <td class="nav" valign="middle" nowrap="nowrap">&nbsp;{PAGE_NUMBER}<br /></td>
+ <td class="gensmall" nowrap="nowrap">&nbsp;[ {TOTAL_TOPICS} ]&nbsp;</td>
+ <td class="gensmall" width="100%" align="{S_CONTENT_FLOW_END}" nowrap="nowrap"><!-- INCLUDE pagination.html --></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <!-- ENDIF -->
+
+ <!-- BEGIN topicrow -->
+
+ <!-- IF topicrow.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+ <td style="padding: 4px;" width="20" align="center" valign="middle">{topicrow.TOPIC_FOLDER_IMG}</td>
+ <td style="padding: 4px;" width="100%" valign="top">
+ <p class="topictitle"><!-- IF topicrow.S_UNREAD_TOPIC --><a href="{topicrow.U_NEWEST_POST}">{NEWEST_POST_IMG}</a> <!-- ENDIF -->{topicrow.ATTACH_ICON_IMG} <a href="{topicrow.U_VIEW_TOPIC}">{topicrow.TOPIC_TITLE}</a></p>
+ <!-- IF topicrow.S_GLOBAL_TOPIC --><span class="gensmall">{L_GLOBAL_ANNOUNCEMENT}</span><!-- ELSE --><span class="gensmall"><b>{L_FORUM}: </b><a href="{topicrow.U_VIEW_FORUM}">{topicrow.FORUM_NAME}</a></span><!-- ENDIF -->
+ <!-- IF topicrow.PAGINATION -->
+ <p class="gensmall"> [ {GOTO_PAGE_IMG}{L_GOTO_PAGE}: {topicrow.PAGINATION} ] </p>
+ <!-- ENDIF -->
+ </td>
+ <td style="padding: 4px;" align="{S_CONTENT_FLOW_BEGIN}" valign="top" nowrap="nowrap">
+ <p class="topicdetails">{topicrow.LAST_POST_TIME}</p>
+ <p class="topicdetails">{topicrow.LAST_POST_AUTHOR_FULL}
+ <a href="{topicrow.U_LAST_POST}">{LAST_POST_IMG}</a>
+ </p>
+ </td>
+ <td style="padding: 4px;"> <input type="checkbox" class="radio" name="t[{topicrow.TOPIC_ID}]" /> </td>
+ </tr>
+ <!-- BEGINELSE -->
+ <tr class="row1">
+ <td colspan="4" align="center"><b class="genmed">{L_NO_WATCHED_TOPICS}</b></td>
+ </tr>
+ <!-- END topicrow -->
+<!-- ENDIF -->
+
+<!-- IF .topicrow or .forumrow -->
+<tr>
+ <td class="cat" colspan="4" align="{S_CONTENT_FLOW_END}"><input class="btnlite" type="submit" name="unwatch" value="{L_UNWATCH_MARKED}" />&nbsp;</td>
+</tr>
+<!-- ENDIF -->
+</table>
+<!-- IF .topicrow or .forumrow -->
+<div class="gensmall" style="float: {S_CONTENT_FLOW_END}; padding-top: 2px;"><b><a href="#" onclick="marklist('ucp', 't', true); marklist('ucp', 'f', true); return false;">{L_MARK_ALL}</a> :: <a href="#" onclick="marklist('ucp', 't', false);marklist('ucp', 'f', false); return false;">{L_UNMARK_ALL}</a></b></div>
+<!-- ENDIF -->
+
+<!-- INCLUDE ucp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/ucp_pm_history.html b/phpBB/styles/subsilver2/template/ucp_pm_history.html
new file mode 100644
index 0000000000..8754acaaa2
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_pm_history.html
@@ -0,0 +1,73 @@
+<script type="text/javascript">
+// <![CDATA[
+ bbcodeEnabled = {S_BBCODE_ALLOWED};
+// ]]>
+</script>
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th align="center">{L_MESSAGE_HISTORY}</th>
+</tr>
+<tr>
+ <td class="row1"><div style="overflow: auto; width: 100%; height: 300px;">
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th width="22%">{L_AUTHOR}</th>
+ <th>{L_MESSAGE}</th>
+ </tr>
+ <!-- BEGIN history_row -->
+ <!-- IF history_row.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+ <td rowspan="2" align="{S_CONTENT_FLOW_BEGIN}" valign="top"><a name="{history_row.MSG_ID}"></a>
+ <table width="150" cellspacing="0">
+ <tr>
+ <td align="center" colspan="2"><span class="postauthor">{history_row.MESSAGE_AUTHOR_FULL}</span></td>
+ </tr>
+ </table>
+ </td>
+ <td width="100%"<!-- IF history_row.S_CURRENT_MSG --> style="background-color:lightblue"<!-- ENDIF -->>
+ <div class="gensmall" style="float: {S_CONTENT_FLOW_BEGIN};"><b>{L_PM_SUBJECT}:</b>&nbsp;{history_row.SUBJECT}</div><div class="gensmall" style="float: {S_CONTENT_FLOW_END};"><b>{L_FOLDER}:</b>&nbsp;{history_row.FOLDER}</div>
+ </td>
+ </tr>
+
+ <!-- IF history_row.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+ <td valign="top">
+ <table width="100%" cellspacing="0">
+ <tr>
+ <td valign="top">
+ <table width="100%" cellspacing="0" cellpadding="2">
+ <tr>
+ <td><div class="postbody">{history_row.MESSAGE}</div><div id="message_{history_row.MSG_ID}" style="display: none;">{history_row.DECODED_MESSAGE}</div></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table width="100%" cellspacing="0">
+ <tr valign="middle">
+ <td width="100%">&nbsp;</td>
+ <td width="10" nowrap="nowrap">{history_row.MINI_POST_IMG}</td>
+ <td class="gensmall" nowrap="nowrap"><b>{L_SENT_AT}:</b> {history_row.SENT_DATE}</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <!-- IF history_row.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+ <td class="gensmall"><a href="{history_row.U_VIEW_MESSAGE}">{L_VIEW_PM}</a></td>
+ <td><div class="gensmall" style="float: {S_CONTENT_FLOW_BEGIN};">&nbsp;<!-- IF history_row.U_PROFILE --><a href="{history_row.U_PROFILE}">{PROFILE_IMG}</a> <!-- ENDIF --> <!-- IF history_row.U_EMAIL --><a href="{history_row.U_EMAIL}">{EMAIL_IMG}</a> <!-- ENDIF -->&nbsp;</div> <div class="gensmall" style="float: {S_CONTENT_FLOW_END};"><!-- IF history_row.U_QUOTE or history_row.MESSAGE_AUTHOR_QUOTE --><a <!-- IF history_row.U_QUOTE -->href="{history_row.U_QUOTE}"<!-- ELSE -->href="#" onclick="addquote({history_row.MSG_ID}, '{history_row.MESSAGE_AUTHOR_QUOTE}', '{LA_WROTE}'); return false;"<!-- ENDIF -->>{QUOTE_IMG}</a> <!-- ENDIF --> <!-- IF history_row.U_POST_REPLY_PM --><a href="{history_row.U_POST_REPLY_PM}">{REPLY_IMG}</a><!-- ENDIF -->&nbsp;</div></td>
+ </tr>
+ <tr>
+ <td class="spacer" colspan="2"><img src="images/spacer.gif" alt="" width="1" height="1" /></td>
+ </tr>
+ <!-- END history_row -->
+ </table>
+ </div></td>
+</tr>
+</table>
+
+<br clear="all" />
diff --git a/phpBB/styles/subsilver2/template/ucp_pm_message_footer.html b/phpBB/styles/subsilver2/template/ucp_pm_message_footer.html
new file mode 100644
index 0000000000..d1ef5ebd10
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_pm_message_footer.html
@@ -0,0 +1,47 @@
+
+<!-- IF not S_VIEW_MESSAGE -->
+ {S_FORM_TOKEN}
+ </form>
+<!-- ENDIF -->
+
+<table class="tablebg" width="100%" cellspacing="1" cellpadding="0">
+<tr>
+ <td class="row1">
+ <table border="0" cellspacing="0" cellpadding="0" width="100%">
+ <tr>
+ <td align="{S_CONTENT_FLOW_BEGIN}"><!-- INCLUDE pagination.html -->
+ <!-- IF S_VIEW_MESSAGE -->
+ <span class="gensmall">
+ <!-- IF U_PRINT_PM --><a href="{U_PRINT_PM}" title="{L_PRINT_PM}">{L_PRINT_PM}</a><!-- IF U_FORWARD_PM --> | <!-- ENDIF --><!-- ENDIF -->
+ <!-- IF U_FORWARD_PM --><a href="{U_FORWARD_PM}" title="{L_FORWARD_PM}">{L_FORWARD_PM}</a><!-- ENDIF -->
+ <!-- IF U_POST_REPLY_PM and S_PM_RECIPIENTS gt 1 --><!-- IF U_PRINT_PM or U_FORWARD_PM --> | <!-- ENDIF --><a title="{L_REPLY_TO_ALL}" href="{U_POST_REPLY_ALL}">{L_REPLY_TO_ALL}</a><!-- ENDIF -->
+ </span>
+ <!-- ENDIF -->
+ </td>
+ <td align="{S_CONTENT_FLOW_END}" nowrap="nowrap">
+ <!-- IF S_VIEW_MESSAGE -->
+ <!-- IF not S_SPECIAL_FOLDER -->
+ <form name="movepm" method="post" action="{S_PM_ACTION}" style="margin:0px">
+ <input type="hidden" name="marked_msg_id[]" value="{MSG_ID}" />
+ <input type="hidden" name="cur_folder_id" value="{CUR_FOLDER_ID}" />
+ <input type="hidden" name="p" value="{MSG_ID}" />
+ <select name="dest_folder">{S_TO_FOLDER_OPTIONS}</select>&nbsp;<input class="btnlite" type="submit" name="move_pm" value="{L_MOVE_TO_FOLDER}" />
+ {S_FORM_TOKEN}
+ </form>
+ <!-- ENDIF -->
+ <!-- ELSE -->
+ <form name="sortmsg" method="post" action="{S_PM_ACTION}" style="margin:0px">
+ <span class="gensmall">{L_DISPLAY_MESSAGES}:</span> {S_SELECT_SORT_DAYS} <span class="gensmall">{L_SORT_BY}</span> {S_SELECT_SORT_KEY} {S_SELECT_SORT_DIR} <input class="btnlite" type="submit" name="sort" value="{L_GO}" />
+ {S_FORM_TOKEN}
+ </form>
+ <!-- ENDIF -->
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+
+<!-- IF not S_VIEW_MESSAGE -->
+ <div style="float: {S_CONTENT_FLOW_END};"><b class="gensmall"><a href="#" onclick="marklist('viewfolder', 'marked_msg_id', true); return false;">{L_MARK_ALL}</a> :: <a href="#" onclick="marklist('viewfolder', 'marked_msg_id', false); return false;">{L_UNMARK_ALL}</a></b></div>
+<!-- ENDIF -->
diff --git a/phpBB/styles/subsilver2/template/ucp_pm_message_header.html b/phpBB/styles/subsilver2/template/ucp_pm_message_header.html
new file mode 100644
index 0000000000..370fa673dd
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_pm_message_header.html
@@ -0,0 +1,34 @@
+
+<table class="tablebg" width="100%" cellspacing="1" cellpadding="0">
+<tr>
+ <td class="row1">
+ <table border="0" cellspacing="0" cellpadding="0" width="100%">
+ <tr>
+ <td align="{S_CONTENT_FLOW_BEGIN}">
+ <!-- IF TOTAL_MESSAGES -->
+ <table width="100%" cellspacing="1">
+ <tr>
+ <td class="nav" valign="middle" nowrap="nowrap">&nbsp;{PAGE_NUMBER}<br /></td>
+ <!-- IF FOLDER_MAX_MESSAGES neq 0 -->
+ <td class="gensmall" nowrap="nowrap" width="100%">&nbsp;[ <b>{FOLDER_CUR_MESSAGES}</b>/{FOLDER_MAX_MESSAGES} {L_MESSAGES} ({FOLDER_PERCENT}%) ]&nbsp;</td>
+ <!-- ELSE -->
+ <td class="gensmall" nowrap="nowrap" width="100%">&nbsp;[ <b>{FOLDER_CUR_MESSAGES}</b> {L_MESSAGES} ]&nbsp;</td>
+ <!-- ENDIF -->
+ </tr>
+ </table>
+ <!-- ENDIF -->
+
+ <!-- IF S_VIEW_MESSAGE -->
+ <span class="gensmall">
+ <!-- IF S_DISPLAY_HISTORY -->
+ <!-- IF U_VIEW_PREVIOUS_HISTORY --><a href="{U_VIEW_PREVIOUS_HISTORY}">{L_VIEW_PREVIOUS_HISTORY}</a> | <!-- ENDIF --><!-- IF U_VIEW_NEXT_HISTORY --><a href="{U_VIEW_NEXT_HISTORY}">{L_VIEW_NEXT_HISTORY}</a> | <!-- ENDIF -->
+ <!-- ENDIF --><a href="{U_PREVIOUS_PM}">{L_VIEW_PREVIOUS_PM}</a> | <a href="{U_NEXT_PM}">{L_VIEW_NEXT_PM}</a>&nbsp;
+ </span>
+ <!-- ENDIF -->
+ </td>
+ <td align="{S_CONTENT_FLOW_END}"><!-- INCLUDE pagination.html --></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
diff --git a/phpBB/styles/subsilver2/template/ucp_pm_options.html b/phpBB/styles/subsilver2/template/ucp_pm_options.html
new file mode 100644
index 0000000000..3ff18d8c15
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_pm_options.html
@@ -0,0 +1,192 @@
+<!-- INCLUDE ucp_header.html -->
+
+<!-- IF ERROR_MESSAGE or NOTIFICATION_MESSAGE -->
+ <table border="0" cellspacing="0" cellpadding="0" width="100%">
+ <tr>
+ <td class="row3" align="center">
+ <!-- IF ERROR_MESSAGE --><span class="genmed error">{ERROR_MESSAGE}</span><!-- ENDIF -->
+ <!-- IF NOTIFICATION_MESSAGE --><span class="genmed error">{NOTIFICATION_MESSAGE}</span><!-- ENDIF -->
+ </td>
+ </tr>
+ </table>
+ <div style="padding: 2px;"></div>
+<!-- ENDIF -->
+
+<form name="ucp" method="post" action="{S_UCP_ACTION}">
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th colspan="3">{L_ADD_NEW_RULE}</th>
+</tr>
+<!-- IF S_CHECK_DEFINED -->
+ <tr>
+ <td class="row1" width="50" align="{S_CONTENT_FLOW_BEGIN}" valign="top"><b class="gen">{L_IF}:</b></td>
+ <td class="row2" align="center" valign="top"><!-- IF S_CHECK_SELECT --><select name="check_option">{S_CHECK_OPTIONS}</select><!-- ELSE --><b class="gen">{CHECK_CURRENT}</b><input type="hidden" name="check_option" value="{CHECK_OPTION}" /><!-- ENDIF --></td>
+ <td class="row1" width="50" align="{S_CONTENT_FLOW_END}" valign="top"><!-- IF S_CHECK_SELECT --><input type="submit" name="next" value="{L_NEXT_STEP}" class="btnlite" /><!-- ELSE -->&nbsp;<!-- ENDIF --></td>
+ </tr>
+<!-- ENDIF -->
+<!-- IF S_RULE_DEFINED -->
+ <tr>
+ <td class="row1" width="50" align="{S_CONTENT_FLOW_BEGIN}" valign="top"><!-- IF S_RULE_SELECT --><input type="submit" name="back[rule]" value="{L_PREVIOUS_STEP}" class="btnlite" /><!-- ELSE -->&nbsp;<!-- ENDIF --></td>
+ <td class="row2" align="center" valign="top"><!-- IF S_RULE_SELECT --><select name="rule_option">{S_RULE_OPTIONS}</select><!-- ELSE --><b class="gen">{RULE_CURRENT}</b><input type="hidden" name="rule_option" value="{RULE_OPTION}" /><!-- ENDIF --></td>
+ <td class="row1" width="50" align="{S_CONTENT_FLOW_END}" valign="top"><!-- IF S_RULE_SELECT --><input type="submit" name="next" value="{L_NEXT_STEP}" class="btnlite" /><!-- ELSE -->&nbsp;<!-- ENDIF --></td>
+ </tr>
+<!-- ENDIF -->
+
+<!-- IF S_COND_DEFINED -->
+ <!-- IF S_COND_SELECT or COND_CURRENT -->
+ <tr>
+ <td class="row1" width="50" align="{S_CONTENT_FLOW_BEGIN}" valign="top"><!-- IF S_COND_SELECT --><input type="submit" name="back[cond]" value="{L_PREVIOUS_STEP}" class="btnlite" /><!-- ELSE -->&nbsp;<!-- ENDIF --></td>
+ <td class="row2" align="center" valign="top">
+ <!-- IF S_COND_SELECT -->
+ <!-- IF S_TEXT_CONDITION -->
+ <input type="text" name="rule_string" value="{CURRENT_STRING}" size="30" maxlength="250" class="post" />
+ <!-- ELSEIF S_USER_CONDITION -->
+ <input type="text" class="post" name="rule_string" value="{CURRENT_STRING}" size="20" />&nbsp;<span class="gensmall">[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</span>
+ <!-- ELSEIF S_GROUP_CONDITION -->
+ <input type="hidden" name="rule_string" value="{CURRENT_STRING}" /><!-- IF S_GROUP_OPTIONS --><select name="rule_group_id">{S_GROUP_OPTIONS}</select><!-- ELSE -->{L_NO_GROUPS}<!-- ENDIF -->
+ <!-- ENDIF -->
+ <!-- ELSE -->
+ <b class="gen">{COND_CURRENT}</b>
+ <input type="hidden" name="rule_string" value="{CURRENT_STRING}" /><input type="hidden" name="rule_user_id" value="{CURRENT_USER_ID}" /><input type="hidden" name="rule_group_id" value="{CURRENT_GROUP_ID}" />
+ <!-- ENDIF -->
+ </td>
+ <td class="row1" width="50" align="{S_CONTENT_FLOW_END}" valign="top"><!-- IF S_COND_SELECT --><input type="submit" name="next" value="{L_NEXT_STEP}" class="btnlite" /><!-- ELSE -->&nbsp;<!-- ENDIF --></td>
+ </tr>
+ <!-- ENDIF -->
+ <input type="hidden" name="cond_option" value="{COND_OPTION}" />
+<!-- ENDIF -->
+
+<!-- IF NONE_CONDITION --><input type="hidden" name="cond_option" value="none" /><!-- ENDIF -->
+
+<!-- IF S_ACTION_DEFINED -->
+ <tr>
+ <td class="row1" width="50" align="{S_CONTENT_FLOW_BEGIN}" valign="top"><!-- IF S_ACTION_SELECT --><input type="submit" name="back[action]" value="{L_PREVIOUS_STEP}" class="btnlite" /><!-- ELSE -->&nbsp;<!-- ENDIF --></td>
+ <td class="row2" align="center" valign="top"><!-- IF S_ACTION_SELECT --><select name="action_option">{S_ACTION_OPTIONS}</select><!-- ELSE --><b class="gen">{ACTION_CURRENT}</b><input type="hidden" name="action_option" value="{ACTION_OPTION}" /><!-- ENDIF --></td>
+ <td class="row1" width="50" align="{S_CONTENT_FLOW_END}" valign="top"><!-- IF S_ACTION_SELECT --><input type="submit" name="add_rule" value="{L_ADD_RULE}" class="btnlite" /><!-- ELSE -->&nbsp;<!-- ENDIF --></td>
+ </tr>
+<!-- ENDIF -->
+</table>
+
+<div style="padding: 2px;"></div>
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th colspan="6">{L_DEFINED_RULES}</th>
+</tr>
+<!-- BEGIN rule -->
+ <tr>
+ <td class="row1" width="25" align="center"><span class="gen">#{rule.COUNT}</span></td>
+ <td class="row2" width="120"><span class="gen"><strong>{L_IF}</strong> {rule.CHECK}</span></td>
+ <td class="row1" width="120"><span class="gen">{rule.RULE}</span></td>
+ <td class="row2" width="120"><span class="gen"><!-- IF rule.STRING -->{rule.STRING}<!-- ENDIF --></span></td>
+ <td class="row1"><span class="gen">{rule.ACTION}<!-- IF rule.FOLDER --> -&gt; {rule.FOLDER}<!-- ENDIF --></span></td>
+ <td class="row2" width="25"><input type="submit" name="delete_rule[{rule.RULE_ID}]" value="{L_DELETE_RULE}" class="btnlite" /></td>
+ </tr>
+<!-- BEGINELSE -->
+ <tr>
+ <td colspan="6" class="row3" align="center"><span class="gen">{L_NO_RULES_DEFINED}</span></td>
+ </tr>
+<!-- END rule -->
+</table>
+
+<div style="padding: 2px;"></div>
+
+<!-- IF S_FOLDER_OPTIONS -->
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th colspan="2">{L_RENAME_FOLDER}</th>
+ </tr>
+ <tr>
+ <td class="row1" width="200"><b class="gen">{L_RENAME_FOLDER}: </b></td>
+ <td class="row1"><select name="rename_folder_id">{S_FOLDER_OPTIONS}</select></td>
+ </tr>
+ <tr>
+ <td class="row1" width="200"><b class="gen">{L_NEW_FOLDER_NAME}: </b></td>
+ <td class="row1"><input type="text" class="post" name="new_folder_name" size="30" maxlength="30" /></td>
+ </tr>
+ <tr>
+ <td class="row1" align="{S_CONTENT_FLOW_END}" colspan="2"><input class="btnlite" style="width:150px" type="submit" name="rename_folder" value="{L_RENAME}" /></td>
+ </tr>
+ </table>
+
+ <div style="padding: 2px;"></div>
+<!-- ENDIF -->
+
+<!-- IF not S_MAX_FOLDER_ZERO -->
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th colspan="2">{L_ADD_FOLDER}</th>
+</tr>
+<!-- IF S_MAX_FOLDER_REACHED -->
+ <tr>
+ <td colspan="2">{L_MAX_FOLDER_REACHED}</td>
+ </tr>
+<!-- ELSE -->
+ <tr>
+ <td class="row1" width="200"><b class="gen">{L_ADD_FOLDER}: </b></td>
+ <td class="row1"><input type="text" class="post" name="foldername" size="30" maxlength="30" /></td>
+ </tr>
+ <tr>
+ <td class="row1" align="{S_CONTENT_FLOW_END}" colspan="2"><input class="btnlite" style="width:150px" type="submit" name="addfolder" value="{L_ADD}" /></td>
+ </tr>
+<!-- ENDIF -->
+</table>
+<!-- ENDIF -->
+
+<div style="padding: 2px;"></div>
+
+<!-- IF S_FOLDER_OPTIONS -->
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <th colspan="3">{L_REMOVE_FOLDER}</th>
+ </tr>
+ <tr>
+ <td class="row1" width="200"><b class="gen">{L_REMOVE_FOLDER}: </b></td>
+ <td class="row1"><select name="remove_folder_id">{S_FOLDER_OPTIONS}</select></td>
+ <td class="row1"><b class="genmed">{L_AND}</b></td>
+ </tr>
+ <tr>
+ <td class="row2" width="200">&nbsp;</td>
+ <td class="row2" colspan="2"><input type="radio" class="radio" name="remove_action" value="1" checked="checked" />&nbsp;<span class="genmed">{L_MOVE_DELETED_MESSAGES_TO} </span>&nbsp;<select name="move_to">{S_TO_FOLDER_OPTIONS}</select></td>
+ </tr>
+ <tr>
+ <td class="row2" width="200">&nbsp;</td>
+ <td class="row2" colspan="2"><input type="radio" class="radio" name="remove_action" value="2" />&nbsp;<span class="genmed">{L_DELETE_MESSAGES_IN_FOLDER}</span></td>
+ </tr>
+ <tr>
+ <td class="row2" width="200">&nbsp;</td>
+ <td class="row2" colspan="2" align="{S_CONTENT_FLOW_END}"><input class="btnlite" style="width:150px" type="submit" name="remove_folder" value="{L_REMOVE}" /></td>
+ </tr>
+ </table>
+
+ <div style="padding: 2px;"></div>
+<!-- ENDIF -->
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th colspan="2">{L_FOLDER_OPTIONS}</th>
+</tr>
+<tr>
+ <td class="row1" width="200"><span><b class="genmed">{L_IF_FOLDER_FULL}: </b></span></td>
+ <td class="row1"><input type="radio" class="radio" name="full_action" value="1"{S_DELETE_CHECKED} />&nbsp;<span class="genmed">{L_DELETE_OLDEST_MESSAGES}</span></td>
+</tr>
+<tr>
+ <td class="row1" width="200">&nbsp;</td>
+ <td class="row1"><input type="radio" class="radio" name="full_action" value="2"{S_MOVE_CHECKED} />&nbsp;<span class="genmed">{L_MOVE_TO_FOLDER}: </span><select name="full_move_to">{S_FULL_FOLDER_OPTIONS}</select></td>
+</tr>
+<tr>
+ <td class="row1" width="200">&nbsp;</td>
+ <td class="row1"><input type="radio" class="radio" name="full_action" value="3"{S_HOLD_CHECKED} />&nbsp;<span class="genmed">{L_HOLD_NEW_MESSAGES}</span></td>
+</tr>
+<tr>
+ <td class="row2" width="200"><b class="genmed">{L_DEFAULT_ACTION}: </b><br /><span class="gensmall">{L_DEFAULT_ACTION_EXPLAIN}</span></td>
+ <td class="row2"><span class="genmed">{DEFAULT_ACTION}</span></td>
+</tr>
+<tr>
+ <td class="row1" colspan="2" align="{S_CONTENT_FLOW_END}"><input class="btnlite" style="width:150px" type="submit" name="fullfolder" value="{L_CHANGE}" /></td>
+</tr>
+</table>
+{S_FORM_TOKEN}
+</form>
+<!-- INCLUDE ucp_footer.html -->
diff --git a/phpBB/styles/subsilver2/template/ucp_pm_popup.html b/phpBB/styles/subsilver2/template/ucp_pm_popup.html
new file mode 100644
index 0000000000..68816b88a8
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_pm_popup.html
@@ -0,0 +1,37 @@
+<!-- INCLUDE simple_header.html -->
+
+<script type="text/javascript">
+// <![CDATA[
+/**
+* Jump to inbox
+*/
+function jump_to_inbox(url)
+{
+ opener.document.location.href = url.replace(/&amp;/g, '&');
+ window.close();
+}
+// ]]>
+</script>
+
+<table width="100%" border="0" cellspacing="0" cellpadding="10">
+<tr>
+ <td>
+ <table width="100%" border="0" cellspacing="1" cellpadding="4" class="tablebg">
+ <tr class="row1">
+ <td valign="top" align="center">
+ <br /><span class="gen">
+ <!-- IF S_NOT_LOGGED_IN -->
+ {L_LOGIN_CHECK_PM}
+ <!-- ELSE -->
+ {MESSAGE}<br /><br />{CLICK_TO_VIEW}
+ <!-- ENDIF -->
+ </span>
+ <br /><br /><span class="genmed"><a href="#" onclick="window.close(); return false;">{L_CLOSE_WINDOW}</a></span><br /><br />
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+
+<!-- INCLUDE simple_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/ucp_pm_viewfolder.html b/phpBB/styles/subsilver2/template/ucp_pm_viewfolder.html
new file mode 100644
index 0000000000..f0b076edb2
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_pm_viewfolder.html
@@ -0,0 +1,131 @@
+<!-- INCLUDE ucp_header.html -->
+
+<div id="pagecontent">
+
+<!-- IF not PROMPT -->
+ <!-- INCLUDE ucp_pm_message_header.html -->
+<!-- ENDIF -->
+
+<div style="padding: 2px;"></div>
+
+<!-- IF S_PM_ICONS -->
+ <!-- DEFINE $COLSPAN = 6 -->
+<!-- ELSE -->
+ <!-- DEFINE $COLSPAN = 5 -->
+<!-- ENDIF -->
+
+<form name="viewfolder" method="post" action="{S_PM_ACTION}" style="margin:0px">
+
+<!-- IF PROMPT -->
+ <table class="tablebg" width="100%" cellspacing="1" cellpadding="0" border="0">
+ <tr>
+ <th colspan="2" valign="middle">{L_OPTIONS}</th>
+ </tr>
+ <tr>
+ <td class="row1" width="35%">{L_DELIMITER}: </td>
+ <td class="row2"><input class="post" type="text" name="delimiter" value="," /></td>
+ </tr>
+ <tr>
+ <td class="row1" width="35%">{L_ENCLOSURE}: </td>
+ <td class="row2"><input class="post" type="text" name="enclosure" value="&#034;" /></td>
+ </tr>
+ <tr>
+ <td class="cat" colspan="2" align="center"><input type="hidden" name="export_option" value="CSV" /><input class="btnmain" type="submit" name="submit_export" value="{L_EXPORT_FOLDER}" />&nbsp;&nbsp;<input class="btnlite" type="reset" value="Reset" name="reset" /></td>
+ </tr>
+ </table>
+ {S_FORM_TOKEN}
+
+</form>
+<!-- ELSE -->
+
+ <table class="tablebg" width="100%" cellspacing="1" cellpadding="0" border="0">
+ <!-- IF NUM_NOT_MOVED or NUM_REMOVED -->
+ <tr>
+ <td class="row3" colspan="{$COLSPAN}" align="center"><span class="gen">
+ <!-- IF NUM_REMOVED -->
+ {RULE_REMOVED_MESSAGES}
+ <!-- IF NUM_NOT_MOVED --><br /><!-- ENDIF -->
+ <!-- ENDIF -->
+ <!-- IF NUM_NOT_MOVED -->
+ {NOT_MOVED_MESSAGES}<br />{RELEASE_MESSAGE_INFO}
+ <!-- ENDIF -->
+ </span></td>
+ </tr>
+ <!-- ENDIF -->
+ <tr>
+ <th colspan="<!-- IF S_PM_ICONS -->3<!-- ELSE -->2<!-- ENDIF -->">&nbsp;{L_SUBJECT}&nbsp;</th>
+ <th>&nbsp;<!-- IF S_SHOW_RECIPIENTS -->{L_RECIPIENTS}<!-- ELSE -->{L_AUTHOR}<!-- ENDIF -->&nbsp;</th>
+ <th>&nbsp;{L_SENT_AT}&nbsp;</th>
+ <th>&nbsp;{L_MARK}&nbsp;</th>
+ </tr>
+
+ <!-- BEGIN messagerow -->
+ <tr>
+ <td class="row1" width="25" align="center" nowrap="nowrap">{messagerow.FOLDER_IMG}</td>
+ <!-- IF S_PM_ICONS -->
+ <td class="row1" width="25" align="center">{messagerow.PM_ICON_IMG}</td>
+ <!-- ENDIF -->
+
+ <!-- IF messagerow.S_PM_DELETED --><td class="row3"><!-- ELSE --><td class="row1"><!-- ENDIF -->
+ <!-- IF not messagerow.PM_IMG and messagerow.PM_CLASS -->
+ <span class="{messagerow.PM_CLASS}" style="float: {S_CONTENT_FLOW_BEGIN};"><img src="images/spacer.gif" width="10" height="10" alt="" /></span>&nbsp;
+ <!-- ELSEIF messagerow.PM_IMG -->
+ {messagerow.PM_IMG}&nbsp;
+ <!-- ENDIF -->
+
+ <span class="topictitle">
+ {messagerow.ATTACH_ICON_IMG}
+ <!-- IF messagerow.S_PM_DELETED -->
+ {L_MESSAGE_REMOVED_FROM_OUTBOX}<br />
+ <a href="{messagerow.U_REMOVE_PM}" style="float: {S_CONTENT_FLOW_END};">{L_DELETE_MESSAGE}</a>
+ <!-- ELSE -->
+ <a href="{messagerow.U_VIEW_PM}">{messagerow.SUBJECT}</a>
+ <!-- ENDIF -->
+ <!-- IF messagerow.S_PM_REPORTED -->
+ <a href="{messagerow.U_MCP_REPORT}">{REPORTED_IMG}</a>&nbsp;
+ <!-- ENDIF -->
+ <!-- IF messagerow.S_AUTHOR_DELETED -->
+ <br /><em class="gensmall">{L_PM_FROM_REMOVED_AUTHOR}</em>
+ <!-- ENDIF -->
+ </span></td>
+
+ <td class="row1" width="100" align="center"><p class="topicauthor"><!-- IF S_SHOW_RECIPIENTS -->{messagerow.RECIPIENTS}<!-- ELSE -->{messagerow.MESSAGE_AUTHOR_FULL}<!-- ENDIF --></p></td>
+ <td class="row1" width="120" align="center"><p class="topicdetails">{messagerow.SENT_TIME}</p></td>
+ <td class="row1" width="20" align="center"><p class="topicdetails"><input type="checkbox" class="radio" name="marked_msg_id[]" value="{messagerow.MESSAGE_ID}" /></p></td>
+ </tr>
+ <!-- BEGINELSE -->
+ <tr>
+ <td class="row1" colspan="{$COLSPAN}" height="30" align="center" valign="middle"><span class="gen">
+ <!-- IF S_COMPOSE_PM_VIEW and S_NO_AUTH_SEND_MESSAGE -->
+ <!-- IF S_USER_NEW -->{L_USER_NEW_PERMISSION_DISALLOWED}<!-- ELSE -->{L_NO_AUTH_SEND_MESSAGE}<!-- ENDIF -->
+ <!-- ELSE -->
+ {L_NO_MESSAGES}
+ <!-- ENDIF -->
+ </span></td>
+ </tr>
+ <!-- END messagerow -->
+</table>
+
+<input type="hidden" name="cur_folder_id" value="{CUR_FOLDER_ID}" />
+
+<table border="0" cellspacing="0" cellpadding="0" width="100%">
+<tr>
+ <td class="cat">
+<!-- IF .messagerow -->
+ <div style="float: {S_CONTENT_FLOW_BEGIN};"><select name="export_option"><option value="CSV">{L_EXPORT_AS_CSV}</option><option value="CSV_EXCEL">{L_EXPORT_AS_CSV_EXCEL}</option><option value="XML">{L_EXPORT_AS_XML}</option></select>&nbsp;<input class="btnlite" type="submit" name="submit_export" value="{L_EXPORT_FOLDER}" /></div>
+ <div style="float: {S_CONTENT_FLOW_END};"><select name="mark_option">{S_MARK_OPTIONS}{S_MOVE_MARKED_OPTIONS}</select>&nbsp;<input class="btnlite" type="submit" name="submit_mark" value="{L_GO}" />&nbsp;</div>
+<!-- ENDIF -->
+ </td>
+</tr>
+</table>
+
+<div style="padding: 2px;"></div>
+<!-- INCLUDE ucp_pm_message_footer.html -->
+
+<!-- ENDIF -->
+
+<br clear="all" />
+
+</div>
+
+<!-- INCLUDE ucp_footer.html -->
diff --git a/phpBB/styles/subsilver2/template/ucp_pm_viewmessage.html b/phpBB/styles/subsilver2/template/ucp_pm_viewmessage.html
new file mode 100644
index 0000000000..4971506a6d
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_pm_viewmessage.html
@@ -0,0 +1,124 @@
+<!-- INCLUDE ucp_header.html -->
+
+<div id="pagecontent">
+
+<!-- INCLUDE ucp_pm_message_header.html -->
+<div style="padding: 2px;"></div>
+
+<table class="tablebg" width="100%" cellspacing="1" cellpadding="4">
+
+<tr class="row1">
+ <td class="genmed" nowrap="nowrap" width="150"><b>{L_PM_SUBJECT}:</b></td>
+ <td class="gen">{SUBJECT}</td>
+</tr>
+
+<tr class="row1">
+ <td class="genmed" nowrap="nowrap" width="150"><b>{L_PM_FROM}:</b></td>
+ <td class="gen">{MESSAGE_AUTHOR_FULL}</td>
+</tr>
+
+<tr class="row1">
+ <td class="genmed" nowrap="nowrap" width="150"><b>{L_SENT_AT}:</b></td>
+ <td class="gen">{SENT_DATE}</td>
+</tr>
+
+<!-- IF S_TO_RECIPIENT -->
+ <tr class="row1">
+ <td class="genmed" nowrap="nowrap" width="150"><b>{L_TO}:</b></td>
+ <td class="gen">
+ <!-- BEGIN to_recipient -->
+ <!-- IF to_recipient.IS_GROUP --><span class="sep"><a href="{to_recipient.U_VIEW}">{to_recipient.NAME}</a></span><!-- ELSE -->{to_recipient.NAME_FULL}&nbsp;<!-- ENDIF -->
+ <!-- END to_recipient -->
+ </td>
+ </tr>
+<!-- ENDIF -->
+
+<!-- IF S_BCC_RECIPIENT -->
+ <tr class="row1">
+ <td class="genmed" nowrap="nowrap" width="150"><b>{L_BCC}:</b></td>
+ <td class="gen">
+ <!-- BEGIN bcc_recipient -->
+ <!-- IF bcc_recipient.IS_GROUP --><span class="sep"><a href="{bcc_recipient.U_VIEW}">{bcc_recipient.NAME}</a></span><!-- ELSE -->{bcc_recipient.NAME_FULL}&nbsp;<!-- ENDIF -->
+ <!-- END bcc_recipient -->
+ </td>
+ </tr>
+<!-- ENDIF -->
+</table>
+
+<div style="padding: 2px;"></div>
+
+<table class="tablebg" width="100%" cellspacing="1" cellpadding="0">
+
+<tr>
+ <th nowrap="nowrap">{L_MESSAGE}</th>
+</tr>
+
+<tr>
+ <td class="spacer" height="1"><img src="images/spacer.gif" alt="" width="1" height="1" /></td>
+</tr>
+
+<tr class="row1">
+ <td valign="top">
+ <table width="100%" cellspacing="5">
+ <tr>
+ <td>
+ <div class="postbody">{MESSAGE}</div>
+
+ <!-- IF S_HAS_ATTACHMENTS -->
+ <br clear="all" /><br />
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <td class="row3"><b class="genmed">{L_ATTACHMENTS}: </b></td>
+ </tr>
+ <!-- BEGIN attachment -->
+ <tr>
+ <td class="row2">{attachment.DISPLAY_ATTACHMENT}</td>
+ </tr>
+ <!-- END attachment -->
+ </table>
+ <!-- ENDIF -->
+
+ <!-- IF S_DISPLAY_NOTICE -->
+ <span class="gensmall error"><br /><br />{L_DOWNLOAD_NOTICE}</span>
+ <!-- ENDIF -->
+ <!-- IF SIGNATURE -->
+ <span class="postbody"><br />_________________<br />{SIGNATURE}</span>
+ <!-- ENDIF -->
+ <!-- IF EDITED_MESSAGE -->
+ <span class="gensmall">{EDITED_MESSAGE}</span>
+ <!-- ENDIF -->
+
+ <!-- IF not S_HAS_ATTACHMENTS --><br clear="all" /><br /><!-- ENDIF -->
+
+ <table width="100%" cellspacing="0">
+ <tr valign="middle">
+ <td class="gensmall" align="{S_CONTENT_FLOW_END}"> <!-- IF U_REPORT --><a href="{U_REPORT}">{REPORT_IMG}</a> <!-- ENDIF --><!-- IF U_DELETE --><a href="{U_DELETE}">{DELETE_IMG}</a> <!-- ENDIF --></td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+<tr class="row1">
+ <td><div class="gensmall" style="float: {S_CONTENT_FLOW_BEGIN};">&nbsp;<!-- IF U_MESSAGE_AUTHOR --><a href="{U_MESSAGE_AUTHOR}">{PROFILE_IMG}</a> <!-- ENDIF --> <!-- IF U_EMAIL --><a href="{U_EMAIL}">{EMAIL_IMG}</a> <!-- ENDIF -->&nbsp;</div> <div class="gensmall" style="float: {S_CONTENT_FLOW_END};"><!-- IF U_EDIT --><a href="{U_EDIT}">{EDIT_IMG}</a> <!-- ENDIF --> <!-- IF U_QUOTE --><a href="{U_QUOTE}">{QUOTE_IMG}</a> <!-- ENDIF --> <!-- IF U_POST_REPLY_PM --><a href="{U_POST_REPLY_PM}">{REPLY_IMG}</a><!-- ENDIF -->&nbsp;</div></td>
+</tr>
+
+<tr>
+ <td class="spacer" height="1"><img src="images/spacer.gif" alt="" width="1" height="1" /></td>
+</tr>
+</table>
+
+<div style="padding: 2px;"></div>
+<!-- INCLUDE ucp_pm_message_footer.html -->
+
+<br clear="all" />
+
+</div>
+
+<!-- IF S_DISPLAY_HISTORY --><!-- INCLUDE ucp_pm_history.html --><!-- ENDIF -->
+
+<!-- INCLUDE ucp_footer.html -->
diff --git a/phpBB/styles/subsilver2/template/ucp_pm_viewmessage_print.html b/phpBB/styles/subsilver2/template/ucp_pm_viewmessage_print.html
new file mode 100644
index 0000000000..f1c59df1c8
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_pm_viewmessage_print.html
@@ -0,0 +1,131 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html dir="{S_CONTENT_DIRECTION}" lang="{S_USER_LANG}">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset={S_CONTENT_ENCODING}">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<meta http-equiv="Content-Language" content="{S_USER_LANG}">
+<title>{SITENAME} :: {PAGE_TITLE}</title>
+
+<style type="text/css">
+<!--
+
+body {
+ font-family: Verdana,serif;
+ font-size: 10pt;
+}
+
+td {
+ font-family: Verdana,serif;
+ font-size: 10pt;
+ line-height: 150%;
+}
+
+.code,
+.quote {
+ font-size: smaller;
+ border: black solid 1px;
+}
+
+.forum {
+ font-family: Arial,Helvetica,sans-serif;
+ font-weight: bold;
+ font-size: 18pt;
+}
+
+.topic {
+ font-family: Arial,Helvetica,sans-serif;
+ font-size: 14pt;
+ font-weight: bold;
+}
+
+.gensmall {
+ font-size: 8pt;
+}
+
+hr {
+ color: #888;
+ height: 3px;
+ border-style: solid;
+}
+
+hr.sep {
+ color: #aaa;
+ height: 1px;
+ border-style: dashed;
+}
+//-->
+</style>
+
+</head>
+<body>
+
+<table width="85%" cellspacing="3" cellpadding="0" border="0" align="center">
+<tr>
+ <td colspan="2" align="center"><span class="Forum">{SITENAME}</span><br /><span class="gensmall">{L_PRIVATE_MESSAGING}</a></span></td>
+</tr>
+<tr>
+ <td colspan="2"><br /></td>
+</tr>
+<tr>
+ <td><span class="topic">{SUBJECT}</span><br /></td>
+ <td align="{S_CONTENT_FLOW_END}" valign="bottom"><span class="gensmall">{PAGE_NUMBER}</span></td>
+</tr>
+</table>
+
+<hr width="85%" />
+
+<table width="85%" cellspacing="3" cellpadding="0" border="0" align="center">
+<tr>
+ <td width="10%" nowrap="nowrap">{L_PM_FROM}:&nbsp;</td>
+ <td><b>{MESSAGE_AUTHOR}</b> [ {SENT_DATE} ]</td>
+</tr>
+
+<!-- IF S_TO_RECIPIENT -->
+ <tr>
+ <td width="10%" nowrap="nowrap">{L_TO}:</td>
+ <td>
+ <!-- BEGIN to_recipient -->
+ <span<!-- IF to_recipient.IS_GROUP --> class="sep"<!-- ENDIF -->>{to_recipient.NAME}</span>&nbsp;
+ <!-- END to_recipient -->
+ </td>
+ </tr>
+<!-- ENDIF -->
+
+<!-- IF S_BCC_RECIPIENT -->
+ <tr>
+ <td width="10%" nowrap="nowrap">{L_BCC}:</td>
+ <td>
+ <!-- BEGIN bcc_recipient -->
+ <!-- IF bcc_recipient.COLOUR --><span style="color:{bcc_recipient.COLOUR}"><!-- ELSE --><span<!-- IF bcc_recipient.IS_GROUP --> class="sep"<!-- ENDIF -->><!-- ENDIF -->{bcc_recipient.NAME}</span>&nbsp;
+ <!-- END bcc_recipient -->
+ </td>
+ </tr>
+<!-- ENDIF -->
+<tr>
+ <td colspan="2"><hr class="sep" />{MESSAGE}</td>
+</tr>
+</table>
+
+<hr width="85%" />
+<!--
+ We request you retain the full copyright notice below including the link to www.phpbb.com.
+ This not only gives respect to the large amount of time given freely by the developers
+ but also helps build interest, traffic and use of phpBB3. If you (honestly) cannot retain
+ the full copyright we ask you at least leave in place the "Powered by phpBB" line. If you
+ refuse to include even this then support on our forums may be affected.
+
+ The phpBB Group : 2006
+// -->
+
+<table width="85%" cellspacing="3" cellpadding="0" border="0" align="center">
+<tr>
+ <td><span class="gensmall">{PAGE_NUMBER}</span></td>
+ <td align="{S_CONTENT_FLOW_END}"><span class="gensmall">{S_TIMEZONE}</span></td>
+</tr>
+<tr>
+ <td colspan="2" align="center"><span class="gensmall">Powered by phpBB &copy; 2000, 2002, 2005, 2007 phpBB Group<br />http://www.phpbb.com/</span></td>
+</tr>
+</table>
+
+</body>
+</html>
diff --git a/phpBB/styles/subsilver2/template/ucp_prefs_personal.html b/phpBB/styles/subsilver2/template/ucp_prefs_personal.html
new file mode 100644
index 0000000000..e2266b7d38
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_prefs_personal.html
@@ -0,0 +1,98 @@
+<!-- INCLUDE ucp_header.html -->
+
+<script type="text/javascript">
+// <![CDATA[
+ /**
+ * Set display of page element
+ * s[-1,0,1] = hide,toggle display,show
+ */
+ function dE(n,s)
+ {
+ var e = document.getElementById(n);
+ if (!s)
+ {
+ s = (e.style.display == '') ? -1 : 1;
+ }
+ e.style.display = (s == 1) ? 'block' : 'none';
+ }
+
+ var default_dateformat = '{A_DEFAULT_DATEFORMAT}';
+// ]]>
+</script>
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th colspan="2" valign="middle">{L_TITLE}</th>
+</tr>
+<!-- IF ERROR -->
+ <tr>
+ <td class="row3" colspan="2" align="center"><span class="gensmall error">{ERROR}</span></td>
+ </tr>
+<!-- ENDIF -->
+<tr>
+ <td class="row1" width="50%"><b class="genmed">{L_SHOW_EMAIL}:</b></td>
+ <td class="row2"><input type="radio" class="radio" name="viewemail" value="1"<!-- IF S_VIEW_EMAIL --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_YES}</span>&nbsp;&nbsp;<input type="radio" class="radio" name="viewemail" value="0"<!-- IF not S_VIEW_EMAIL --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_NO}</span></td>
+</tr>
+<tr>
+ <td class="row1" width="50%"><b class="genmed">{L_ADMIN_EMAIL}:</b></td>
+ <td class="row2"><input type="radio" class="radio" name="massemail" value="1"<!-- IF S_MASS_EMAIL --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_YES}</span>&nbsp;&nbsp;<input type="radio" class="radio" name="massemail" value="0"<!-- IF not S_MASS_EMAIL --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_NO}</span></td>
+</tr>
+<tr>
+ <td class="row1" width="50%"><b class="genmed">{L_ALLOW_PM}:</b><br /><span class="gensmall">{L_ALLOW_PM_EXPLAIN}</span></td>
+ <td class="row2"><input type="radio" class="radio" name="allowpm" value="1"<!-- IF S_ALLOW_PM --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_YES}</span>&nbsp;&nbsp;<input type="radio" class="radio" name="allowpm" value="0"<!-- IF not S_ALLOW_PM --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_NO}</span></td>
+</tr>
+<!-- IF S_CAN_HIDE_ONLINE -->
+ <tr>
+ <td class="row1" width="50%"><b class="genmed">{L_HIDE_ONLINE}:</b><br /><span class="gensmall">{L_HIDE_ONLINE_EXPLAIN}</span></td>
+ <td class="row2"><input type="radio" class="radio" name="hideonline" value="1"<!-- IF S_HIDE_ONLINE --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_YES}</span>&nbsp;&nbsp;<input type="radio" class="radio" name="hideonline" value="0"<!-- IF not S_HIDE_ONLINE --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_NO}</span></td>
+ </tr>
+<!-- ENDIF -->
+<!-- IF S_SELECT_NOTIFY -->
+ <tr>
+ <td class="row1" width="50%"><b class="genmed">{L_NOTIFY_METHOD}:</b><br /><span class="gensmall">{L_NOTIFY_METHOD_EXPLAIN}</span></td>
+ <td class="row2"><input type="radio" class="radio" name="notifymethod" value="0"<!-- IF S_NOTIFY_EMAIL --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_NOTIFY_METHOD_EMAIL}</span>&nbsp;&nbsp;<input type="radio" class="radio" name="notifymethod" value="1"<!-- IF S_NOTIFY_IM --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_NOTIFY_METHOD_IM}</span>&nbsp;&nbsp;<input type="radio" class="radio" name="notifymethod" value="2"<!-- IF S_NOTIFY_BOTH --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_NOTIFY_METHOD_BOTH}</span></td>
+ </tr>
+<!-- ENDIF -->
+<tr>
+ <td class="row1" width="50%"><b class="genmed">{L_NOTIFY_ON_PM}:</b></td>
+ <td class="row2"><input type="radio" class="radio" name="notifypm" value="1"<!-- IF S_NOTIFY_PM --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_YES}</span>&nbsp;&nbsp;<input type="radio" class="radio" name="notifypm" value="0"<!-- IF not S_NOTIFY_PM --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_NO}</span></td>
+</tr>
+<tr>
+ <td class="row1" width="50%"><b class="genmed">{L_POPUP_ON_PM}:</b></td>
+ <td class="row2"><input type="radio" class="radio" name="popuppm" value="1"<!-- IF S_POPUP_PM --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_YES}</span>&nbsp;&nbsp;<input type="radio" class="radio" name="popuppm" value="0"<!-- IF not S_POPUP_PM --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_NO}</span></td>
+</tr>
+<tr>
+ <td class="row1" width="50%"><b class="genmed">{L_BOARD_LANGUAGE}:</b></td>
+ <td class="row2"><select name="lang">{S_LANG_OPTIONS}</select></td>
+</tr>
+<!-- IF S_STYLE_OPTIONS -->
+<tr>
+ <td class="row1" width="50%"><b class="genmed">{L_BOARD_STYLE}:</b></td>
+ <td class="row2"><select name="style">{S_STYLE_OPTIONS}</select></td>
+</tr>
+<!-- ENDIF -->
+<tr>
+ <td class="row1" width="50%"><b class="genmed">{L_BOARD_TIMEZONE}:</b></td>
+ <td class="row2">
+ <select id="tz" name="tz">{S_TZ_OPTIONS}</select>
+ </td>
+</tr>
+<tr>
+ <td class="row1" width="50%"><b class="genmed">{L_BOARD_DST}:</b></td>
+ <td class="row2"><input type="radio" class="radio" name="dst" value="1"<!-- IF S_DST --> checked="checked"<!-- ENDIF --> /> <span class="genmed">{L_YES}</span>&nbsp;&nbsp;<input type="radio" class="radio" name="dst" value="0"<!-- IF not S_DST --> checked="checked"<!-- ENDIF --> /> <span class="genmed">{L_NO}</span></td>
+</tr>
+<tr>
+ <td class="row1" width="50%"><b class="genmed">{L_BOARD_DATE_FORMAT}:</b><br /><span class="gensmall">{L_BOARD_DATE_FORMAT_EXPLAIN}</span></td>
+ <td class="row2">
+ <select name="dateoptions" id="dateoptions" onchange="if(this.value=='custom'){dE('custom_date',1);}else{dE('custom_date',-1);} if (this.value == 'custom') { document.getElementById('dateformat').value = default_dateformat; } else { document.getElementById('dateformat').value = this.value; }">
+ {S_DATEFORMAT_OPTIONS}
+ </select>
+ <div id="custom_date"<!-- IF not S_CUSTOM_DATEFORMAT --> style="display:none;"<!-- ENDIF -->><input type="text" name="dateformat" id="dateformat" value="{DATE_FORMAT}" maxlength="30" class="post" style="margin-top: 3px;" /></div>
+ </td>
+</tr>
+<tr>
+ <td class="cat" colspan="2" align="center">{S_HIDDEN_FIELDS}<input class="btnmain" type="submit" name="submit" value="{L_SUBMIT}" />&nbsp;&nbsp;<input class="btnlite" type="reset" value="{L_RESET}" name="reset" /></td>
+</tr>
+</table>
+
+<!-- INCLUDE ucp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/ucp_prefs_post.html b/phpBB/styles/subsilver2/template/ucp_prefs_post.html
new file mode 100644
index 0000000000..edf0070baa
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_prefs_post.html
@@ -0,0 +1,33 @@
+<!-- INCLUDE ucp_header.html -->
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th colspan="2" valign="middle">{L_TITLE}</th>
+</tr>
+<!-- IF ERROR -->
+ <tr>
+ <td class="row3" colspan="2" align="center"><span class="gensmall error">{ERROR}</span></td>
+ </tr>
+<!-- ENDIF -->
+<tr>
+ <td class="row1" width="50%"><b class="genmed">{L_DEFAULT_BBCODE}:</b></td>
+ <td class="row2"><input type="radio" class="radio" name="bbcode" value="1"<!-- IF S_BBCODE --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_YES}</span>&nbsp; &nbsp;<input type="radio" class="radio" name="bbcode" value="0"<!-- IF not S_BBCODE --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_NO}</span></td>
+</tr>
+<tr>
+ <td class="row1" width="50%"><b class="genmed">{L_DEFAULT_SMILIES}:</b></td>
+ <td class="row2"><input type="radio" class="radio" name="smilies" value="1"<!-- IF S_SMILIES --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_YES}</span>&nbsp; &nbsp;<input type="radio" class="radio" name="smilies" value="0"<!-- IF not S_SMILIES --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_NO}</span></td>
+</tr>
+<tr>
+ <td class="row1" width="50%"><b class="genmed">{L_DEFAULT_ADD_SIG}:</b></td>
+ <td class="row2"><input type="radio" class="radio" name="sig" value="1"<!-- IF S_SIG --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_YES}</span>&nbsp; &nbsp;<input type="radio" class="radio" name="sig" value="0"<!-- IF not S_SIG --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_NO}</span></td>
+</tr>
+<tr>
+ <td class="row1" width="50%"><b class="genmed">{L_DEFAULT_NOTIFY}:</b></td>
+ <td class="row2"><input type="radio" class="radio" name="notify" value="1"<!-- IF S_NOTIFY --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_YES}</span>&nbsp; &nbsp;<input type="radio" class="radio" name="notify" value="0"<!-- IF not S_NOTIFY --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_NO}</span></td>
+</tr>
+<tr>
+ <td class="cat" colspan="2" align="center">{S_HIDDEN_FIELDS}<input class="btnmain" type="submit" name="submit" value="{L_SUBMIT}" />&nbsp;&nbsp;<input class="btnlite" type="reset" value="{L_RESET}" name="reset" /></td>
+</tr>
+</table>
+
+<!-- INCLUDE ucp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/ucp_prefs_view.html b/phpBB/styles/subsilver2/template/ucp_prefs_view.html
new file mode 100644
index 0000000000..b97bcfde00
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_prefs_view.html
@@ -0,0 +1,73 @@
+<!-- INCLUDE ucp_header.html -->
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th colspan="2" valign="middle">{L_TITLE}</th>
+</tr>
+<!-- IF ERROR -->
+ <tr>
+ <td class="row3" colspan="2" align="center"><span class="gensmall error">{ERROR}</span></td>
+ </tr>
+<!-- ENDIF -->
+<tr>
+ <td class="row1" width="50%"><b class="genmed">{L_VIEW_IMAGES}:</b></td>
+ <td class="row2"><input type="radio" class="radio" name="images" value="1"<!-- IF S_IMAGES --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_YES}</span>&nbsp; &nbsp;<input type="radio" class="radio" name="images" value="0"<!-- IF not S_IMAGES --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_NO}</span></td>
+</tr>
+<tr>
+ <td class="row1" width="50%"><b class="genmed">{L_VIEW_FLASH}:</b></td>
+ <td class="row2"><input type="radio" class="radio" name="flash" value="1"<!-- IF S_FLASH --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_YES}</span>&nbsp; &nbsp;<input type="radio" class="radio" name="flash" value="0"<!-- IF not S_FLASH --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_NO}</span></td>
+</tr>
+<tr>
+ <td class="row1" width="50%"><b class="genmed">{L_VIEW_SMILIES}:</b></td>
+ <td class="row2"><input type="radio" class="radio" name="smilies" value="1"<!-- IF S_SMILIES --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_YES}</span>&nbsp; &nbsp;<input type="radio" class="radio" name="smilies" value="0"<!-- IF not S_SMILIES --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_NO}</span></td>
+</tr>
+<tr>
+ <td class="row1" width="50%"><b class="genmed">{L_VIEW_SIGS}:</b></td>
+ <td class="row2"><input type="radio" class="radio" name="sigs" value="1"<!-- IF S_SIGS --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_YES}</span>&nbsp; &nbsp;<input type="radio" class="radio" name="sigs" value="0"<!-- IF not S_SIGS --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_NO}</span></td>
+</tr>
+<tr>
+ <td class="row1" width="50%"><b class="genmed">{L_VIEW_AVATARS}:</b></td>
+ <td class="row2"><input type="radio" class="radio" name="avatars" value="1"<!-- IF S_AVATARS --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_YES}</span>&nbsp; &nbsp;<input type="radio" class="radio" name="avatars" value="0"<!-- IF not S_AVATARS --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_NO}</span></td>
+</tr>
+<!-- IF S_CHANGE_CENSORS -->
+ <tr>
+ <td class="row1" width="50%"><b class="genmed">{L_DISABLE_CENSORS}:</b></td>
+ <td class="row2"><input type="radio" class="radio" name="wordcensor" value="1"<!-- IF S_DISABLE_CENSORS --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_YES}</span>&nbsp; &nbsp;<input type="radio" class="radio" name="wordcensor" value="0"<!-- IF not S_DISABLE_CENSORS --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_NO}</span></td>
+ </tr>
+<!-- ENDIF -->
+<tr>
+ <td colspan="2" class="spacer"></td>
+</tr>
+<tr>
+ <td class="row1" width="50%"><b class="genmed">{L_VIEW_TOPICS_DAYS}:</b></td>
+ <td class="row2">{S_TOPIC_SORT_DAYS}</td>
+</tr>
+<tr>
+ <td class="row1" width="50%"><b class="genmed">{L_VIEW_TOPICS_KEY}:</b></td>
+ <td class="row2">{S_TOPIC_SORT_KEY}</td>
+</tr>
+<tr>
+ <td class="row1" width="50%"><b class="genmed">{L_VIEW_TOPICS_DIR}:</b></td>
+ <td class="row2">{S_TOPIC_SORT_DIR}</td>
+</tr>
+<tr>
+ <td colspan="2" class="spacer"></td>
+</tr>
+<tr>
+ <td class="row1" width="50%"><b class="genmed">{L_VIEW_POSTS_DAYS}:</b></td>
+ <td class="row2">{S_POST_SORT_DAYS}</td>
+</tr>
+<tr>
+ <td class="row1" width="50%"><b class="genmed">{L_VIEW_POSTS_KEY}:</b></td>
+ <td class="row2">{S_POST_SORT_KEY}</td>
+</tr>
+<tr>
+ <td class="row1" width="50%"><b class="genmed">{L_VIEW_POSTS_DIR}:</b></td>
+ <td class="row2">{S_POST_SORT_DIR}</td>
+</tr>
+<tr>
+ <td class="cat" colspan="2" align="center">{S_HIDDEN_FIELDS}<input class="btnmain" type="submit" name="submit" value="{L_SUBMIT}" />&nbsp;&nbsp;<input class="btnlite" type="reset" value="{L_RESET}" name="reset" /></td>
+</tr>
+</table>
+
+<!-- INCLUDE ucp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/ucp_profile_avatar.html b/phpBB/styles/subsilver2/template/ucp_profile_avatar.html
new file mode 100644
index 0000000000..4188d0e5f2
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_profile_avatar.html
@@ -0,0 +1,87 @@
+<!-- INCLUDE ucp_header.html -->
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th colspan="2" valign="middle">{L_TITLE}</th>
+</tr>
+<!-- IF ERROR -->
+ <tr>
+ <td class="row3" colspan="2" align="center"><span class="gensmall error">{ERROR}</span></td>
+ </tr>
+<!-- ENDIF -->
+<tr>
+ <td class="row1" width="35%"><b class="genmed">{L_CURRENT_IMAGE}: </b><br /><span class="gensmall">{L_AVATAR_EXPLAIN}</span></td>
+ <td class="row2" align="center"><br />
+ <!-- IF AVATAR -->{AVATAR}<br /><br /><input type="checkbox" class="radio" name="delete" />&nbsp;<span class="gensmall">{L_DELETE_AVATAR}</span>
+ <!-- ELSE --><img src="{T_THEME_PATH}/images/no_avatar.gif" alt="" />
+ <!-- ENDIF --></td>
+</tr>
+<!-- IF not S_AVATARS_ENABLED -->
+ <tr>
+ <td class="row3" colspan="2" align="center">{L_AVATAR_FEATURES_DISABLED}</td>
+ </tr>
+<!-- ENDIF -->
+<!-- IF S_UPLOAD_AVATAR_FILE -->
+ <tr>
+ <td class="row1" width="35%"><b class="genmed">{L_UPLOAD_AVATAR_FILE}: </b></td>
+ <td class="row2"><input type="hidden" name="MAX_FILE_SIZE" value="{AVATAR_SIZE}" /><input class="post" type="file" name="uploadfile" /></td>
+ </tr>
+<!-- ENDIF -->
+<!-- IF S_UPLOAD_AVATAR_URL -->
+ <tr>
+ <td class="row1" width="35%"><b class="genmed">{L_UPLOAD_AVATAR_URL}: </b><br /><span class="gensmall">{L_UPLOAD_AVATAR_URL_EXPLAIN}</span></td>
+ <td class="row2"><input class="post" type="text" name="uploadurl" size="40" value="{AVATAR_URL}" /></td>
+ </tr>
+<!-- ENDIF -->
+<!-- IF S_LINK_AVATAR -->
+ <tr>
+ <td class="row1" width="35%"><b class="genmed">{L_LINK_REMOTE_AVATAR}: </b><br /><span class="gensmall">{L_LINK_REMOTE_AVATAR_EXPLAIN}</span></td>
+ <td class="row2"><input class="post" type="text" name="remotelink" size="40" value="{AVATAR_REMOTE}" /></td>
+ </tr>
+ <tr>
+ <td class="row1" width="35%"><b class="genmed">{L_LINK_REMOTE_SIZE}: </b><br /><span class="gensmall">{L_LINK_REMOTE_SIZE_EXPLAIN}</span></td>
+ <td class="row2"><input class="post" type="text" name="width" size="3" value="{AVATAR_WIDTH}" /> <span class="gen">{L_PIXEL} &times; </span> <input class="post" type="text" name="height" size="3" value="{AVATAR_HEIGHT}" /> <span class="gen">{L_PIXEL}</span></td>
+ </tr>
+<!-- ENDIF -->
+<!-- IF S_DISPLAY_GALLERY -->
+ <tr>
+ <td class="row1" width="35%"><b class="genmed">{L_AVATAR_GALLERY}: </b></td>
+ <td class="row2"><strong><a href="{U_GALLERY}">{L_DISPLAY_GALLERY}</a></strong></td>
+ </tr>
+<!-- ENDIF -->
+
+<!-- IF S_IN_AVATAR_GALLERY -->
+ <tr>
+ <th colspan="2">{L_AVATAR_GALLERY}</th>
+ </tr>
+ <tr>
+ <td class="cat" colspan="2" align="center" valign="middle"><span class="genmed">{L_AVATAR_CATEGORY}: </span><select name="category">{S_CAT_OPTIONS}</select>&nbsp; <input class="btnlite" tabindex="0" type="submit" value="{L_GO}" name="display_gallery" /></td>
+ </tr>
+ <tr>
+ <td class="row1" colspan="2" align="center">
+ <table cellspacing="1" cellpadding="4" border="0">
+ <!-- BEGIN avatar_row -->
+ <tr>
+ <!-- BEGIN avatar_column -->
+ <td class="row1" align="center"><img src="{avatar_row.avatar_column.AVATAR_IMAGE}" alt="{avatar_row.avatar_column.AVATAR_NAME}" title="{avatar_row.avatar_column.AVATAR_NAME}" /></td>
+ <!-- END avatar_column -->
+ </tr>
+ <tr>
+ <!-- BEGIN avatar_option_column -->
+ <td class="row2" align="center"><input type="radio" class="radio" name="avatar_select" value="{avatar_row.avatar_option_column.S_OPTIONS_AVATAR}" /></td>
+ <!-- END avatar_option_column -->
+ </tr>
+ <!-- END avatar_row -->
+ </table>
+ </td>
+ </tr>
+<!-- ENDIF -->
+
+<!-- IF S_DISPLAY_GALLERY or S_IN_AVATAR_GALLERY or S_LINK_AVATAR or S_UPLOAD_AVATAR_URL or S_UPLOAD_AVATAR_FILE or AVATAR -->
+ <tr>
+ <td class="cat" colspan="2" align="center">{S_HIDDEN_FIELDS}<input class="btnmain" type="submit" name="submit" value="{L_SUBMIT}" />&nbsp;&nbsp;<!-- IF S_IN_AVATAR_GALLERY --><input class="btnlite" type="submit" name="cancel" value="{L_CANCEL}" /><!-- ELSE --><input class="btnlite" type="reset" value="{L_RESET}" name="reset" /><!-- ENDIF --></td>
+ </tr>
+<!-- ENDIF -->
+</table>
+
+<!-- INCLUDE ucp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/ucp_profile_profile_info.html b/phpBB/styles/subsilver2/template/ucp_profile_profile_info.html
new file mode 100644
index 0000000000..c08b873834
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_profile_profile_info.html
@@ -0,0 +1,72 @@
+<!-- INCLUDE ucp_header.html -->
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th colspan="2" valign="middle">{L_TITLE}</th>
+</tr>
+<!-- IF ERROR -->
+ <tr>
+ <td class="row3" colspan="2" align="center"><span class="gensmall error">{ERROR}</span></td>
+ </tr>
+<!-- ENDIF -->
+<tr>
+ <td class="row1" colspan="2"><span class="gensmall">{L_PROFILE_INFO_NOTICE}</span></td>
+</tr>
+<tr>
+ <td class="row1" width="35%"><b class="genmed">{L_UCP_ICQ}: </b></td>
+ <td class="row2"><input class="post" type="text" name="icq" size="30" maxlength="15" value="{ICQ}" /></td>
+</tr>
+<tr>
+ <td class="row1" width="35%"><b class="genmed">{L_UCP_AIM}: </b></td>
+ <td class="row2"><input class="post" type="text" name="aim" size="30" maxlength="255" value="{AIM}" /></td>
+</tr>
+<tr>
+ <td class="row1" width="35%"><b class="genmed">{L_UCP_MSNM}: </b></td>
+ <td class="row2"><input class="post" type="text" name="msn" size="30" maxlength="255" value="{MSN}" /></td>
+</tr>
+<tr>
+ <td class="row1" width="35%"><b class="genmed">{L_UCP_YIM}: </b></td>
+ <td class="row2"><input class="post" type="text" name="yim" size="30" maxlength="255" value="{YIM}" /></td>
+</tr>
+<tr>
+ <td class="row1" width="35%"><b class="genmed">{L_UCP_JABBER}: </b></td>
+ <td class="row2"><input class="post" type="text" name="jabber" size="30" maxlength="255" value="{JABBER}" /></td>
+</tr>
+<tr>
+ <td class="row1" width="35%"><b class="genmed">{L_WEBSITE}: </b></td>
+ <td class="row2"><input class="post" type="text" name="website" size="30" maxlength="255" value="{WEBSITE}" /></td>
+</tr>
+<tr>
+ <td class="row1" width="35%"><b class="genmed">{L_LOCATION}: </b></td>
+ <td class="row2"><input class="post" type="text" name="location" size="30" maxlength="100" value="{LOCATION}" /></td>
+</tr>
+<tr>
+ <td class="row1" width="35%"><b class="genmed">{L_OCCUPATION}: </b></td>
+ <td class="row2"><textarea class="post" name="occupation" rows="3" cols="30">{OCCUPATION}</textarea></td>
+</tr>
+<tr>
+ <td class="row1" width="35%"><b class="genmed">{L_INTERESTS}: </b></td>
+ <td class="row2"><textarea class="post" name="interests" rows="3" cols="30">{INTERESTS}</textarea></td>
+</tr>
+<!-- IF S_BIRTHDAYS_ENABLED -->
+ <tr>
+ <td class="row1" width="35%"><b class="genmed">{L_BIRTHDAY}: </b><br /><span class="gensmall">{L_BIRTHDAY_EXPLAIN}</span></td>
+ <td class="row2"><span class="genmed">{L_DAY}:</span> <select name="bday_day">{S_BIRTHDAY_DAY_OPTIONS}</select> <span class="genmed">{L_MONTH}:</span> <select name="bday_month">{S_BIRTHDAY_MONTH_OPTIONS}</select> <span class="genmed">{L_YEAR}:</span> <select name="bday_year">{S_BIRTHDAY_YEAR_OPTIONS}</select></td>
+ </tr>
+<!-- ENDIF -->
+<!-- BEGIN profile_fields -->
+ <tr>
+ <td class="row1" width="35%">
+ <b class="genmed">{profile_fields.LANG_NAME}: </b>
+ <!-- IF profile_fields.S_REQUIRED --><b>*</b><!-- ENDIF -->
+ <!-- IF profile_fields.LANG_EXPLAIN --><br /><span class="gensmall">{profile_fields.LANG_EXPLAIN}</span><!-- ENDIF -->
+ </td>
+ <td class="row2">{profile_fields.FIELD}<!-- IF profile_fields.ERROR --><br /><span class="gensmall error">{profile_fields.ERROR}</span><!-- ENDIF --></td>
+ </tr>
+<!-- END profile_fields -->
+<tr>
+ <td class="cat" colspan="2" align="center">{S_HIDDEN_FIELDS}<input class="btnmain" type="submit" name="submit" value="{L_SUBMIT}" />&nbsp;&nbsp;<input class="btnlite" type="reset" value="{L_RESET}" name="reset" /></td>
+</tr>
+</table>
+
+<!-- INCLUDE ucp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/ucp_profile_reg_details.html b/phpBB/styles/subsilver2/template/ucp_profile_reg_details.html
new file mode 100644
index 0000000000..78fb5a9628
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_profile_reg_details.html
@@ -0,0 +1,53 @@
+<!-- INCLUDE ucp_header.html -->
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th colspan="2" valign="middle">{L_TITLE}</th>
+</tr>
+<!-- IF S_FORCE_PASSWORD -->
+ <tr>
+ <td class="row3" colspan="2" align="center"><span class="gensmall">{L_FORCE_PASSWORD_EXPLAIN}</span></td>
+ </tr>
+<!-- ENDIF -->
+<!-- IF ERROR -->
+ <tr>
+ <td class="row3" colspan="2" align="center"><span class="gensmall error">{ERROR}</span></td>
+ </tr>
+<!-- ENDIF -->
+<tr>
+ <td class="row1" width="35%"><b class="genmed">{L_USERNAME}: </b><br /><span class="gensmall">{L_USERNAME_EXPLAIN}</span></td>
+ <td class="row2"><!-- IF S_CHANGE_USERNAME --><input type="text" class="post" name="username" size="30" value="{USERNAME}" /><!-- ELSE --><b class="gen">{USERNAME}</b><!-- ENDIF --></td>
+</tr>
+<tr>
+ <td class="row1" width="35%"><b class="genmed">{L_EMAIL_ADDRESS}: </b></td>
+ <td class="row2"><!-- IF S_CHANGE_EMAIL --><input type="text" class="post" name="email" size="30" maxlength="100" value="{EMAIL}" /><!-- ELSE --><b class="gen">{EMAIL}</b><!-- ENDIF --></td>
+</tr>
+<!-- IF S_CHANGE_EMAIL -->
+ <tr>
+ <td class="row1" width="35%"><b class="genmed">{L_CONFIRM_EMAIL}: </b><br /><span class="gensmall">{L_CONFIRM_EMAIL_EXPLAIN}</span></td>
+ <td class="row2"><input type="text" class="post" name="email_confirm" size="30" maxlength="100" value="{CONFIRM_EMAIL}" /></td>
+ </tr>
+<!-- ENDIF -->
+<!-- IF S_CHANGE_PASSWORD -->
+ <tr>
+ <td class="row1" width="35%"><b class="genmed">{L_NEW_PASSWORD}: </b><br /><span class="gensmall">{L_CHANGE_PASSWORD_EXPLAIN}</span></td>
+ <td class="row2"><input type="password" class="post" name="new_password" size="30" maxlength="255" value="{NEW_PASSWORD}" /></td>
+ </tr>
+ <tr>
+ <td class="row1" width="35%"><b class="genmed">{L_CONFIRM_PASSWORD}: </b><br /><span class="gensmall">{L_CONFIRM_PASSWORD_EXPLAIN}</span></td>
+ <td class="row2"><input type="password" class="post" name="password_confirm" size="30" maxlength="255" value="{PASSWORD_CONFIRM}" /></td>
+ </tr>
+<!-- ENDIF -->
+<tr>
+ <th colspan="2">{L_CONFIRM_CHANGES}</th>
+</tr>
+<tr>
+ <td class="row1" width="35%"><b class="genmed">{L_CURRENT_PASSWORD}: </b><br /><span class="gensmall">{L_CURRENT_PASSWORD_EXPLAIN}</span></td>
+ <td class="row2"><input type="password" class="post" name="cur_password" size="30" maxlength="255" value="{CUR_PASSWORD}" /></td>
+</tr>
+<tr>
+ <td class="cat" colspan="2" align="center">{S_HIDDEN_FIELDS}<input class="btnmain" type="submit" name="submit" value="{L_SUBMIT}" />&nbsp;&nbsp;<input class="btnlite" type="reset" value="{L_RESET}" name="reset" /></td>
+</tr>
+</table>
+
+<!-- INCLUDE ucp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/ucp_profile_signature.html b/phpBB/styles/subsilver2/template/ucp_profile_signature.html
new file mode 100644
index 0000000000..a33726e166
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_profile_signature.html
@@ -0,0 +1,110 @@
+<!-- INCLUDE ucp_header.html -->
+
+<!-- DEFINE $S_SIGNATURE = 1 -->
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th colspan="2">{L_TITLE}</th>
+</tr>
+<tr>
+ <td colspan="2" class="row1">{L_SIGNATURE_EXPLAIN}</td>
+</tr>
+
+<!-- IF ERROR -->
+ <tr>
+ <td class="row3" colspan="2" align="center"><span class="genmed error">{ERROR}</span></td>
+ </tr>
+<!-- ENDIF -->
+
+<tr>
+ <td colspan="2" class="row2">
+ <script type="text/javascript">
+ // <![CDATA[
+ var form_name = 'ucp';
+ var text_name = 'signature';
+ // ]]>
+ </script>
+
+ <table cellspacing="0" cellpadding="2" border="0" width="99%">
+ <!-- INCLUDE posting_buttons.html -->
+ <tr>
+ <td colspan="2"><textarea class="post" name="signature" rows="10" cols="76" style="width: 90%;" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onfocus="initInsertions();">{SIGNATURE}</textarea></td>
+ </tr>
+ <!-- IF S_BBCODE_ALLOWED -->
+ <tr>
+ <td colspan="2">
+ <table cellspacing="0" cellpadding="0" border="0" width="100%">
+ <tr>
+ <td align="{S_CONTENT_FLOW_BEGIN}">
+ <script type="text/javascript">
+ // <![CDATA[
+ colorPalette('h', 6, 5)
+ // ]]>
+ </script>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <!-- ENDIF -->
+ </table>
+ </td>
+</tr>
+<tr>
+ <td class="row1" valign="top"><b class="genmed">{L_OPTIONS}</b><br />
+ <table cellspacing="2" cellpadding="0" border="0">
+ <tr>
+ <td class="gensmall">{BBCODE_STATUS}</td>
+ </tr>
+ <tr>
+ <td class="gensmall">{IMG_STATUS}</td>
+ </tr>
+ <tr>
+ <td class="gensmall">{FLASH_STATUS}</td>
+ </tr>
+ <tr>
+ <td class="gensmall">{URL_STATUS}</td>
+ </tr>
+ <tr>
+ <td class="gensmall">{SMILIES_STATUS}</td>
+ </tr>
+ </table>
+ </td>
+ <td class="row2" valign="top">
+ <table cellspacing="0" cellpadding="1" border="0">
+ <!-- IF S_BBCODE_ALLOWED -->
+ <tr>
+ <td><input type="checkbox" class="radio" name="disable_bbcode"{S_BBCODE_CHECKED} /></td>
+ <td class="gen">{L_DISABLE_BBCODE}</td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- IF S_SMILIES_ALLOWED -->
+ <tr>
+ <td><input type="checkbox" class="radio" name="disable_smilies"{S_SMILIES_CHECKED} /></td>
+ <td class="gen">{L_DISABLE_SMILIES}</td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- IF S_LINKS_ALLOWED -->
+ <tr>
+ <td><input type="checkbox" class="radio" name="disable_magic_url"{S_MAGIC_URL_CHECKED} /></td>
+ <td class="gen">{L_DISABLE_MAGIC_URL}</td>
+ </tr>
+ <!-- ENDIF -->
+ </table>
+ </td>
+</tr>
+
+<!-- IF SIGNATURE_PREVIEW != '' -->
+ <tr>
+ <th colspan="2" valign="middle">{L_SIGNATURE_PREVIEW}</th>
+ </tr>
+ <tr>
+ <td class="row1" colspan="2"><div class="postbody" style="padding: 6px;">{SIGNATURE_PREVIEW}</div></td>
+ </tr>
+<!-- ENDIF -->
+
+<tr>
+ <td class="cat" colspan="2" align="center">{S_HIDDEN_FIELDS}<input class="btnlite" type="submit" name="preview" value="{L_PREVIEW}" />&nbsp;&nbsp;<input class="btnmain" type="submit" name="submit" value="{L_SUBMIT}" />&nbsp;&nbsp;<input class="btnlite" type="reset" value="{L_RESET}" name="reset" /></td>
+</tr>
+</table>
+
+<!-- INCLUDE ucp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/ucp_register.html b/phpBB/styles/subsilver2/template/ucp_register.html
new file mode 100644
index 0000000000..ebcdf2d76b
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_register.html
@@ -0,0 +1,101 @@
+<!-- INCLUDE overall_header.html -->
+
+<script type="text/javascript">
+// <![CDATA[
+ /**
+ * Change language
+ */
+ function change_language(lang_iso)
+ {
+ document.forms['register'].change_lang.value = lang_iso;
+ document.forms['register'].submit.click();
+ }
+
+// ]]>
+</script>
+
+<form name="register" method="post" action="{S_UCP_ACTION}">
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th colspan="2" valign="middle">{L_REGISTRATION}</th>
+</tr>
+
+<!-- IF ERROR -->
+ <tr>
+ <td class="row3" colspan="2" align="center"><span class="gensmall error">{ERROR}</span></td>
+ </tr>
+<!-- ENDIF -->
+
+<!-- IF L_REG_COND -->
+ <tr>
+ <td class="row2" colspan="2"><span class="gensmall">{L_REG_COND}</span></td>
+ </tr>
+<!-- ENDIF -->
+
+<tr>
+ <td class="row1" width="38%"><b class="genmed">{L_USERNAME}: </b><br /><span class="gensmall">{L_USERNAME_EXPLAIN}</span></td>
+ <td class="row2"><input class="post" type="text" name="username" size="25" value="{USERNAME}" /></td>
+</tr>
+<tr>
+ <td class="row1"><b class="genmed">{L_EMAIL_ADDRESS}: </b></td>
+ <td class="row2"><input class="post" type="text" name="email" size="25" maxlength="100" value="{EMAIL}" /></td>
+</tr>
+<tr>
+ <td class="row1"><b class="genmed">{L_CONFIRM_EMAIL}: </b></td>
+ <td class="row2"><input class="post" type="text" name="email_confirm" size="25" maxlength="100" value="{EMAIL_CONFIRM}" /></td>
+</tr>
+<tr>
+ <td class="row1"><b class="genmed">{L_PASSWORD}: </b><br /><span class="gensmall">{L_PASSWORD_EXPLAIN}</span></td>
+ <td class="row2"><input class="post" type="password" name="new_password" size="25" value="{PASSWORD}" /></td>
+</tr>
+<tr>
+ <td class="row1"><b class="genmed">{L_CONFIRM_PASSWORD}: </b></td>
+ <td class="row2"><input class="post" type="password" name="password_confirm" size="25" value="{PASSWORD_CONFIRM}" /></td>
+</tr>
+<tr>
+ <td class="row1"><b class="genmed">{L_LANGUAGE}: </b></td>
+ <td class="row2"><select name="lang" onchange="change_language(this.value); return false;">{S_LANG_OPTIONS}</select></td>
+</tr>
+<tr>
+ <td class="row1"><b class="genmed">{L_TIMEZONE}: </b></td>
+ <td class="row2"><select name="tz">{S_TZ_OPTIONS}</select></td>
+</tr>
+<!-- IF .profile_fields -->
+ <tr>
+ <td class="row2" colspan="2"><span class="gensmall">{L_ITEMS_REQUIRED}</span></td>
+ </tr>
+<!-- BEGIN profile_fields -->
+ <tr>
+ <td class="row1" width="35%">
+ <b class="genmed">{profile_fields.LANG_NAME}: </b>
+ <!-- IF profile_fields.S_REQUIRED --><b>*</b><!-- ENDIF -->
+ <!-- IF profile_fields.LANG_EXPLAIN --><br /><span class="gensmall">{profile_fields.LANG_EXPLAIN}</span><!-- ENDIF -->
+ </td>
+ <td class="row2">{profile_fields.FIELD}<!-- IF profile_fields.ERROR --><br /><span class="gensmall error">{profile_fields.ERROR}</span><!-- ENDIF --></td>
+ </tr>
+
+<!-- END profile_fields -->
+<!-- ENDIF -->
+
+ <!-- IF CAPTCHA_TEMPLATE -->
+ <!-- INCLUDE {CAPTCHA_TEMPLATE} -->
+ <!-- ENDIF -->
+
+<!-- IF S_COPPA -->
+ <tr>
+ <th colspan="2" valign="middle">{L_COPPA_COMPLIANCE}</th>
+ </tr>
+ <tr>
+ <td class="row3" colspan="2"><span class="gensmall">{L_COPPA_EXPLAIN}</span></td>
+ </tr>
+<!-- ENDIF -->
+
+<tr>
+ <td class="cat" colspan="2" align="center">{S_HIDDEN_FIELDS}<input class="btnmain" type="submit" name="submit" id="submit" value="{L_SUBMIT}" />&nbsp;&nbsp;<input class="btnlite" type="reset" value="{L_RESET}" name="reset" /></td>
+</tr>
+</table>
+{S_FORM_TOKEN}
+</form>
+
+<!-- INCLUDE overall_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/ucp_remind.html b/phpBB/styles/subsilver2/template/ucp_remind.html
new file mode 100644
index 0000000000..b14fbe8305
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_remind.html
@@ -0,0 +1,28 @@
+<!-- INCLUDE overall_header.html -->
+
+<div align="center">
+
+<form action="{S_PROFILE_ACTION}" method="post">
+
+<table class="tablebg" width="50%" cellspacing="1" cellpadding="4" border="0">
+<tr>
+ <th colspan="2">{L_SEND_PASSWORD}</th>
+</tr>
+<tr>
+ <td class="row1" width="38%"><b class="genmed">{L_USERNAME}: </b></td>
+ <td class="row2"><input type="text" class="post" name="username" size="25" value="{USERNAME}" /></td>
+</tr>
+<tr>
+ <td class="row1"><b class="genmed">{L_EMAIL_ADDRESS}: </b><br /><span class="gensmall">{L_EMAIL_REMIND}</span></td>
+ <td class="row2"><input type="text" class="post" name="email" size="25" maxlength="100" value="{EMAIL}" /></td>
+</tr>
+<tr>
+ <td class="cat" colspan="2" align="center">{S_HIDDEN_FIELDS}<input type="submit" name="submit" value="{L_SUBMIT}" class="btnmain" />&nbsp;&nbsp;<input type="reset" value="{L_RESET}" name="reset" class="btnlite" /></td>
+</tr>
+</table>
+{S_FORM_TOKEN}
+</form>
+
+</div>
+
+<!-- INCLUDE overall_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/ucp_resend.html b/phpBB/styles/subsilver2/template/ucp_resend.html
new file mode 100644
index 0000000000..3a39f904aa
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_resend.html
@@ -0,0 +1,29 @@
+<!-- INCLUDE overall_header.html -->
+
+<div align="center">
+
+<form action="{S_PROFILE_ACTION}" method="post">
+
+<table class="tablebg" width="50%" cellspacing="1" cellpadding="4" border="0">
+<tr>
+ <th colspan="2">{L_UCP_RESEND}</th>
+</tr>
+<tr>
+ <td class="row1" width="38%"><b class="genmed">{L_USERNAME}: </b></td>
+ <td class="row2"><input type="text" class="post" name="username" size="25" value="{USERNAME}" /></td>
+</tr>
+<tr>
+ <td class="row1"><b class="genmed">{L_EMAIL_ADDRESS}: </b><br /><span class="gensmall">{L_EMAIL_REMIND}</span></td>
+ <td class="row2"><input type="text" class="post" name="email" size="25" maxlength="100" value="{EMAIL}" /></td>
+</tr>
+<tr>
+ <td class="cat" colspan="2" align="center">{S_HIDDEN_FIELDS}<input type="submit" name="submit" value="{L_SUBMIT}" class="btnmain" />&nbsp;&nbsp;<input type="reset" value="{L_RESET}" name="reset" class="btnlite" /></td>
+</tr>
+</table>
+{S_FORM_TOKEN}
+
+</form>
+
+</div>
+
+<!-- INCLUDE overall_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/ucp_zebra_foes.html b/phpBB/styles/subsilver2/template/ucp_zebra_foes.html
new file mode 100644
index 0000000000..89be18ccc1
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_zebra_foes.html
@@ -0,0 +1,28 @@
+<!-- INCLUDE ucp_header.html -->
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th colspan="2" valign="middle">{L_TITLE}</th>
+</tr>
+<tr>
+ <td class="row3" colspan="2"><span class="gensmall">{L_FOES_EXPLAIN}</span></td>
+</tr>
+<!-- IF ERROR -->
+ <tr>
+ <td class="row3" colspan="2" align="center"><span class="gensmall error">{ERROR}</span></td>
+ </tr>
+<!-- ENDIF -->
+<tr>
+ <td class="row1" width="40%"><b class="genmed">{L_YOUR_FOES}:</b><br /><span class="gensmall">{L_YOUR_FOES_EXPLAIN}</span></td>
+ <td class="row2" align="center"><!-- IF S_USERNAME_OPTIONS --><select name="usernames[]" multiple="multiple" size="5">{S_USERNAME_OPTIONS}</select><!-- ELSE --><b class="genmed">{L_NO_FOES}</b><!-- ENDIF --></td>
+</tr>
+<tr>
+ <td class="row1"><b class="genmed">{L_ADD_FOES}:</b><br /><span class="gensmall">{L_ADD_FOES_EXPLAIN} [ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</span></td>
+ <td class="row2" align="center"><textarea name="add" rows="5" cols="30">{USERNAMES}</textarea><br /></td>
+</tr>
+<tr>
+ <td class="cat" colspan="2" align="center">{S_HIDDEN_FIELDS}<input class="btnmain" type="submit" name="submit" value="{L_SUBMIT}" />&nbsp;&nbsp;<input class="btnlite" type="reset" value="{L_RESET}" name="reset" /></td>
+</tr>
+</table>
+
+<!-- INCLUDE ucp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/ucp_zebra_friends.html b/phpBB/styles/subsilver2/template/ucp_zebra_friends.html
new file mode 100644
index 0000000000..2abea04b8f
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/ucp_zebra_friends.html
@@ -0,0 +1,28 @@
+<!-- INCLUDE ucp_header.html -->
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th colspan="2" valign="middle">{L_TITLE}</th>
+</tr>
+<tr>
+ <td class="row3" colspan="2"><span class="gensmall">{L_FRIENDS_EXPLAIN}</span></td>
+</tr>
+<!-- IF ERROR -->
+ <tr>
+ <td class="row3" colspan="2" align="center"><span class="gensmall error">{ERROR}</span></td>
+ </tr>
+<!-- ENDIF -->
+<tr>
+ <td class="row1" width="40%"><b class="genmed">{L_YOUR_FRIENDS}:</b><br /><span class="gensmall">{L_YOUR_FRIENDS_EXPLAIN}</span></td>
+ <td class="row2" align="center"><!-- IF S_USERNAME_OPTIONS --><select name="usernames[]" multiple="multiple" size="5">{S_USERNAME_OPTIONS}</select><!-- ELSE --><b class="genmed">{L_NO_FRIENDS}</b><!-- ENDIF --></td>
+</tr>
+<tr>
+ <td class="row1"><b class="genmed">{L_ADD_FRIENDS}:</b><br /><span class="gensmall">{L_ADD_FRIENDS_EXPLAIN} [ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</span></td>
+ <td class="row2" align="center"><textarea name="add" rows="5" cols="30">{USERNAMES}</textarea><br /></td>
+</tr>
+<tr>
+ <td class="cat" colspan="2" align="center">{S_HIDDEN_FIELDS}<input class="btnmain" type="submit" name="submit" value="{L_SUBMIT}" />&nbsp;&nbsp;<input class="btnlite" type="reset" value="{L_RESET}" name="reset" /></td>
+</tr>
+</table>
+
+<!-- INCLUDE ucp_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/viewforum_body.html b/phpBB/styles/subsilver2/template/viewforum_body.html
new file mode 100644
index 0000000000..6511fa5349
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/viewforum_body.html
@@ -0,0 +1,329 @@
+<!-- INCLUDE overall_header.html -->
+
+<!-- IF S_FORUM_RULES -->
+ <div class="forumrules">
+ <!-- IF U_FORUM_RULES -->
+ <h3>{L_FORUM_RULES}</h3><br />
+ <a href="{U_FORUM_RULES}"><b>{L_FORUM_RULES_LINK}</b></a>
+ <!-- ELSE -->
+ <h3>{L_FORUM_RULES}</h3><br />
+ {FORUM_RULES}
+ <!-- ENDIF -->
+ </div>
+
+ <br clear="all" />
+<!-- ENDIF -->
+
+<!-- IF S_DISPLAY_ACTIVE -->
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <td class="cat" colspan="<!-- IF S_TOPIC_ICONS -->7<!-- ELSE -->6<!-- ENDIF -->"><span class="nav">{L_ACTIVE_TOPICS}</span></td>
+ </tr>
+
+ <tr>
+ <!-- IF S_TOPIC_ICONS -->
+ <th colspan="3">&nbsp;{L_TOPICS}&nbsp;</th>
+ <!-- ELSE -->
+ <th colspan="2">&nbsp;{L_TOPICS}&nbsp;</th>
+ <!-- ENDIF -->
+ <th>&nbsp;{L_AUTHOR}&nbsp;</th>
+ <th>&nbsp;{L_REPLIES}&nbsp;</th>
+ <th>&nbsp;{L_VIEWS}&nbsp;</th>
+ <th>&nbsp;{L_LAST_POST}&nbsp;</th>
+ </tr>
+
+ <!-- BEGIN topicrow -->
+
+ <tr>
+ <td class="row1" width="25" align="center">{topicrow.TOPIC_FOLDER_IMG}</td>
+ <!-- IF S_TOPIC_ICONS -->
+ <td class="row1" width="25" align="center"><!-- IF topicrow.TOPIC_ICON_IMG --><img src="{T_ICONS_PATH}{topicrow.TOPIC_ICON_IMG}" width="{topicrow.TOPIC_ICON_IMG_WIDTH}" height="{topicrow.TOPIC_ICON_IMG_HEIGHT}" alt="" title="" /><!-- ENDIF --></td>
+ <!-- ENDIF -->
+ <td class="row1">
+ <!-- IF topicrow.S_UNREAD_TOPIC --><a href="{topicrow.U_NEWEST_POST}">{NEWEST_POST_IMG}</a><!-- ENDIF -->
+ {topicrow.ATTACH_ICON_IMG} <!-- IF topicrow.S_HAS_POLL or topicrow.S_TOPIC_MOVED --><b>{topicrow.TOPIC_TYPE}</b> <!-- ENDIF --><a title="{L_POSTED}: {topicrow.FIRST_POST_TIME}" 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}">{UNAPPROVED_IMG}</a>&nbsp;
+ <!-- ENDIF -->
+ <!-- IF topicrow.S_TOPIC_REPORTED -->
+ <a href="{topicrow.U_MCP_REPORT}">{REPORTED_IMG}</a>&nbsp;
+ <!-- ENDIF -->
+ <!-- IF topicrow.PAGINATION -->
+ <p class="gensmall"> [ {GOTO_PAGE_IMG}{L_GOTO_PAGE}: {topicrow.PAGINATION} ] </p>
+ <!-- ENDIF -->
+ </td>
+ <td class="row2" width="130" align="center"><p class="topicauthor">{topicrow.TOPIC_AUTHOR_FULL}</p></td>
+ <td class="row1" width="50" align="center"><p class="topicdetails">{topicrow.REPLIES}</p></td>
+ <td class="row2" width="50" align="center"><p class="topicdetails">{topicrow.VIEWS}</p></td>
+ <td class="row1" width="140" align="center">
+ <p class="topicdetails" style="white-space: nowrap;">{topicrow.LAST_POST_TIME}</p>
+ <p class="topicdetails">{topicrow.LAST_POST_AUTHOR_FULL}
+ <!-- IF not S_IS_BOT --><a href="{topicrow.U_LAST_POST}">{LAST_POST_IMG}</a><!-- ENDIF -->
+ </p>
+ </td>
+ </tr>
+
+ <!-- BEGINELSE -->
+
+ <tr>
+ <!-- IF S_TOPIC_ICONS -->
+ <td class="row1" colspan="7" height="30" align="center" valign="middle"><span class="gen"><!-- IF not S_SORT_DAYS -->{L_NO_TOPICS}<!-- ELSE -->{L_NO_TOPICS_TIME_FRAME}<!-- ENDIF --></span></td>
+ <!-- ELSE -->
+ <td class="row1" colspan="6" height="30" align="center" valign="middle"><span class="gen"><!-- IF not S_SORT_DAYS -->{L_NO_TOPICS}<!-- ELSE -->{L_NO_TOPICS_TIME_FRAME}<!-- ENDIF --></span></td>
+ <!-- ENDIF -->
+ </tr>
+ <!-- END topicrow -->
+
+ <tr align="center">
+ <td class="cat" colspan="<!-- IF S_TOPIC_ICONS -->7<!-- ELSE -->6<!-- ENDIF -->">&nbsp;</td>
+ </tr>
+ </table>
+
+ <br clear="all" />
+<!-- ENDIF -->
+
+<!-- IF S_HAS_SUBFORUM -->
+ <!-- INCLUDE forumlist_body.html -->
+ <br clear="all" />
+<!-- ENDIF -->
+
+<!-- IF S_IS_POSTABLE or S_NO_READ_ACCESS -->
+ <div id="pageheader">
+ <h2><a class="titles" href="{U_VIEW_FORUM}">{FORUM_NAME}</a></h2>
+
+ <!-- IF MODERATORS -->
+ <p class="moderators"><!-- IF S_SINGLE_MODERATOR -->{L_MODERATOR}<!-- ELSE -->{L_MODERATORS}<!-- ENDIF -->: {MODERATORS}</p>
+ <!-- ENDIF -->
+ <!-- IF U_MCP -->
+ <p class="linkmcp">[ <a href="{U_MCP}">{L_MCP}</a> ]</p>
+ <!-- ENDIF -->
+ </div>
+
+ <br clear="all" /><br />
+<!-- ENDIF -->
+
+<div id="pagecontent">
+
+<!-- IF S_NO_READ_ACCESS -->
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <td class="row1" height="30" align="center" valign="middle"><span class="gen">{L_NO_READ_ACCESS}</span></td>
+ </tr>
+ </table>
+
+ <!-- IF not S_USER_LOGGED_IN and not S_IS_BOT -->
+
+ <br /><br />
+
+ <form method="post" action="{S_LOGIN_ACTION}">
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <td class="cat"><h4><a href="{U_LOGIN_LOGOUT}">{L_LOGIN_LOGOUT}</a></h4></td>
+ </tr>
+ <tr>
+ <td class="row1" align="center"><span class="genmed">{L_USERNAME}:</span> <input class="post" type="text" name="username" size="10" />&nbsp; <span class="genmed">{L_PASSWORD}:</span> <input class="post" type="password" name="password" size="10" /><!-- IF S_AUTOLOGIN_ENABLED -->&nbsp; <span class="gensmall">{L_LOG_ME_IN}</span> <input type="checkbox" class="radio" name="autologin" /><!-- ENDIF -->&nbsp; <input type="submit" class="btnmain" name="login" value="{L_LOGIN}" /></td>
+ </tr>
+ </table>
+ {S_LOGIN_REDIRECT}
+ </form>
+
+ <!-- ENDIF -->
+
+ <br clear="all" />
+<!-- ENDIF -->
+
+ <!-- IF S_DISPLAY_POST_INFO or TOTAL_TOPICS -->
+ <table width="100%" cellspacing="1">
+ <tr>
+ <!-- IF S_DISPLAY_POST_INFO and not S_IS_BOT -->
+ <td align="{S_CONTENT_FLOW_BEGIN}" valign="middle"><a href="{U_POST_NEW_TOPIC}">{POST_IMG}</a></td>
+ <!-- ENDIF -->
+ <!-- IF TOTAL_TOPICS -->
+ <td class="nav" valign="middle" nowrap="nowrap">&nbsp;{PAGE_NUMBER}<br /></td>
+ <td class="gensmall" nowrap="nowrap">&nbsp;[ {TOTAL_TOPICS} ]&nbsp;</td>
+ <td class="gensmall" width="100%" align="{S_CONTENT_FLOW_END}" nowrap="nowrap"><!-- INCLUDE pagination.html --></td>
+ <!-- ENDIF -->
+ </tr>
+ </table>
+ <!-- ENDIF -->
+
+ <!-- IF not S_DISPLAY_ACTIVE and (S_IS_POSTABLE or .topicrow) -->
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <td class="cat" colspan="<!-- IF S_TOPIC_ICONS -->7<!-- ELSE -->6<!-- ENDIF -->">
+ <table width="100%" cellspacing="0">
+ <tr class="nav">
+ <td valign="middle">&nbsp;<!-- IF S_WATCH_FORUM_LINK and not S_IS_BOT --><a href="{S_WATCH_FORUM_LINK}">{S_WATCH_FORUM_TITLE}</a><!-- ENDIF --></td>
+ <td align="{S_CONTENT_FLOW_END}" valign="middle"><!-- IF not S_IS_BOT and U_MARK_TOPICS --><a href="{U_MARK_TOPICS}">{L_MARK_TOPICS_READ}</a><!-- ENDIF -->&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <!-- IF S_TOPIC_ICONS -->
+ <th colspan="3">&nbsp;{L_TOPICS}&nbsp;</th>
+ <!-- ELSE -->
+ <th colspan="2">&nbsp;{L_TOPICS}&nbsp;</th>
+ <!-- ENDIF -->
+ <th>&nbsp;{L_AUTHOR}&nbsp;</th>
+ <th>&nbsp;{L_REPLIES}&nbsp;</th>
+ <th>&nbsp;{L_VIEWS}&nbsp;</th>
+ <th>&nbsp;{L_LAST_POST}&nbsp;</th>
+ </tr>
+
+ <!-- BEGIN topicrow -->
+
+ <!-- IF topicrow.S_TOPIC_TYPE_SWITCH eq 1 -->
+ <tr>
+ <td class="row3" colspan="<!-- IF S_TOPIC_ICONS -->7<!-- ELSE -->6<!-- ENDIF -->"><b class="gensmall">{L_ANNOUNCEMENTS}</b></td>
+ </tr>
+ <!-- ELSEIF topicrow.S_TOPIC_TYPE_SWITCH eq 0 -->
+ <tr>
+ <td class="row3" colspan="<!-- IF S_TOPIC_ICONS -->7<!-- ELSE -->6<!-- ENDIF -->"><b class="gensmall">{L_TOPICS}</b></td>
+ </tr>
+ <!-- ENDIF -->
+
+ <tr>
+ <td class="row1" width="25" align="center">{topicrow.TOPIC_FOLDER_IMG}</td>
+ <!-- IF S_TOPIC_ICONS -->
+ <td class="row1" width="25" align="center"><!-- IF topicrow.TOPIC_ICON_IMG --><img src="{T_ICONS_PATH}{topicrow.TOPIC_ICON_IMG}" width="{topicrow.TOPIC_ICON_IMG_WIDTH}" height="{topicrow.TOPIC_ICON_IMG_HEIGHT}" alt="" title="" /><!-- ENDIF --></td>
+ <!-- ENDIF -->
+ <td class="row1">
+ <!-- IF topicrow.S_UNREAD_TOPIC --><a href="{topicrow.U_NEWEST_POST}">{NEWEST_POST_IMG}</a><!-- ENDIF -->
+ {topicrow.ATTACH_ICON_IMG} <!-- IF topicrow.S_HAS_POLL or topicrow.S_TOPIC_MOVED --><b>{topicrow.TOPIC_TYPE}</b> <!-- ENDIF --><a title="{L_POSTED}: {topicrow.FIRST_POST_TIME}" 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>&nbsp;
+ <!-- ENDIF -->
+ <!-- IF topicrow.S_TOPIC_REPORTED -->
+ <a href="{topicrow.U_MCP_REPORT}">{REPORTED_IMG}</a>&nbsp;
+ <!-- ENDIF -->
+ <!-- IF topicrow.PAGINATION -->
+ <p class="gensmall"> [ {GOTO_PAGE_IMG}{L_GOTO_PAGE}: {topicrow.PAGINATION} ] </p>
+ <!-- ENDIF -->
+ </td>
+ <td class="row2" width="130" align="center"><p class="topicauthor">{topicrow.TOPIC_AUTHOR_FULL}</p></td>
+ <td class="row1" width="50" align="center"><p class="topicdetails">{topicrow.REPLIES}</p></td>
+ <td class="row2" width="50" align="center"><p class="topicdetails">{topicrow.VIEWS}</p></td>
+ <td class="row1" width="140" align="center">
+ <p class="topicdetails" style="white-space: nowrap;">{topicrow.LAST_POST_TIME}</p>
+ <p class="topicdetails">{topicrow.LAST_POST_AUTHOR_FULL}
+ <!-- IF not S_IS_BOT --><a href="{topicrow.U_LAST_POST}">{LAST_POST_IMG}</a><!-- ENDIF -->
+ </p>
+ </td>
+ </tr>
+
+ <!-- BEGINELSE -->
+ <!-- IF S_IS_POSTABLE -->
+ <tr>
+ <!-- IF S_TOPIC_ICONS -->
+ <td class="row1" colspan="7" height="30" align="center" valign="middle"><span class="gen"><!-- IF not S_SORT_DAYS -->{L_NO_TOPICS}<!-- ELSE -->{L_NO_TOPICS_TIME_FRAME}<!-- ENDIF --></span></td>
+ <!-- ELSE -->
+ <td class="row1" colspan="6" height="30" align="center" valign="middle"><span class="gen"><!-- IF not S_SORT_DAYS -->{L_NO_TOPICS}<!-- ELSE -->{L_NO_TOPICS_TIME_FRAME}<!-- ENDIF --></span></td>
+ <!-- ENDIF -->
+ </tr>
+ <!-- ENDIF -->
+ <!-- END topicrow -->
+
+ <!-- IF not S_IS_BOT -->
+ <tr align="center">
+ <!-- IF S_TOPIC_ICONS -->
+ <td class="cat" colspan="7">
+ <!-- ELSE -->
+ <td class="cat" colspan="6">
+ <!-- ENDIF -->
+ <form method="post" action="{S_FORUM_ACTION}"><span class="gensmall">{L_DISPLAY_TOPICS}:</span>&nbsp;{S_SELECT_SORT_DAYS}&nbsp;<span class="gensmall">{L_SORT_BY}</span> {S_SELECT_SORT_KEY} {S_SELECT_SORT_DIR}&nbsp;<input class="btnlite" type="submit" name="sort" value="{L_GO}" /></form>
+ </td>
+ </tr>
+ <!-- ENDIF -->
+ </table>
+ <!-- ENDIF -->
+
+ <!-- IF S_DISPLAY_POST_INFO or TOTAL_TOPICS -->
+ <table width="100%" cellspacing="1">
+ <tr>
+ <!-- IF S_DISPLAY_POST_INFO and not S_IS_BOT -->
+ <td align="{S_CONTENT_FLOW_BEGIN}" valign="middle"><a href="{U_POST_NEW_TOPIC}">{POST_IMG}</a></td>
+ <!-- ENDIF -->
+ <!-- IF TOTAL_TOPICS -->
+ <td class="nav" valign="middle" nowrap="nowrap">&nbsp;{PAGE_NUMBER}<br /></td>
+ <td class="gensmall" nowrap="nowrap">&nbsp;[ {TOTAL_TOPICS} ]&nbsp;</td>
+ <td class="gensmall" width="100%" align="{S_CONTENT_FLOW_END}" nowrap="nowrap"><!-- INCLUDE pagination.html --></td>
+ <!-- ENDIF -->
+ </tr>
+ </table>
+ <!-- ENDIF -->
+
+ <br clear="all" />
+</div>
+
+<!-- INCLUDE breadcrumbs.html -->
+
+<!-- IF S_DISPLAY_ONLINE_LIST -->
+ <br clear="all" />
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <td class="cat"><h4>{L_WHO_IS_ONLINE}</h4></td>
+ </tr>
+ <tr>
+ <td class="row1"><p class="gensmall">{LOGGED_IN_USER_LIST}</p></td>
+ </tr>
+ </table>
+<!-- ENDIF -->
+
+<!-- IF S_DISPLAY_POST_INFO -->
+ <br clear="all" />
+
+ <table width="100%" cellspacing="0">
+ <tr>
+ <td align="{S_CONTENT_FLOW_BEGIN}" valign="top">
+ <table cellspacing="3" cellpadding="0" border="0">
+ <tr>
+ <td width="20" style="text-align: center;">{FOLDER_UNREAD_IMG}</td>
+ <td class="gensmall">{L_UNREAD_POSTS}</td>
+ <td>&nbsp;&nbsp;</td>
+ <td width="20" style="text-align: center;">{FOLDER_IMG}</td>
+ <td class="gensmall">{L_NO_UNREAD_POSTS}</td>
+ <td>&nbsp;&nbsp;</td>
+ <td width="20" style="text-align: center;">{FOLDER_ANNOUNCE_IMG}</td>
+ <td class="gensmall">{L_ICON_ANNOUNCEMENT}</td>
+ </tr>
+ <tr>
+ <td style="text-align: center;">{FOLDER_HOT_UNREAD_IMG}</td>
+ <td class="gensmall">{L_UNREAD_POSTS_HOT}</td>
+ <td>&nbsp;&nbsp;</td>
+ <td style="text-align: center;">{FOLDER_HOT_IMG}</td>
+ <td class="gensmall">{L_NO_UNREAD_POSTS_HOT}</td>
+ <td>&nbsp;&nbsp;</td>
+ <td style="text-align: center;">{FOLDER_STICKY_IMG}</td>
+ <td class="gensmall">{L_ICON_STICKY}</td>
+ </tr>
+ <tr>
+ <td style="text-align: center;">{FOLDER_LOCKED_UNREAD_IMG}</td>
+ <td class="gensmall">{L_UNREAD_POSTS_LOCKED}</td>
+ <td>&nbsp;&nbsp;</td>
+ <td style="text-align: center;">{FOLDER_LOCKED_IMG}</td>
+ <td class="gensmall">{L_NO_UNREAD_POSTS_LOCKED}</td>
+ <td>&nbsp;&nbsp;</td>
+ <td style="text-align: center;">{FOLDER_MOVED_IMG}</td>
+ <td class="gensmall">{L_TOPIC_MOVED}</td>
+ </tr>
+ </table>
+ </td>
+ <td align="{S_CONTENT_FLOW_END}"><span class="gensmall"><!-- BEGIN rules -->{rules.RULE}<br /><!-- END rules --></span></td>
+ </tr>
+ </table>
+<!-- ENDIF -->
+
+<br clear="all" />
+
+<table width="100%" cellspacing="0">
+<tr>
+ <td><!-- IF S_DISPLAY_SEARCHBOX --><!-- INCLUDE searchbox.html --><!-- ENDIF --></td>
+ <td align="{S_CONTENT_FLOW_END}"><!-- INCLUDE jumpbox.html --></td>
+</tr>
+</table>
+
+<!-- INCLUDE overall_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/viewonline_body.html b/phpBB/styles/subsilver2/template/viewonline_body.html
new file mode 100644
index 0000000000..1fcab016b6
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/viewonline_body.html
@@ -0,0 +1,57 @@
+<!-- INCLUDE overall_header.html -->
+
+<h4>{TOTAL_REGISTERED_USERS_ONLINE}</h4>
+<h4>{TOTAL_GUEST_USERS_ONLINE}<!-- IF S_SWITCH_GUEST_DISPLAY --> [ <a href="{U_SWITCH_GUEST_DISPLAY}">{L_SWITCH_GUEST_DISPLAY}</a> ]<!-- ENDIF --></h4>
+<br />
+
+<!-- IF PAGINATION -->
+ <table width="100%" cellspacing="1">
+ <tr>
+ <td class="nav" valign="middle" nowrap="nowrap">&nbsp;{PAGE_NUMBER}<br /></td>
+ <td class="gensmall" width="100%" align="{S_CONTENT_FLOW_END}" nowrap="nowrap"><b><a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{L_GOTO_PAGE}</a> <!-- IF PREVIOUS_PAGE --><a href="{PREVIOUS_PAGE}">{L_PREVIOUS}</a>&nbsp;&nbsp;<!-- ENDIF -->{PAGINATION}<!-- IF NEXT_PAGE -->&nbsp;&nbsp;<a href="{NEXT_PAGE}">{L_NEXT}</a><!-- ENDIF --></b></td>
+ </tr>
+ </table>
+<!-- ENDIF -->
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th width="40%"><a href="{U_SORT_USERNAME}">{L_USERNAME}</a></th>
+ <th width="20%"><a href="{U_SORT_UPDATED}">{L_LAST_UPDATED}</a></th>
+ <th width="40%"><a href="{U_SORT_LOCATION}">{L_FORUM_LOCATION}</a></th>
+</tr>
+<!-- BEGIN user_row -->
+ <tr>
+ <td class="row1"><p class="gen">{user_row.USERNAME_FULL}</p><!-- IF user_row.USER_IP --><p class="gensmall">{L_IP}: <a href="{user_row.U_USER_IP}">{user_row.USER_IP}</a> &#187; <a href="{user_row.U_WHOIS}" onclick="popup(this.href, 750, 500); return false;">{L_WHOIS}</a></p><!-- ENDIF -->
+ <!-- IF user_row.USER_BROWSER -->{user_row.USER_BROWSER}<!-- ENDIF --></td>
+ <td class="row2" align="center" nowrap="nowrap"><p class="genmed">&nbsp;{user_row.LASTUPDATE}</p></td>
+ <td class="row1"><p class="genmed"><a href="{user_row.U_FORUM_LOCATION}">{user_row.FORUM_LOCATION}</a></p></td>
+ </tr>
+<!-- END user_row -->
+
+<!-- IF LEGEND -->
+ <tr>
+ <td class="row1" colspan="3"><b class="gensmall">{L_LEGEND} :: {LEGEND}</b></td>
+ </tr>
+<!-- ENDIF -->
+</table>
+
+<!-- IF PAGINATION -->
+ <table width="100%" cellspacing="1">
+ <tr>
+ <td class="nav" valign="middle" nowrap="nowrap">&nbsp;{PAGE_NUMBER}<br /></td>
+ <td class="gensmall" width="100%" align="{S_CONTENT_FLOW_END}" nowrap="nowrap"><b><a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{L_GOTO_PAGE}</a> <!-- IF PREVIOUS_PAGE --><a href="{PREVIOUS_PAGE}">{L_PREVIOUS}</a>&nbsp;&nbsp;<!-- ENDIF -->{PAGINATION}<!-- IF NEXT_PAGE -->&nbsp;&nbsp;<a href="{NEXT_PAGE}">{L_NEXT}</a><!-- ENDIF --></b></td>
+ </tr>
+ </table>
+<!-- ENDIF -->
+
+<div class="gensmall" align="{S_CONTENT_FLOW_END}">{L_ONLINE_EXPLAIN}</div>
+
+<br clear="all" />
+
+<!-- INCLUDE breadcrumbs.html -->
+
+<br clear="all" />
+
+<div align="{S_CONTENT_FLOW_END}"><!-- INCLUDE jumpbox.html --></div>
+
+<!-- INCLUDE overall_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/viewonline_whois.html b/phpBB/styles/subsilver2/template/viewonline_whois.html
new file mode 100644
index 0000000000..033d848ac4
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/viewonline_whois.html
@@ -0,0 +1,12 @@
+<!-- INCLUDE simple_header.html -->
+
+<table class="tablebg" width="100%" cellspacing="1">
+<tr>
+ <th>{L_WHOIS}</th>
+</tr>
+<tr>
+ <td class="row1"><pre>{WHOIS}</pre><br /><a class="nav" href="#" onclick="window.close(); return false;">{L_CLOSE_WINDOW}</a></td>
+</tr>
+</table>
+
+<!-- INCLUDE simple_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/viewtopic_body.html b/phpBB/styles/subsilver2/template/viewtopic_body.html
new file mode 100644
index 0000000000..bba00ce685
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/viewtopic_body.html
@@ -0,0 +1,364 @@
+<!-- INCLUDE overall_header.html -->
+
+<!-- IF S_FORUM_RULES -->
+ <div class="forumrules">
+ <!-- IF U_FORUM_RULES -->
+ <h3>{L_FORUM_RULES}</h3><br />
+ <a href="{U_FORUM_RULES}"><b>{L_FORUM_RULES_LINK}</b></a>
+ <!-- ELSE -->
+ <h3>{L_FORUM_RULES}</h3><br />
+ {FORUM_RULES}
+ <!-- ENDIF -->
+ </div>
+
+ <br clear="all" />
+<!-- ENDIF -->
+
+<div id="pageheader">
+ <h2><a class="titles" href="{U_VIEW_TOPIC}">{TOPIC_TITLE}</a></h2>
+
+<!-- IF MODERATORS -->
+ <p class="moderators"><!-- IF S_SINGLE_MODERATOR -->{L_MODERATOR}<!-- ELSE -->{L_MODERATORS}<!-- ENDIF -->: {MODERATORS}</p>
+<!-- ENDIF -->
+<!-- IF U_MCP -->
+ <p class="linkmcp">[ <a href="{U_MCP}">{L_MCP}</a> ]</p>
+<!-- ENDIF -->
+</div>
+
+<br clear="all" /><br />
+
+<div id="pagecontent">
+
+ <table width="100%" cellspacing="1">
+ <tr>
+ <td align="{S_CONTENT_FLOW_BEGIN}" valign="middle" nowrap="nowrap">
+ <!-- IF not S_IS_BOT -->
+ <!-- IF S_DISPLAY_POST_INFO --><a href="{U_POST_NEW_TOPIC}">{POST_IMG}</a>&nbsp;<!-- ENDIF -->
+ <!-- IF S_DISPLAY_REPLY_INFO --><a href="{U_POST_REPLY_TOPIC}">{REPLY_IMG}</a><!-- ENDIF -->
+ <!-- ENDIF -->
+ </td>
+ <!-- IF TOTAL_POSTS -->
+ <td class="nav" valign="middle" nowrap="nowrap">&nbsp;{PAGE_NUMBER}<br /></td>
+ <td class="gensmall" nowrap="nowrap">&nbsp;[ {TOTAL_POSTS} ]&nbsp;</td>
+ <td class="gensmall" width="100%" align="{S_CONTENT_FLOW_END}" nowrap="nowrap"><!-- INCLUDE pagination.html --></td>
+ <!-- ENDIF -->
+ </tr>
+ </table>
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <td class="cat">
+ <table width="100%" cellspacing="0">
+ <tr>
+ <td class="nav" nowrap="nowrap">&nbsp;
+ <!-- IF not S_IS_BOT -->
+ <!-- IF U_WATCH_TOPIC --><a href="{U_WATCH_TOPIC}" title="{L_WATCH_TOPIC}">{L_WATCH_TOPIC}</a><!-- IF U_PRINT_TOPIC or U_EMAIL_TOPIC or U_BUMP_TOPIC or U_BOOKMARK_TOPIC --> | <!-- ENDIF --><!-- ENDIF -->
+ <!-- IF U_BOOKMARK_TOPIC --><a href="{U_BOOKMARK_TOPIC}" title="{L_BOOKMARK_TOPIC}">{L_BOOKMARK_TOPIC}</a><!-- IF U_PRINT_TOPIC or U_EMAIL_TOPIC or U_BUMP_TOPIC --> | <!-- ENDIF --><!-- ENDIF -->
+ <!-- IF U_PRINT_TOPIC --><a href="{U_PRINT_TOPIC}" title="{L_PRINT_TOPIC}">{L_PRINT_TOPIC}</a><!-- IF U_EMAIL_TOPIC or U_BUMP_TOPIC --> | <!-- ENDIF --><!-- ENDIF -->
+ <!-- IF U_EMAIL_TOPIC --><a href="{U_EMAIL_TOPIC}" title="{L_EMAIL_TOPIC}">{L_EMAIL_TOPIC}</a><!-- IF U_BUMP_TOPIC --> | <!-- ENDIF --><!-- ENDIF -->
+ <!-- IF U_BUMP_TOPIC --><a href="{U_BUMP_TOPIC}" title="{L_BUMP_TOPIC}">{L_BUMP_TOPIC}</a><!-- ENDIF -->
+ <!-- ENDIF -->
+ </td>
+ <td class="nav" align="{S_CONTENT_FLOW_END}" nowrap="nowrap"><a href="{U_VIEW_OLDER_TOPIC}">{L_VIEW_PREVIOUS_TOPIC}</a><!-- IF U_VIEW_UNREAD_POST and not S_IS_BOT --> | <a href="{U_VIEW_UNREAD_POST}">{L_VIEW_UNREAD_POST}</a><!-- ENDIF --> | <a href="{U_VIEW_NEWER_TOPIC}">{L_VIEW_NEXT_TOPIC}</a>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+<!-- IF S_HAS_POLL -->
+ <tr>
+ <td class="row2" colspan="2" align="center"><br clear="all" />
+
+ <form method="post" action="{S_POLL_ACTION}">
+
+ <table cellspacing="0" cellpadding="4" border="0" align="center">
+ <tr>
+ <td align="center"><span class="gen"><b>{POLL_QUESTION}</b></span><br /><span class="gensmall">{L_POLL_LENGTH}</span></td>
+ </tr>
+ <tr>
+ <td align="{S_CONTENT_FLOW_BEGIN}">
+ <table cellspacing="0" cellpadding="2" border="0">
+ <!-- BEGIN poll_option -->
+ <tr>
+ <!-- IF S_CAN_VOTE -->
+ <td>
+ <!-- IF S_IS_MULTI_CHOICE -->
+ <input type="checkbox" class="radio" name="vote_id[]" value="{poll_option.POLL_OPTION_ID}"<!-- IF poll_option.POLL_OPTION_VOTED --> checked="checked"<!-- ENDIF --> />
+ <!-- ELSE -->
+ <input type="radio" class="radio" name="vote_id[]" value="{poll_option.POLL_OPTION_ID}"<!-- IF poll_option.POLL_OPTION_VOTED --> checked="checked"<!-- ENDIF --> />
+ <!-- ENDIF -->
+ </td>
+ <!-- ENDIF -->
+ <td><span class="gen">{poll_option.POLL_OPTION_CAPTION}</span></td>
+ <!-- IF S_DISPLAY_RESULTS -->
+ <td dir="ltr">{POLL_LEFT_CAP_IMG}{poll_option.POLL_OPTION_IMG}{POLL_RIGHT_CAP_IMG}</td>
+ <td class="gen" align="{S_CONTENT_FLOW_END}"><b>&nbsp;{poll_option.POLL_OPTION_PERCENT}&nbsp;</b></td>
+ <td class="gen" align="center">[ {poll_option.POLL_OPTION_RESULT} ]</td>
+ <!-- IF poll_option.POLL_OPTION_VOTED -->
+ <td class="gensmall" valign="top"><b title="{L_POLL_VOTED_OPTION}">x</b></td>
+ <!-- ENDIF -->
+ <!-- ENDIF -->
+ </tr>
+ <!-- END poll_option -->
+ </table>
+ </td>
+ </tr>
+ <!-- IF S_CAN_VOTE -->
+ <tr>
+ <td align="center"><span class="gensmall">{L_MAX_VOTES}</span><br /><br /><input type="submit" name="update" value="{L_SUBMIT_VOTE}" class="btnlite" /></td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- IF S_DISPLAY_RESULTS -->
+ <tr>
+ <td class="gensmall" colspan="4" align="center"><b>{L_TOTAL_VOTES} : {TOTAL_VOTES}</b></td>
+ </tr>
+ <!-- ELSE -->
+ <tr>
+ <td align="center"><span class="gensmall"><b><a href="{U_VIEW_RESULTS}">{L_VIEW_RESULTS}</a></b></span></td>
+ </tr>
+ <!-- ENDIF -->
+ </table>
+ {S_HIDDEN_FIELDS}
+ {S_FORM_TOKEN}
+ </form>
+
+ </td>
+ </tr>
+<!-- ENDIF -->
+ </table>
+
+<!-- BEGIN postrow -->
+ <table class="tablebg" width="100%" cellspacing="1">
+ <!-- IF postrow.S_FIRST_ROW -->
+ <tr>
+ <th>{L_AUTHOR}</th>
+ <th>{L_MESSAGE}</th>
+ </tr>
+ <!-- ENDIF -->
+ <!-- IF postrow.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+
+ <!-- IF postrow.S_IGNORE_POST -->
+ <td class="gensmall" colspan="2" height="25" align="center"><!-- IF postrow.S_FIRST_UNREAD --><a name="unread"></a><!-- ENDIF --><a name="p{postrow.POST_ID}"></a>{postrow.L_IGNORE_POST}</td>
+ <!-- ELSE -->
+
+ <td align="center" valign="middle">
+ <!-- IF postrow.S_FIRST_UNREAD --><a name="unread"></a><!-- ENDIF --><a name="p{postrow.POST_ID}"></a>
+ <b class="postauthor"<!-- IF postrow.POST_AUTHOR_COLOUR --> style="color: {postrow.POST_AUTHOR_COLOUR}"<!-- ENDIF -->>{postrow.POST_AUTHOR}</b>
+ </td>
+ <td width="100%" height="25">
+ <table width="100%" cellspacing="0">
+ <tr>
+ <!-- IF postrow.POST_ICON_IMG -->
+ <td><img src="{T_ICONS_PATH}{postrow.POST_ICON_IMG}" width="{postrow.POST_ICON_IMG_WIDTH}" height="{postrow.POST_ICON_IMG_HEIGHT}" alt="" title="" /></td>
+ <!-- ENDIF -->
+ <td class="gensmall" width="100%"><div style="float: {S_CONTENT_FLOW_BEGIN};">&nbsp;<b>{L_POST_SUBJECT}:</b> {postrow.POST_SUBJECT}</div><div style="float: {S_CONTENT_FLOW_END};"><!-- IF S_IS_BOT -->{postrow.MINI_POST_IMG}<!-- ELSE --><a href="{postrow.U_MINI_POST}">{postrow.MINI_POST_IMG}</a><!-- ENDIF --><b>{L_POSTED}:</b> {postrow.POST_DATE}&nbsp;</div></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <!-- IF postrow.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+
+ <td valign="top" class="profile">
+ <table cellspacing="4" align="center" width="150">
+ <!-- IF postrow.ONLINE_IMG -->
+ <tr>
+ <td>{postrow.ONLINE_IMG}</td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- IF postrow.RANK_TITLE -->
+ <tr>
+ <td class="postdetails">{postrow.RANK_TITLE}</td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- IF postrow.RANK_IMG -->
+ <tr>
+ <td>{postrow.RANK_IMG}</td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- IF postrow.POSTER_AVATAR -->
+ <tr>
+ <td>{postrow.POSTER_AVATAR}</td>
+ </tr>
+ <!-- ENDIF -->
+ <!-- IF not (postrow.ONLINE_IMG or postrow.RANK_TITLE or postrow.RANK_IMG or postrow.POSTER_AVATAR) -->
+ <tr>
+ <td></td>
+ </tr>
+ <!-- ENDIF -->
+ </table>
+
+ <span class="postdetails">
+ <!-- IF postrow.POSTER_JOINED --><br /><b>{L_JOINED}:</b> {postrow.POSTER_JOINED}<!-- ENDIF -->
+ <!-- IF postrow.POSTER_POSTS != '' --><br /><b>{L_POSTS}:</b> {postrow.POSTER_POSTS}<!-- ENDIF -->
+ <!-- IF postrow.POSTER_FROM --><br /><b>{L_LOCATION}:</b> {postrow.POSTER_FROM}<!-- ENDIF -->
+
+ <!-- IF postrow.S_PROFILE_FIELD1 -->
+ <!-- Use a construct like this to include admin defined profile fields. Replace FIELD1 with the name of your field. -->
+ <br /><b>{postrow.PROFILE_FIELD1_NAME}:</b> {postrow.PROFILE_FIELD1_VALUE}
+ <!-- ENDIF -->
+
+ <!-- BEGIN custom_fields -->
+ <br /><b>{postrow.custom_fields.PROFILE_FIELD_NAME}:</b> {postrow.custom_fields.PROFILE_FIELD_VALUE}
+ <!-- END custom_fields -->
+ </span>
+
+ </td>
+ <td valign="top">
+ <table width="100%" cellspacing="5">
+ <tr>
+ <td>
+ <!-- IF postrow.S_POST_UNAPPROVED or postrow.S_POST_REPORTED -->
+ <table width="100%" cellspacing="0">
+ <tr>
+ <td class="gensmall"><!-- IF postrow.S_POST_UNAPPROVED --><span class="postapprove">{UNAPPROVED_IMG} <a href="{postrow.U_MCP_APPROVE}">{L_POST_UNAPPROVED}</a></span><br /> <!-- ENDIF --> <!-- IF postrow.S_POST_REPORTED --><span class="postreported">{REPORTED_IMG} <a href="{postrow.U_MCP_REPORT}">{L_POST_REPORTED}</a></span><!-- ENDIF --></td>
+ </tr>
+ </table>
+
+ <br clear="all" />
+ <!-- ENDIF -->
+
+ <div class="postbody">{postrow.MESSAGE}</div>
+
+ <!-- IF postrow.S_HAS_ATTACHMENTS -->
+ <br clear="all" /><br />
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <td class="row3"><b class="genmed">{L_ATTACHMENTS}: </b></td>
+ </tr>
+ <!-- BEGIN attachment -->
+ <tr>
+ <!-- IF postrow.attachment.S_ROW_COUNT is even --><td class="row2"><!-- ELSE --><td class="row1"><!-- ENDIF -->{postrow.attachment.DISPLAY_ATTACHMENT}</td>
+ </tr>
+ <!-- END attachment -->
+ </table>
+ <!-- ENDIF -->
+
+ <!-- IF postrow.S_DISPLAY_NOTICE -->
+ <span class="gensmall error"><br /><br />{L_DOWNLOAD_NOTICE}</span>
+ <!-- ENDIF -->
+ <!-- IF postrow.SIGNATURE -->
+ <div class="postbody"><br />_________________<br />{postrow.SIGNATURE}</div>
+ <!-- ENDIF -->
+
+ <!-- IF postrow.EDITED_MESSAGE or postrow.EDIT_REASON -->
+ <!-- IF postrow.EDIT_REASON -->
+ <br /><br />
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <td class="row3"><span class="gensmall">{postrow.EDITED_MESSAGE}</span></td>
+ </tr>
+ <tr>
+ <td class="row2"><span class="genmed">{postrow.EDIT_REASON}</span></td>
+ </tr>
+ </table>
+ <!-- ELSE -->
+ <br /><br />
+ <span class="gensmall">{postrow.EDITED_MESSAGE}</span>
+ <!-- ENDIF -->
+ <!-- ENDIF -->
+
+ <!-- IF postrow.BUMPED_MESSAGE -->
+ <span class="gensmall"><br /><br />{postrow.BUMPED_MESSAGE}</span>
+ <!-- ENDIF -->
+
+ <!-- IF not postrow.S_HAS_ATTACHMENTS --><br clear="all" /><br /><!-- ENDIF -->
+
+ <table width="100%" cellspacing="0">
+ <tr valign="middle">
+ <td class="gensmall" align="{S_CONTENT_FLOW_END}">
+ <!-- IF not S_IS_BOT -->
+ <!-- IF postrow.U_REPORT --><a href="{postrow.U_REPORT}">{REPORT_IMG}</a> <!-- ENDIF -->
+ <!-- IF postrow.U_INFO --><a href="{postrow.U_INFO}">{INFO_IMG}</a> <!-- ENDIF -->
+ <!-- IF postrow.U_WARN --><a href="{postrow.U_WARN}">{WARN_IMG}</a> <!-- ENDIF -->
+ <!-- IF postrow.U_DELETE --><a href="{postrow.U_DELETE}">{DELETE_IMG}</a> <!-- ENDIF -->
+ <!-- ENDIF -->
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <!-- IF postrow.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
+
+ <td class="profile"><strong><a href="#wrapheader">{L_BACK_TO_TOP}</a></strong></td>
+ <td><div class="gensmall" style="float: {S_CONTENT_FLOW_BEGIN};">&nbsp;<!-- IF postrow.U_POST_AUTHOR --><a href="{postrow.U_POST_AUTHOR}">{PROFILE_IMG}</a> <!-- ENDIF --> <!-- IF postrow.U_PM --><a href="{postrow.U_PM}">{PM_IMG}</a> <!-- ENDIF --> <!-- IF postrow.U_EMAIL --><a href="{postrow.U_EMAIL}">{EMAIL_IMG}</a> <!-- ENDIF -->&nbsp;</div> <div class="gensmall" style="float: {S_CONTENT_FLOW_END};"><!-- IF not S_IS_BOT --><!-- IF postrow.U_EDIT --><a href="{postrow.U_EDIT}">{EDIT_IMG}</a> <!-- ENDIF --> <!-- IF postrow.U_QUOTE --><a href="{postrow.U_QUOTE}">{QUOTE_IMG}</a> <!-- ENDIF --> <!-- ENDIF -->&nbsp;</div></td>
+ <!-- ENDIF -->
+ </tr>
+
+ <tr>
+ <td class="spacer" colspan="2" height="1"><img src="images/spacer.gif" alt="" width="1" height="1" /></td>
+ </tr>
+ </table>
+<!-- END postrow -->
+
+ <!-- IF not S_IS_BOT -->
+ <table width="100%" cellspacing="1" class="tablebg">
+ <tr align="center">
+ <td class="cat"><form name="viewtopic" method="post" action="{S_TOPIC_ACTION}"><span class="gensmall">{L_DISPLAY_POSTS}:</span> {S_SELECT_SORT_DAYS}&nbsp;<span class="gensmall">{L_SORT_BY}</span> {S_SELECT_SORT_KEY} {S_SELECT_SORT_DIR}&nbsp;<input class="btnlite" type="submit" value="{L_GO}" name="sort" /></form></td>
+ </tr>
+ </table>
+ <!-- ENDIF -->
+
+ <table width="100%" cellspacing="1">
+ <tr>
+ <td align="{S_CONTENT_FLOW_BEGIN}" valign="middle" nowrap="nowrap">
+ <!-- IF not S_IS_BOT -->
+ <!-- IF S_DISPLAY_POST_INFO --><a href="{U_POST_NEW_TOPIC}">{POST_IMG}</a>&nbsp;<!-- ENDIF -->
+ <!-- IF S_DISPLAY_REPLY_INFO --><a href="{U_POST_REPLY_TOPIC}">{REPLY_IMG}</a><!-- ENDIF -->
+ <!-- ENDIF -->
+ </td>
+ <!-- IF TOTAL_POSTS -->
+ <td class="nav" valign="middle" nowrap="nowrap">&nbsp;{PAGE_NUMBER}<br /></td>
+ <td class="gensmall" nowrap="nowrap">&nbsp;[ {TOTAL_POSTS} ]&nbsp;</td>
+ <td class="gensmall" width="100%" align="{S_CONTENT_FLOW_END}" nowrap="nowrap"><!-- INCLUDE pagination.html --></td>
+ <!-- ENDIF -->
+ </tr>
+ </table>
+
+</div>
+
+<div id="pagefooter"></div>
+
+<br clear="all" />
+<!-- IF S_QUICK_REPLY -->
+<!-- INCLUDE quickreply_editor.html -->
+<!-- ENDIF -->
+
+<!-- INCLUDE breadcrumbs.html -->
+
+<!-- IF S_DISPLAY_ONLINE_LIST -->
+ <br clear="all" />
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <td class="cat"><h4>{L_WHO_IS_ONLINE}</h4></td>
+ </tr>
+ <tr>
+ <td class="row1"><p class="gensmall">{LOGGED_IN_USER_LIST}</p></td>
+ </tr>
+ </table>
+<!-- ENDIF -->
+
+<br clear="all" />
+
+<table width="100%" cellspacing="1">
+<tr>
+ <td width="40%" valign="top" nowrap="nowrap" align="{S_CONTENT_FLOW_BEGIN}"><!-- IF S_TOPIC_MOD --><form method="post" action="{S_MOD_ACTION}"><span class="gensmall">{L_QUICK_MOD}:</span> {S_TOPIC_MOD} <input class="btnlite" type="submit" value="{L_GO}" /></form><!-- ENDIF --></td>
+ <td align="{S_CONTENT_FLOW_END}" valign="top" nowrap="nowrap"><span class="gensmall"><!-- BEGIN rules -->{rules.RULE}<br /><!-- END rules --></span></td>
+</tr>
+</table>
+
+<br clear="all" />
+
+<table width="100%" cellspacing="0">
+<tr>
+ <td><!-- IF S_DISPLAY_SEARCHBOX --><!-- INCLUDE searchbox.html --><!-- ENDIF --></td>
+ <td align="{S_CONTENT_FLOW_END}"><!-- INCLUDE jumpbox.html --></td>
+</tr>
+</table>
+
+<!-- INCLUDE overall_footer.html --> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/template/viewtopic_print.html b/phpBB/styles/subsilver2/template/viewtopic_print.html
new file mode 100644
index 0000000000..cfd78b6fc7
--- /dev/null
+++ b/phpBB/styles/subsilver2/template/viewtopic_print.html
@@ -0,0 +1,145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html dir="{S_CONTENT_DIRECTION}" lang="{S_USER_LANG}">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset={S_CONTENT_ENCODING}">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<meta http-equiv="Content-Language" content="{S_USER_LANG}">
+<title>{SITENAME} :: {PAGE_TITLE}</title>
+
+<style type="text/css">
+<!--
+
+body {
+ font-family: Verdana,serif;
+ font-size: 10pt;
+}
+
+img {
+ border: 0;
+}
+
+td {
+ font-family: Verdana,serif;
+ font-size: 10pt;
+ line-height: 150%;
+}
+
+.code, .codecontent,
+.quote, .quotecontent {
+ margin: 0 5px 0 5px;
+ padding: 5px;
+ font-size: smaller;
+ border: black solid 1px;
+}
+
+.quotetitle {
+ color: black;
+ display : block;
+ font-weight: bold;
+}
+
+.forum {
+ font-family: Arial,Helvetica,sans-serif;
+ font-weight: bold;
+ font-size: 18pt;
+}
+
+.topic {
+ font-family: Arial,Helvetica,sans-serif;
+ font-size: 14pt;
+ font-weight: bold;
+}
+
+.gensmall {
+ font-size: 8pt;
+}
+
+hr {
+ color: #888;
+ height: 3px;
+ border-style: solid;
+}
+
+hr.sep {
+ color: #aaa;
+ height: 1px;
+ border-style: dashed;
+}
+//-->
+</style>
+
+</head>
+<body>
+
+<table width="85%" cellspacing="3" cellpadding="0" border="0" align="center">
+<tr>
+ <td colspan="2" align="center"><span class="Forum">{SITENAME}</span><br /><span class="gensmall"><a href="{U_FORUM}">{U_FORUM}</a></span></td>
+</tr>
+<tr>
+ <td colspan="2"><br /></td>
+</tr>
+<tr>
+ <td><span class="topic">{TOPIC_TITLE}</span><br /><span class="gensmall"><a href="{U_TOPIC}">{U_TOPIC}</a></span></td>
+ <td align="{S_CONTENT_FLOW_END}" valign="bottom"><span class="gensmall">{PAGE_NUMBER}</span></td>
+</tr>
+</table>
+
+<!-- BEGIN postrow -->
+
+ <hr width="85%" />
+
+ <table width="85%" cellspacing="3" cellpadding="0" border="0" align="center">
+ <tr>
+ <td width="10%" nowrap="nowrap">{L_AUTHOR}:&nbsp;</td>
+ <td><b>{postrow.POST_AUTHOR}</b> [ {postrow.POST_DATE} ]</td>
+ </tr>
+ <tr>
+ <td width="10%" nowrap="nowrap">{L_POST_SUBJECT}:&nbsp;</td>
+ <td><b>{postrow.POST_SUBJECT}</b></td>
+ </tr>
+ <tr>
+ <td colspan="2"><hr class="sep" />{postrow.MESSAGE}
+
+ <!-- IF postrow.S_HAS_ATTACHMENTS -->
+ <br clear="all" /><br />
+
+ <table class="tablebg" width="100%" cellspacing="1">
+ <tr>
+ <td><b class="genmed">{L_ATTACHMENTS}: </b></td>
+ </tr>
+ <!-- BEGIN attachment -->
+ <tr>
+ <td>{postrow.attachment.DISPLAY_ATTACHMENT}</td>
+ </tr>
+ <!-- END attachment -->
+ </table>
+ <!-- ENDIF -->
+
+ </td>
+ </tr>
+ </table>
+<!-- END postrow -->
+
+<hr width="85%" />
+<!--
+ We request you retain the full copyright notice below including the link to www.phpbb.com.
+ This not only gives respect to the large amount of time given freely by the developers
+ but also helps build interest, traffic and use of phpBB3. If you (honestly) cannot retain
+ the full copyright we ask you at least leave in place the "Powered by phpBB" line. If you
+ refuse to include even this then support on our forums may be affected.
+
+ The phpBB Group : 2006
+// -->
+
+<table width="85%" cellspacing="3" cellpadding="0" border="0" align="center">
+<tr>
+ <td><span class="gensmall">{PAGE_NUMBER}</span></td>
+ <td align="{S_CONTENT_FLOW_END}"><span class="gensmall">{S_TIMEZONE}</span></td>
+</tr>
+<tr>
+ <td colspan="2" align="center"><span class="gensmall">Powered by phpBB &copy; 2000, 2002, 2005, 2007 phpBB Group<br />http://www.phpbb.com/</span></td>
+</tr>
+</table>
+
+</body>
+</html> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/theme/images/background.gif b/phpBB/styles/subsilver2/theme/images/background.gif
new file mode 100644
index 0000000000..5c731e4fc2
--- /dev/null
+++ b/phpBB/styles/subsilver2/theme/images/background.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/theme/images/cellpic.gif b/phpBB/styles/subsilver2/theme/images/cellpic.gif
new file mode 100644
index 0000000000..47457ef5f7
--- /dev/null
+++ b/phpBB/styles/subsilver2/theme/images/cellpic.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/theme/images/cellpic1.gif b/phpBB/styles/subsilver2/theme/images/cellpic1.gif
new file mode 100644
index 0000000000..715b8d4aa8
--- /dev/null
+++ b/phpBB/styles/subsilver2/theme/images/cellpic1.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/theme/images/cellpic2.jpg b/phpBB/styles/subsilver2/theme/images/cellpic2.jpg
new file mode 100644
index 0000000000..a0ca7e89d3
--- /dev/null
+++ b/phpBB/styles/subsilver2/theme/images/cellpic2.jpg
Binary files differ
diff --git a/phpBB/styles/subsilver2/theme/images/cellpic2_rtl.jpg b/phpBB/styles/subsilver2/theme/images/cellpic2_rtl.jpg
new file mode 100644
index 0000000000..201e063725
--- /dev/null
+++ b/phpBB/styles/subsilver2/theme/images/cellpic2_rtl.jpg
Binary files differ
diff --git a/phpBB/styles/subsilver2/theme/images/cellpic3.gif b/phpBB/styles/subsilver2/theme/images/cellpic3.gif
new file mode 100644
index 0000000000..ecf70e1fd1
--- /dev/null
+++ b/phpBB/styles/subsilver2/theme/images/cellpic3.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/theme/images/created_by.jpg b/phpBB/styles/subsilver2/theme/images/created_by.jpg
new file mode 100644
index 0000000000..f27472781e
--- /dev/null
+++ b/phpBB/styles/subsilver2/theme/images/created_by.jpg
Binary files differ
diff --git a/phpBB/styles/subsilver2/theme/images/icon_mini_faq.gif b/phpBB/styles/subsilver2/theme/images/icon_mini_faq.gif
new file mode 100644
index 0000000000..fc50e7ca30
--- /dev/null
+++ b/phpBB/styles/subsilver2/theme/images/icon_mini_faq.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/theme/images/icon_mini_groups.gif b/phpBB/styles/subsilver2/theme/images/icon_mini_groups.gif
new file mode 100644
index 0000000000..a4d1c7bb70
--- /dev/null
+++ b/phpBB/styles/subsilver2/theme/images/icon_mini_groups.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/theme/images/icon_mini_login.gif b/phpBB/styles/subsilver2/theme/images/icon_mini_login.gif
new file mode 100644
index 0000000000..c7590a423f
--- /dev/null
+++ b/phpBB/styles/subsilver2/theme/images/icon_mini_login.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/theme/images/icon_mini_members.gif b/phpBB/styles/subsilver2/theme/images/icon_mini_members.gif
new file mode 100644
index 0000000000..d636089b38
--- /dev/null
+++ b/phpBB/styles/subsilver2/theme/images/icon_mini_members.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/theme/images/icon_mini_message.gif b/phpBB/styles/subsilver2/theme/images/icon_mini_message.gif
new file mode 100644
index 0000000000..b8aea1eafb
--- /dev/null
+++ b/phpBB/styles/subsilver2/theme/images/icon_mini_message.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/theme/images/icon_mini_profile.gif b/phpBB/styles/subsilver2/theme/images/icon_mini_profile.gif
new file mode 100644
index 0000000000..1ec7c649e9
--- /dev/null
+++ b/phpBB/styles/subsilver2/theme/images/icon_mini_profile.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/theme/images/icon_mini_register.gif b/phpBB/styles/subsilver2/theme/images/icon_mini_register.gif
new file mode 100644
index 0000000000..b49ac31ec9
--- /dev/null
+++ b/phpBB/styles/subsilver2/theme/images/icon_mini_register.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/theme/images/icon_mini_search.gif b/phpBB/styles/subsilver2/theme/images/icon_mini_search.gif
new file mode 100644
index 0000000000..2bd1a648c0
--- /dev/null
+++ b/phpBB/styles/subsilver2/theme/images/icon_mini_search.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/theme/images/index.htm b/phpBB/styles/subsilver2/theme/images/index.htm
new file mode 100644
index 0000000000..29531416fe
--- /dev/null
+++ b/phpBB/styles/subsilver2/theme/images/index.htm
@@ -0,0 +1,16 @@
+<html>
+<head>
+<title>subSilver created by subBlue Design</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body bgcolor="#FFFFFF" text="#000000">
+
+<table width="100%" height="100%" cellspacing="0" cellpadding="0" border="0">
+ <tr>
+ <td align="center" valign="middle"><a href="http://www.subblue.com/" target="_new"><img src="created_by.jpg" width="400" height="300" alt="Created by subBlue Design" /></a></td>
+ </tr>
+</table>
+
+</body>
+</html> \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/theme/images/no_avatar.gif b/phpBB/styles/subsilver2/theme/images/no_avatar.gif
new file mode 100644
index 0000000000..80539c8c71
--- /dev/null
+++ b/phpBB/styles/subsilver2/theme/images/no_avatar.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/theme/images/spacer.gif b/phpBB/styles/subsilver2/theme/images/spacer.gif
new file mode 100644
index 0000000000..5bfd67a2d6
--- /dev/null
+++ b/phpBB/styles/subsilver2/theme/images/spacer.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/theme/images/whosonline.gif b/phpBB/styles/subsilver2/theme/images/whosonline.gif
new file mode 100644
index 0000000000..b450927432
--- /dev/null
+++ b/phpBB/styles/subsilver2/theme/images/whosonline.gif
Binary files differ
diff --git a/phpBB/styles/subsilver2/theme/stylesheet.css b/phpBB/styles/subsilver2/theme/stylesheet.css
new file mode 100644
index 0000000000..726efdca0a
--- /dev/null
+++ b/phpBB/styles/subsilver2/theme/stylesheet.css
@@ -0,0 +1,670 @@
+/* phpBB 3.0 Style Sheet
+ --------------------------------------------------------------
+ Style name: subsilver2
+ Based on style: subSilver (the default phpBB 2 style)
+ Original author: subBlue ( http://www.subBlue.com/ )
+ Modified by: psoTFX and the phpBB team ( http://www.phpbb.com )
+
+ This is an alternative style for phpBB3 for those wishing to stay with
+ the familiar subSilver style of phpBB version 2.x
+
+ Copyright 2006 phpBB Group ( http://www.phpbb.com/ )
+ --------------------------------------------------------------
+*/
+
+/* Layout
+ ------------ */
+* {
+ /* Reset browsers default margin, padding and font sizes */
+ margin: 0;
+ padding: 0;
+}
+
+html {
+ font-size: 100%;
+}
+
+body {
+ /* Text-Sizing with ems: http://www.clagnut.com/blog/348/ */
+ font-family: "Lucida Grande", Verdana, Helvetica, Arial, sans-serif;
+ color: #323D4F;
+ background-color: #FFFFFF;
+ font-size: 62.5%; /* This sets the default font size to be equivalent to 10px */
+ margin: 0;
+}
+
+#wrapheader {
+ height: auto !important;
+ padding: 0;
+}
+
+#wrapcentre {
+ margin: 15px 25px 0 25px;
+}
+
+#wrapfooter {
+ text-align: center;
+ clear: both;
+}
+
+#wrapnav {
+ width: 100%;
+ margin: 0;
+ background-color: #ECECEC;
+ border-width: 1px;
+ border-style: solid;
+ border-color: #A9B8C2;
+}
+
+#logodesc {
+ background-color: #C1CAD2;
+ background-image: url('./images/background.gif');
+ background-repeat: repeat-x;
+ background-position: center bottom;
+ padding: 0 25px 15px 25px;
+}
+
+#menubar {
+ margin: 0 25px;
+}
+
+#datebar {
+ margin: 10px 25px 0 25px;
+}
+
+#findbar {
+ width: 100%;
+ margin: 0;
+ padding: 0;
+ border: 0;
+}
+
+.forumrules {
+ background-color: #F9CC79;
+ border-width: 1px;
+ border-style: solid;
+ border-color: #BB9860;
+ padding: 4px;
+ font-weight: normal;
+ font-size: 1.1em;
+ font-family: "Lucida Grande", Verdana, Arial, Helvetica, sans-serif;
+}
+
+.forumrules h3 {
+ color: red;
+}
+
+#pageheader { }
+#pagecontent { }
+#pagefooter { }
+
+#poll { }
+#postrow { }
+#postdata { }
+
+
+/* Text
+ --------------------- */
+h1 {
+ color: black;
+ font-family: "Lucida Grande", "Trebuchet MS", Verdana, sans-serif;
+ font-weight: bold;
+ font-size: 1.8em;
+ text-decoration: none;
+}
+
+h2 {
+ font-family: Arial, Helvetica, sans-serif;
+ font-weight: bold;
+ font-size: 1.5em;
+ text-decoration: none;
+ line-height: 120%;
+}
+
+h3 {
+ font-size: 1.3em;
+ font-weight: bold;
+ font-family: Arial, Helvetica, sans-serif;
+ line-height: 120%;
+}
+
+h4 {
+ margin: 0;
+ font-size: 1.1em;
+ font-weight: bold;
+}
+
+p {
+ font-size: 1.1em;
+}
+
+p.moderators {
+ margin: 0;
+ float: left;
+ color: black;
+ font-weight: bold;
+}
+
+.rtl p.moderators {
+ float: right;
+}
+
+p.linkmcp {
+ margin: 0;
+ float: right;
+ white-space: nowrap;
+}
+
+.rtl p.linkmcp {
+ float: left;
+}
+
+p.breadcrumbs {
+ margin: 0;
+ float: left;
+ color: black;
+ font-weight: bold;
+ white-space: normal;
+ font-size: 1em;
+}
+
+.rtl p.breadcrumbs {
+ float: right;
+}
+
+p.datetime {
+ margin: 0;
+ float: right;
+ white-space: nowrap;
+ font-size: 1em;
+}
+
+.rtl p.datetime {
+ float: left;
+}
+
+p.searchbar {
+ padding: 2px 0;
+ white-space: nowrap;
+}
+
+p.searchbarreg {
+ margin: 0;
+ float: right;
+ white-space: nowrap;
+}
+
+.rtl p.searchbarreg {
+ float: left;
+}
+
+p.forumdesc {
+ padding-bottom: 4px;
+}
+
+p.topicauthor {
+ margin: 1px 0;
+}
+
+p.topicdetails {
+ margin: 1px 0;
+}
+
+.postreported, .postreported a:visited, .postreported a:hover, .postreported a:link, .postreported a:active {
+ margin: 1px 0;
+ color: red;
+ font-weight:bold;
+}
+
+.postapprove, .postapprove a:visited, .postapprove a:hover, .postapprove a:link, .postapprove a:active {
+ color: green;
+ font-weight:bold;
+}
+
+.postapprove img, .postreported img {
+ vertical-align: bottom;
+ padding-top: 5px;
+}
+
+.postauthor {
+ color: #000000;
+}
+
+.postdetails {
+ color: #000000;
+}
+
+.postbody {
+ font-size: 1.3em;
+ line-height: 1.4em;
+ font-family: "Lucida Grande", "Trebuchet MS", Helvetica, Arial, sans-serif;
+}
+
+.postbody li, ol, ul {
+ margin: 0 0 0 1.5em;
+}
+
+.rtl .postbody li, .rtl ol, .rtl ul {
+ margin: 0 1.5em 0 0;
+}
+
+.posthilit {
+ background-color: yellow;
+}
+
+.nav {
+ margin: 0;
+ color: black;
+ font-weight: bold;
+}
+
+.pagination {
+ padding: 4px;
+ color: black;
+ font-size: 1em;
+ font-weight: bold;
+}
+
+.cattitle {
+
+}
+
+.gen {
+ margin: 1px 1px;
+ font-size: 1.2em;
+}
+
+.genmed {
+ margin: 1px 1px;
+ font-size: 1.1em;
+}
+
+.gensmall {
+ margin: 1px 1px;
+ font-size: 1em;
+}
+
+.copyright {
+ color: #444;
+ font-weight: normal;
+ font-family: "Lucida Grande", Verdana, Arial, Helvetica, sans-serif;
+}
+
+.titles {
+ font-family: "Lucida Grande", Helvetica, Arial, sans-serif;
+ font-weight: bold;
+ font-size: 1.3em;
+ text-decoration: none;
+}
+
+.error {
+ color: red;
+}
+
+
+/* Tables
+ ------------ */
+th {
+ color: #FFA34F;
+ font-size: 1.1em;
+ font-weight: bold;
+ background-color: #006699;
+ background-image: url('./images/cellpic3.gif');
+ white-space: nowrap;
+ padding: 7px 5px;
+}
+
+td {
+ padding: 2px;
+}
+td.profile {
+ padding: 4px;
+}
+
+.tablebg {
+ background-color: #A9B8C2;
+}
+
+.catdiv {
+ height: 28px;
+ margin: 0;
+ padding: 0;
+ border: 0;
+ background: white url('./images/cellpic2.jpg') repeat-y scroll top left;
+}
+.rtl .catdiv {
+ background: white url('./images/cellpic2_rtl.jpg') repeat-y scroll top right;
+}
+
+.cat {
+ height: 28px;
+ margin: 0;
+ padding: 0;
+ border: 0;
+ background-color: #C7D0D7;
+ background-image: url('./images/cellpic1.gif');
+ text-indent: 4px;
+}
+
+.row1 {
+ background-color: #ECECEC;
+ padding: 4px;
+}
+
+.row2 {
+ background-color: #DCE1E5;
+ padding: 4px;
+}
+
+.row3 {
+ background-color: #C0C8D0;
+ padding: 4px;
+}
+
+.spacer {
+ background-color: #D1D7DC;
+}
+
+hr {
+ height: 1px;
+ border-width: 0;
+ background-color: #D1D7DC;
+ color: #D1D7DC;
+}
+
+.legend {
+ text-align:center;
+ margin: 0 auto;
+}
+
+/* Links
+ ------------ */
+
+/* Links adjustment to correctly display an order of rtl/ltr mixed content */
+.rtl a {
+ direction: rtl;
+ unicode-bidi: embed;
+}
+
+a:link {
+ color: #006597;
+ text-decoration: none;
+}
+
+a:active,
+a:visited {
+ color: #005784;
+ text-decoration: none;
+}
+
+a:hover {
+ color: #D46400;
+ text-decoration: underline;
+}
+
+a.forumlink {
+ color: #069;
+ font-weight: bold;
+ font-family: "Lucida Grande", Helvetica, Arial, sans-serif;
+ font-size: 1.2em;
+}
+
+a.topictitle {
+ margin: 1px 0;
+ font-family: "Lucida Grande", Helvetica, Arial, sans-serif;
+ font-weight: bold;
+ font-size: 1.2em;
+}
+
+a.topictitle:visited {
+ color: #5493B4;
+ text-decoration: none;
+}
+
+th a,
+th a:visited {
+ color: #FFA34F !important;
+ text-decoration: none;
+}
+
+th a:hover {
+ text-decoration: underline;
+}
+
+
+/* Form Elements
+ ------------ */
+form {
+ margin: 0;
+ padding: 0;
+ border: 0;
+}
+
+input {
+ color: #333333;
+ font-family: "Lucida Grande", Verdana, Helvetica, sans-serif;
+ font-size: 1.1em;
+ font-weight: normal;
+ padding: 1px;
+ border: 1px solid #A9B8C2;
+ background-color: #FAFAFA;
+}
+
+textarea {
+ background-color: #FAFAFA;
+ color: #333333;
+ font-family: "Lucida Grande", Verdana, Helvetica, Arial, sans-serif;
+ font-size: 1.3em;
+ line-height: 1.4em;
+ font-weight: normal;
+ border: 1px solid #A9B8C2;
+ padding: 2px;
+}
+
+select {
+ color: #333333;
+ background-color: #FAFAFA;
+ font-family: "Lucida Grande", Verdana, Helvetica, sans-serif;
+ font-size: 1.1em;
+ font-weight: normal;
+ border: 1px solid #A9B8C2;
+ padding: 1px;
+}
+
+option {
+ padding: 0 1em 0 0;
+}
+
+option.disabled-option {
+ color: graytext;
+}
+
+.rtl option {
+ padding: 0 0 0 1em;
+}
+
+input.radio {
+ border: none;
+ background-color: transparent;
+}
+
+.post {
+ background-color: white;
+ border-style: solid;
+ border-width: 1px;
+}
+
+.btnbbcode {
+ color: #000000;
+ font-weight: normal;
+ font-size: 1.1em;
+ font-family: "Lucida Grande", Verdana, Helvetica, sans-serif;
+ background-color: #EFEFEF;
+ border: 1px solid #666666;
+}
+
+.btnmain {
+ font-weight: bold;
+ background-color: #ECECEC;
+ border: 1px solid #A9B8C2;
+ cursor: pointer;
+ padding: 1px 5px;
+ font-size: 1.1em;
+}
+
+.btnlite {
+ font-weight: normal;
+ background-color: #ECECEC;
+ border: 1px solid #A9B8C2;
+ cursor: pointer;
+ padding: 1px 5px;
+ font-size: 1.1em;
+}
+
+.btnfile {
+ font-weight: normal;
+ background-color: #ECECEC;
+ border: 1px solid #A9B8C2;
+ padding: 1px 5px;
+ font-size: 1.1em;
+}
+
+.helpline {
+ background-color: #DEE3E7;
+ border-style: none;
+}
+
+
+/* BBCode
+ ------------ */
+.quotetitle, .attachtitle {
+ margin: 10px 5px 0 5px;
+ padding: 4px;
+ border-width: 1px 1px 0 1px;
+ border-style: solid;
+ border-color: #A9B8C2;
+ color: #333333;
+ background-color: #A9B8C2;
+ font-size: 0.85em;
+ font-weight: bold;
+}
+
+.quotetitle .quotetitle {
+ font-size: 1em;
+}
+
+.quotecontent, .attachcontent {
+ margin: 0 5px 10px 5px;
+ padding: 5px;
+ border-color: #A9B8C2;
+ border-width: 0 1px 1px 1px;
+ border-style: solid;
+ font-weight: normal;
+ font-size: 1em;
+ line-height: 1.4em;
+ font-family: "Lucida Grande", "Trebuchet MS", Helvetica, Arial, sans-serif;
+ background-color: #FAFAFA;
+ color: #4B5C77;
+}
+
+.attachcontent {
+ font-size: 0.85em;
+}
+
+.codetitle {
+ margin: 10px 5px 0 5px;
+ padding: 2px 4px;
+ border-width: 1px 1px 0 1px;
+ border-style: solid;
+ border-color: #A9B8C2;
+ color: #333333;
+ background-color: #A9B8C2;
+ font-family: "Lucida Grande", Verdana, Helvetica, Arial, sans-serif;
+ font-size: 0.8em;
+}
+
+.codecontent {
+ direction: ltr;
+ margin: 0 5px 10px 5px;
+ padding: 5px;
+ border-color: #A9B8C2;
+ border-width: 0 1px 1px 1px;
+ border-style: solid;
+ font-weight: normal;
+ color: #006600;
+ font-size: 0.85em;
+ font-family: Monaco, 'Courier New', monospace;
+ background-color: #FAFAFA;
+}
+
+.syntaxbg {
+ color: #FFFFFF;
+}
+
+.syntaxcomment {
+ color: #FF8000;
+}
+
+.syntaxdefault {
+ color: #0000BB;
+}
+
+.syntaxhtml {
+ color: #000000;
+}
+
+.syntaxkeyword {
+ color: #007700;
+}
+
+.syntaxstring {
+ color: #DD0000;
+}
+
+
+/* Private messages
+ ------------------ */
+.pm_marked_colour {
+ background-color: #000000;
+}
+
+.pm_replied_colour {
+ background-color: #A9B8C2;
+}
+
+.pm_friend_colour {
+ background-color: #007700;
+}
+
+.pm_foe_colour {
+ background-color: #DD0000;
+}
+
+
+/* Misc
+ ------------ */
+img {
+ border: none;
+}
+
+.sep {
+ color: black;
+ background-color: #FFA34F;
+}
+
+table.colortable td {
+ padding: 0;
+}
+
+pre {
+ font-size: 1.1em;
+ font-family: Monaco, 'Courier New', monospace;
+}
+
+.nowrap {
+ white-space: nowrap;
+}
+
+.username-coloured {
+ font-weight: bold;
+} \ No newline at end of file
diff --git a/phpBB/styles/subsilver2/theme/theme.cfg b/phpBB/styles/subsilver2/theme/theme.cfg
new file mode 100644
index 0000000000..7f6bfd9a12
--- /dev/null
+++ b/phpBB/styles/subsilver2/theme/theme.cfg
@@ -0,0 +1,35 @@
+#
+# phpBB Theme Configuration File
+#
+# @package phpBB3
+# @copyright (c) 2005 phpBB Group
+# @license http://opensource.org/licenses/gpl-license.php GNU Public License
+#
+#
+# At the left is the name, please do not change this
+# At the right the value is entered
+# For on/off options the valid values are on, off, 1, 0, true and false
+#
+# Values get trimmed, if you want to add a space in front or at the end of
+# the value, then enclose the value with single or double quotes.
+# Single and double quotes do not need to be escaped.
+#
+# Available and used values:
+# parse_css_file
+#
+
+# General Information about this theme
+name = subsilver2
+copyright = &copy; phpBB Group, 2003
+version = 3.0.7
+
+# Some configuration options
+
+#
+# You have to turn this option on if you want to use the
+# path template variables ({T_IMAGESET_PATH} for example) within
+# your css file.
+# This is mostly the case if you want to use language specific
+# images within your css file.
+#
+parse_css_file = off
diff --git a/phpBB/viewforum.php b/phpBB/viewforum.php
index d18508ccbc..9cfa93f880 100644
--- a/phpBB/viewforum.php
+++ b/phpBB/viewforum.php
@@ -273,16 +273,16 @@ $template->assign_vars(array(
'POST_IMG' => ($forum_data['forum_status'] == ITEM_LOCKED) ? $user->img('button_topic_locked', $post_alt) : $user->img('button_topic_new', $post_alt),
'NEWEST_POST_IMG' => $user->img('icon_topic_newest', 'VIEW_NEWEST_POST'),
'LAST_POST_IMG' => $user->img('icon_topic_latest', 'VIEW_LATEST_POST'),
- 'FOLDER_IMG' => $user->img('topic_read', 'NO_NEW_POSTS'),
- 'FOLDER_NEW_IMG' => $user->img('topic_unread', 'NEW_POSTS'),
- 'FOLDER_HOT_IMG' => $user->img('topic_read_hot', 'NO_NEW_POSTS_HOT'),
- 'FOLDER_HOT_NEW_IMG' => $user->img('topic_unread_hot', 'NEW_POSTS_HOT'),
- 'FOLDER_LOCKED_IMG' => $user->img('topic_read_locked', 'NO_NEW_POSTS_LOCKED'),
- 'FOLDER_LOCKED_NEW_IMG' => $user->img('topic_unread_locked', 'NEW_POSTS_LOCKED'),
+ 'FOLDER_IMG' => $user->img('topic_read', 'NO_UNREAD_POSTS'),
+ 'FOLDER_UNREAD_IMG' => $user->img('topic_unread', 'UNREAD_POSTS'),
+ 'FOLDER_HOT_IMG' => $user->img('topic_read_hot', 'NO_UNREAD_POSTS_HOT'),
+ 'FOLDER_HOT_UNREAD_IMG' => $user->img('topic_unread_hot', 'UNREAD_POSTS_HOT'),
+ 'FOLDER_LOCKED_IMG' => $user->img('topic_read_locked', 'NO_UNREAD_POSTS_LOCKED'),
+ 'FOLDER_LOCKED_UNREAD_IMG' => $user->img('topic_unread_locked', 'UNREAD_POSTS_LOCKED'),
'FOLDER_STICKY_IMG' => $user->img('sticky_read', 'POST_STICKY'),
- 'FOLDER_STICKY_NEW_IMG' => $user->img('sticky_unread', 'POST_STICKY'),
+ 'FOLDER_STICKY_UNREAD_IMG' => $user->img('sticky_unread', 'POST_STICKY'),
'FOLDER_ANNOUNCE_IMG' => $user->img('announce_read', 'POST_ANNOUNCEMENT'),
- 'FOLDER_ANNOUNCE_NEW_IMG' => $user->img('announce_unread', 'POST_ANNOUNCEMENT'),
+ 'FOLDER_ANNOUNCE_UNREAD_IMG'=> $user->img('announce_unread', 'POST_ANNOUNCEMENT'),
'FOLDER_MOVED_IMG' => $user->img('topic_moved', 'TOPIC_MOVED'),
'REPORTED_IMG' => $user->img('icon_topic_reported', 'TOPIC_REPORTED'),
'UNAPPROVED_IMG' => $user->img('icon_topic_unapproved', 'TOPIC_UNAPPROVED'),
@@ -508,6 +508,7 @@ if (sizeof($shadow_topic_list))
'topic_moved_id' => $rowset[$orig_topic_id]['topic_moved_id'],
'topic_status' => $rowset[$orig_topic_id]['topic_status'],
'topic_type' => $rowset[$orig_topic_id]['topic_type'],
+ 'topic_title' => $rowset[$orig_topic_id]['topic_title'],
));
// Shadow topics are never reported
diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php
index 8e0521522d..8926d5a40b 100644
--- a/phpBB/viewtopic.php
+++ b/phpBB/viewtopic.php
@@ -1513,7 +1513,7 @@ for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i)
'EDIT_REASON' => $row['post_edit_reason'],
'BUMPED_MESSAGE' => $l_bumped_by,
- 'MINI_POST_IMG' => ($post_unread) ? $user->img('icon_post_target_unread', 'NEW_POST') : $user->img('icon_post_target', 'POST'),
+ 'MINI_POST_IMG' => ($post_unread) ? $user->img('icon_post_target_unread', 'UNREAD_POST') : $user->img('icon_post_target', 'POST'),
'POST_ICON_IMG' => ($topic_data['enable_icons'] && !empty($row['icon_id'])) ? $icons[$row['icon_id']]['img'] : '',
'POST_ICON_IMG_WIDTH' => ($topic_data['enable_icons'] && !empty($row['icon_id'])) ? $icons[$row['icon_id']]['width'] : '',
'POST_ICON_IMG_HEIGHT' => ($topic_data['enable_icons'] && !empty($row['icon_id'])) ? $icons[$row['icon_id']]['height'] : '',
diff --git a/tests/RUNNING_TESTS.txt b/tests/RUNNING_TESTS.txt
new file mode 100644
index 0000000000..f1b40f71ad
--- /dev/null
+++ b/tests/RUNNING_TESTS.txt
@@ -0,0 +1,33 @@
+Running Tests
+-------------
+
+Prerequisites
+-------------
+
+PHPUnit
+=======
+
+phpBB unit tests use PHPUnit framework. Version 3.3 or better is required
+to run the tests. PHPUnit prefers to be installed via PEAR; refer to
+http://www.phpunit.de/ for more information.
+
+PHP extensions
+==============
+
+Unit tests use several PHP extensions that board code does not use. Currently
+the following PHP extensions must be installed and enabled to run unit tests:
+
+- ctype
+
+Running
+-------
+
+Once the prerequisites are installed, run the tests from tests directory:
+
+$ phpunit all_tests.php
+
+More Information
+----------------
+
+Further information is available on phpbb wiki:
+http://wiki.phpbb.com/display/DEV/Unit+Tests
diff --git a/tests/all_tests.php b/tests/all_tests.php
index 4eee950860..07d6f89524 100644
--- a/tests/all_tests.php
+++ b/tests/all_tests.php
@@ -24,6 +24,8 @@ require_once 'template/all_tests.php';
require_once 'text_processing/all_tests.php';
require_once 'dbal/all_tests.php';
require_once 'regex/all_tests.php';
+require_once 'network/all_tests.php';
+require_once 'random/all_tests.php';
// exclude the test directory from code coverage reports
PHPUnit_Util_Filter::addDirectoryToFilter('./');
@@ -48,6 +50,8 @@ class phpbb_all_tests
$suite->addTest(phpbb_text_processing_all_tests::suite());
$suite->addTest(phpbb_dbal_all_tests::suite());
$suite->addTest(phpbb_regex_all_tests::suite());
+ $suite->addTest(phpbb_network_all_tests::suite());
+ $suite->addTest(phpbb_random_all_tests::suite());
return $suite;
}
diff --git a/tests/class_loader/class_loader_test.php b/tests/class_loader/class_loader_test.php
index 37c11657c4..e53507ded3 100644
--- a/tests/class_loader/class_loader_test.php
+++ b/tests/class_loader/class_loader_test.php
@@ -24,6 +24,12 @@ class phpbb_class_loader_test extends PHPUnit_Framework_TestCase
$prefix .= 'includes/';
$this->assertEquals(
+ '',
+ $class_loader->resolve_path('phpbb_dir'),
+ 'Class with same name as a directory is unloadable'
+ );
+
+ $this->assertEquals(
$prefix . 'class_name.php',
$class_loader->resolve_path('phpbb_class_name'),
'Top level class'
diff --git a/tests/class_loader/includes/dir.php b/tests/class_loader/includes/dir.php
new file mode 100644
index 0000000000..1c8930d8e7
--- /dev/null
+++ b/tests/class_loader/includes/dir.php
@@ -0,0 +1,6 @@
+<?php
+
+class phpbb_dir
+{
+}
+
diff --git a/tests/network/all_tests.php b/tests/network/all_tests.php
new file mode 100644
index 0000000000..b500647f81
--- /dev/null
+++ b/tests/network/all_tests.php
@@ -0,0 +1,40 @@
+<?php
+/**
+*
+* @package testing
+* @copyright (c) 2010 phpBB Group
+* @license http://opensource.org/licenses/gpl-license.php GNU Public License
+*
+*/
+
+if (!defined('PHPUnit_MAIN_METHOD'))
+{
+ define('PHPUnit_MAIN_METHOD', 'phpbb_network_all_tests::main');
+}
+
+require_once 'test_framework/framework.php';
+require_once 'PHPUnit/TextUI/TestRunner.php';
+
+require_once 'network/checkdnsrr.php';
+
+class phpbb_network_all_tests
+{
+ public static function main()
+ {
+ PHPUnit_TextUI_TestRunner::run(self::suite());
+ }
+
+ public static function suite()
+ {
+ $suite = new PHPUnit_Framework_TestSuite('phpBB Network Functions');
+
+ $suite->addTestSuite('phpbb_network_checkdnsrr_test');
+
+ return $suite;
+ }
+}
+
+if (PHPUnit_MAIN_METHOD == 'phpbb_network_all_tests::main')
+{
+ phpbb_network_all_tests::main();
+}
diff --git a/tests/network/checkdnsrr.php b/tests/network/checkdnsrr.php
new file mode 100644
index 0000000000..57fe2761cc
--- /dev/null
+++ b/tests/network/checkdnsrr.php
@@ -0,0 +1,63 @@
+<?php
+/**
+*
+* @package testing
+* @copyright (c) 2010 phpBB Group
+* @license http://opensource.org/licenses/gpl-license.php GNU Public License
+*
+*/
+
+require_once 'test_framework/framework.php';
+require_once '../phpBB/includes/functions.php';
+
+class phpbb_network_checkdnsrr_test extends phpbb_test_case
+{
+ public function data_provider()
+ {
+ return array(
+ // Existing MX record
+ array('phpbb.com', 'MX', true),
+
+ // Non-existing MX record
+ array('does-not-exist.phpbb.com', 'MX', false),
+
+ // Existing A record
+ array('www.phpbb.com', 'A', true),
+
+ // Non-existing A record
+ array('does-not-exist.phpbb.com', 'A', false),
+
+ // Existing AAAA record
+ array('www.six.heise.de', 'AAAA', true),
+
+ // Non-existing AAAA record
+ array('does-not-exist.phpbb.com', 'AAAA', false),
+
+ // Existing CNAME record
+ array('news.cnet.com', 'CNAME', true),
+
+ // Non-existing CNAME record
+ array('does-not-exist.phpbb.com', 'CNAME', false),
+
+ // Existing NS record
+ array('phpbb.com', 'NS', true),
+
+ // Non-existing NS record
+ array('does-not-exist', 'NS', false),
+
+ // Existing TXT record
+ array('phpbb.com', 'TXT', true),
+
+ // Non-existing TXT record
+ array('does-not-exist', 'TXT', false),
+ );
+ }
+
+ /**
+ * @dataProvider data_provider
+ */
+ public function test_checkdnsrr($host, $type, $expected)
+ {
+ $this->assertEquals($expected, phpbb_checkdnsrr($host, $type));
+ }
+}
diff --git a/tests/random/all_tests.php b/tests/random/all_tests.php
new file mode 100644
index 0000000000..c6ffe78024
--- /dev/null
+++ b/tests/random/all_tests.php
@@ -0,0 +1,40 @@
+<?php
+/**
+*
+* @package testing
+* @copyright (c) 2010 phpBB Group
+* @license http://opensource.org/licenses/gpl-license.php GNU Public License
+*
+*/
+
+if (!defined('PHPUnit_MAIN_METHOD'))
+{
+ define('PHPUnit_MAIN_METHOD', 'phpbb_random_all_tests::main');
+}
+
+require_once 'test_framework/framework.php';
+require_once 'PHPUnit/TextUI/TestRunner.php';
+
+require_once 'random/gen_rand_string.php';
+
+class phpbb_random_all_tests
+{
+ public static function main()
+ {
+ PHPUnit_TextUI_TestRunner::run(self::suite());
+ }
+
+ public static function suite()
+ {
+ $suite = new PHPUnit_Framework_TestSuite('phpBB Random Functions');
+
+ $suite->addTestSuite('phpbb_random_gen_rand_string_test');
+
+ return $suite;
+ }
+}
+
+if (PHPUnit_MAIN_METHOD == 'phpbb_random_all_tests::main')
+{
+ phpbb_random_all_tests::main();
+}
diff --git a/tests/random/gen_rand_string.php b/tests/random/gen_rand_string.php
new file mode 100644
index 0000000000..cd58d14ed3
--- /dev/null
+++ b/tests/random/gen_rand_string.php
@@ -0,0 +1,63 @@
+<?php
+/**
+*
+* @package testing
+* @copyright (c) 2010 phpBB Group
+* @license http://opensource.org/licenses/gpl-license.php GNU Public License
+*
+*/
+
+require_once 'test_framework/framework.php';
+require_once '../phpBB/includes/functions.php';
+
+class phpbb_random_gen_rand_string_test extends phpbb_test_case
+{
+ const TEST_COUNT = 100;
+ const MIN_STRING_LENGTH = 1;
+ const MAX_STRING_LENGTH = 15;
+
+ public function setUp()
+ {
+ global $config;
+
+ if (!is_array($config))
+ {
+ $config = array();
+ }
+
+ $config['rand_seed'] = '';
+ $config['rand_seed_last_update'] = time() + 600;
+ }
+
+ public function test_gen_rand_string()
+ {
+ for ($tests = 0; $tests <= self::TEST_COUNT; ++$tests)
+ {
+ for ($num_chars = self::MIN_STRING_LENGTH; $num_chars <= self::MAX_STRING_LENGTH; ++$num_chars)
+ {
+ $random_string = gen_rand_string($num_chars);
+ $random_string_length = strlen($random_string);
+
+ $this->assertTrue($random_string_length >= self::MIN_STRING_LENGTH);
+ $this->assertTrue($random_string_length <= $num_chars);
+ $this->assertRegExp('#^[A-Z0-9]+$#', $random_string);
+ }
+ }
+ }
+
+ public function test_gen_rand_string_friendly()
+ {
+ for ($tests = 0; $tests <= self::TEST_COUNT; ++$tests)
+ {
+ for ($num_chars = self::MIN_STRING_LENGTH; $num_chars <= self::MAX_STRING_LENGTH; ++$num_chars)
+ {
+ $random_string = gen_rand_string_friendly($num_chars);
+ $random_string_length = strlen($random_string);
+
+ $this->assertTrue($random_string_length >= self::MIN_STRING_LENGTH);
+ $this->assertTrue($random_string_length <= $num_chars);
+ $this->assertRegExp('#^[A-NP-Z1-9]+$#', $random_string);
+ }
+ }
+ }
+}
diff --git a/tests/regex/email.php b/tests/regex/email.php
index b1519dfa5f..8658b8af36 100644
--- a/tests/regex/email.php
+++ b/tests/regex/email.php
@@ -33,6 +33,27 @@ class phpbb_regex_email_test extends phpbb_test_case
//array('"John Doe"@example.com'),
//array('Alice@[192.168.2.1]'), // IPv4
//array('Bob@[2001:0db8:85a3:08d3:1319:8a2e:0370:7344]'), // IPv6
+
+ // http://fightingforalostcause.net/misc/2006/compare-email-regex.php
+ array('l3tt3rsAndNumb3rs@domain.com'),
+ array('has-dash@domain.com'),
+ array('hasApostrophe.o\'leary@domain.org'),
+ array('uncommonTLD@domain.museum'),
+ array('uncommonTLD@domain.travel'),
+ array('uncommonTLD@domain.mobi'),
+ array('countryCodeTLD@domain.uk'),
+ array('countryCodeTLD@domain.rw'),
+ array('numbersInDomain@911.com'),
+ array('underscore_inLocal@domain.net'),
+ array('IPInsteadOfDomain@127.0.0.1'),
+ array('IPAndPort@127.0.0.1:25'),
+ array('subdomain@sub.domain.com'),
+ array('local@dash-inDomain.com'),
+ array('dot.inLocal@foo.com'),
+ array('a@singleLetterLocal.org'),
+ array('singleLetterDomain@x.org'),
+ array('&amp;*=?^+{}\'~@validCharsInLocal.net'),
+ array('foor@bar.newTLD'),
);
}
@@ -56,6 +77,26 @@ class phpbb_regex_email_test extends phpbb_test_case
array('abc,def@example.com'), // invalid character ,
array('abc<def@example.com'), // invalid character <
array('abc>def@example.com'), // invalid character >
+
+ // http://fightingforalostcause.net/misc/2006/compare-email-regex.php
+ array('missingDomain@.com'),
+ array('@missingLocal.org'),
+ array('missingatSign.net'),
+ array('missingDot@com'),
+ array('two@@signs.com'),
+ array('colonButNoPort@127.0.0.1:'),
+ array(''),
+ array('someone-else@127.0.0.1.26'),
+ array('.localStartsWithDot@domain.com'),
+ array('localEndsWithDot.@domain.com'),
+ array('two..consecutiveDots@domain.com'),
+ array('domainStartsWithDash@-domain.com'),
+ array('domainEndsWithDash@domain-.com'),
+ array('numbersInTLD@domain.c0m'),
+ array('missingTLD@domain.'),
+ array('! "#$%(),/;<>[]`|@invalidCharsInLocal.org'),
+ array('invalidCharsInDomain@! "#$%(),/;<>_[]`|.org'),
+ array('local@SecondLevelDomainNamesAreInvalidIfTheyAreLongerThan64Charactersss.org'),
);
}
@@ -70,7 +111,7 @@ class phpbb_regex_email_test extends phpbb_test_case
/**
* @dataProvider negative_match_data
*/
- public function test_negative_match($address)
+ public function test_negative_match($email)
{
$this->assertEquals(0, preg_match($this->regex, $email));
}
diff --git a/tests/template/template.php b/tests/template/template.php
index 9436ab2d98..0a685bfd61 100644
--- a/tests/template/template.php
+++ b/tests/template/template.php
@@ -360,9 +360,15 @@ class phpbb_template_template_test extends phpbb_test_case
$this->template->destroy_block_vars($block);
}
+ $error_level = error_reporting();
+ error_reporting($error_level & ~E_NOTICE);
+
$this->assertEquals($expected, self::trim_template_result($this->template->assign_display('test')), "Testing assign_display($file)");
$this->template->assign_display('test', 'VARIABLE', false);
+
+ error_reporting($error_level);
+
$this->assertEquals($expected, $this->display('container'), "Testing assign_display($file)");
}