Added proper support for font size and color
[GitHub/WoltLab/WCF.git] / com.woltlab.wcf / templates / usersOnlineList.tpl
CommitLineData
0f8114c0
MW
1{capture assign='pageTitle'}{$__wcf->getActivePage()->getTitle()}{if $pageNo > 1} - {lang}wcf.page.pageNo{/lang}{/if}{/capture}
2
fbc2a93e 3{capture assign='headContent'}
320f4a6d 4 <link rel="canonical" href="{link controller='UsersOnlineList'}{/link}" />
fbc2a93e 5
320f4a6d 6 {if USERS_ONLINE_PAGE_REFRESH > 0}
0f8114c0 7 <meta http-equiv="refresh" content="{@USERS_ONLINE_PAGE_REFRESH}; url={link controller='UsersOnlineList'}{if $pageNo > 1}pageNo={@$pageNo}&{/if}sortField={@$sortField}&sortOrder={@$sortOrder}{/link}" />
320f4a6d 8 {/if}
3e93caf9 9{/capture}
320f4a6d 10
95961bdf
MW
11{capture assign='sidebarRight'}
12 <section class="box">
909b697f 13 <form method="post" action="{link controller='UsersOnlineList'}{/link}">
95961bdf 14 <h2 class="boxTitle">{lang}wcf.user.members.sort{/lang}</h2>
320f4a6d 15
95961bdf 16 <div class="boxContent">
320f4a6d 17 <dl>
77f70354 18 <dt></dt>
320f4a6d
MW
19 <dd>
20 <select id="sortField" name="sortField">
21 <option value="username"{if $sortField == 'username'} selected="selected"{/if}>{lang}wcf.user.username{/lang}</option>
22 <option value="lastActivityTime"{if $sortField == 'lastActivityTime'} selected="selected"{/if}>{lang}wcf.user.usersOnline.lastActivity{/lang}</option>
23 <option value="requestURI"{if $sortField == 'requestURI'} selected="selected"{/if}>{lang}wcf.user.usersOnline.location{/lang}</option>
24
25 {if $__wcf->session->getPermission('admin.user.canViewIpAddress')}
26 <option value="ipAddress"{if $sortField == 'ipAddress'} selected="selected"{/if}>{lang}wcf.user.usersOnline.ipAddress{/lang}</option>
27 <option value="userAgent"{if $sortField == 'userAgent'} selected="selected"{/if}>{lang}wcf.user.usersOnline.userAgent{/lang}</option>
28 {/if}
29 </select>
30 <select name="sortOrder">
31 <option value="ASC"{if $sortOrder == 'ASC'} selected="selected"{/if}>{lang}wcf.global.sortOrder.ascending{/lang}</option>
32 <option value="DESC"{if $sortOrder == 'DESC'} selected="selected"{/if}>{lang}wcf.global.sortOrder.descending{/lang}</option>
33 </select>
34 </dd>
35 </dl>
320f4a6d 36
95961bdf
MW
37 <div class="formSubmit">
38 <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
39 {@SID_INPUT_TAG}
40 </div>
320f4a6d
MW
41 </div>
42 </form>
95961bdf 43 </section>
320f4a6d 44
95961bdf
MW
45 <section class="box">
46 <h2 class="boxTitle">{lang}wcf.user.usersOnline{/lang}</h2>
11e9145a 47
95961bdf
MW
48 <div class="boxContent">
49 <p>{lang usersOnlineList=$objects}wcf.user.usersOnline.detail{/lang}</p>
50 {if USERS_ONLINE_RECORD}<p>{lang}wcf.user.usersOnline.record{/lang}</p>{/if}
51 </div>
11e9145a
MW
52
53 {if USERS_ONLINE_ENABLE_LEGEND && $objects->getUsersOnlineMarkings()|count}
95961bdf
MW
54 <div class="boxContent">
55 <dl class="plain inlineDataList usersOnlineLegend">
56 <dt>{lang}wcf.user.usersOnline.marking.legend{/lang}</dt>
57 <dd>
58 <ul class="inlineList commaSeparated">
59 {foreach from=$objects->getUsersOnlineMarkings() item=usersOnlineMarking}
60 <li>{@$usersOnlineMarking}</li>
61 {/foreach}
62 </ul>
63 </dd>
64
65 </dl>
11e9145a
MW
66 </div>
67 {/if}
95961bdf 68 </section>
320f4a6d
MW
69{/capture}
70
95961bdf 71{include file='header'}
320f4a6d 72
0f8114c0
MW
73{hascontent}
74 <div class="paginationTop">
75 {content}
76 {pages print=true assign=pagesLinks controller='UsersOnlineList' link="pageNo=%d&sortField=$sortField&sortOrder=$sortOrder"}
77 {/content}
78 </div>
79{/hascontent}
80
320f4a6d
MW
81{assign var=usersOnlineList value=''}
82{assign var=usersOnline value=0}
83{assign var=robotsOnlineList value=''}
84{assign var=robotsOnline value=0}
85{assign var=guestsOnlineList value=''}
86{assign var=guestsOnline value=0}
87{foreach from=$objects item=user}
88 {capture assign=locationData}
89 <p>
929f7e47 90 {if $user->getLocation()}{@$user->getLocation()}{else}{lang}wcf.user.usersOnline.location.unknown{/lang}{/if} <small class="separatorLeft">{@$user->lastActivityTime|time}</small>
320f4a6d
MW
91 </p>
92 {/capture}
93
94 {capture assign=sessionData}
95 {if $__wcf->session->getPermission('admin.user.canViewIpAddress')}
929f7e47 96 <dl class="plain inlineDataList small">
320f4a6d
MW
97 <dt>{lang}wcf.user.usersOnline.ipAddress{/lang}</dt>
98 <dd title="{$user->getFormattedIPAddress()}">{$user->getFormattedIPAddress()|truncate:30}</dd>
8bf41072
MW
99
100 {if !$user->spiderID}
101 <dt>{lang}wcf.user.usersOnline.userAgent{/lang}</dt>
102 <dd title="{$user->userAgent}">{$user->getBrowser()|truncate:30}</dd>
103 {/if}
320f4a6d
MW
104 </dl>
105 {/if}
106 {/capture}
107
108 {if $user->userID}
109 {* member *}
110 {capture append=usersOnlineList}
111 <li>
112 <div class="box48">
95961bdf 113 <a href="{link controller='User' object=$user}{/link}" title="{$user->username}">{@$user->getAvatar()->getImageTag(48)}</a>
320f4a6d
MW
114
115 <div class="details userInformation">
929f7e47
MW
116 <div class="containerHeadline">
117 <h3><a href="{link controller='User' object=$user}{/link}" class="username">{@$user->getFormattedUsername()}</a>
118 {if MODULE_USER_RANK}
119 {if $user->getUserTitle()}
120 <span class="badge userTitleBadge{if $user->getRank() && $user->getRank()->cssClassName} {@$user->getRank()->cssClassName}{/if}">{$user->getUserTitle()}</span>
121 {/if}
122 {if $user->getRank() && $user->getRank()->rankImage}
123 <span class="userRankImage">{@$user->getRank()->getImage()}</span>
124 {/if}
125 {/if}
126 </h3>
127 {@$locationData}
128 </div>
320f4a6d
MW
129
130 {@$sessionData}
131
132 {include file='userInformationButtons'}
133 </div>
134 </div>
135 </li>
136 {/capture}
137
138 {assign var=usersOnline value=$usersOnline+1}
139 {elseif $user->spiderID}
140 {* search robot *}
141 {capture append=robotsOnlineList}
142 <li>
143 <div class="box48">
95961bdf 144 <div><img src="{$__wcf->getPath()}images/avatars/avatar-spider-default.svg" alt="" class="userAvatarImage icon48" /></div>
320f4a6d
MW
145
146 <div class="details userInformation">
147 <div class="containerHeadline">
96756d4d 148 <h3>{if $user->getSpider()->spiderURL}<a href="{$user->getSpider()->spiderURL}" class="externalURL"{if EXTERNAL_LINK_TARGET_BLANK} target="_blank"{/if}{if EXTERNAL_LINK_REL_NOFOLLOW} rel="nofollow"{/if}>{$user->getSpider()->spiderName}</a>{else}{$user->getSpider()->spiderName}{/if}</h3>
0f0590c2 149 {@$locationData}
320f4a6d
MW
150 </div>
151
152 {@$sessionData}
153 </div>
154 </div>
155 </li>
156 {/capture}
157
158 {assign var=robotsOnline value=$robotsOnline+1}
159 {else}
160 {* unregistered *}
161 {capture append=guestsOnlineList}
162 <li>
163 <div class="box48">
95961bdf 164 <div><img src="{$__wcf->getPath()}images/avatars/avatar-default.svg" alt="" class="userAvatarImage icon48" /></div>
320f4a6d
MW
165
166 <div class="details userInformation">
167 <div class="containerHeadline">
168 <h3>{lang}wcf.user.guest{/lang}</h3>
0f0590c2 169 {@$locationData}
320f4a6d
MW
170 </div>
171
172 {@$sessionData}
173 </div>
174 </div>
175 </li>
176 {/capture}
177
178 {assign var=guestsOnline value=$guestsOnline+1}
179 {/if}
180{/foreach}
181
320f4a6d 182{if $usersOnline}
95961bdf
MW
183 <section class="section sectionContainerList">
184 <h2 class="sectionTitle">{lang}wcf.user.usersOnline.users{/lang} <span class="badge">{#$usersOnline}</span></h2>
185
a84a45a4 186 <ol class="containerList userList">
320f4a6d
MW
187 {@$usersOnlineList}
188 </ol>
95961bdf 189 </section>
320f4a6d
MW
190{/if}
191
192{if $guestsOnline && USERS_ONLINE_SHOW_GUESTS}
95961bdf
MW
193 <section class="section sectionContainerList">
194 <h2 class="sectionTitle">{lang}wcf.user.usersOnline.guests{/lang} <span class="badge">{#$guestsOnline}</span></h2>
195
0f8114c0 196 <ol class="containerList userList">
320f4a6d
MW
197 {@$guestsOnlineList}
198 </ol>
95961bdf 199 </section>
320f4a6d
MW
200{/if}
201
202{if $robotsOnline && USERS_ONLINE_SHOW_ROBOTS}
95961bdf
MW
203 <section class="section sectionContainerList">
204 <h2 class="sectionTitle">{lang}wcf.user.usersOnline.robots{/lang} <span class="badge">{#$robotsOnline}</span></h2>
205
0f8114c0 206 <ol class="containerList userList">
320f4a6d
MW
207 {@$robotsOnlineList}
208 </ol>
95961bdf 209 </section>
320f4a6d
MW
210{/if}
211
e7b063d6 212<footer class="contentFooter">
0f8114c0
MW
213 {hascontent}
214 <div class="paginationBottom">
215 {content}{@$pagesLinks}{/content}
216 </div>
217 {/hascontent}
218
320f4a6d 219 {hascontent}
e7b063d6 220 <nav class="contentFooterNavigation">
320f4a6d 221 <ul>
e7b063d6 222 {content}{event name='contentFooterNavigation'}{/content}
320f4a6d
MW
223 </ul>
224 </nav>
225 {/hascontent}
e7b063d6 226</footer>
320f4a6d 227
3e93caf9
MW
228<script data-relocate="true">
229 //<![CDATA[
230 $(function() {
231 WCF.Language.addObject({
232 'wcf.user.button.follow': '{lang}wcf.user.button.follow{/lang}',
233 'wcf.user.button.ignore': '{lang}wcf.user.button.ignore{/lang}',
234 'wcf.user.button.unfollow': '{lang}wcf.user.button.unfollow{/lang}',
235 'wcf.user.button.unignore': '{lang}wcf.user.button.unignore{/lang}'
236 });
237
238 new WCF.User.Action.Follow($('.userList > li'));
239 new WCF.User.Action.Ignore($('.userList > li'));
240 });
241 //]]>
242</script>
320f4a6d 243
3e93caf9 244{include file='footer'}