PageRenderTime 37ms CodeModel.GetById 6ms RepoModel.GetById 1ms app.codeStats 0ms

/dbtech/vbactivity/actions/profile.php

https://gitlab.com/elasa/vb-elasa.ir
PHP | 178 lines | 115 code | 25 blank | 38 comment | 10 complexity | de00197f906710aa9a95fca985e486fa MD5 | raw file
  1. <?php
  2. /*======================================================================*\
  3. || #################################################################### ||
  4. || # ---------------------------------------------------------------- # ||
  5. || # Copyright ©2013 Fillip Hannisdal AKA Revan/NeoRevan/Belazor # ||
  6. || # All Rights Reserved. # ||
  7. || # This file may not be redistributed in whole or significant part. # ||
  8. || # ---------------------------------------------------------------- # ||
  9. || # You are not allowed to use this on your server unless the files # ||
  10. || # you downloaded were done so with permission. # ||
  11. || # ---------------------------------------------------------------- # ||
  12. || #################################################################### ||
  13. \*======================================================================*/
  14. if (!$vbulletin->userinfo['userid'])
  15. {
  16. // Ensure guests can't access
  17. print_no_permission();
  18. }
  19. // ######################### REQUIRE BACK-END ############################
  20. require_once(DIR . '/includes/functions_user.php');
  21. // #######################################################################
  22. // ######################## START MAIN SCRIPT ############################
  23. // #######################################################################
  24. // ############################### start display options ###############################
  25. if ($_REQUEST['action'] == 'options')
  26. {
  27. // Navigation bits
  28. $navbits[''] = $vbphrase['dbtech_vbactivity_settings'];
  29. // Grab all the bitfields we can
  30. require_once(DIR . '/includes/class_bitfield_builder.php');
  31. $bitfields = vB_Bitfield_Builder::return_data();
  32. // Begin the array of options
  33. $optionlist = array();
  34. $settinggroups = array(
  35. 'dbtech_vbactivity_display_settings' => $bitfields['nocache']['dbtech_vbactivity_display_settings'],
  36. );
  37. /*DBTECH_PRO_START*/
  38. // Add notif settings
  39. $settinggroups['dbtech_vbactivity_notification_settings'] = $bitfields['nocache']['dbtech_vbactivity_notification_settings'];
  40. /*DBTECH_PRO_END*/
  41. foreach ($settinggroups as $settinggroup => $settings)
  42. {
  43. // Begin settings
  44. $optionlist["$settinggroup"] = array();
  45. foreach ($settings as $settingname => $bit)
  46. {
  47. $optionlist["$settinggroup"][] = array(
  48. 'varname' => $settingname,
  49. 'description' => $vbphrase["{$settingname}_descr"],
  50. 'checked' => ((intval($vbulletin->userinfo['dbtech_vbactivity_settings']) & $bit) ? ' checked="checked"' : ''),
  51. 'settingphrase' => $vbphrase["{$settingname}_short"],
  52. 'phrase' => $vbphrase["{$settingname}"],
  53. );
  54. }
  55. }
  56. foreach ($optionlist as $headerphrase => $options)
  57. {
  58. $optionbits2 = '';
  59. foreach ($options as $option)
  60. {
  61. $templater = vB_Template::create('dbtech_vbactivity_options_bit_bit');
  62. $templater->register('option', $option);
  63. $optionbits2 .= $templater->render();
  64. }
  65. $templater = vB_Template::create('dbtech_vbactivity_options_bit');
  66. $templater->register('headerphrase', preg_replace('/<dfn>.*<\/dfn>/isU', '', $vbphrase["$headerphrase"]));
  67. $templater->register('optionbits2', $optionbits2);
  68. $optionbits .= $templater->render();
  69. }
  70. $selected = array(
  71. 'stats' => array(
  72. $vbulletin->userinfo['dbtech_vbactivity_autocollapse_stats'] => ' selected="selected"'
  73. ),
  74. 'bar' => array(
  75. $vbulletin->userinfo['dbtech_vbactivity_autocollapse_bar'] => ' selected="selected"'
  76. )
  77. );
  78. // Include the page template
  79. $page_templater = vB_Template::create('dbtech_vbactivity_options');
  80. $page_templater->register('optionbits', $optionbits);
  81. $page_templater->register('selected', $selected);
  82. }
  83. // ############################### start save options ##################################
  84. if ($_POST['action'] == 'updateoptions')
  85. {
  86. $vbulletin->input->clean_array_gpc('p', array(
  87. 'options' => TYPE_ARRAY_BOOL,
  88. 'set_options' => TYPE_ARRAY_BOOL,
  89. 'autocollapse_stats' => TYPE_INT,
  90. 'autocollapse_bar' => TYPE_INT,
  91. ));
  92. // Grab all the bitfields we can
  93. require_once(DIR . '/includes/class_bitfield_builder.php');
  94. $bitfields = vB_Bitfield_Builder::return_data();
  95. $userdata =& datamanager_init('User', $vbulletin, ERRTYPE_STANDARD);
  96. $userdata->set_existing($vbulletin->userinfo);
  97. // Add to userdata
  98. //$userdata->bitfields['dbtech_vbactivity_settings'] = array_merge($bitfields['nocache']['dbtech_vbactivity_general_settings'], $bitfields['nocache']['dbtech_vbactivity_display_settings']);
  99. $userdata->bitfields['dbtech_vbactivity_settings'] = $bitfields['nocache']['dbtech_vbactivity_display_settings'];
  100. /*DBTECH_PRO_START*/
  101. // Add notif settings
  102. $userdata->bitfields['dbtech_vbactivity_settings'] = array_merge($userdata->bitfields['dbtech_vbactivity_settings'], $bitfields['nocache']['dbtech_vbactivity_notification_settings']);
  103. /*DBTECH_PRO_END*/
  104. // options bitfield
  105. foreach ($userdata->bitfields['dbtech_vbactivity_settings'] AS $key => $val)
  106. {
  107. if (isset($vbulletin->GPC['options']["$key"]) OR isset($vbulletin->GPC['set_options']["$key"]))
  108. {
  109. $value = $vbulletin->GPC['options']["$key"];
  110. $userdata->set_bitfield('dbtech_vbactivity_settings', $key, $value);
  111. }
  112. }
  113. $userdata->set('dbtech_vbactivity_autocollapse_stats', $vbulletin->GPC['autocollapse_stats']);
  114. $userdata->set('dbtech_vbactivity_autocollapse_bar', $vbulletin->GPC['autocollapse_bar']);
  115. // Save the userdata
  116. $userdata->save();
  117. $vbulletin->url = 'vbactivity.php?' . $vbulletin->session->vars['sessionurl'] . 'do=profile&action=options';
  118. if (version_compare($vbulletin->versionnumber, '4.1.7') >= 0)
  119. {
  120. eval(print_standard_redirect(array('redirect_updatethanks', $vbulletin->userinfo['username'])));
  121. }
  122. else
  123. {
  124. eval(print_standard_redirect('redirect_updatethanks'));
  125. }
  126. }
  127. // #######################################################################
  128. if (intval($vbulletin->versionnumber) == 3)
  129. {
  130. // Create navbits
  131. $navbits = construct_navbits($navbits);
  132. eval('$navbar = "' . fetch_template('navbar') . '";');
  133. }
  134. else
  135. {
  136. $navbar = render_navbar_template(construct_navbits($navbits));
  137. }
  138. construct_usercp_nav('dbtech_vbactivity_' . $_REQUEST['action']);
  139. $templater = vB_Template::create('USERCP_SHELL');
  140. $templater->register_page_templates();
  141. $templater->register('cpnav', $cpnav);
  142. if (method_exists($page_templater, 'render'))
  143. {
  144. // Only run this if there's anything to render
  145. $templater->register('HTML', $page_templater->render());
  146. }
  147. $templater->register('clientscripts', $clientscripts);
  148. $templater->register('navbar', $navbar);
  149. $templater->register('navclass', $navclass);
  150. $templater->register('onload', $onload);
  151. $templater->register('pagetitle', $pagetitle);
  152. $templater->register('template_hook', $template_hook);
  153. print_output($templater->render());