PageRenderTime 42ms CodeModel.GetById 13ms RepoModel.GetById 0ms app.codeStats 0ms

/adm/xs_styles.php

https://github.com/igorw-forks/icy_phoenix
PHP | 208 lines | 166 code | 19 blank | 23 comment | 26 complexity | 124b7cb7b398baecb291a936e8cdac96 MD5 | raw file
Possible License(s): AGPL-1.0
  1. <?php
  2. /**
  3. *
  4. * @package Icy Phoenix
  5. * @version $Id$
  6. * @copyright (c) 2008 Icy Phoenix
  7. * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  8. *
  9. */
  10. /**
  11. *
  12. * @Extra credits for this file
  13. * Vjacheslav Trushkin (http://www.stsoftware.biz)
  14. *
  15. */
  16. define('IN_ICYPHOENIX', true);
  17. if (!defined('IP_ROOT_PATH')) define('IP_ROOT_PATH', './../');
  18. if (!defined('PHP_EXT')) define('PHP_EXT', substr(strrchr(__FILE__, '.'), 1));
  19. $no_page_header = true;
  20. require('pagestart.' . PHP_EXT);
  21. define('IN_XS', true);
  22. include_once('xs_include.' . PHP_EXT);
  23. $template->assign_block_vars('nav_left',array('ITEM' => '&raquo; <a href="' . append_sid('xs_styles.' . PHP_EXT) . '">' . $lang['xs_default_style'] . '</a>'));
  24. // set new default style
  25. $setdefault = request_var('setdefault', 0);
  26. if(!empty($setdefault) && !defined('DEMO_MODE'))
  27. {
  28. set_config('default_style', $setdefault, false);
  29. }
  30. // change "override" variable
  31. $setoverride = request_var('setoverride', 0);
  32. if(!empty($setoverride) && !defined('DEMO_MODE'))
  33. {
  34. set_config('override_user_style', $setoverride, false);
  35. }
  36. // move all users to some style
  37. $moveusers = request_var('moveusers', 0);
  38. if(!empty($moveusers) && !defined('DEMO_MODE'))
  39. {
  40. $sql = "UPDATE " . USERS_TABLE . " SET user_style = '" . $moveusers . "'";
  41. $db->sql_query($sql);
  42. }
  43. // move all users from some style
  44. $moveaway = request_var('moveaway', 0);
  45. $movestyle = request_var('movestyle', 0);
  46. $movestyle = (!empty($movestyle) && (check_style_exists($movestyle) != false)) ? $movestyle : $config['default_style'];
  47. if(!empty($moveaway) && !defined('DEMO_MODE'))
  48. {
  49. $sql = "UPDATE " . USERS_TABLE . " SET user_style = '" . $movestyle . "' WHERE user_style = " . $moveaway;
  50. $db->sql_query($sql);
  51. }
  52. // get list of installed styles
  53. $sql = 'SELECT themes_id, template_name, style_name FROM ' . THEMES_TABLE . ' ORDER BY template_name';
  54. $db->sql_return_on_error(true);
  55. $result = $db->sql_query($sql);
  56. $db->sql_return_on_error(false);
  57. if(!$result)
  58. {
  59. xs_error($lang['xs_no_style_info'], __LINE__, __FILE__);
  60. }
  61. $style_rowset = $db->sql_fetchrowset($result);
  62. $style_override = $config['override_user_style'];
  63. $style_default = $config['default_style'];
  64. $num_users = 0;
  65. $style_ids = array();
  66. for($i = 0; $i < sizeof($style_rowset); $i++)
  67. {
  68. $id = $style_rowset[$i]['themes_id'];
  69. $style_ids[] = $id;
  70. $sql = 'SELECT count(user_id) as total FROM ' . USERS_TABLE . ' WHERE user_style = ' . $id;
  71. $db->sql_return_on_error(true);
  72. $result = $db->sql_query($sql);
  73. $db->sql_return_on_error(false);
  74. if(!$result)
  75. {
  76. $total = 0;
  77. }
  78. else
  79. {
  80. $total = $db->sql_fetchrow($result);
  81. $total = $total['total'];
  82. $num_users += $total;
  83. }
  84. $row_class = $xs_row_class[$i % 2];
  85. $template->assign_block_vars('styles', array(
  86. 'ROW_CLASS' => $row_class,
  87. 'STYLE' => $style_rowset[$i]['style_name'],
  88. 'TEMPLATE' => $style_rowset[$i]['template_name'],
  89. 'ID' => $id,
  90. 'TOTAL' => $total,
  91. 'U_TOTAL' => append_sid('xs_styles.' . PHP_EXT . '?list=' . $id),
  92. 'U_DEFAULT' => append_sid('xs_styles.' . PHP_EXT . '?setdefault=' . $id),
  93. 'U_OVERRIDE' => append_sid('xs_styles.' . PHP_EXT . '?setoverride=' . ($style_override ? '0' : '1')),
  94. 'U_SWITCHALL' => append_sid('xs_styles.' . PHP_EXT . '?moveusers=' . $id),
  95. )
  96. );
  97. if($total > 0)
  98. {
  99. $template->assign_block_vars('styles.users', array());
  100. }
  101. if($id == $style_default)
  102. {
  103. $template->assign_block_vars('styles.default', array());
  104. if($style_override)
  105. {
  106. $template->assign_block_vars('styles.default.override', array());
  107. }
  108. else
  109. {
  110. $template->assign_block_vars('styles.default.nooverride', array());
  111. }
  112. }
  113. else
  114. {
  115. $template->assign_block_vars('styles.nodefault', array());
  116. }
  117. if($total)
  118. {
  119. $template->assign_block_vars('styles.total', array());
  120. }
  121. else
  122. {
  123. $template->assign_block_vars('styles.none', array());
  124. }
  125. }
  126. // get number of users using default style
  127. $sql = 'SELECT count(user_id) as total FROM ' . USERS_TABLE . ' WHERE user_style = NULL';
  128. $db->sql_return_on_error(true);
  129. $result = $db->sql_query($sql);
  130. $db->sql_return_on_error(false);
  131. if($result)
  132. {
  133. $total = $db->sql_fetchrow($result);
  134. $num_default = $total['total'];
  135. $num_users += $num_default;
  136. }
  137. // get number of users
  138. $sql = 'SELECT count(user_id) as total FROM ' . USERS_TABLE;
  139. $db->sql_return_on_error(true);
  140. $result = $db->sql_query($sql);
  141. $db->sql_return_on_error(false);
  142. if(!$result)
  143. {
  144. $total_users = 0;
  145. }
  146. else
  147. {
  148. $total = $db->sql_fetchrow($result);
  149. $total_users = $total['total'];
  150. }
  151. $template->assign_vars(array(
  152. 'U_SCRIPT' => 'xs_styles.' . PHP_EXT,
  153. 'NUM_DEFAULT' => $num_default
  154. )
  155. );
  156. if($total_users > $num_users)
  157. {
  158. // fix problem
  159. $sql = 'UPDATE ' . USERS_TABLE . ' SET user_style = NULL WHERE user_style NOT IN (' . implode(', ', $style_ids) . ')';
  160. $db->sql_query($sql);
  161. }
  162. // get list of users
  163. $user_style_id = request_get_var('list', 0);
  164. if(!empty($user_style_id))
  165. {
  166. $template->assign_block_vars('list_users', array());
  167. $sql = "SELECT user_id, username FROM " . USERS_TABLE . " WHERE user_style = '{$user_style_id}' ORDER BY username ASC";
  168. $db->sql_return_on_error(true);
  169. $result = $db->sql_query($sql);
  170. $db->sql_return_on_error(false);
  171. if(!$result)
  172. {
  173. xs_error('Could not get users list!', __LINE__, __FILE__);
  174. }
  175. $rowset = $db->sql_fetchrowset($result);
  176. for($i = 0; $i < sizeof($rowset); $i++)
  177. {
  178. $template->assign_block_vars('list_users.user', array(
  179. 'NUM' => $i + 1,
  180. 'ID' => $rowset[$i]['user_id'],
  181. 'NAME' => htmlspecialchars($rowset[$i]['username']),
  182. )
  183. );
  184. }
  185. }
  186. $template->set_filenames(array('body' => XS_TPL_PATH . 'styles.tpl'));
  187. $template->pparse('body');
  188. xs_exit();
  189. ?>