Commit | Line | Data |
---|---|---|
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 | ||
887a3153 | 31 | <body id="tpl{$templateName|ucfirst}" data-template="{$templateName}" data-application="{$templateNameApplication}"> |
320f4a6d | 32 | |
95961bdf MW |
33 | {capture assign='sidebarRight'} |
34 | <section class="box"> | |
909b697f | 35 | <form method="post" action="{link controller='UsersOnlineList'}{/link}"> |
95961bdf | 36 | <h2 class="boxTitle">{lang}wcf.user.members.sort{/lang}</h2> |
320f4a6d | 37 | |
95961bdf | 38 | <div class="boxContent"> |
320f4a6d | 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> | |
320f4a6d | 58 | |
95961bdf MW |
59 | <div class="formSubmit"> |
60 | <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" /> | |
61 | {@SID_INPUT_TAG} | |
62 | </div> | |
320f4a6d MW |
63 | </div> |
64 | </form> | |
95961bdf | 65 | </section> |
320f4a6d | 66 | |
95961bdf MW |
67 | <section class="box"> |
68 | <h2 class="boxTitle">{lang}wcf.user.usersOnline{/lang}</h2> | |
11e9145a | 69 | |
95961bdf MW |
70 | <div class="boxContent"> |
71 | <p>{lang usersOnlineList=$objects}wcf.user.usersOnline.detail{/lang}</p> | |
72 | {if USERS_ONLINE_RECORD}<p>{lang}wcf.user.usersOnline.record{/lang}</p>{/if} | |
73 | </div> | |
11e9145a MW |
74 | |
75 | {if USERS_ONLINE_ENABLE_LEGEND && $objects->getUsersOnlineMarkings()|count} | |
95961bdf MW |
76 | <div class="boxContent"> |
77 | <dl class="plain inlineDataList usersOnlineLegend"> | |
78 | <dt>{lang}wcf.user.usersOnline.marking.legend{/lang}</dt> | |
79 | <dd> | |
80 | <ul class="inlineList commaSeparated"> | |
81 | {foreach from=$objects->getUsersOnlineMarkings() item=usersOnlineMarking} | |
82 | <li>{@$usersOnlineMarking}</li> | |
83 | {/foreach} | |
84 | </ul> | |
85 | </dd> | |
86 | ||
87 | </dl> | |
11e9145a MW |
88 | </div> |
89 | {/if} | |
95961bdf | 90 | </section> |
11e9145a | 91 | |
320f4a6d MW |
92 | {@$__boxSidebar} |
93 | {/capture} | |
94 | ||
95961bdf | 95 | {include file='header'} |
320f4a6d MW |
96 | |
97 | {include file='userNotice'} | |
98 | ||
95961bdf MW |
99 | <header class="contentHeader"> |
100 | <h1 class="contentTitle">{lang}wcf.user.usersOnline{/lang}</h1> | |
101 | </header> | |
102 | ||
320f4a6d MW |
103 | {assign var=usersOnlineList value=''} |
104 | {assign var=usersOnline value=0} | |
105 | {assign var=robotsOnlineList value=''} | |
106 | {assign var=robotsOnline value=0} | |
107 | {assign var=guestsOnlineList value=''} | |
108 | {assign var=guestsOnline value=0} | |
109 | {foreach from=$objects item=user} | |
110 | {capture assign=locationData} | |
111 | <p> | |
929f7e47 | 112 | {if $user->getLocation()}{@$user->getLocation()}{else}{lang}wcf.user.usersOnline.location.unknown{/lang}{/if} <small class="separatorLeft">{@$user->lastActivityTime|time}</small> |
320f4a6d MW |
113 | </p> |
114 | {/capture} | |
115 | ||
116 | {capture assign=sessionData} | |
117 | {if $__wcf->session->getPermission('admin.user.canViewIpAddress')} | |
929f7e47 | 118 | <dl class="plain inlineDataList small"> |
320f4a6d MW |
119 | <dt>{lang}wcf.user.usersOnline.ipAddress{/lang}</dt> |
120 | <dd title="{$user->getFormattedIPAddress()}">{$user->getFormattedIPAddress()|truncate:30}</dd> | |
8bf41072 MW |
121 | |
122 | {if !$user->spiderID} | |
123 | <dt>{lang}wcf.user.usersOnline.userAgent{/lang}</dt> | |
124 | <dd title="{$user->userAgent}">{$user->getBrowser()|truncate:30}</dd> | |
125 | {/if} | |
320f4a6d MW |
126 | </dl> |
127 | {/if} | |
128 | {/capture} | |
129 | ||
130 | {if $user->userID} | |
131 | {* member *} | |
132 | {capture append=usersOnlineList} | |
133 | <li> | |
134 | <div class="box48"> | |
95961bdf | 135 | <a href="{link controller='User' object=$user}{/link}" title="{$user->username}">{@$user->getAvatar()->getImageTag(48)}</a> |
320f4a6d MW |
136 | |
137 | <div class="details userInformation"> | |
929f7e47 MW |
138 | <div class="containerHeadline"> |
139 | <h3><a href="{link controller='User' object=$user}{/link}" class="username">{@$user->getFormattedUsername()}</a> | |
140 | {if MODULE_USER_RANK} | |
141 | {if $user->getUserTitle()} | |
142 | <span class="badge userTitleBadge{if $user->getRank() && $user->getRank()->cssClassName} {@$user->getRank()->cssClassName}{/if}">{$user->getUserTitle()}</span> | |
143 | {/if} | |
144 | {if $user->getRank() && $user->getRank()->rankImage} | |
145 | <span class="userRankImage">{@$user->getRank()->getImage()}</span> | |
146 | {/if} | |
147 | {/if} | |
148 | </h3> | |
149 | {@$locationData} | |
150 | </div> | |
320f4a6d MW |
151 | |
152 | {@$sessionData} | |
153 | ||
154 | {include file='userInformationButtons'} | |
155 | </div> | |
156 | </div> | |
157 | </li> | |
158 | {/capture} | |
159 | ||
160 | {assign var=usersOnline value=$usersOnline+1} | |
161 | {elseif $user->spiderID} | |
162 | {* search robot *} | |
163 | {capture append=robotsOnlineList} | |
164 | <li> | |
165 | <div class="box48"> | |
95961bdf | 166 | <div><img src="{$__wcf->getPath()}images/avatars/avatar-spider-default.svg" alt="" class="userAvatarImage icon48" /></div> |
320f4a6d MW |
167 | |
168 | <div class="details userInformation"> | |
169 | <div class="containerHeadline"> | |
96756d4d | 170 | <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 | 171 | {@$locationData} |
320f4a6d MW |
172 | </div> |
173 | ||
174 | {@$sessionData} | |
175 | </div> | |
176 | </div> | |
177 | </li> | |
178 | {/capture} | |
179 | ||
180 | {assign var=robotsOnline value=$robotsOnline+1} | |
181 | {else} | |
182 | {* unregistered *} | |
183 | {capture append=guestsOnlineList} | |
184 | <li> | |
185 | <div class="box48"> | |
95961bdf | 186 | <div><img src="{$__wcf->getPath()}images/avatars/avatar-default.svg" alt="" class="userAvatarImage icon48" /></div> |
320f4a6d MW |
187 | |
188 | <div class="details userInformation"> | |
189 | <div class="containerHeadline"> | |
190 | <h3>{lang}wcf.user.guest{/lang}</h3> | |
0f0590c2 | 191 | {@$locationData} |
320f4a6d MW |
192 | </div> |
193 | ||
194 | {@$sessionData} | |
195 | </div> | |
196 | </div> | |
197 | </li> | |
198 | {/capture} | |
199 | ||
200 | {assign var=guestsOnline value=$guestsOnline+1} | |
201 | {/if} | |
202 | {/foreach} | |
203 | ||
204 | <div class="contentNavigation"> | |
205 | {hascontent} | |
206 | <nav> | |
207 | <ul> | |
208 | {content} | |
209 | {event name='contentNavigationButtonsTop'} | |
210 | {/content} | |
211 | </ul> | |
212 | </nav> | |
213 | {/hascontent} | |
214 | </div> | |
215 | ||
216 | {if $usersOnline} | |
95961bdf MW |
217 | <section class="section sectionContainerList"> |
218 | <h2 class="sectionTitle">{lang}wcf.user.usersOnline.users{/lang} <span class="badge">{#$usersOnline}</span></h2> | |
219 | ||
a84a45a4 | 220 | <ol class="containerList userList"> |
320f4a6d MW |
221 | {@$usersOnlineList} |
222 | </ol> | |
95961bdf | 223 | </section> |
320f4a6d MW |
224 | {/if} |
225 | ||
226 | {if $guestsOnline && USERS_ONLINE_SHOW_GUESTS} | |
95961bdf MW |
227 | <section class="section sectionContainerList"> |
228 | <h2 class="sectionTitle">{lang}wcf.user.usersOnline.guests{/lang} <span class="badge">{#$guestsOnline}</span></h2> | |
229 | ||
a84a45a4 | 230 | <ol class="containerList"> |
320f4a6d MW |
231 | {@$guestsOnlineList} |
232 | </ol> | |
95961bdf | 233 | </section> |
320f4a6d MW |
234 | {/if} |
235 | ||
236 | {if $robotsOnline && USERS_ONLINE_SHOW_ROBOTS} | |
95961bdf MW |
237 | <section class="section sectionContainerList"> |
238 | <h2 class="sectionTitle">{lang}wcf.user.usersOnline.robots{/lang} <span class="badge">{#$robotsOnline}</span></h2> | |
239 | ||
a84a45a4 | 240 | <ol class="containerList"> |
320f4a6d MW |
241 | {@$robotsOnlineList} |
242 | </ol> | |
95961bdf | 243 | </section> |
320f4a6d MW |
244 | {/if} |
245 | ||
246 | <div class="contentNavigation"> | |
247 | {hascontent} | |
248 | <nav> | |
249 | <ul> | |
250 | {content} | |
251 | {event name='contentNavigationButtonsBottom'} | |
252 | {/content} | |
253 | </ul> | |
254 | </nav> | |
255 | {/hascontent} | |
256 | </div> | |
257 | ||
258 | {include file='footer'} | |
259 | ||
260 | </body> | |
261 | </html> |