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