aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--phpBB/adm/style/admin.css3
-rw-r--r--phpBB/assets/javascript/core.js9
-rw-r--r--phpBB/docs/events.md14
-rw-r--r--phpBB/includes/functions_display.php2
-rw-r--r--phpBB/includes/functions_posting.php19
-rw-r--r--phpBB/language/en/viewtopic.php1
-rw-r--r--phpBB/phpbb/avatar/driver/driver.php11
-rw-r--r--phpBB/phpbb/avatar/driver/gravatar.php8
-rw-r--r--phpBB/phpbb/avatar/driver/local.php8
-rw-r--r--phpBB/phpbb/avatar/driver/remote.php8
-rw-r--r--phpBB/phpbb/avatar/driver/upload.php8
-rw-r--r--phpBB/styles/prosilver/template/forum_fn.js33
-rw-r--r--phpBB/styles/prosilver/template/overall_footer.html5
-rw-r--r--phpBB/styles/prosilver/template/viewtopic_body.html17
-rw-r--r--phpBB/styles/prosilver/template/viewtopic_topic_tools.html39
-rw-r--r--phpBB/styles/prosilver/theme/bidi.css15
-rw-r--r--phpBB/styles/prosilver/theme/buttons.css40
-rw-r--r--phpBB/styles/prosilver/theme/colours.css30
-rw-r--r--phpBB/styles/prosilver/theme/common.css65
-rwxr-xr-x[-rw-r--r--]phpBB/styles/prosilver/theme/images/buttons.pngbin2563 -> 2923 bytes
-rw-r--r--phpBB/styles/prosilver/theme/images/icon_download.gifbin0 -> 198 bytes
-rw-r--r--phpBB/styles/prosilver/theme/responsive.css13
-rw-r--r--phpBB/viewtopic.php9
-rw-r--r--tests/avatar/driver/barfoo.php5
-rw-r--r--tests/avatar/driver/foobar.php5
25 files changed, 313 insertions, 54 deletions
diff --git a/phpBB/adm/style/admin.css b/phpBB/adm/style/admin.css
index d971c38efb..c4f1caf722 100644
--- a/phpBB/adm/style/admin.css
+++ b/phpBB/adm/style/admin.css
@@ -2365,11 +2365,14 @@ fieldset.permissions .padding {
.dropdown .dropdown-contents {
z-index: 2;
overflow: hidden;
+ overflow-y: auto;
background: #fff;
border: 1px solid #b9b9b9;
border-radius: 5px;
padding: 5px;
position: relative;
+ min-width: 40px;
+ max-height: 200px;
box-shadow: 1px 3px 5px rgba(0, 0, 0, 0.2);
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
diff --git a/phpBB/assets/javascript/core.js b/phpBB/assets/javascript/core.js
index 8d0db5da1a..5b8331bdce 100644
--- a/phpBB/assets/javascript/core.js
+++ b/phpBB/assets/javascript/core.js
@@ -932,6 +932,14 @@ phpbb.toggleDropdown = function() {
};
/**
+* Toggle dropdown submenu
+*/
+phpbb.toggleSubmenu = function(e) {
+ $(this).siblings('.dropdown-submenu').toggle();
+ e.preventDefault();
+}
+
+/**
* Register dropdown menu
* Shows/hides dropdown, decides which side to open to
*
@@ -962,6 +970,7 @@ phpbb.registerDropdown = function(toggle, dropdown, options)
toggle.data('dropdown-options', ops);
toggle.click(phpbb.toggleDropdown);
+ $('.dropdown-toggle-submenu', ops.parent).click(phpbb.toggleSubmenu);
};
/**
diff --git a/phpBB/docs/events.md b/phpBB/docs/events.md
index 288ebb933e..0130362131 100644
--- a/phpBB/docs/events.md
+++ b/phpBB/docs/events.md
@@ -399,3 +399,17 @@ viewtopic_topic_title_prepend
+ styles/subsilver2/template/viewtopic_body.html
* Since: 3.1.0-a1
* Purpose: Add content directly before the topic title link on the View topic screen
+
+viewtopic_topic_tools_after
+===
+* Locations:
+ + styles/prosilver/template/viewtopic_topic_tools.html
+* Since: 3.1.0-a3
+* Purpose: Add a new topic tool after the rest of the existing ones
+
+viewtopic_topic_tools_before
+===
+* Locations:
+ + styles/prosilver/template/viewtopic_topic_tools.html
+* Since: 3.1.0-a3
+* Purpose: Add a new topic tool before the rest of the existing ones
diff --git a/phpBB/includes/functions_display.php b/phpBB/includes/functions_display.php
index 5592aa89ba..0ff842ea6a 100644
--- a/phpBB/includes/functions_display.php
+++ b/phpBB/includes/functions_display.php
@@ -1464,6 +1464,8 @@ function phpbb_gen_download_links($param_key, $param_val, $phpbb_root_path, $php
}
$methods = compress::methods();
+ // Sort by preferred type.
+ $methods = array_intersect(array('.zip', '.tar.bz2', '.tar.gz', '.tar'), $methods);
$links = array();
foreach ($methods as $method)
diff --git a/phpBB/includes/functions_posting.php b/phpBB/includes/functions_posting.php
index 1bcef7f1f2..172f4403ac 100644
--- a/phpBB/includes/functions_posting.php
+++ b/phpBB/includes/functions_posting.php
@@ -1473,7 +1473,7 @@ function delete_post($forum_id, $topic_id, $post_id, &$data, $is_soft = false, $
*/
function submit_post($mode, $subject, $username, $topic_type, &$poll, &$data, $update_message = true, $update_search_index = true)
{
- global $db, $auth, $user, $config, $phpEx, $template, $phpbb_root_path, $phpbb_container;
+ global $db, $auth, $user, $config, $phpEx, $template, $phpbb_root_path, $phpbb_container, $phpbb_dispatcher;
// We do not handle erasing posts here
if ($mode == 'delete')
@@ -2305,6 +2305,23 @@ function submit_post($mode, $subject, $username, $topic_type, &$poll, &$data, $u
$url = (!$params) ? "{$phpbb_root_path}viewforum.$phpEx" : "{$phpbb_root_path}viewtopic.$phpEx";
$url = append_sid($url, 'f=' . $data['forum_id'] . $params) . $add_anchor;
+ /**
+ * This event is used for performing actions directly after a post or topic
+ * has been submitted. When a new topic is posted, the topic ID is
+ * available in the $data array.
+ *
+ * The only action that can be done by altering data made available to this
+ * event is to modify the return URL ($url).
+ *
+ * @event core.submit_post_end
+ * @var string url The "Return to topic" URL
+ * @var array data Array of post data about the
+ * submitted post
+ * @since 3.1-A3
+ */
+ $vars = array('url', 'data');
+ extract($phpbb_dispatcher->trigger_event('core.submit_post_end', compact($vars)));
+
return $url;
}
diff --git a/phpBB/language/en/viewtopic.php b/phpBB/language/en/viewtopic.php
index 6f318c39f1..424cb9da3e 100644
--- a/phpBB/language/en/viewtopic.php
+++ b/phpBB/language/en/viewtopic.php
@@ -104,6 +104,7 @@ $lang = array_merge($lang, array(
'SUBMIT_VOTE' => 'Submit vote',
+ 'TOPIC_TOOLS' => 'Topic tools',
'TOTAL_VOTES' => 'Total votes',
'UNLOCK_TOPIC' => 'Unlock topic',
diff --git a/phpBB/phpbb/avatar/driver/driver.php b/phpBB/phpbb/avatar/driver/driver.php
index d360614122..dd55f09119 100644
--- a/phpBB/phpbb/avatar/driver/driver.php
+++ b/phpBB/phpbb/avatar/driver/driver.php
@@ -112,17 +112,6 @@ abstract class driver implements \phpbb\avatar\driver\driver_interface
/**
* @inheritdoc
*/
- public function get_template_name()
- {
- $driver = preg_replace('#^phpbb\\\\avatar\\\\driver\\\\#', '', get_class($this));
- $template = "ucp_avatar_options_$driver.html";
-
- return $template;
- }
-
- /**
- * @inheritdoc
- */
public function get_name()
{
return $this->name;
diff --git a/phpBB/phpbb/avatar/driver/gravatar.php b/phpBB/phpbb/avatar/driver/gravatar.php
index d64f4da734..9f14b7f468 100644
--- a/phpBB/phpbb/avatar/driver/gravatar.php
+++ b/phpBB/phpbb/avatar/driver/gravatar.php
@@ -147,6 +147,14 @@ class gravatar extends \phpbb\avatar\driver\driver
}
/**
+ * @inheritdoc
+ */
+ public function get_template_name()
+ {
+ return 'ucp_avatar_options_gravatar.html';
+ }
+
+ /**
* Build gravatar URL for output on page
*
* @return string Gravatar URL
diff --git a/phpBB/phpbb/avatar/driver/local.php b/phpBB/phpbb/avatar/driver/local.php
index f6acc6e636..611a44cb3d 100644
--- a/phpBB/phpbb/avatar/driver/local.php
+++ b/phpBB/phpbb/avatar/driver/local.php
@@ -135,6 +135,14 @@ class local extends \phpbb\avatar\driver\driver
}
/**
+ * @inheritdoc
+ */
+ public function get_template_name()
+ {
+ return 'ucp_avatar_options_local.html';
+ }
+
+ /**
* Get a list of avatars that are locally available
* Results get cached for 24 hours (86400 seconds)
*
diff --git a/phpBB/phpbb/avatar/driver/remote.php b/phpBB/phpbb/avatar/driver/remote.php
index 22d50c703e..36623942df 100644
--- a/phpBB/phpbb/avatar/driver/remote.php
+++ b/phpBB/phpbb/avatar/driver/remote.php
@@ -186,4 +186,12 @@ class remote extends \phpbb\avatar\driver\driver
'avatar_height' => $height,
);
}
+
+ /**
+ * @inheritdoc
+ */
+ public function get_template_name()
+ {
+ return 'ucp_avatar_options_remote.html';
+ }
}
diff --git a/phpBB/phpbb/avatar/driver/upload.php b/phpBB/phpbb/avatar/driver/upload.php
index 822c40af98..1e50e135e4 100644
--- a/phpBB/phpbb/avatar/driver/upload.php
+++ b/phpBB/phpbb/avatar/driver/upload.php
@@ -168,6 +168,14 @@ class upload extends \phpbb\avatar\driver\driver
}
/**
+ * @inheritdoc
+ */
+ public function get_template_name()
+ {
+ return 'ucp_avatar_options_upload.html';
+ }
+
+ /**
* Check if user is able to upload an avatar
*
* @return bool True if user can upload, false if not
diff --git a/phpBB/styles/prosilver/template/forum_fn.js b/phpBB/styles/prosilver/template/forum_fn.js
index 1b2b1954ef..a45f750a63 100644
--- a/phpBB/styles/prosilver/template/forum_fn.js
+++ b/phpBB/styles/prosilver/template/forum_fn.js
@@ -434,6 +434,39 @@ function parse_document(container)
});
/**
+ * Dropdowns
+ */
+ container.find('.dropdown-container').each(function() {
+ var $this = $(this),
+ trigger = $this.find('.dropdown-trigger:first'),
+ contents = $this.find('.dropdown'),
+ options = {
+ direction: 'auto',
+ verticalDirection: 'auto'
+ },
+ data;
+
+ if (!trigger.length) {
+ data = $this.attr('data-dropdown-trigger');
+ trigger = data ? $this.children(data) : $this.children('a:first');
+ }
+
+ if (!contents.length) {
+ data = $this.attr('data-dropdown-contents');
+ contents = data ? $this.children(data) : $this.children('div:first');
+ }
+
+ if (!trigger.length || !contents.length) return;
+
+ if ($this.hasClass('dropdown-up')) options.verticalDirection = 'up';
+ if ($this.hasClass('dropdown-down')) options.verticalDirection = 'down';
+ if ($this.hasClass('dropdown-left')) options.direction = 'left';
+ if ($this.hasClass('dropdown-right')) options.direction = 'right';
+
+ phpbb.registerDropdown(trigger, contents, options);
+ });
+
+ /**
* Adjust HTML code for IE8 and older versions
*/
if (oldBrowser) {
diff --git a/phpBB/styles/prosilver/template/overall_footer.html b/phpBB/styles/prosilver/template/overall_footer.html
index 6f297660a2..f7d0269edb 100644
--- a/phpBB/styles/prosilver/template/overall_footer.html
+++ b/phpBB/styles/prosilver/template/overall_footer.html
@@ -7,14 +7,11 @@
<div class="inner">
<ul class="linklist bulletin">
- <li class="small-icon icon-home breadcrumbs"><!-- IF U_SITE_HOME --><span class="crumb"><a href="{U_SITE_HOME}">{L_SITE_HOME}</a> <strong>&#8249;</strong></span> <!-- ENDIF --><span class="crumb"><a href="{U_INDEX}" accesskey="h">{L_INDEX}</a></span>
+ <li class="small-icon icon-home breadcrumbs"><!-- IF U_SITE_HOME --><span class="crumb"><a href="{U_SITE_HOME}">{L_SITE_HOME}</a> <strong>&#8249;</strong></span> <!-- ENDIF --><span class="crumb"><a href="{U_INDEX}">{L_INDEX}</a></span>
<!-- EVENT overall_footer_breadcrumb_append -->
</li>
<!-- IF not S_IS_BOT -->
<!-- IF U_WATCH_FORUM_LINK --><li class="small-icon icon-<!-- IF S_WATCHING_FORUM -->unsubscribe<!-- ELSE -->subscribe<!-- ENDIF -->"><a href="{U_WATCH_FORUM_LINK}" title="{S_WATCH_FORUM_TITLE}" data-ajax="toggle_link" data-toggle-class="small-icon icon-<!-- IF not S_WATCHING_FORUM -->unsubscribe<!-- ELSE -->subscribe<!-- ENDIF -->" data-toggle-text="{S_WATCH_FORUM_TOGGLE}" data-toggle-url="{U_WATCH_FORUM_TOGGLE}">{S_WATCH_FORUM_TITLE}</a></li><!-- ENDIF -->
- <!-- IF U_WATCH_TOPIC --><li class="small-icon icon-<!-- IF S_WATCHING_TOPIC -->unsubscribe<!-- ELSE -->subscribe<!-- ENDIF -->"><a href="{U_WATCH_TOPIC}" title="{S_WATCH_TOPIC_TITLE}" data-ajax="toggle_link" data-toggle-class="small-icon icon-<!-- IF not S_WATCHING_TOPIC -->unsubscribe<!-- ELSE -->subscribe<!-- ENDIF -->" data-toggle-text="{S_WATCH_TOPIC_TOGGLE}" data-toggle-url="{U_WATCH_TOPIC_TOGGLE}">{S_WATCH_TOPIC_TITLE}</a></li><!-- ENDIF -->
- <!-- IF U_BOOKMARK_TOPIC --><li class="small-icon icon-bookmark"><a href="{U_BOOKMARK_TOPIC}" title="{L_BOOKMARK_TOPIC}" data-ajax="alt_text" data-alt-text="{S_BOOKMARK_TOGGLE}">{S_BOOKMARK_TOPIC}</a></li><!-- ENDIF -->
- <!-- IF U_BUMP_TOPIC --><li class="small-icon icon-bump"><a href="{U_BUMP_TOPIC}" title="{L_BUMP_TOPIC}" data-ajax="true">{L_BUMP_TOPIC}</a></li><!-- ENDIF -->
<!-- ENDIF -->
<li class="rightside">{S_TIMEZONE}</li>
<!-- IF not S_IS_BOT --><li class="rightside"><a href="{U_DELETE_COOKIES}" data-ajax="true" data-refresh="true">{L_DELETE_COOKIES}</a></li><!-- ENDIF -->
diff --git a/phpBB/styles/prosilver/template/viewtopic_body.html b/phpBB/styles/prosilver/template/viewtopic_body.html
index 46881d3b03..338c67dd33 100644
--- a/phpBB/styles/prosilver/template/viewtopic_body.html
+++ b/phpBB/styles/prosilver/template/viewtopic_body.html
@@ -33,6 +33,8 @@
<!-- ENDIF -->
</div>
+ <!-- INCLUDE viewtopic_topic_tools.html -->
+
<!-- IF S_DISPLAY_SEARCHBOX -->
<div class="search-box">
<form method="get" id="topic-search" action="{S_SEARCHBOX_ACTION}">
@@ -55,9 +57,8 @@
<!-- ENDIF -->
</div>
<!-- ENDIF -->
-
+ <div class="clear"></div>
</div>
-<div class="clear"></div>
<!-- IF S_HAS_POLL -->
<form method="post" action="{S_POLL_ACTION}" data-ajax="vote_poll" class="topic_poll">
@@ -299,16 +300,7 @@
<!-- ENDIF -->
</div>
- <!-- IF S_HAS_ATTACHMENTS -->
- <div class="dl_links">
- <strong>{L_DOWNLOAD_ALL_ATTACHMENTS}{L_COLON}</strong>
- <ul>
- <!-- BEGIN dl_method -->
- <li>[ <a href="{dl_method.LINK}">{dl_method.TYPE}</a> ]</li>
- <!-- END dl_method -->
- </ul>
- </div>
- <!-- ENDIF -->
+ <!-- INCLUDE viewtopic_topic_tools.html -->
<!-- IF .pagination or TOTAL_POSTS -->
<div class="pagination">
@@ -320,6 +312,7 @@
<!-- ENDIF -->
</div>
<!-- ENDIF -->
+ <div class="clear"></div>
</div>
<!-- EVENT viewtopic_body_footer_before -->
diff --git a/phpBB/styles/prosilver/template/viewtopic_topic_tools.html b/phpBB/styles/prosilver/template/viewtopic_topic_tools.html
new file mode 100644
index 0000000000..ec17185bae
--- /dev/null
+++ b/phpBB/styles/prosilver/template/viewtopic_topic_tools.html
@@ -0,0 +1,39 @@
+<!-- IF not S_IS_BOT and (U_WATCH_TOPIC or U_BOOKMARK_TOPIC or U_BUMP_TOPIC or S_HAS_ATTACHMENTS or S_DISPLAY_TOPIC_TOOLS) -->
+ <div class="dropdown-container dropdown-button-control topic-tools">
+ <span title="{L_TOPIC_TOOLS}" class="dropdown-trigger dropdown-select dropdown-select-icon tools-icon"><span></span></span>
+ <div class="dropdown hidden">
+ <div class="pointer"><div class="pointer-inner"></div></div>
+ <ul class="dropdown-contents">
+ <!-- EVENT viewtopic_topic_tools_before -->
+ <!-- IF U_WATCH_TOPIC -->
+ <li class="small-icon icon-<!-- IF S_WATCHING_TOPIC -->unsubscribe<!-- ELSE -->subscribe<!-- ENDIF -->">
+ <a href="{U_WATCH_TOPIC}" title="{S_WATCH_TOPIC_TITLE}" data-ajax="toggle_link" data-toggle-class="small-icon icon-<!-- IF not S_WATCHING_TOPIC -->unsubscribe<!-- ELSE -->subscribe<!-- ENDIF -->" data-toggle-text="{S_WATCH_TOPIC_TOGGLE}" data-toggle-url="{U_WATCH_TOPIC_TOGGLE}">
+ {S_WATCH_TOPIC_TITLE}
+ </a>
+ </li>
+ <!-- ENDIF -->
+ <!-- IF U_BOOKMARK_TOPIC -->
+ <li class="small-icon icon-bookmark">
+ <a href="{U_BOOKMARK_TOPIC}" title="{L_BOOKMARK_TOPIC}" data-ajax="alt_text" data-alt-text="{S_BOOKMARK_TOGGLE}">
+ {S_BOOKMARK_TOPIC}
+ </a>
+ </li>
+ <!-- ENDIF -->
+ <!-- IF U_BUMP_TOPIC --><li class="small-icon icon-bump"><a href="{U_BUMP_TOPIC}" title="{L_BUMP_TOPIC}" data-ajax="true">{L_BUMP_TOPIC}</a></li><!-- ENDIF -->
+ <!-- IF S_HAS_ATTACHMENTS -->
+ <li class="small-icon icon-download">
+ <a class="dropdown-toggle-submenu" href="{U_DOWNLOAD_ALL_ATTACHMENTS}" title="{L_DOWNLOAD_ALL_ATTACHMENTS}">{L_DOWNLOAD_ALL_ATTACHMENTS}</a>
+ <ul class="dropdown-submenu hidden">
+ <li>
+ <!-- BEGIN dl_method -->
+ <a href="{dl_method.LINK}">{dl_method.TYPE}</a><!-- IF not dl_method.S_LAST_ROW --> &bull; <!-- ENDIF -->
+ <!-- END dl_method -->
+ </li>
+ </ul>
+ </li>
+ <!-- ENDIF -->
+ <!-- EVENT viewtopic_topic_tools_after -->
+ </ul>
+ </div>
+ </div>
+<!-- ENDIF -->
diff --git a/phpBB/styles/prosilver/theme/bidi.css b/phpBB/styles/prosilver/theme/bidi.css
index b04e6576d3..d5e98d6197 100644
--- a/phpBB/styles/prosilver/theme/bidi.css
+++ b/phpBB/styles/prosilver/theme/bidi.css
@@ -90,6 +90,21 @@
text-align: left;
}
+/* Dropdown menu
+---------------------------------------- */
+.rtl .dropdown-container.topic-tools {
+ float: right;
+}
+
+.rtl .dropdown li {
+ text-align: right;
+}
+
+.rtl .dropdown li li {
+ padding-left: 0;
+ padding-right: 10px;
+}
+
/* Table styles
----------------------------------------*/
.rtl table.table1 thead th {
diff --git a/phpBB/styles/prosilver/theme/buttons.css b/phpBB/styles/prosilver/theme/buttons.css
index cdd325fb13..89fdcd85a8 100644
--- a/phpBB/styles/prosilver/theme/buttons.css
+++ b/phpBB/styles/prosilver/theme/buttons.css
@@ -11,13 +11,13 @@
}
/* Rollover state */
-.buttons div {
+.buttons div, .dropdown-select {
float: left;
margin: 0 5px 0 0;
}
/* Rolloff state */
-.buttons div a {
+.buttons div a, .dropdown-select {
display: inline-block;
line-height: 17.5px;
height: 18px;
@@ -38,7 +38,7 @@
.buttons div span { display: none; }
-.buttons div a:after {
+.buttons div a:after, .dropdown-select:after {
content: '';
display: block;
position: absolute;
@@ -54,6 +54,35 @@
background-position: 0 -20px;
}
+.dropdown-select {
+ cursor: pointer;
+ font-family: inherit;
+ font-size: 1em;
+ font-weight: normal;
+}
+
+.dropdown-select:after {
+ background-position: -103px 10px;
+ border-left: 1px solid;
+ margin-top: 0;
+ top: 0;
+ right: 0;
+ height: 21px;
+ width: 15px;
+}
+
+.dropdown-visible .dropdown-select:after, .nojs .dropdown-container:hover .dropdown-select:after {
+ background-position: -103px -10px;
+}
+
+.dropdown-select-icon:before {
+ content: '';
+ display: block;
+ float: left;
+ margin-right: 4px;
+ margin-top: 2px;
+}
+
/* Big button images */
.buttons div.reply-icon a:after, .buttons div.pmreply-icon a:after { background-position: -20px 0; }
.buttons div.reply-icon a:hover:after, .buttons div.pmreply-icon a:hover:after { background-position: -20px -20px; }
@@ -67,6 +96,11 @@
.buttons div.forwardpm-icon a:after { background-position: -40px 0; }
.buttons div.forwardpm-icon a:hover:after { background-position: -40px -20px; }
+.dropdown-select.tools-icon:before { background-position: -80px 0; height: 16px; width: 16px; }
+
+.dropdown-visible .dropdown-select.tools-icon:before,
+.nojs .dropdown-container:hover .dropdown-select.tools-icon:before { background-position: -80px -20px; }
+
/* Sub-header (navigation bar)
--------------------------------------------- */
a.print, a.sendemail {
diff --git a/phpBB/styles/prosilver/theme/colours.css b/phpBB/styles/prosilver/theme/colours.css
index 55b01f1269..68fbcde4f9 100644
--- a/phpBB/styles/prosilver/theme/colours.css
+++ b/phpBB/styles/prosilver/theme/colours.css
@@ -231,7 +231,6 @@ p.post-notice.reported:before, p.post-notice.error:before {
background-image: url("./images/icon_topic_reported.gif");
}
-
/*
--------------------------------------------------------------
Colours and backgrounds for links.css
@@ -655,7 +654,7 @@ a.sendemail {
background-image: url("./images/icon_sendemail.gif");
}
-.buttons div a {
+.buttons div a, .dropdown-select {
border-color: #C7C3BF;
background-color: #FFFFFF;
background-image: -moz-linear-gradient(top, #FFFFFF, #E9E9E9);
@@ -668,7 +667,16 @@ a.sendemail {
color: #BC2A4D !important;
}
-.buttons div a:hover {
+.dropdown-select {
+ color: #5C6482 !important;
+}
+
+.dropdown-select:after {
+ border-color: #DADADA;
+}
+
+.buttons div a:hover, .dropdown-select:hover, .dropdown-visible .dropdown-select,
+.dropdown-visible .dropdown-select:hover, .nojs .dropdown-container:hover .dropdown-select {
border-color: #0a8ed0;
background-image: -moz-linear-gradient(top, #E9E9E9, #FFFFFF);
background-image: -webkit-linear-gradient(top, #E9E9E9, #FFFFFF);
@@ -678,7 +686,16 @@ a.sendemail {
text-shadow: 1px 1px 0 #FFFFFF, -1px -1px 0 #FFFFFF, -1px -1px 0 rgba(188, 42, 77, 0.2);
}
-.buttons div a:after {
+.dropdown-select:hover {
+ border-color: #C7C3BF;
+}
+
+.dropdown-visible .dropdown-select, .dropdown-visible .dropdown-select:hover, .nojs .dropdown-container:hover .dropdown-select {
+ border-color: #A6B2BA;
+ color: #105289 !important;
+}
+
+.buttons div a:after, .dropdown-select-icon:before, .dropdown-select:after {
background-image: url("images/buttons.png");
}
@@ -698,6 +715,7 @@ a.sendemail {
.icon-search, .responsive-search a { background-image: url("./images/icon_search.gif"); }
.icon-notification { background-image: url("./images/icon_notification.gif"); }
.icon-pm { background-image: url("./images/icon_pm.gif"); }
+.icon-download { background-image: url("./images/icon_download.gif"); }
/* Profile & navigation icons */
.email-icon, .email-icon a { background-image: url("./images/icon_contact_email.gif"); }
@@ -1162,6 +1180,10 @@ ul.linklist li.responsive-menu a.responsive-menu-link:hover:before, ul.linklist
box-shadow: 1px 0 5px rgba(0, 0, 0, 0.2);
}
+.dropdown li, .dropdown li li {
+ border-color: #DCDCDC;
+}
+
#minitabs .dropdown-contents {
background-color: #F1F8FF;
}
diff --git a/phpBB/styles/prosilver/theme/common.css b/phpBB/styles/prosilver/theme/common.css
index dced25f541..66ee77f60b 100644
--- a/phpBB/styles/prosilver/theme/common.css
+++ b/phpBB/styles/prosilver/theme/common.css
@@ -407,6 +407,14 @@ li.responsive-menu .dropdown .dropdown-contents {
padding: 0 5px;
}
+ul.linklist .dropdown-down .dropdown {
+ top: 22px;
+}
+
+ul.linklist .dropdown-up .dropdown {
+ bottom: 18px;
+}
+
ul.linklist .dropdown li {
clear: both;
}
@@ -437,27 +445,47 @@ ul.linklist.bulletin li.no-bulletin:before {
/* Dropdown menu
----------------------------------------*/
+.dropdown-container {
+ position: relative;
+}
+
+.nojs .dropdown-container:hover .dropdown {
+ display: block !important;
+}
+
.dropdown {
position: absolute;
left: 0;
- top: 22px;
+ top: 1.2em;
z-index: 2;
border: 1px solid transparent;
border-radius: 5px;
padding: 9px 0 0;
}
+.dropdown-container.topic-tools {
+ float: left;
+}
+
.dropdown-up .dropdown {
top: auto;
- bottom: 18px;
+ bottom: 1.2em;
padding: 0 0 9px;
}
-.dropdown-left .dropdown {
+.dropdown-left .dropdown, .nojs .rightside .dropdown {
left: auto;
right: 0;
}
+.dropdown-button-control .dropdown {
+ top: 24px;
+}
+
+.dropdown-button-control.dropdown-up .dropdown {
+ top: auto;
+ bottom: 24px;
+}
.dropdown .pointer, .dropdown .pointer-inner {
position: absolute;
@@ -488,7 +516,7 @@ ul.linklist.bulletin li.no-bulletin:before {
top: auto;
}
-.dropdown-left .dropdown .pointer {
+.dropdown-left .dropdown .pointer, .nojs .rightside .dropdown .pointer {
left: auto;
right: 10px;
}
@@ -507,22 +535,48 @@ ul.linklist.bulletin li.no-bulletin:before {
.dropdown .dropdown-contents {
z-index: 2;
overflow: hidden;
+ overflow-y: auto;
border: 1px solid transparent;
border-radius: 5px;
padding: 5px;
position: relative;
+ min-width: 40px;
+ max-height: 200px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.dropdown li {
- float: none;
+ border-bottom: 1px dotted transparent;
+ float: none !important;
+ line-height: normal !important;
+ font-size: 1em !important;
+ list-style: none;
margin: 0;
+ padding-top: 4px;
+ padding-bottom: 4px;
white-space: nowrap;
text-align: left;
}
+.dropdown li:last-child, .dropdown li li {
+ border-bottom: 0;
+}
+
+.dropdown li li:first-child {
+ margin-top: 4px;
+}
+
+.dropdown li li:last-child {
+ padding-bottom: 0;
+}
+
+.dropdown li li {
+ border-top: 1px dotted transparent;
+ padding-left: 10px;
+}
+
.wrap .dropdown li, .dropdown.wrap li, #notification_list li {
white-space: normal;
}
@@ -968,6 +1022,7 @@ form > p.post-notice strong {
}
#notification_list .dropdown-contents {
+ max-height: none;
padding: 0;
}
diff --git a/phpBB/styles/prosilver/theme/images/buttons.png b/phpBB/styles/prosilver/theme/images/buttons.png
index a19abdc2b8..3a8c2f2f65 100644..100755
--- a/phpBB/styles/prosilver/theme/images/buttons.png
+++ b/phpBB/styles/prosilver/theme/images/buttons.png
Binary files differ
diff --git a/phpBB/styles/prosilver/theme/images/icon_download.gif b/phpBB/styles/prosilver/theme/images/icon_download.gif
new file mode 100644
index 0000000000..70cd61caf2
--- /dev/null
+++ b/phpBB/styles/prosilver/theme/images/icon_download.gif
Binary files differ
diff --git a/phpBB/styles/prosilver/theme/responsive.css b/phpBB/styles/prosilver/theme/responsive.css
index d7af7519b7..397ff12942 100644
--- a/phpBB/styles/prosilver/theme/responsive.css
+++ b/phpBB/styles/prosilver/theme/responsive.css
@@ -468,10 +468,6 @@ p.rightside {
float: none;
}
-.topic-actions {
- overflow: hidden;
-}
-
fieldset.quickmod {
width: auto;
float: none;
@@ -511,17 +507,14 @@ fieldset.display-actions {
margin: 0;
}
- .topic-actions > div {
- float: none;
- overflow: hidden;
- clear: both;
- }
-
.topic-actions > .pagination, fieldset.jumpbox {
text-align: center;
}
.topic-actions > .pagination {
+ float: none;
+ overflow: hidden;
+ clear: both;
padding-bottom: 1px;
}
diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php
index 3735bca83d..dd4f7e1b19 100644
--- a/phpBB/viewtopic.php
+++ b/phpBB/viewtopic.php
@@ -1384,16 +1384,17 @@ if (sizeof($attach_list))
}
}
-$template->assign_vars(array(
- 'S_HAS_ATTACHMENTS' => $topic_data['topic_attachment'],
-));
-
$methods = phpbb_gen_download_links('topic_id', $topic_id, $phpbb_root_path, $phpEx);
foreach ($methods as $method)
{
$template->assign_block_vars('dl_method', $method);
}
+$template->assign_vars(array(
+ 'S_HAS_ATTACHMENTS' => $topic_data['topic_attachment'],
+ 'U_DOWNLOAD_ALL_ATTACHMENTS' => $methods[0]['LINK'],
+));
+
// Instantiate BBCode if need be
if ($bbcode_bitfield !== '')
{
diff --git a/tests/avatar/driver/barfoo.php b/tests/avatar/driver/barfoo.php
index 11c100db36..0bf30b8a91 100644
--- a/tests/avatar/driver/barfoo.php
+++ b/tests/avatar/driver/barfoo.php
@@ -18,4 +18,9 @@ class barfoo extends \phpbb\avatar\driver\driver
{
return false;
}
+
+ public function get_template_name()
+ {
+ return 'barfoo.html';
+ }
}
diff --git a/tests/avatar/driver/foobar.php b/tests/avatar/driver/foobar.php
index a1e7bdf7cc..aabdaf5ac4 100644
--- a/tests/avatar/driver/foobar.php
+++ b/tests/avatar/driver/foobar.php
@@ -18,4 +18,9 @@ class foobar extends \phpbb\avatar\driver\driver
{
return false;
}
+
+ public function get_template_name()
+ {
+ return 'foobar.html';
+ }
}