<li itemprop="author" itemscope itemtype="http://schema.org/Person">
<span class="icon icon16 fa-user"></span>
{if $article->userID}
- <a href="{link controller='User' id=$article->userID title=$article->username}{/link}" class="userLink" data-user-id="{@$article->userID}" itemprop="url">
- <span itemprop="name">{$article->username}</span>
+ <a href="{$article->getUserProfile()->getLink()}" class="userLink" data-object-id="{@$article->userID}" itemprop="url">
+ <span itemprop="name">{@$article->getUserProfile()->getFormattedUsername()}</span>
</a>
{else}
<span itemprop="name">{$article->username}</span>
{event name='afterAboutAuthorText'}
<div class="articleAboutAuthorUsername">
- <a href="{link controller='User' object=$article->getUserProfile()->getDecoratedObject()}{/link}" class="username userLink" data-user-id="{@$article->getUserProfile()->userID}">{@$article->getUserProfile()->getFormattedUsername()}</a>
+ {user object=$article->getUserProfile() class='username'}
{if MODULE_USER_RANK}
{if $article->getUserProfile()->getUserTitle()}
<div class="contentItemMetaContent">
<div class="contentItemMetaAuthor">
{if $article->userID}
- <a href="{$article->getUserProfile()->getLink()}" class="userLink" data-user-id="{@$article->userID}">{$article->getUserProfile()->username}</a>
+ {user object=$article->getUserProfile()}
{else}
{$article->username}
{/if}
<a href="{link controller='User' object=$userOnline}{/link}" aria-hidden="true">{@$userOnline->getAvatar()->getImageTag(32)}</a>
<div class="sidebarItemTitle">
- <h3><a href="{link controller='User' object=$userOnline}{/link}" class="userLink" data-user-id="{@$userOnline->userID}">{$userOnline->username}</a></h3>
+ <h3>{user object=$userOnline}</h3>
<small>{@$userOnline->lastActivityTime|time}</small>
</div>
</li>
<div class="sidebarItemTitle">
<h3>
- <a href="{link controller='User' object=$event->getUserProfile()}{/link}" class="userLink" data-user-id="{@$event->getUserProfile()->userID}">{$event->getUserProfile()->username}</a>
+ {user object=$event->getUserProfile()}
<small class="separatorLeft">{@$event->time|time}</small>
</h3>
<small>{@$event->getTitle()}</small>
</div>
<p><small>{@$boxComment->getExcerpt(50)}</small></p>
- <p><small>{if $boxComment->userID}<a href="{link controller='User' object=$boxComment->getUserProfile()}{/link}" class="userLink" data-user-id="{@$boxComment->userID}">{$boxComment->username}</a>{else}{$boxComment->username}{/if} <span class="separatorLeft">{@$boxComment->time|time}</span></small></p>
+ <p><small>{if $boxComment->userID}{user object=$boxComment->getUserProfile()}{else}{$boxComment->username}{/if} <span class="separatorLeft">{@$boxComment->time|time}</span></small></p>
</li>
{/foreach}
</ul>
<div class="sidebarItemTitle">
<h3>
{event name='beforeUsername'}
- <a href="{link controller='User' object=$userOnline}{/link}" class="userLink" data-user-id="{@$userOnline->userID}">{$userOnline->username}</a>
+ {user object=$userOnline}
</h3>
{if MODULE_USER_RANK}
{if $userOnline->getUserTitle()}
{if $statistics[newestMember]}
<dt>{lang}wcf.user.newestMember{/lang}</dt>
- <dd><a href="{link controller='User' object=$statistics[newestMember]}{/link}" class="userLink" data-user-id="{$statistics[newestMember]->userID}">{$statistics[newestMember]}</a></dd>
+ <dd>{user object=$statistics[newestMember]}</dd>
{/if}
</dl>
<a href="{link controller='User' object=$birthdayUserProfile}{/link}" aria-hidden="true">{@$birthdayUserProfile->getAvatar()->getImageTag(32)}</a>
<div class="sidebarItemTitle">
- <h3><a href="{link controller='User' object=$birthdayUserProfile}{/link}" class="userLink" data-user-id="{@$birthdayUserProfile->userID}">{$birthdayUserProfile->username}</a></h3>
+ <h3>{user object=$birthdayUserProfile}</h3>
<small>{$birthdayUserProfile->getBirthday()}</small>
</div>
</li>
});
});
</script>
-{/if}
\ No newline at end of file
+{/if}
<a href="{link controller='User' object=$birthdayUserProfile}{/link}" aria-hidden="true">{@$birthdayUserProfile->getAvatar()->getImageTag(32)}</a>
<div class="sidebarItemTitle">
- <h3><a href="{link controller='User' object=$birthdayUserProfile}{/link}" class="userLink" data-user-id="{@$birthdayUserProfile->userID}">{$birthdayUserProfile->username}</a></h3>
+ <h3>{user object=$birthdayUserProfile}</h3>
<small>{$birthdayUserProfile->getBirthday()}</small>
</div>
</li>
<a href="{link controller='User' object=$boxUser}{/link}" aria-hidden="true">{@$boxUser->getAvatar()->getImageTag(24)}</a>
<div class="sidebarItemTitle">
- <h3><a href="{link controller='User' object=$boxUser}{/link}" class="userLink" data-user-id="{@$boxUser->userID}">{$boxUser->username}</a></h3>
+ <h3>{user object=$boxUser}</h3>
{capture assign='__boxUserLanguageItem'}{lang __optional=true}wcf.user.boxList.description.{$boxSortField}{/lang}{/capture}
{if $__boxUserLanguageItem}
<small>{@$__boxUserLanguageItem}</small>
<a href="{$boxUserTrophy->getTrophy()->getLink()}">{$boxUserTrophy->getTrophy()->getTitle()}</a>
</h3>
<small>
- {@$boxUserTrophy->getUserProfile()->getAnchorTag()}
+ {user object=$boxUserTrophy->getUserProfile()}
<span class="separatorLeft">{@$boxUserTrophy->time|time}</span>
</small>
</div>
<div class="sidebarItemTitle">
<h3><a href="{$boxUserTrophy->getTrophy()->getLink()}">{$boxUserTrophy->getTrophy()->getTitle()}</a></h3>
- <small>{if !$boxUserTrophy->getDescription()|empty}<p>{@$boxUserTrophy->getDescription()}</p>{/if}<p>{@$boxUserTrophy->getUserProfile()->getAnchorTag()} <span class="separatorLeft">{@$boxUserTrophy->time|time}</span></p></small>
+ <small>{if !$boxUserTrophy->getDescription()|empty}<p>{@$boxUserTrophy->getDescription()}</p>{/if}<p>{user object=$boxUserTrophy->getUserProfile()} <span class="separatorLeft">{@$boxUserTrophy->time|time}</span></p></small>
</div>
</li>
{/foreach}
{if $usersOnlineList|count}
<ul class="inlineList commaSeparated">
{foreach from=$usersOnlineList->getObjects() item=userOnline}
- <li><a href="{link controller='User' object=$userOnline->getDecoratedObject()}{/link}" class="userLink" data-user-id="{@$userOnline->userID}">{@$userOnline->getFormattedUsername()}</a></li>
+ <li>{user object=$userOnline}</li>
{/foreach}
</ul>
{/if}
<ul class="inlineList commaSeparated small">
{foreach from=$usersOnlineList->getObjects() item=userOnline}
- <li><a href="{link controller='User' object=$userOnline->getDecoratedObject()}{/link}" class="userLink" data-user-id="{@$userOnline->userID}">{@$userOnline->getFormattedUsername()}</a></li>
+ <li>{user object=$userOnline}</li>
{/foreach}
</ul>
-<p><small>{lang}wcf.user.usersOnline.detail{/lang}{if USERS_ONLINE_RECORD && $__showRecord} <span class="separatorLeft">{lang}wcf.user.usersOnline.record{/lang}</span>{/if}</small></p>
\ No newline at end of file
+<p><small>{lang}wcf.user.usersOnline.detail{/lang}{if USERS_ONLINE_RECORD && $__showRecord} <span class="separatorLeft">{lang}wcf.user.usersOnline.record{/lang}</span>{/if}</small></p>
{if $whoWasOnlineList|count < 29}
<ul class="userAvatarList">
{foreach from=$whoWasOnlineList item=userOnline}
- <li><a href="{link controller='User' object=$userOnline}{/link}" title="{$userOnline->username} ({@$userOnline->lastActivityTime|date:$whoWasOnlineTimeFormat})" class="jsTooltip">{@$userOnline->getAvatar()->getImageTag(48)}</a></li>
+ <li><a href="{$userOnline->getLink()}" title="{$userOnline->username} ({@$userOnline->lastActivityTime|date:$whoWasOnlineTimeFormat})" class="jsTooltip">{@$userOnline->getAvatar()->getImageTag(48)}</a></li>
{/foreach}
</ul>
{else}
<ul class="inlineList commaSeparated">
{foreach from=$whoWasOnlineList item=userOnline}
- <li><a href="{link controller='User' object=$userOnline->getDecoratedObject()}{/link}" class="userLink" data-user-id="{@$userOnline->userID}">{@$userOnline->getFormattedUsername()}</a> ({@$userOnline->lastActivityTime|date:$whoWasOnlineTimeFormat})</li>
+ <li>{user object=$userOnline} ({@$userOnline->lastActivityTime|date:$whoWasOnlineTimeFormat})</li>
{/foreach}
</ul>
{/if}
<div class="containerHeadline">
<h3 itemprop="author" itemscope itemtype="http://schema.org/Person">
{if $comment->userID}
- <a href="{link controller='User' object=$comment->getUserProfile()}{/link}" class="userLink" data-user-id="{@$comment->userID}" itemprop="url">
- <span itemprop="name">{$comment->username}</span>
+ <a href="{$comment->getUserProfile()->getLink()}" class="userLink" data-object-id="{@$comment->userID}" itemprop="url">
+ <span itemprop="name">{@$comment->getUserProfile()->getFormattedUsername()}</span>
</a>
{else}
<span itemprop="name">{$comment->username}</span>
<div class="containerHeadline">
<h3 itemprop="author" itemscope itemtype="http://schema.org/Person">
{if $response->userID}
- <a href="{link controller='User' object=$response->getUserProfile()}{/link}" class="userLink" data-user-id="{@$response->userID}" itemprop="url">
- <span itemprop="name">{$response->username}</span>
+ <a href="{$response->getUserProfile()->getLink()}" class="userLink" data-object-id="{@$response->userID}" itemprop="url">
+ <span itemprop="name">{@$response->getUserProfile()->getFormattedUsername()}</span>
</a>
{else}
<span itemprop="name">{$response->username}</span>
{/if}
<dt>{lang}wcf.media.uploader{/lang}</dt>
- <dd id="mediaUploader">{@$media->getUserProfile()->getAnchorTag()}</dd>
+ <dd id="mediaUploader">{user object=$media->getUserProfile()}</dd>
<dt>{lang}wcf.media.downloads{/lang}</dt>
<dd id="mediaDownloads">{#$media->downloads}</dd>
{/if}
<div class="messageAuthorContainer">
- <a href="{link controller='User' object=$userProfile->getDecoratedObject()}{/link}" class="username userLink" data-user-id="{@$userProfile->userID}"{if $enableMicrodata} itemprop="url"{/if}>
+ <a href="{$userProfile->getLink()}" class="username userLink" data-object-id="{@$userProfile->userID}"{if $enableMicrodata} itemprop="url"{/if}>
<span{if $enableMicrodata} itemprop="name"{/if}>{@$userProfile->getFormattedUsername()}</span>
</a>
{if !$isReply}
<dd>
<span>
{if $queue->assignedUserID}
- <a href="{link controller='User' id=$assignedUserID}{/link}" class="userLink" data-user-id="{@$assignedUserID}">{$queue->assignedUsername}</a>
+ <a href="{link controller='User' id=$assignedUserID}{/link}" class="userLink" data-object-id="{@$assignedUserID}">{$queue->assignedUsername}</a>
{else}
{lang}wcf.moderation.assignedUser.nobody{/lang}
{/if}
</h3>
<ul class="inlineList dotSeparated small messageGroupInfo">
- <li class="messageGroupAuthor">{if $entry->getAffectedObject()->getUserID()}<a href="{link controller='User' id=$entry->getAffectedObject()->getUserID() title=$entry->getAffectedObject()->getUsername()}{/link}" class="userLink" data-user-id="{@$entry->getAffectedObject()->getUserID()}">{$entry->getAffectedObject()->getUsername()}</a>{else}{$entry->getAffectedObject()->getUsername()}{/if}</li>
+ <li class="messageGroupAuthor">
+ {if $entry->getAffectedObject()->getUserID()}
+ {user object=$entry->getUserProfile()}
+ {else}
+ {$entry->getAffectedObject()->getUsername()}
+ {/if}
+ </li>
<li class="messageGroupTime">{@$entry->getAffectedObject()->getTime()|time}</li>
<li>{lang}wcf.moderation.type.{@$entry->getObjectTypeName()}{/lang}</li>
{if $entry->assignedUserID}
<small class="moderationQueueEntryAssignedUser">
- {lang}wcf.moderation.assignedUser{/lang}: <a href="{link controller='User' id=$entry->assignedUserID}{/link}" class="userLink" data-user-id="{@$entry->assignedUserID}">{$entry->assignedUsername}</a>
+ {lang}wcf.moderation.assignedUser{/lang}: <a href="{link controller='User' id=$entry->assignedUserID}{/link}" class="userLink" data-object-id="{@$entry->assignedUserID}">{$entry->assignedUsername}</a>
</small>
{/if}
<dd>
<span>
{if $queue->assignedUserID}
- <a href="{link controller='User' id=$assignedUserID}{/link}" class="userLink" data-user-id="{@$assignedUserID}">{$queue->assignedUsername}</a>
+ <a href="{link controller='User' id=$assignedUserID}{/link}" class="userLink" data-object-id="{@$assignedUserID}">{$queue->assignedUsername}</a>
{else}
{lang}wcf.moderation.assignedUser.nobody{/lang}
{/if}
<div class="containerHeadline">
<h3>
{if $reportUser->userID}
- <a href="{link controller='User' object=$reportUser}{/link}" class="userLink" data-user-id="{@$reportUser->userID}">{$reportUser->username}</a>
+ {user object=$reportUser}
{else}
{lang}wcf.user.guest{/lang}
{/if}
<blockquote class="quoteBox collapsibleBbcode jsCollapsibleBbcode{if $collapseQuote} collapsed{/if}{if !$quoteAuthorObject} quoteBoxSimple{/if}"{if $quoteLink} cite="{$quoteLink}"{/if}>
<div class="quoteBoxIcon">
{if $quoteAuthorObject}
- <a href="{link controller='User' object=$quoteAuthorObject}{/link}" class="userLink" data-user-id="{@$quoteAuthorObject->userID}" aria-hidden="true">{@$quoteAuthorObject->getAvatar()->getImageTag(64)}</a>
+ <a href="{$quoteAuthorObject->getLink()}" class="userLink" data-object-id="{@$quoteAuthorObject->userID}" aria-hidden="true">{@$quoteAuthorObject->getAvatar()->getImageTag(64)}</a>
{else}
<span class="quoteBoxQuoteSymbol"></span>
{/if}
<div class="containerHeadline">
<h3>
{event name='beforeUsername'}
- <a href="{link controller='User' object=$event->getUserProfile()}{/link}" class="userLink" data-user-id="{@$event->getUserProfile()->userID}">{$event->getUserProfile()->username}</a>
+ {user object=$event->getUserProfile()}
<small class="separatorLeft">{@$event->time|time}</small>
</h3>
<div>{@$event->getTitle()}</div>
{if $message->getUserProfile() || $message->getTime() || $message->getContainerTitle()}
<ul class="inlineList dotSeparated">
{if $message->getUserProfile()}
- <li>{if $message->getUserProfile()->userID}<a href="{link controller='User' object=$message->getUserProfile()}{/link}" class="userLink" data-user-id="{@$message->getUserProfile()->userID}">{$message->getUserProfile()->username}</a>{else}{$message->getUserProfile()->username}{/if}</li>
+ <li>
+ {if $message->getUserProfile()->userID}
+ {user object=$message->getUserProfile()}
+ {else}
+ {$message->getUserProfile()->username}
+ {/if}
+ </li>
{/if}
{if $message->getTime()}
<li><small>{@$message->getTime()|time}</small></li>
<div>{@$userTrophy->getUserProfile()->getAvatar()->getImageTag(64)}</div>
<div class="sidebarItemTitle">
- <h3>{@$userTrophy->getUserProfile()->getAnchorTag()}</h3>
+ <h3>{user object=$userTrophy->getUserProfile()}</h3>
<small>{if !$userTrophy->getDescription()|empty}<span class="separatorRight">{@$userTrophy->getDescription()}</span> {/if}{@$userTrophy->time|time}</small>
</div>
</li>
{/hascontent}
</footer>
-{include file='footer'}
\ No newline at end of file
+{include file='footer'}
<div class="containerHeadline">
- <h3><a href="{link controller='User' object=$user}{/link}" class="username userLink" data-user-id="{@$user->userID}">{$user->username}</a>{if $user->banned} <span class="icon icon16 fa-lock jsTooltip jsUserBanned" title="{lang}wcf.user.banned{/lang}"></span>{/if}
+ <h3>{user object=$user class='username'}{if $user->banned} <span class="icon icon16 fa-lock jsTooltip jsUserBanned" title="{lang}wcf.user.banned{/lang}"></span>{/if}
{if MODULE_USER_RANK}
{if $user->getUserTitle()}
<span class="badge userTitleBadge{if $user->getRank() && $user->getRank()->cssClassName} {@$user->getRank()->cssClassName}{/if}">{$user->getUserTitle()}</span>
<div>
<div class="containerHeadline">
<h3>
- <a href="{link controller='User' object=$like->getUserProfile()}{/link}" class="userLink" data-user-id="{@$like->getUserProfile()->userID}">{$like->getUserProfile()->username}</a>
+ {user object=$like->getUserProfile()}
<small class="separatorLeft">{@$like->time|time}</small>
</h3>
<div>{@$like->getTitle()}</div>
{if $usersOnlineList|count}
<ul class="inlineList commaSeparated">
{foreach from=$usersOnlineList->getObjects() item=userOnline}
- <li><a href="{link controller='User' object=$userOnline->getDecoratedObject()}{/link}" class="userLink" data-user-id="{@$userOnline->userID}">{@$userOnline->getFormattedUsername()}</a></li>
+ <li>{user object=$userOnline}</li>
{/foreach}
</ul>
{/if}
{/if}
<dt>{lang}wcf.media.uploader{/lang}</dt>
- <dd id="mediaUploader">{@$media->getUserProfile()->getAnchorTag()}</dd>
+ <dd id="mediaUploader">{user object=$media->getUserProfile()}</dd>
<dt>{lang}wcf.media.downloads{/lang}</dt>
<dd id="mediaDownloads">{#$media->downloads}</dd>
case 'assignUser':
var $span = $('#moderationAssignedUserContainer > dd > span').empty();
if (data.returnValues.userID) {
- $('<a href="' + data.returnValues.link + '" data-user-id="' + data.returnValues.userID + '" class="userLink">' + WCF.String.escapeHTML(data.returnValues.username) + '</a>').appendTo($span);
+ $('<a href="' + data.returnValues.link + '" data-object-id="' + data.returnValues.userID + '" class="userLink">' + WCF.String.escapeHTML(data.returnValues.username) + '</a>').appendTo($span);
}
else {
$span.append(data.returnValues.username);
* @return string
*/
public function getAnchorTag() {
- return '<a href="'.$this->getLink().'" class="userLink" data-user-id="'.$this->userID.'">'.StringUtil::encodeHTML($this->username).'</a>';
+ return '<a href="'.$this->getLink().'" class="userLink" data-object-id="'.$this->userID.'">'.StringUtil::encodeHTML($this->username).'</a>';
}
/**
return '';
}
- return WCF::getLanguage()->getDynamicVariable('wcf.page.onlineLocation.'.$page->identifier, ['user' => $userObject]);
+ return WCF::getLanguage()->getDynamicVariable('wcf.page.onlineLocation.'.$page->identifier, [
+ 'user' => $userObject,
+ 'userOnline' => $user,
+ ]);
}
/**
<item name="wcf.page.copyright"><![CDATA[<a href="https://www.woltlab.com/de/" rel="nofollow"{if EXTERNAL_LINK_TARGET_BLANK} target="_blank"{/if}>Community-Software: <strong>WoltLab Suite™{if SHOW_VERSION_NUMBER} {@WCF_VERSION}{/if}</strong></a>]]></item>
<item name="wcf.page.onlineLocation.com.woltlab.wcf.Article"><![CDATA[Artikel <a href="{$article->getLink()}">{$article->getTitle()}</a>]]></item>
<item name="wcf.page.onlineLocation.com.woltlab.wcf.CategoryArticleList"><![CDATA[Artikel-Kategorie <a href="{$category->getLink()}">{$category->getTitle()}</a>]]></item>
- <item name="wcf.page.onlineLocation.com.woltlab.wcf.User"><![CDATA[Benutzerprofil von <a href="{link controller='User' object=$user}{/link}" class="userLink" data-user-id="{@$user->userID}">{$user->username}</a>]]></item>
+ <item name="wcf.page.onlineLocation.com.woltlab.wcf.User"><![CDATA[Benutzerprofil von {user object=$userOnline}]]></item>
<item name="wcf.page.availableUpdates"><![CDATA[Es sind <a href="{link controller='PackageUpdate' isACP=true}{/link}">Aktualisierungen für installierte Pakete</a> verfügbar.]]></item>
<item name="wcf.page.error.permissionDenied"><![CDATA[Der Zutritt zu dieser Seite ist {if LANGUAGE_USE_INFORMAL_VARIANT}dir{else}Ihnen{/if} leider verwehrt. {if LANGUAGE_USE_INFORMAL_VARIANT}Du besitzt{else}Sie besitzen{/if} nicht die notwendigen Zugriffsrechte, um diese Seite aufrufen zu können.]]></item>
<item name="wcf.page.error.permissionDenied.title"><![CDATA[Zugriff verweigert]]></item>
<item name="wcf.page.copyright"><![CDATA[<a href="https://www.woltlab.com" rel="nofollow"{if EXTERNAL_LINK_TARGET_BLANK} target="_blank"{/if}>Powered by <strong>WoltLab Suite™{if SHOW_VERSION_NUMBER} {@WCF_VERSION}{/if}</strong></a>]]></item>
<item name="wcf.page.onlineLocation.com.woltlab.wcf.Article"><![CDATA[Article <a href="{$article->getLink()}">{$article->getTitle()}</a>]]></item>
<item name="wcf.page.onlineLocation.com.woltlab.wcf.CategoryArticleList"><![CDATA[Article category <a href="{$category->getLink()}">{$category->getTitle()}</a>]]></item>
- <item name="wcf.page.onlineLocation.com.woltlab.wcf.User"><![CDATA[User profile of <a href="{link controller='User' object=$user}{/link}" class="userLink" data-user-id="{@$user->userID}">{$user->username}</a>]]></item>
+ <item name="wcf.page.onlineLocation.com.woltlab.wcf.User"><![CDATA[User profile of {user object=$userOnline}]]></item>
<item name="wcf.page.availableUpdates"><![CDATA[There are <a href="{link controller='PackageUpdate' isACP=true}{/link}">updates available</a> for installed packages.]]></item>
<item name="wcf.page.error.permissionDenied"><![CDATA[Access denied. You’re not authorized to view this page.]]></item>
<item name="wcf.page.error.permissionDenied.title"><![CDATA[Access Denied]]></item>