1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-05-05 15:16:16 +02:00

[ticket/12608] Improve notifications drop-down menu styling in header

PHPBB3-12608
This commit is contained in:
PayBas 2014-05-28 21:33:17 +02:00
parent 3a96c5b753
commit d5f4d288e9
16 changed files with 296 additions and 52 deletions

View File

@ -440,29 +440,32 @@ $lang = array_merge($lang, array(
// A, B, C and 2 others replied...
// A, B, C and others replied...
'NOTIFICATION_BOOKMARK' => array(
1 => '%1$s replied to the topic “%2$s” you have bookmarked.',
1 => '<strong>Reply</strong> from %1$s in bookmarked topic:',
),
'NOTIFICATION_GROUP_REQUEST' => '%1$s is requesting to join the group %2$s.',
'NOTIFICATION_GROUP_REQUEST_APPROVED' => 'Your request to join the group %1$s has been approved.',
'NOTIFICATION_PM' => '%1$s sent you a Private Message "%2$s".',
'NOTIFICATION_FORUM' => 'Forum: "%1$s"',
'NOTIFICATION_GROUP_REQUEST' => '<strong>Group request</strong> from %1$s to join the group %2$s.',
'NOTIFICATION_GROUP_REQUEST_APPROVED' => '<strong>Group request approved</strong> to join the group %1$s.',
'NOTIFICATION_PM' => '<strong>Private Message</strong> from %1$s:',
'NOTIFICATION_POST' => array(
1 => '%1$s replied to the topic “%2$s”.',
1 => '<strong>Reply</strong> from %1$s in topic:',
),
'NOTIFICATION_POST_APPROVED' => 'Your post was approved "%2$s".',
'NOTIFICATION_POST_DISAPPROVED' => 'Your post "%1$s" was disapproved for reason: "%2$s".',
'NOTIFICATION_POST_IN_QUEUE' => 'A new post titled "%2$s" was posted by %1$s and needs approval.',
'NOTIFICATION_POST_APPROVED' => '<strong>Post approved</strong>:',
'NOTIFICATION_POST_DISAPPROVED' => '<strong>Post disapproved</strong>:',
'NOTIFICATION_POST_IN_QUEUE' => '<strong>Post approval</strong> request by %1$s:',
'NOTIFICATION_QUOTE' => array(
1 => '%1$s quoted you in the post “%2$s”.',
1 => '<strong>Quoted</strong> by %1$s in:',
),
'NOTIFICATION_REPORT_PM' => '%1$s reported a Private Message "%2$s" for reason: "%3$s".',
'NOTIFICATION_REPORT_POST' => '%1$s reported a post "%2$s" for reason: "%3$s".',
'NOTIFICATION_REPORT_CLOSED' => '%1$s closed the report you made for "%2$s".',
'NOTIFICATION_TOPIC' => '%1$s posted a new topic "%2$s" in the forum "%3$s".',
'NOTIFICATION_TOPIC_APPROVED' => 'Your topic "%2$s" in the forum "%3$s" was approved.',
'NOTIFICATION_TOPIC_DISAPPROVED' => 'Your topic "%1$s" was disapproved for reason: "%2$s".',
'NOTIFICATION_TOPIC_IN_QUEUE' => 'A new topic titled "%2$s" was posted by %1$s and needs approval.',
'NOTIFICATION_REFERENCE' => '"%1$s"',
'NOTIFICATION_REASON' => 'Reason: "%1$s".',
'NOTIFICATION_REPORT_PM' => '<strong>Private Message reported</strong> by %1$s:',
'NOTIFICATION_REPORT_POST' => '<strong>Post reported</strong> by %1$s:',
'NOTIFICATION_REPORT_CLOSED' => '<strong>Report closed</strong> by %1$s for:',
'NOTIFICATION_TOPIC' => '<strong>New topic</strong> by %1$s:',
'NOTIFICATION_TOPIC_APPROVED' => '<strong>Topic approved</strong>:',
'NOTIFICATION_TOPIC_DISAPPROVED' => '<strong>Topic disapproved</strong>:',
'NOTIFICATION_TOPIC_IN_QUEUE' => '<strong>Topic approval</strong> request by %1$s:',
'NOTIFICATION_TYPE_NOT_EXIST' => 'The notification type "%s" is missing from the file system.',
'NOTIFICATION_ADMIN_ACTIVATE_USER' => 'The user “%1$s” is newly registered and requires activation.',
'NOTIFICATION_ADMIN_ACTIVATE_USER' => '<strong>Activation required</strong> for newly registered user: “%1$s”',
// Used in conjuction with NOTIFICATION_BOOKMARK and NOTIFICATION_POST.
'NOTIFICATION_MANY_OTHERS' => 'others',
'NOTIFICATION_X_OTHERS' => array(

View File

@ -312,6 +312,12 @@ abstract class base implements \phpbb\notification\type\type_interface
'AVATAR' => $this->get_avatar(),
'FORMATTED_TITLE' => $this->get_title(),
'REFERENCE' => $this->get_reference(),
'FORUM' => $this->get_forum(),
'REASON' => $this->get_reason(),
'URL' => $this->get_url(),
'TIME' => $this->user->format_date($this->notification_time),
@ -346,6 +352,36 @@ abstract class base implements \phpbb\notification\type\type_interface
return '';
}
/**
* Get the reference of the notifcation (fall back)
*
* @return string
*/
public function get_reference()
{
return '';
}
/**
* Get the forum of the notification reference (fall back)
*
* @return string
*/
public function get_forum()
{
return '';
}
/**
* Get the reason for the notifcation (fall back)
*
* @return string
*/
public function get_reason()
{
return '';
}
/**
* Get the special items to load (fall back)
*

View File

@ -62,10 +62,32 @@ class disapprove_post extends \phpbb\notification\type\approve_post
* @return string
*/
public function get_title()
{
return $this->user->lang($this->language_key);
}
/**
* Get the HTML formatted reference of the notification
*
* @return string
*/
public function get_reference()
{
return $this->user->lang(
$this->language_key,
censor_text($this->get_data('topic_title')),
'NOTIFICATION_REFERENCE',
censor_text($this->get_data('topic_title'))
);
}
/**
* Get the reason for the disapproval notification
*
* @return string
*/
public function get_reason()
{
return $this->user->lang(
'NOTIFICATION_REASON',
$this->get_data('disapprove_reason')
);
}

View File

@ -62,10 +62,32 @@ class disapprove_topic extends \phpbb\notification\type\approve_topic
* @return string
*/
public function get_title()
{
return $this->user->lang($this->language_key);
}
/**
* Get the HTML formatted reference of the notification
*
* @return string
*/
public function get_reference()
{
return $this->user->lang(
$this->language_key,
censor_text($this->get_data('topic_title')),
'NOTIFICATION_REFERENCE',
censor_text($this->get_data('topic_title'))
);
}
/**
* Get the reason for the disapproval notification
*
* @return string
*/
public function get_reason()
{
return $this->user->lang(
'NOTIFICATION_REASON',
$this->get_data('disapprove_reason')
);
}

View File

@ -111,7 +111,20 @@ class pm extends \phpbb\notification\type\base
{
$username = $this->user_loader->get_username($this->get_data('from_user_id'), 'no_profile');
return $this->user->lang('NOTIFICATION_PM', $username, $this->get_data('message_subject'));
return $this->user->lang('NOTIFICATION_PM', $username);
}
/**
* Get the HTML formatted reference of the notification
*
* @return string
*/
public function get_reference()
{
return $this->user->lang(
'NOTIFICATION_REFERENCE',
$this->get_data('message_subject')
);
}
/**

View File

@ -225,11 +225,23 @@ class post extends \phpbb\notification\type\base
return $this->user->lang(
$this->language_key,
phpbb_generate_string_list($usernames, $this->user),
censor_text($this->get_data('topic_title')),
$responders_cnt
);
}
/**
* Get the HTML formatted reference of the notification
*
* @return string
*/
public function get_reference()
{
return $this->user->lang(
'NOTIFICATION_REFERENCE',
censor_text($this->get_data('topic_title'))
);
}
/**
* Get email template
*

View File

@ -159,12 +159,36 @@ class report_pm extends \phpbb\notification\type\pm
$username = $this->user_loader->get_username($this->get_data('reporter_id'), 'no_profile');
return $this->user->lang(
$this->language_key,
$username
);
}
/**
* Get the HTML formatted reference of the notification
*
* @return string
*/
public function get_reference()
{
return $this->user->lang(
'NOTIFICATION_REFERENCE',
censor_text($this->get_data('message_subject'))
);
}
/**
* Get the reason for the notification
*
* @return string
*/
public function get_reason()
{
if ($this->get_data('report_text'))
{
return $this->user->lang(
$this->language_key,
$username,
censor_text($this->get_data('message_subject')),
'NOTIFICATION_REASON',
$this->get_data('report_text')
);
}
@ -172,17 +196,13 @@ class report_pm extends \phpbb\notification\type\pm
if (isset($this->user->lang[$this->get_data('reason_title')]))
{
return $this->user->lang(
$this->language_key,
$username,
censor_text($this->get_data('message_subject')),
'NOTIFICATION_REASON',
$this->user->lang[$this->get_data('reason_title')]
);
}
return $this->user->lang(
$this->language_key,
$username,
censor_text($this->get_data('message_subject')),
'NOTIFICATION_REASON',
$this->get_data('reason_description')
);
}

View File

@ -107,7 +107,19 @@ class report_pm_closed extends \phpbb\notification\type\pm
return $this->user->lang(
$this->language_key,
$username,
$username
);
}
/**
* Get the HTML formatted reference of the notification
*
* @return string
*/
public function get_reference()
{
return $this->user->lang(
'NOTIFICATION_REFERENCE',
censor_text($this->get_data('message_subject'))
);
}

View File

@ -132,12 +132,36 @@ class report_post extends \phpbb\notification\type\post_in_queue
$username = $this->user_loader->get_username($this->get_data('reporter_id'), 'no_profile');
return $this->user->lang(
$this->language_key,
$username
);
}
/**
* Get the HTML formatted reference of the notification
*
* @return string
*/
public function get_reference()
{
return $this->user->lang(
'NOTIFICATION_REFERENCE',
censor_text($this->get_data('post_subject'))
);
}
/**
* Get the reason for the notification
*
* @return string
*/
public function get_reason()
{
if ($this->get_data('report_text'))
{
return $this->user->lang(
$this->language_key,
$username,
censor_text($this->get_data('post_subject')),
'NOTIFICATION_REASON',
$this->get_data('report_text')
);
}
@ -145,17 +169,13 @@ class report_post extends \phpbb\notification\type\post_in_queue
if (isset($this->user->lang[$this->get_data('reason_title')]))
{
return $this->user->lang(
$this->language_key,
$username,
censor_text($this->get_data('post_subject')),
'NOTIFICATION_REASON',
$this->user->lang[$this->get_data('reason_title')]
);
}
return $this->user->lang(
$this->language_key,
$username,
censor_text($this->get_data('post_subject')),
'NOTIFICATION_REASON',
$this->get_data('reason_description')
);
}

View File

@ -114,7 +114,19 @@ class report_post_closed extends \phpbb\notification\type\post
return $this->user->lang(
$this->language_key,
$username,
$username
);
}
/**
* Get the HTML formatted reference of the notification
*
* @return string
*/
public function get_reference()
{
return $this->user->lang(
'NOTIFICATION_REFERENCE',
censor_text($this->get_data('post_subject'))
);
}

View File

@ -151,8 +151,32 @@ class topic extends \phpbb\notification\type\base
return $this->user->lang(
$this->language_key,
$username,
censor_text($this->get_data('topic_title')),
$username
);
}
/**
* Get the HTML formatted reference of the notification
*
* @return string
*/
public function get_reference()
{
return $this->user->lang(
'NOTIFICATION_REFERENCE',
censor_text($this->get_data('topic_title'))
);
}
/**
* Get the forum of the notification reference
*
* @return string
*/
public function get_forum()
{
return $this->user->lang(
'NOTIFICATION_FORUM',
$this->get_data('forum_name')
);
}

View File

@ -94,6 +94,20 @@ interface type_interface
*/
public function get_title();
/**
* Get the HTML formatted reference of the notification
*
* @return string
*/
public function get_reference();
/**
* Get the forum of the notification reference
*
* @return string
*/
public function get_forum();
/**
* Get the url to this item
*

View File

@ -20,12 +20,15 @@
<!-- BEGIN notifications -->
<li class="<!-- IF notifications.UNREAD --> bg2<!-- ENDIF -->">
<!-- IF notifications.URL -->
<a href="<!-- IF notifications.UNREAD -->{notifications.U_MARK_READ}" data-real-url="{notifications.URL}<!-- ELSE -->{notifications.URL}<!-- ENDIF -->">
<a href="<!-- IF notifications.UNREAD -->{notifications.U_MARK_READ}" class="notification-block" data-real-url="{notifications.URL}<!-- ELSE -->{notifications.URL}<!-- ENDIF -->">
<!-- ENDIF -->
<!-- IF notifications.AVATAR -->{notifications.AVATAR}<!-- ELSE --><img src="{T_THEME_PATH}/images/no_avatar.gif" alt="" /><!-- ENDIF -->
<div class="notification_text">
<p>{notifications.FORMATTED_TITLE}</p>
<p>&raquo; {notifications.TIME}</p>
<p class="title">{notifications.FORMATTED_TITLE}</p>
<!-- IF notifications.REFERENCE --><p class="notification-reference">{notifications.REFERENCE}</p><!-- ENDIF -->
<!-- IF notifications.FORUM --><p class="notification-forum">{notifications.FORUM}</p><!-- ENDIF -->
<!-- IF notifications.REASON --><p class="notification-reason">{notifications.REASON}</p><!-- ENDIF -->
<p class="notification-time">{notifications.TIME}</p>
</div>
<!-- IF notifications.URL --></a><!-- ENDIF -->
<!-- IF notifications.UNREAD -->

View File

@ -72,8 +72,10 @@
<!-- IF notification_list.AVATAR -->{notification_list.AVATAR}<!-- ELSE --><img src="{T_THEME_PATH}/images/no_avatar.gif" alt="" /><!-- ENDIF -->
<div class="notifications">
<!-- IF notification_list.URL --><a href="<!-- IF notification_list.UNREAD -->{notification_list.U_MARK_READ}<!-- ELSE -->{notification_list.URL}<!-- ENDIF -->"><!-- ENDIF -->
<p class="notifications_title">{notification_list.FORMATTED_TITLE}</p>
<!-- IF notification_list.URL --></a><!-- ENDIF -->
<p class="notifications_title">{notification_list.FORMATTED_TITLE} <!-- IF notification_list.REFERENCE -->{notification_list.REFERENCE}<!-- ENDIF --></p>
<!-- IF notification_list.URL --></a><!-- ENDIF -->
<!-- IF notification_list.FORUM --><p class="notifications_forum">{notification_list.FORUM}</p><!-- ENDIF -->
<!-- IF notification_list.REASON --><p class="notifications_reason">{notification_list.REASON}</p><!-- ENDIF -->
<p class="notifications_time">{notification_list.TIME}</p>
<!-- IF not notification_list.URL and notification_list.U_MARK_READ -->
<p><a href="{notification_list.U_MARK_READ}">{L_MARK_READ}</a></p>

View File

@ -1101,7 +1101,7 @@ form > p.post-notice strong {
display: none;
position: absolute;
left: 0;
width: 330px;
width: 340px;
z-index: 1;
top: 22px;
}
@ -1173,19 +1173,38 @@ form > p.post-notice strong {
text-decoration: none;
}
.notification_list a.notification-block {
padding: 8px;
}
.notification_list ul li img {
float: left;
max-height: 50px;
max-width: 50px;
width: auto !important;
height: auto !important;
margin-right: 5px;
}
.notification_list ul li p {
margin: 0;
margin-bottom: 4px;
font-size: 1em;
}
.notification_list p.notification-reference,
.notification_list p.notification-location,
.notification_list a.notification-block p.notification-reason {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.notification_list ul li p.notification-time {
font-size: 0.9em;
margin: 0;
text-align: right;
}
.notification_list div.notifications {
padding: 5px;
}
@ -1193,6 +1212,9 @@ form > p.post-notice strong {
.notification_list p.notifications_title {
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
font-size: 13px !important;
}
.notification_list p.notifications_title strong {
font-weight: bold;
}
@ -1200,6 +1222,10 @@ form > p.post-notice strong {
font-size: 11px !important;
}
.notification_text {
margin-left: 58px;
}
.notification_text:after {
content: '';
clear: both;

View File

@ -62,6 +62,9 @@ ul.linklist li.small-icon > a, ul.linklist li.breadcrumbs span:first-child > a {
top: 50%;
width: 30px;
height: 40px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.dropdown-extended li:hover a.mark_read {