BioTorrents.de’s version of Gazelle
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

edit.php 48KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988
  1. <?php
  2. require_once SERVER_ROOT.'/classes/twofa.class.php';
  3. $UserID = $_REQUEST['userid'];
  4. if (!is_number($UserID)) {
  5. error(404);
  6. }
  7. $DB->query("
  8. SELECT
  9. m.Username,
  10. m.TwoFactor,
  11. m.PublicKey,
  12. m.Email,
  13. m.IRCKey,
  14. m.Paranoia,
  15. i.Info,
  16. i.Avatar,
  17. i.StyleID,
  18. i.StyleURL,
  19. i.SiteOptions,
  20. i.UnseededAlerts,
  21. p.Level AS Class,
  22. i.InfoTitle
  23. FROM users_main AS m
  24. JOIN users_info AS i ON i.UserID = m.ID
  25. LEFT JOIN permissions AS p ON p.ID = m.PermissionID
  26. WHERE m.ID = ?", $UserID);
  27. list($Username, $TwoFactor, $PublicKey, $Email, $IRCKey, $Paranoia, $Info, $Avatar, $StyleID, $StyleURL, $SiteOptions, $UnseededAlerts, $Class, $InfoTitle) = $DB->next_record(MYSQLI_NUM, [5, 10]);
  28. $TwoFA = new TwoFactorAuth();
  29. $Email = apcu_exists('DBKEY') ? Crypto::decrypt($Email) : '[Encrypted]';
  30. if ($UserID !== $LoggedUser['ID'] && !check_perms('users_edit_profiles', $Class)) {
  31. error(403);
  32. }
  33. $Paranoia = json_decode($Paranoia, true);
  34. if (!is_array($Paranoia)) {
  35. $Paranoia = [];
  36. }
  37. function paranoia_level($Setting)
  38. {
  39. global $Paranoia;
  40. // 0: very paranoid; 1: stats allowed, list disallowed; 2: not paranoid
  41. return (in_array($Setting . '+', $Paranoia)) ? 0 : (in_array($Setting, $Paranoia) ? 1 : 2);
  42. }
  43. function display_paranoia($FieldName)
  44. {
  45. $Level = paranoia_level($FieldName);
  46. print "\t\t\t\t\t<label><input type=\"checkbox\" name=\"p_{$FieldName}_c\"".checked($Level >= 1).' onchange="AlterParanoia()" /> Show count</label>'."&nbsp;&nbsp;\n";
  47. print "\t\t\t\t\t<label><input type=\"checkbox\" name=\"p_{$FieldName}_l\"".checked($Level >= 2).' onchange="AlterParanoia()" /> Show list</label>'."\n";
  48. }
  49. function checked($Checked)
  50. {
  51. return ($Checked ? ' checked="checked"' : '');
  52. }
  53. if ($SiteOptions) {
  54. $SiteOptions = json_decode($SiteOptions, true) ?? [];
  55. } else {
  56. $SiteOptions = [];
  57. }
  58. View::show_header("$Username › Settings", 'user,password_validate,validate,cssgallery,preview_paranoia,bbcode,user_settings,donor_titles');
  59. $DonorRank = Donations::get_rank($UserID);
  60. $DonorIsVisible = Donations::is_visible($UserID);
  61. if ($DonorIsVisible === null) {
  62. $DonorIsVisible = true;
  63. }
  64. extract(Donations::get_enabled_rewards($UserID));
  65. $Rewards = Donations::get_rewards($UserID);
  66. $ProfileRewards = Donations::get_profile_rewards($UserID);
  67. $DonorTitles = Donations::get_titles($UserID);
  68. echo $Val->GenerateJS('userform');
  69. ?>
  70. <div class="thin">
  71. <div class="header">
  72. <h2>
  73. <?=Users::format_username($UserID, false, false, false)?>
  74. › Settings
  75. </h2>
  76. </div>
  77. <form class="edit_form" name="user" id="userform" method="post" autocomplete="off">
  78. <div class="sidebar settings_sidebar">
  79. <div class="box box2" id="settings_sections">
  80. <div class="head">
  81. <strong>Sections</strong>
  82. </div>
  83. <ul class="nobullet">
  84. <li data-gazelle-section-id="all_settings">
  85. <h2><a href="#" class="tooltip" title="View the full list of user settings.">All Settings</a></h2>
  86. </li>
  87. <li data-gazelle-section-id="site_appearance_settings">
  88. <h2><a href="#" class="tooltip" title="These settings change the visual style of the entire site.">Site
  89. Appearance Settings</a></h2>
  90. </li>
  91. <li data-gazelle-section-id="torrent_settings">
  92. <h2><a href="#" class="tooltip"
  93. title="These settings change how torrents are searched for, grouped, displayed, and downloaded.">Torrent
  94. Settings</a></h2>
  95. </li>
  96. <li data-gazelle-section-id="community_settings">
  97. <h2><a href="#" class="tooltip"
  98. title="These settings change how interactions with other users are formatted, grouped, and displayed.">Community
  99. Settings</a></h2>
  100. </li>
  101. <li data-gazelle-section-id="notification_settings">
  102. <h2><a href="#" class="tooltip"
  103. title="These settings change the format and types of notifications you receive.">Notification
  104. Settings</a></h2>
  105. </li>
  106. <li data-gazelle-section-id="personal_settings">
  107. <h2><a href="#" class="tooltip"
  108. title="These settings alter the appearance of your profile and posts.">Personal Settings</a></h2>
  109. </li>
  110. <li data-gazelle-section-id="paranoia_settings">
  111. <h2><a href="#" class="tooltip"
  112. title="These settings allow you to display or hide different categories of information from your profile.">Paranoia
  113. Settings</a></h2>
  114. </li>
  115. <li data-gazelle-section-id="access_settings">
  116. <h2><a href="#" class="tooltip"
  117. title="These settings control your login and access details for <?=SITE_NAME?>, the site's IRC network, and the tracker.">Access
  118. Settings</a></h2>
  119. </li>
  120. <li data-gazelle-section-id="live_search">
  121. <input type="text" id="settings_search" placeholder="Live Search" />
  122. </li>
  123. <li>
  124. <input type="submit" id="submit" value="Save profile" />
  125. </li>
  126. </ul>
  127. </div>
  128. </div>
  129. <div class="main_column">
  130. <div>
  131. <input type="hidden" name="action" value="take_edit" />
  132. <input type="hidden" name="userid" value="<?=$UserID?>" />
  133. <input type="hidden" name="auth"
  134. value="<?=$LoggedUser['AuthKey']?>" />
  135. </div>
  136. <table cellpadding="6" cellspacing="1" border="0" width="100%" class="layout border user_options"
  137. id="site_appearance_settings">
  138. <tr class="colhead_dark">
  139. <td colspan="2">
  140. <strong>Site Appearance Settings</strong>
  141. </td>
  142. </tr>
  143. <tr id="site_style_tr">
  144. <td class="label tooltip"
  145. title="Selecting a stylesheet will change <?=SITE_NAME?>'s visual appearance.">
  146. <strong>Stylesheet</strong></td>
  147. <td>
  148. <select name="stylesheet" id="stylesheet">
  149. <?php foreach ($Stylesheets as $Style) { ?>
  150. <option value="<?=($Style['ID'])?>"
  151. <?=$Style['ID'] == $StyleID ? ' selected="selected"' : ''?>><?=($Style['ProperName'])?>
  152. </option>
  153. <?php } ?>
  154. </select>&nbsp;&nbsp;
  155. <a data-toggle-target="#css_gallery" class="brackets">Show gallery</a>
  156. <div id="css_gallery" class="hidden">
  157. <?php foreach ($Stylesheets as $Style) { ?>
  158. <div class="preview_wrapper">
  159. <div class="preview_image"
  160. name="<?=($Style['Name'])?>">
  161. <img
  162. src="<?=STATIC_SERVER.'stylespreview/thumb_'.$Style['Name'].'.png'?>"
  163. alt="<?=$Style['Name']?>" />
  164. <p class="preview_name">
  165. <label><input type="radio" name="stylesheet_gallery"
  166. value="<?=($Style['ID'])?>" />
  167. <?=($Style['ProperName'])?></label>
  168. </p>
  169. </div>
  170. </div>
  171. <?php } ?>
  172. </div>
  173. </td>
  174. </tr>
  175. <tr id="style_additions_tr"
  176. class="<?=($Stylesheets[$LoggedUser['StyleID']]['Additions'][0] ?? false)?'':'hidden'?>">
  177. <td class="label tooltip" title="Select changes that you want made to your chosen stylesheet">
  178. <strong>Stylesheet additions</strong></td>
  179. <td> <?php
  180. foreach ($Stylesheets as $Style) {
  181. $StyleAdditions = explode('|', $Style['Additions']); ?>
  182. <ul
  183. class="nobullet style_addition<?=$Style['ID']==$Stylesheets[$LoggedUser['StyleID']]['ID']?'':' hidden'?>"
  184. id="style_addition_<?=$Style['Name']?>">
  185. <?php
  186. foreach ($StyleAdditions as $i => $Addition) {
  187. if ($Addition) { ?>
  188. <li>
  189. <input type="checkbox" name="style_additions[]"
  190. value="<?=$Addition?>"
  191. id="addition_<?=$Addition?>" <?=(in_array($Addition, $SiteOptions['StyleAdditions']??[])?' checked="checked"':'')?>>
  192. <label for="addition_<?=$Addition?>"><?=explode('|', $Style['ProperAdditions'])[$i]?></label>
  193. </li>
  194. <?php }
  195. } ?>
  196. </ul> <?php
  197. }
  198. ?>
  199. </td>
  200. </tr>
  201. <tr id="site_extstyle_tr">
  202. <td class="label tooltip"
  203. title="Providing a link to an externally-hosted stylesheet will override your default stylesheet selection.">
  204. <strong>External stylesheet URL</strong></td>
  205. <td>
  206. <input type="text" size="40" name="styleurl" id="styleurl"
  207. value="<?=display_str($StyleURL)?>" />
  208. </td>
  209. </tr>
  210. <?php if (check_perms('users_mod')) { ?>
  211. <tr id="site_autostats_tr">
  212. <td class="label tooltip"
  213. title="This is a staff-only feature to bypass the &quot;Show stats&quot; button for seeding, leeching, snatched, and downloaded stats on profile pages.">
  214. <strong>Profile stats</strong></td>
  215. <td>
  216. <label>
  217. <input type="checkbox" name="autoload_comm_stats" <?Format::selected('AutoloadCommStats', 1, 'checked', $SiteOptions);?>
  218. />
  219. Automatically fetch the snatch and peer stats on profile pages.
  220. </label>
  221. </td>
  222. </tr>
  223. <?php } ?>
  224. </table>
  225. <table cellpadding="6" cellspacing="1" border="0" width="100%" class="layout border user_options"
  226. id="torrent_settings">
  227. <tr class="colhead_dark">
  228. <td colspan="2">
  229. <strong>Torrent Settings</strong>
  230. </td>
  231. </tr>
  232. <?php if (check_perms('site_advanced_search')) { ?>
  233. <tr id="tor_searchtype_tr">
  234. <td class="label tooltip"
  235. title="This option allows you to choose whether the default torrent search menu will be basic (fewer options) or advanced (more options).">
  236. <strong>Default search type</strong></td>
  237. <td>
  238. <ul class="options_list nobullet">
  239. <li>
  240. <input type="radio" name="searchtype" id="search_type_simple" value="0" <?=$SiteOptions['SearchType'] == 0 ? ' checked="checked"' : ''?>
  241. />
  242. <label for="search_type_simple">Simple</label>
  243. </li>
  244. <li>
  245. <input type="radio" name="searchtype" id="search_type_advanced" value="1" <?=$SiteOptions['SearchType'] == 1 ? ' checked="checked"' : ''?>
  246. />
  247. <label for="search_type_advanced">Advanced</label>
  248. </li>
  249. </ul>
  250. </td>
  251. </tr>
  252. <?php } ?>
  253. <tr id="tor_group_tr">
  254. <td class="label tooltip"
  255. title="Enabling torrent grouping will place multiple formats of the same torrent group together beneath a common header.">
  256. <strong>Torrent grouping</strong></td>
  257. <td>
  258. <div class="option_group">
  259. <input type="checkbox" name="disablegrouping" id="disablegrouping" <?=$SiteOptions['DisableGrouping2'] == 0 ? ' checked="checked"' : ''?>
  260. />
  261. <label for="disablegrouping">Enable torrent grouping</label>
  262. </div>
  263. </td>
  264. </tr>
  265. <tr id="tor_gdisp_search_tr">
  266. <td class="label tooltip"
  267. title="In torrent search results and on artist pages, &quot;open&quot; will expand torrent groups by default, and &quot;closed&quot; will collapse torrent groups by default.">
  268. <strong>Torrent group display</strong></td>
  269. <td>
  270. <div class="option_group">
  271. <ul class="options_list nobullet">
  272. <li>
  273. <input type="radio" name="torrentgrouping" id="torrent_grouping_open" value="0" <?=$SiteOptions['TorrentGrouping'] == 0 ? ' checked="checked"' : ''?>
  274. />
  275. <label for="torrent_grouping_open">Open</label>
  276. </li>
  277. <li>
  278. <input type="radio" name="torrentgrouping" id="torrent_grouping_closed" value="1" <?=$SiteOptions['TorrentGrouping'] == 1 ? ' checked="checked"' : ''?>
  279. />
  280. <label for="torrent_grouping_closed">Closed</label>
  281. </li>
  282. </ul>
  283. </div>
  284. </td>
  285. </tr>
  286. <tr id="tor_snatched_tr">
  287. <td class="label tooltip"
  288. title="Enabling the snatched torrents indicator will display &quot;Snatched!&quot; next to torrents you've snatched.">
  289. <strong>Snatched torrents indicator</strong></td>
  290. <td>
  291. <input type="checkbox" name="showsnatched" id="showsnatched" <?=!empty($SiteOptions['ShowSnatched']) ? ' checked="checked"' : ''?>
  292. />
  293. <label for="showsnatched">Enable snatched torrents indicator</label>
  294. </td>
  295. </tr>
  296. <tr id="tor_magnet_tr">
  297. <td class="label tooltip" title="Magnet links should only be used on clients with DHT disabled globally">
  298. <strong>Magnet links</strong></td>
  299. <td>
  300. <input type="checkbox" name="showmagnets" id="showmagnets" <?=!empty($SiteOptions['ShowMagnets']) ? ' checked="checked"' : '' ?>
  301. />
  302. <label for="showmagnets">Show magnet links</label>
  303. </td>
  304. </tr>
  305. <?php /* ?>
  306. <tr>
  307. <td class="label"><strong>Collage album art view</strong></td>
  308. <td>
  309. <select name="hidecollage" id="hidecollage">
  310. <option value="0"<?=$SiteOptions['HideCollage'] == 0 ? ' selected="selected"' : ''?>>Show album art</option>
  311. <option value="1"<?=$SiteOptions['HideCollage'] == 1 ? ' selected="selected"' : ''?>>Hide album art</option>
  312. </select>
  313. </td>
  314. </tr>
  315. <? */ ?>
  316. <tr id="tor_cover_tor_tr">
  317. <td class="label tooltip"
  318. title="Enabling cover artwork for torrents will show cover artwork next to torrent information. Enabling additional cover artwork will display all additional cover artwork as well.">
  319. <strong>Cover art (torrents)</strong></td>
  320. <td>
  321. <ul class="options_list nobullet">
  322. <li>
  323. <input type="hidden" name="coverart" value="" />
  324. <input type="checkbox" name="coverart" id="coverart" <?=!isset($SiteOptions['CoverArt']) || $SiteOptions['CoverArt'] ? ' checked="checked"' : ''?>
  325. />
  326. <label for="coverart">Enable cover artwork</label>
  327. </li>
  328. <li>
  329. <input type="checkbox" name="show_extra_covers" id="show_extra_covers" <?=$SiteOptions['ShowExtraCovers'] ? ' checked="checked"' : ''?>
  330. />
  331. <label for="show_extra_covers">Enable additional cover artwork</label>
  332. </li>
  333. </ul>
  334. </td>
  335. </tr>
  336. <tr id="tor_cover_coll_tr">
  337. <td class="label tooltip"
  338. title="This option allows you to change the number of album covers to display within a single collection page.">
  339. <strong>Cover art (collections)</strong></td>
  340. <td>
  341. <select name="collagecovers" id="collagecovers">
  342. <option value="10" <?=$SiteOptions['CollageCovers'] == 10 ? ' selected="selected"' : ''?>>10
  343. </option>
  344. <option value="25" <?=($SiteOptions['CollageCovers'] == 25 || !isset($SiteOptions['CollageCovers'])) ? ' selected="selected"' : ''?>>25
  345. (default)</option>
  346. <option value="50" <?=$SiteOptions['CollageCovers'] == 50 ? ' selected="selected"' : ''?>>50
  347. </option>
  348. <option value="100" <?=$SiteOptions['CollageCovers'] == 100 ? ' selected="selected"' : ''?>>100
  349. </option>
  350. <option value="1000000" <?=$SiteOptions['CollageCovers'] == 1000000 ? ' selected="selected"' : ''?>>All
  351. </option>
  352. <option value="0" <?=($SiteOptions['CollageCovers'] === 0 || (!isset($SiteOptions['CollageCovers']) && $SiteOptions['HideCollage'])) ? ' selected="selected"' : ''?>>None
  353. </option>
  354. </select>
  355. covers per page
  356. </td>
  357. </tr>
  358. <tr id="tor_showfilt_tr">
  359. <td class="label tooltip"
  360. title="Displaying filter controls will show torrent filtering options in the torrent search menu by default. Displaying filters for official tags will list clickable filters for official tags in the torrent search menu by default.">
  361. <strong>Torrent search filters</strong></td>
  362. <td>
  363. <ul class="options_list nobullet">
  364. <li>
  365. <input type="checkbox" name="showtfilter" id="showtfilter" <?=(!isset($SiteOptions['ShowTorFilter']) || $SiteOptions['ShowTorFilter'] ? ' checked="checked"' : '')?>
  366. />
  367. <label for="showtfilter">Display filter controls</label>
  368. </li>
  369. <li>
  370. <input type="checkbox" name="showtags" id="showtags" <?php Format::selected('ShowTags', 1, 'checked', $SiteOptions); ?>
  371. />
  372. <label for="showtags">Display official tag filters</label>
  373. </li>
  374. </ul>
  375. </td>
  376. </tr>
  377. <tr id="tor_autocomp_tr">
  378. <td class="label tooltip"
  379. title="Autocomplete will try to predict the word or phrase that you're typing. Selecting &quot;Everywhere&quot; will enable autocomplete on artist and tag fields across the site. Selecting &quot;Searches only&quot; will enable autocomplete in searches.">
  380. <strong>Autocompletion</strong></td>
  381. <td>
  382. <select name="autocomplete">
  383. <option value="0" <?=empty($SiteOptions['AutoComplete']) ? ' selected="selected"' : ''?>>Everywhere
  384. </option>
  385. <option value="2" <?=$SiteOptions['AutoComplete'] === 2 ? ' selected="selected"' : ''?>>Searches
  386. only</option>
  387. <option value="1" <?=$SiteOptions['AutoComplete'] === 1 ? ' selected="selected"' : ''?>>Disable
  388. </option>
  389. </select>
  390. </td>
  391. </tr>
  392. </table>
  393. <table cellpadding="6" cellspacing="1" border="0" width="100%" class="layout border user_options"
  394. id="community_settings">
  395. <tr class="colhead_dark">
  396. <td colspan="2">
  397. <strong>Community Settings</strong>
  398. </td>
  399. </tr>
  400. <tr id="comm_ppp_tr">
  401. <td class="label tooltip"
  402. title="This option allows you to set the desired number of displayed posts per page within forum threads.">
  403. <strong>Posts per page (forums)</strong></td>
  404. <td>
  405. <select name="postsperpage" id="postsperpage">
  406. <option value="25" <?=$SiteOptions['PostsPerPage'] == 25 ? ' selected="selected"' : ''?>>25
  407. (default)</option>
  408. <option value="50" <?=$SiteOptions['PostsPerPage'] == 50 ? ' selected="selected"' : ''?>>50
  409. </option>
  410. <option value="100" <?=$SiteOptions['PostsPerPage'] == 100 ? ' selected="selected"' : ''?>>100
  411. </option>
  412. </select>
  413. posts per page
  414. </td>
  415. </tr>
  416. <tr id="comm_inbsort_tr">
  417. <td class="label tooltip" title="This option will force unread private messages to be listed first.">
  418. <strong>Inbox sorting</strong></td>
  419. <td>
  420. <input type="checkbox" name="list_unread_pms_first" id="list_unread_pms_first" <?=!empty($SiteOptions['ListUnreadPMsFirst']) ? ' checked="checked"' : ''?>
  421. />
  422. <label for="list_unread_pms_first">List unread private messages first</label>
  423. </td>
  424. </tr>
  425. <tr id="comm_emot_tr">
  426. <td class="label tooltip"
  427. title="Emoticons are small images which replace traditional text-based &quot;smileys&quot; like :) or :(">
  428. <strong>Emoticons</strong></td>
  429. <td>
  430. <input type="checkbox" name="disablesmileys" id="disablesmileys" <?=!empty($SiteOptions['DisableSmileys']) ? ' checked="checked"' : ''?>
  431. />
  432. <label for="disablesmileys">Disable emoticons</label>
  433. </td>
  434. </tr>
  435. <tr id="comm_avatars_tr">
  436. <td class="label tooltip"
  437. title="This option allows you to disable all avatars or show all avatars with a placeholder for users without avatars."
  438. data-title-plain="This option allows you to disable all avatars or show all avatars with a placeholder for users without avatars.">
  439. <strong>Avatar display (posts)</strong></td>
  440. <td>
  441. <select name="disableavatars" id="disableavatars">
  442. <option value="1" <?=$SiteOptions['DisableAvatars'] == 1 ? ' selected="selected"' : ''?>>Disable
  443. avatars</option>
  444. <option value="0" <?=$SiteOptions['DisableAvatars'] == 0 ? ' selected="selected"' : ''?>>Show
  445. avatars</option>
  446. </select>
  447. </td>
  448. </tr>
  449. <tr id="comm_autosave_tr">
  450. <td class="label tooltip"
  451. title="As you add text to a post or reply, this text is automatically saved. If you stop and return to your post at a later time (e.g. accidentally clicking a link and then pressing the &quot;Back&quot; button in your browser), the text will remain. This option allows you to disable this feature.">
  452. <strong>Auto-save reply text</strong></td>
  453. <td>
  454. <input type="checkbox" name="disableautosave" id="disableautosave" <?=!empty($SiteOptions['DisableAutoSave']) ? ' checked="checked"' : ''?>
  455. />
  456. <label for="disableautosave">Disable text auto-saving</label>
  457. </td>
  458. </tr>
  459. <tr id="comm_badge_tr">
  460. <td class="label tooltip" title="Select up to 5 badges to display next to your username."><strong>Displayed
  461. Badges</strong></td>
  462. <td>
  463. <?php $Badges = Badges::get_badges($UserID);
  464. if (empty($Badges)) {
  465. ?><span>You have no badges :(</span><?php
  466. } else {
  467. $Count = 0;
  468. foreach ($Badges as $BadgeID => $Displayed) {
  469. ?><input type="checkbox" name="badges[]" class="badge_checkbox"
  470. value="<?=$BadgeID?>" <?=($Displayed)?"checked ":""?>/><?=Badges::display_badge($BadgeID, true)?><?php
  471. $Count++;
  472. echo ($Count % 8) ? '' : '<br>';
  473. }
  474. }
  475. ?>
  476. </td>
  477. </tr>
  478. </table>
  479. <table cellpadding="6" cellspacing="1" border="0" width="100%" class="layout border user_options"
  480. id="notification_settings">
  481. <tr class="colhead_dark">
  482. <td colspan="2">
  483. <strong>Notification Settings</strong>
  484. </td>
  485. </tr>
  486. <tr id="notif_autosubscribe_tr">
  487. <td class="label tooltip" title="Enabling this will automatically subscribe you to any thread you post in.">
  488. <strong>Automatic thread subscriptions</strong></td>
  489. <td>
  490. <input type="checkbox" name="autosubscribe" id="autosubscribe" <?=!empty($SiteOptions['AutoSubscribe']) ? ' checked="checked"' : ''?>
  491. />
  492. <label for="autosubscribe">Enable automatic thread subscriptions</label>
  493. </td>
  494. </tr>
  495. <tr id="notif_unseeded_tr">
  496. <td class="label tooltip"
  497. title="Enabling this will send you a PM alert before your uploads are deleted for being unseeded.">
  498. <strong>Unseeded torrent alerts</strong></td>
  499. <td>
  500. <input type="checkbox" name="unseededalerts" id="unseededalerts" <?=checked($UnseededAlerts)?> />
  501. <label for="unseededalerts">Enable unseeded torrent alerts</label>
  502. </td>
  503. </tr>
  504. <?php NotificationsManagerView::render_settings(NotificationsManager::get_settings($UserID)); ?>
  505. </table>
  506. <table cellpadding="6" cellspacing="1" border="0" width="100%" class="layout border user_options"
  507. id="personal_settings">
  508. <tr class="colhead_dark">
  509. <td colspan="2">
  510. <strong>Personal Settings</strong>
  511. </td>
  512. </tr>
  513. <tr id="pers_avatar_tr">
  514. <td class="label tooltip_interactive"
  515. title="Please link to an avatar which does not exceed 512 kiB in size or 600 pixels in height"
  516. data-title-plain="Please link to an avatar which does not exceed 512 kiB in size or 600 pixels in height">
  517. <strong>Avatar URL</strong></td>
  518. <td>
  519. <input type="text" size="50" name="avatar" id="avatar"
  520. value="<?=display_str($Avatar)?>" />
  521. </td>
  522. </tr>
  523. <?php if ($HasSecondAvatar) { ?>
  524. <tr id="pers_avatar2_tr">
  525. <td class="label tooltip_interactive"
  526. title="Congratulations! You've unlocked this option by reaching Special Rank #2. Thanks for donating. Your normal avatar will &quot;flip&quot; to this one when someone runs their mouse over the image. Please link to an avatar which follows the &lt;a href=&quot;rules.php&quot;&gt;site rules&lt;/a&gt;. The avatar width should be 150 pixels and will be resized if necessary."
  527. data-title-plain="Congratulations! You've unlocked this option by reaching Special Rank #2. Thanks for donating. Your normal avatar will &quot;flip&quot; to this one when someone runs their mouse over the image. Please link to an avatar which follows the site rules. The avatar width should be 150 pixels and will be resized if necessary.">
  528. <strong>Second avatar URL</strong></td>
  529. <td>
  530. <input type="text" size="50" name="second_avatar" id="second_avatar"
  531. value="<?=$Rewards['SecondAvatar']?>" />
  532. </td>
  533. </tr>
  534. <?php }
  535. if ($HasAvatarMouseOverText) { ?>
  536. <tr id="pers_avatarhover_tr">
  537. <td class="label tooltip"
  538. title="Congratulations! You've unlocked this option by reaching Donor Rank #3. Thanks for donating. Text you enter in this field will appear when someone mouses over your avatar. All text should follow site rules. 200 character limit.">
  539. <strong>Avatar mouseover text</strong></td>
  540. <td>
  541. <input type="text" size="50" name="avatar_mouse_over_text" id="avatar_mouse_over_text"
  542. value="<?=$Rewards['AvatarMouseOverText']?>" />
  543. </td>
  544. </tr>
  545. <?php }
  546. if ($HasDonorIconMouseOverText) { ?>
  547. <tr id="pers_donorhover_tr">
  548. <td class="label tooltip"
  549. title="Congratulations! You've unlocked this option by reaching Donor Rank #2. Thanks for donating. Text you enter in this field will appear when someone mouses over your donor icon. All text should follow site rules. 200 character limit.">
  550. <strong>Donor icon mouseover text</strong></td>
  551. <td>
  552. <input type="text" size="50" name="donor_icon_mouse_over_text" id="donor_icon_mouse_over_text"
  553. value="<?=$Rewards['IconMouseOverText']?>" />
  554. </td>
  555. </tr>
  556. <?php }
  557. if ($HasDonorIconLink) { ?>
  558. <tr id="pers_donorlink_tr">
  559. <td class="label tooltip"
  560. title="Congratulations! You've unlocked this option by reaching Donor Rank #4. Thanks for donating. Links you enter in this field will be accessible when your donor icon is clicked. All links should follow site rules.">
  561. <strong>Donor icon link</strong></td>
  562. <td>
  563. <input type="text" size="50" name="donor_icon_link" id="donor_icon_link"
  564. value="<?=$Rewards['CustomIconLink']?>" />
  565. </td>
  566. </tr>
  567. <?php }
  568. if ($HasCustomDonorIcon) { ?>
  569. <tr id="pers_donoricon_tr">
  570. <td class="label tooltip"
  571. title="Congratulations! You've unlocked this option by reaching Donor Rank #5. Thanks for donating. Please link to an icon which you'd like to replace your default donor icon with. Icons must be 15 pixels wide by 13 pixels tall. Icons of any other size will be automatically resized.">
  572. <strong>Custom donor icon URL</strong></td>
  573. <td>
  574. <input type="text" size="50" name="donor_icon_custom_url" id="donor_icon_custom_url"
  575. value="<?=$Rewards['CustomIcon']?>" />
  576. </td>
  577. </tr>
  578. <?php }
  579. if ($HasDonorForum) { ?>
  580. <tr id="pers_donorforum_tr">
  581. <td class="label tooltip"
  582. title="Congratulations! You've unlocked this option by reaching Donor Rank #5. Thanks for donating. You may select a prefix and suffix which will be used in the Donor Forum you now have access to.">
  583. <strong>Donor forum honorific</strong></td>
  584. <td>
  585. <div class="field_div">
  586. <label><strong>Prefix:</strong> <input type="text" size="30" maxlength="30" name="donor_title_prefix"
  587. id="donor_title_prefix"
  588. value="<?=$DonorTitles['Prefix']?>" /></label>
  589. </div>
  590. <div class="field_div">
  591. <label><strong>Suffix:</strong> <input type="text" size="30" maxlength="30" name="donor_title_suffix"
  592. id="donor_title_suffix"
  593. value="<?=$DonorTitles['Suffix']?>" /></label>
  594. </div>
  595. <div class="field_div">
  596. <label><strong>Hide comma:</strong> <input type="checkbox" id="donor_title_comma" name="donor_title_comma"
  597. <?=!$DonorTitles['UseComma'] ? ' checked="checked"' : '' ?>
  598. /></label>
  599. </div>
  600. <strong>Preview:</strong> <span id="donor_title_prefix_preview"></span><?=$Username?><span id="donor_title_comma_preview">,
  601. </span><span id="donor_title_suffix_preview"></span>
  602. </td>
  603. </tr>
  604. <?php } ?>
  605. <tr id="pers_proftitle_tr">
  606. <td class="label tooltip"
  607. title="You can customize your profile information with text and BBCode. Entering a title will label your profile information section. Unlock additional profile info boxes via Donor Ranks.">
  608. <strong>Profile title 1</strong></td>
  609. <td><input type="text" size="50" name="profile_title" id="profile_title"
  610. value="<?=display_str($InfoTitle)?>" />
  611. </td>
  612. </tr>
  613. <tr id="pers_profinfo_tr">
  614. <td class="label tooltip"
  615. title="You can customize your profile information with text and BBCode. Entering a title will label your profile information section. Unlock additional profile info boxes via Donor Ranks.">
  616. <strong>Profile info 1</strong></td>
  617. <td><?php $textarea = new TEXTAREA_PREVIEW('info', 'info', display_str($Info), 40, 8); ?>
  618. </td>
  619. </tr>
  620. <!-- Excuse this numbering confusion, we start numbering our profile info/titles at 1 in the donor_rewards table -->
  621. <?php if ($HasProfileInfo1) { ?>
  622. <tr id="pers_proftitle2_tr">
  623. <td class="label tooltip"
  624. title="Congratulations! You've unlocked this option by reaching Donor Rank #2. Thanks for donating. You can customize your profile information with text and BBCode. Entering a title will label your profile information section.">
  625. <strong>Profile title 2</strong></td>
  626. <td><input type="text" size="50" name="profile_title_1" id="profile_title_1"
  627. value="<?=display_str($ProfileRewards['ProfileInfoTitle1'])?>" />
  628. </td>
  629. </tr>
  630. <tr id="pers_profinfo2_tr">
  631. <td class="label tooltip"
  632. title="Congratulations! You've unlocked this option by reaching Donor Rank #2. Thanks for donating. You can customize your profile information with text and BBCode. Entering a title will label your profile information section.">
  633. <strong>Profile info 2</strong></td>
  634. <td><?php $textarea = new TEXTAREA_PREVIEW('profile_info_1', 'profile_info_1', display_str($ProfileRewards['ProfileInfo1']), 40, 8); ?>
  635. </td>
  636. </tr>
  637. <?php }
  638. if ($HasProfileInfo2) { ?>
  639. <tr id="pers_proftitle3_tr">
  640. <td class="label tooltip"
  641. title="Congratulations! You've unlocked this option by reaching Donor Rank #3. Thanks for donating. You can customize your profile information with text and BBCode. Entering a title will label your profile information section.">
  642. <strong>Profile title 3</strong></td>
  643. <td><input type="text" size="50" name="profile_title_2" id="profile_title_2"
  644. value="<?=display_str($ProfileRewards['ProfileInfoTitle2'])?>" />
  645. </td>
  646. </tr>
  647. <tr id="pers_profinfo3_tr">
  648. <td class="label tooltip"
  649. title="Congratulations! You've unlocked this option by reaching Donor Rank #3. Thanks for donating. You can customize your profile information with text and BBCode. Entering a title will label your profile information section.">
  650. <strong>Profile info 3</strong></td>
  651. <td><?php $textarea = new TEXTAREA_PREVIEW('profile_info_2', 'profile_info_2', display_str($ProfileRewards['ProfileInfo2']), 40, 8); ?>
  652. </td>
  653. </tr>
  654. <?php }
  655. if ($HasProfileInfo3) { ?>
  656. <tr id="pers_proftitle4_tr">
  657. <td class="label tooltip"
  658. title="Congratulations! You've unlocked this option by reaching Donor Rank #4. Thanks for donating. You can customize your profile information with text and BBCode. Entering a title will label your profile information section.">
  659. <strong>Profile title 4</strong></td>
  660. <td><input type="text" size="50" name="profile_title_3" id="profile_title_3"
  661. value="<?=display_str($ProfileRewards['ProfileInfoTitle3'])?>" />
  662. </td>
  663. </tr>
  664. <tr id="pers_profinfo4_tr">
  665. <td class="label tooltip"
  666. title="Congratulations! You've unlocked this option by reaching Donor Rank #4. Thanks for donating. You can customize your profile information with text and BBCode. Entering a title will label your profile information section.">
  667. <strong>Profile info 4</strong></td>
  668. <td><?php $textarea = new TEXTAREA_PREVIEW('profile_info_3', 'profile_info_3', display_str($ProfileRewards['ProfileInfo3']), 40, 8); ?>
  669. </td>
  670. </tr>
  671. <?php }
  672. if ($HasProfileInfo4) { ?>
  673. <tr id="pers_proftitle5_tr">
  674. <td class="label tooltip"
  675. title="Congratulations! You've unlocked this option by reaching Donor Rank #5. Thanks for donating. You can customize your profile information with text and BBCode. Entering a title will label your profile information section.">
  676. <strong>Profile title 5</strong></td>
  677. <td><input type="text" size="50" name="profile_title_4" id="profile_title_4"
  678. value="<?=display_str($ProfileRewards['ProfileInfoTitle4'])?>" />
  679. </td>
  680. </tr>
  681. <tr id="pers_profinfo5_tr">
  682. <td class="label tooltip"
  683. title="Congratulations! You've unlocked this option by reaching Donor Rank #5. Thanks for donating. You can customize your profile information with text and BBCode. Entering a title will label your profile information section.">
  684. <strong>Profile info 5</strong></td>
  685. <td><?php $textarea = new TEXTAREA_PREVIEW('profile_info_4', 'profile_info_4', display_str($ProfileRewards['ProfileInfo4']), 40, 8); ?>
  686. </td>
  687. </tr>
  688. <?php } ?>
  689. </table>
  690. <table cellpadding="6" cellspacing="1" border="0" width="100%" class="layout border user_options"
  691. id="paranoia_settings">
  692. <tr class="colhead_dark">
  693. <td colspan="2">
  694. <strong>Paranoia Settings</strong>
  695. </td>
  696. </tr>
  697. <tr>
  698. <td class="label">&nbsp;</td>
  699. <td>
  700. <p><strong>Select the profile elements you wish to display to other users.</strong></p>
  701. <p>For example, if you select "Show count" for "Requests (filled)", the number of requests you have filled
  702. will be visible. If you select "Show bounty", the amount of request bounty you have received will be
  703. visible. If you select "Show list", the full list of requests you have filled will be visible.</p>
  704. <p><span class="warning">Note: Paranoia has nothing to do with your security on this site. These settings
  705. only determine if others can view your site activity. Some information will remain available in the site
  706. log.</span></p>
  707. </td>
  708. </tr>
  709. <tr id="para_lastseen_tr">
  710. <td class="label tooltip"
  711. title="Enable this to allow others to see when your most recent site activity occurred."><strong>Recent
  712. activity</strong></td>
  713. <td>
  714. <label><input type="checkbox" name="p_lastseen" <?=checked(!in_array('lastseen', $Paranoia))?>
  715. /> Last seen</label>
  716. </td>
  717. </tr>
  718. <tr id="para_presets_tr">
  719. <td class="label"><strong>Presets</strong></td>
  720. <td>
  721. <input type="button" onclick="ParanoiaResetOff();" value="Show everything" />
  722. <input type="button" onclick="ParanoiaResetStats();" value="Show stats only" />
  723. <!--<input type="button" onclick="ParanoiaResetOn();" value="Show nothing" />-->
  724. </td>
  725. </tr>
  726. <tr id="para_donations_tr">
  727. <td class="label"><strong>Donations</strong></td>
  728. <td>
  729. <input type="checkbox" id="p_donor_stats" name="p_donor_stats" onchange="AlterParanoia();" <?=$DonorIsVisible ? ' checked="checked"' : ''?>
  730. />
  731. <label for="p_donor_stats">Show donor stats</label>
  732. <input type="checkbox" id="p_donor_heart" name="p_donor_heart" onchange="AlterParanoia();" <?=checked(!in_array('hide_donor_heart', $Paranoia))?>
  733. />
  734. <label for="p_donor_heart">Show donor heart</label>
  735. </td>
  736. </tr>
  737. <tr id="para_stats_tr">
  738. <td class="label tooltip"
  739. title="These settings control the display of your uploaded data amount, downloaded data amount, and ratio.">
  740. <strong>Statistics</strong></td>
  741. <td>
  742. <?php
  743. $UploadChecked = checked(!in_array('uploaded', $Paranoia));
  744. $DownloadChecked = checked(!in_array('downloaded', $Paranoia));
  745. $RatioChecked = checked(!in_array('ratio', $Paranoia));
  746. ?>
  747. <label><input type="checkbox" name="p_uploaded" onchange="AlterParanoia();" <?=$UploadChecked?> /> Uploaded</label>&nbsp;&nbsp;
  748. <label><input type="checkbox" name="p_downloaded" onchange="AlterParanoia();" <?=$DownloadChecked?> /> Downloaded</label>&nbsp;&nbsp;
  749. <label><input type="checkbox" name="p_ratio" onchange="AlterParanoia();" <?=$RatioChecked?> /> Ratio</label>
  750. </td>
  751. </tr>
  752. <tr id="para_reqratio_tr">
  753. <td class="label"><strong>Required Ratio</strong></td>
  754. <td>
  755. <label><input type="checkbox" name="p_requiredratio" <?=checked(!in_array('requiredratio', $Paranoia))?>
  756. /> Required Ratio</label>
  757. </td>
  758. </tr>
  759. <tr id="para_comments_tr">
  760. <td class="label"><strong>Comments (torrents)</strong></td>
  761. <td>
  762. <?php display_paranoia('torrentcomments'); ?>
  763. </td>
  764. </tr>
  765. <tr id="para_collstart_tr">
  766. <td class="label"><strong>Collections (started)</strong></td>
  767. <td>
  768. <?php display_paranoia('collages'); ?>
  769. </td>
  770. </tr>
  771. <tr id="para_collcontr_tr">
  772. <td class="label"><strong>Collections (contributed to)</strong></td>
  773. <td>
  774. <?php display_paranoia('collagecontribs'); ?>
  775. </td>
  776. </tr>
  777. <tr id="para_reqfill_tr">
  778. <td class="label"><strong>Requests (filled)</strong></td>
  779. <td>
  780. <?php
  781. $RequestsFilledCountChecked = checked(!in_array('requestsfilled_count', $Paranoia));
  782. $RequestsFilledBountyChecked = checked(!in_array('requestsfilled_bounty', $Paranoia));
  783. $RequestsFilledListChecked = checked(!in_array('requestsfilled_list', $Paranoia));
  784. ?>
  785. <label><input type="checkbox" name="p_requestsfilled_count" onchange="AlterParanoia();" <?=$RequestsFilledCountChecked?> /> Show
  786. count</label>&nbsp;&nbsp;
  787. <label><input type="checkbox" name="p_requestsfilled_bounty" onchange="AlterParanoia();" <?=$RequestsFilledBountyChecked?> /> Show
  788. bounty</label>&nbsp;&nbsp;
  789. <label><input type="checkbox" name="p_requestsfilled_list" onchange="AlterParanoia();" <?=$RequestsFilledListChecked?> /> Show list</label>
  790. </td>
  791. </tr>
  792. <tr id="para_reqvote_tr">
  793. <td class="label"><strong>Requests (voted for)</strong></td>
  794. <td>
  795. <?php
  796. $RequestsVotedCountChecked = checked(!in_array('requestsvoted_count', $Paranoia));
  797. $RequestsVotedBountyChecked = checked(!in_array('requestsvoted_bounty', $Paranoia));
  798. $RequestsVotedListChecked = checked(!in_array('requestsvoted_list', $Paranoia));
  799. ?>
  800. <label><input type="checkbox" name="p_requestsvoted_count" onchange="AlterParanoia();" <?=$RequestsVotedCountChecked?> /> Show
  801. count</label>&nbsp;&nbsp;
  802. <label><input type="checkbox" name="p_requestsvoted_bounty" onchange="AlterParanoia();" <?=$RequestsVotedBountyChecked?> /> Show
  803. bounty</label>&nbsp;&nbsp;
  804. <label><input type="checkbox" name="p_requestsvoted_list" onchange="AlterParanoia();" <?=$RequestsVotedListChecked?> /> Show list</label>
  805. </td>
  806. </tr>
  807. <tr id="para_upltor_tr">
  808. <td class="label"><strong>Uploaded torrents</strong></td>
  809. <td>
  810. <?php display_paranoia('uploads'); ?>
  811. </td>
  812. </tr>
  813. <tr id="para_uplunique_tr">
  814. <td class="label"><strong>Uploaded torrents (unique groups)</strong></td>
  815. <td>
  816. <?php display_paranoia('uniquegroups'); ?>
  817. </td>
  818. </tr>
  819. <tr id="para_torseed_tr">
  820. <td class="label"><strong>Torrents (seeding)</strong></td>
  821. <td>
  822. <?php display_paranoia('seeding'); ?>
  823. </td>
  824. </tr>
  825. <tr id="para_torleech_tr">
  826. <td class="label"><strong>Torrents (leeching)</strong></td>
  827. <td>
  828. <?php display_paranoia('leeching'); ?>
  829. </td>
  830. </tr>
  831. <tr id="para_torsnatch_tr">
  832. <td class="label"><strong>Torrents (snatched)</strong></td>
  833. <td>
  834. <?php display_paranoia('snatched'); ?>
  835. </td>
  836. </tr>
  837. <tr id="para_torsubscr_tr">
  838. <td class="label tooltip" title="This option allows other users to subscribe to your torrent uploads.">
  839. <strong>Torrents (upload subscriptions)</strong></td>
  840. <td>
  841. <label><input type="checkbox" name="p_notifications" <?=checked(!in_array('notifications', $Paranoia))?>
  842. /> Allow torrent upload subscriptions</label>
  843. </td>
  844. </tr>
  845. <?php
  846. $DB->query("
  847. SELECT COUNT(UserID)
  848. FROM users_info
  849. WHERE Inviter = ?", $UserID);
  850. list($Invited) = $DB->next_record();
  851. ?>
  852. <tr id="para_invited_tr">
  853. <td class="label tooltip"
  854. title="This option controls the display of your <?=SITE_NAME?> invitees.">
  855. <strong>Invitees</strong></td>
  856. <td>
  857. <label><input type="checkbox" name="p_invitedcount" <?=checked(!in_array('invitedcount', $Paranoia))?>
  858. /> Show count</label>
  859. </td>
  860. </tr>
  861. <?php
  862. $DB->query("
  863. SELECT COUNT(ArtistID)
  864. FROM torrents_artists
  865. WHERE UserID = ?", $UserID);
  866. list($ArtistsAdded) = $DB->next_record();
  867. ?>
  868. <tr id="para_artistsadded_tr">
  869. <td class="label tooltip"
  870. title="This option controls the display of the artists you have added to torrent groups on the site. This number includes artists added via the torrent upload form, as well as artists added via the &quot;Add artists&quot; box on torrent group pages.">
  871. <strong>Artists added</strong></td>
  872. <td>
  873. <label><input type="checkbox" name="p_artistsadded" <?=checked(!in_array('artistsadded', $Paranoia))?>
  874. /> Show count</label>
  875. </td>
  876. </tr>
  877. <tr id="para_preview_tr">
  878. <td></td>
  879. <td><a href="#" id="preview_paranoia" class="brackets">Preview paranoia</a></td>
  880. </tr>
  881. </table>
  882. <table cellpadding="6" cellspacing="1" border="0" width="100%" class="layout border user_options"
  883. id="access_settings">
  884. <tr class="colhead_dark">
  885. <td colspan="2">
  886. <strong>Access Settings</strong>
  887. </td>
  888. </tr>
  889. <tr id="acc_2fa_tr">
  890. <td class="label tooltip" title="This page contains 2FA, U2F, and PGP settings"><strong>Account
  891. Security</strong></td>
  892. <td><a href="user.php?action=2fa">Click here to view additional account security options</a></td>
  893. </tr>
  894. <tr id="acc_currentpassword_tr">
  895. <td class="label"><strong>Current Password</strong></td>
  896. <td>
  897. <div class="field_div">
  898. <input type="password" size="40" name="cur_pass" id="cur_pass" maxlength="307200" value="" />
  899. </div>
  900. <strong class="important_text">When changing any of the settings below, you must enter your current password
  901. in this field before saving your changes</strong>
  902. </td>
  903. </tr>
  904. <tr id="acc_resetpk_tr">
  905. <td class="label tooltip_interactive"
  906. title="For information about the function of your passkey, please &lt;a href=&quot;<?=site_url()?>wiki.php?action=article&amp;amp;name=Passkey&quot;&gt;read this wiki article&lt;/a&gt;."
  907. data-title-plain="For information about the function of your passkey, please read the &quot;Passkey&quot; wiki article.">
  908. <strong>Reset passkey</strong></td>
  909. <td>
  910. <div class="field_div">
  911. <label><input type="checkbox" name="resetpasskey" id="resetpasskey" />
  912. Reset your passkey?</label>
  913. </div>
  914. <p class="min_padding">Any active torrents must be downloaded again to continue leeching/seeding.</p>
  915. </td>
  916. </tr>
  917. <tr id="acc_irckey_tr">
  918. <td class="label"><strong>IRC key</strong></td>
  919. <td>
  920. <div class="field_div">
  921. <input type="text" size="50" name="irckey" id="irckey"
  922. value="<?=display_str($IRCKey)?>" />
  923. </div>
  924. <p class="min_padding">This key will be used when authenticating with <?=BOT_NICK?> on the <a
  925. href="wiki.php?action=article&amp;name=IRC">site's IRC network</a>. <span
  926. style="white-space: nowrap;">Please note:</span></p>
  927. <ul>
  928. <li>This value is stored in plaintext and should not be your password.</li>
  929. <li>IRC keys must be between 6 and 32 characters.</li>
  930. </ul>
  931. </td>
  932. </tr>
  933. <tr id="acc_email_tr">
  934. <td class="label tooltip"
  935. title="This is the email address you want associated with your <?=SITE_NAME?> account. It will be used if you forget your password or if an alert needs to be sent to you.">
  936. <strong>Email address</strong></td>
  937. <td>
  938. <div class="field_div">
  939. <input type="email" size="50" name="email" id="email"
  940. value="<?=display_str($Email)?>" />
  941. </div>
  942. </td>
  943. </tr>
  944. <tr id="acc_password_tr">
  945. <td class="label"><strong>Password</strong></td>
  946. <td>
  947. <div class="field_div">
  948. <label>New password:<br />
  949. <input type="password" size="40" name="new_pass_1" id="new_pass_1" maxlength="307200" value="" />
  950. <strong id="pass_strength"></strong></label>
  951. </div>
  952. <div class="field_div">
  953. <label>Confirm new password:<br />
  954. <input type="password" size="40" name="new_pass_2" id="new_pass_2" maxlength="307200" value="" />
  955. <strong id="pass_match"></strong></label>
  956. </div>
  957. <div class="setting_description">
  958. Any password of 6 characters or longer will be accepted, but a strong password:
  959. <ul>
  960. <li>is 8 characters or longer</li>
  961. <li>contains at least 1 lowercase and uppercase letter</li>
  962. <li>contains at least a number or symbol</li>
  963. </ul>
  964. </div>
  965. </td>
  966. </tr>
  967. </table>
  968. </div>
  969. </form>
  970. </div>
  971. <?php View::show_footer();