Commit | Line | Data |
---|---|---|
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'} |