PageRenderTime 29ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/adm/cash_settings.php

http://github.com/MightyGorgon/icy_phoenix
PHP | 311 lines | 257 code | 40 blank | 14 comment | 28 complexity | c9bfaf56df1c00ddb7d4539436e96eff 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. * Xore (mods@xore.ca)
  14. *
  15. */
  16. define('IN_CASHMOD', true);
  17. define('IN_ICYPHOENIX', true);
  18. if (!defined('IP_ROOT_PATH')) define('IP_ROOT_PATH', './../');
  19. if (!defined('PHP_EXT')) define('PHP_EXT', substr(strrchr(__FILE__, '.'), 1));
  20. require('pagestart.' . PHP_EXT);
  21. include_once(IP_ROOT_PATH . 'includes/functions_selects.' . PHP_EXT);
  22. if (empty($config['plugins']['cash']['enabled']))
  23. {
  24. message_die(GENERAL_MESSAGE, 'PLUGIN_DISABLED');
  25. }
  26. if ($config['cash_adminnavbar'])
  27. {
  28. $navbar = 1;
  29. include('./admin_cash.' . PHP_EXT);
  30. }
  31. if (!$cash->currency_count())
  32. {
  33. message_die(GENERAL_MESSAGE, $lang['Insufficient_currencies']);
  34. }
  35. $update_set = array(
  36. CURRENCY_ENABLED => 'bool',
  37. CURRENCY_IMAGE => 'bool',
  38. 'cash_imageurl' => 'text',
  39. CURRENCY_PREFIX => 'bool',
  40. 'cash_perpost' => 'float',
  41. 'cash_postbonus' => 'float',
  42. 'cash_perreply' => 'float',
  43. 'cash_perchar' => 'float',
  44. 'cash_perthanks' => 'float',
  45. 'cash_maxearn' => 'float',
  46. 'cash_perpm' => 'float',
  47. CURRENCY_VIEWPROFILE => 'bool',
  48. CURRENCY_VIEWTOPIC => 'bool',
  49. CURRENCY_VIEWMEMBERLIST => 'bool',
  50. CURRENCY_INCLUDEQUOTES => 'bool',
  51. CURRENCY_EXCHANGEABLE => 'bool',
  52. CURRENCY_DONATE => 'bool',
  53. CURRENCY_MODEDIT => 'bool',
  54. CURRENCY_ALLOWNEG => 'bool',
  55. 'cash_allowance' => 'int',
  56. 'cash_allowanceamount' => 'float',
  57. 'cash_allowancetime' => 'int'
  58. );
  59. $table_updated = false;
  60. while ($c_cur = &$cash->currency_next($cm_i))
  61. {
  62. $varname = 'cash_' . $c_cur->id();
  63. if (isset($_POST['submit']) && isset($_POST[$varname]) && is_array($_POST[$varname]))
  64. {
  65. $updates = array();
  66. $settings = $c_cur->data('cash_settings');
  67. $settings_update = false;
  68. while (list($key, $type) = each($update_set))
  69. {
  70. if (isset($_POST[$varname][$key]))
  71. {
  72. $data = $_POST[$varname][$key];
  73. switch ($type)
  74. {
  75. case 'bool':
  76. if (($data == '0') || ($data == '1'))
  77. {
  78. $data = intval($data);
  79. $key = intval($key);
  80. if ($data)
  81. {
  82. $settings |= $key;
  83. }
  84. else
  85. {
  86. $settings &= ~$key;
  87. }
  88. $settings_update = true;
  89. }
  90. break;
  91. case 'text':
  92. $updates[] = $key . ' = \'' . $db->sql_escape($data) . '\'';
  93. break;
  94. case 'int':
  95. if (is_numeric($data))
  96. {
  97. $updates[] = $key . ' = ' . intval($data);
  98. }
  99. break;
  100. case 'float':
  101. if (is_numeric($data))
  102. {
  103. $updates[] = $key . ' = ' . $c_cur->attribute_pack($key,$data);
  104. }
  105. break;
  106. }
  107. }
  108. }
  109. if ($settings_update)
  110. {
  111. $updates[] = 'cash_settings = ' . $settings;
  112. }
  113. reset ($update_set);
  114. if (sizeof($updates) > 0)
  115. {
  116. $sql = "UPDATE " . CASH_TABLE . "
  117. SET " . implode(", ", $updates) . "
  118. WHERE cash_id = " . $c_cur->id();
  119. $db->sql_query($sql);
  120. $table_updated = true;
  121. }
  122. }
  123. }
  124. if ($table_updated)
  125. {
  126. $cash->refresh_table();
  127. $db->clear_cache('cash_');
  128. }
  129. if (isset($_POST['submit']))
  130. {
  131. $message = $lang['Cash_settings_updated'] . '<br /><br />' . sprintf($lang['Click_return_cash_settings'], '<a href="' . append_sid('cash_settings.' . PHP_EXT) . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_admin_index'], '<a href="' . append_sid('index.' . PHP_EXT . '?pane=right') . '">', '</a>');
  132. message_die(GENERAL_MESSAGE, $message);
  133. }
  134. $template->set_filenames(array('body' => ADM_TPL . 'cash_settings.tpl'));
  135. $template->assign_vars(array(
  136. 'S_CASH_SETTINGS_ACTION' => append_sid('cash_settings.' . PHP_EXT),
  137. 'NUM_COLUMNS' => ($cash->currency_count() + 1),
  138. 'L_DISPLAY' => $lang['Display'],
  139. 'L_IMPLEMENTATION' => $lang['Implementation'],
  140. 'L_ALLOWANCES' => $lang['Allowances'],
  141. 'L_ALLOWANCES_EXPLAIN' => $lang['Allowances_explain'],
  142. 'L_YES' => $lang['Yes'],
  143. 'L_NO' => $lang['No'],
  144. 'L_CASH_SETTINGS_TITLE' => $lang['Cash_settings'],
  145. 'L_CASH_SETTINGS_EXPLAIN' => $lang['Cash_settings_explain'],
  146. 'L_CASH_ENABLED' => $lang['Cash_enabled'],
  147. 'L_CASH_CURRENCY' => $lang['Cash_custom_currency'],
  148. 'L_PREFIX' => $lang['Prefix'],
  149. 'L_POSTFIX' => $lang['Postfix'],
  150. 'L_CASH_IMAGE' => $lang['Cash_image'],
  151. 'L_CASH_IMAGEURL' => $lang['Cash_imageurl'],
  152. 'L_CASH_IMAGEURL_EXPLAIN' => $lang['Cash_imageurl_explain'],
  153. 'L_CASH_CURRENCY_STYLE' => $lang['Cash_currency_style'],
  154. 'L_CASH_CURRENCY_STYLE_EXPLAIN' => $lang['Cash_currency_style_explain'],
  155. 'L_CASH_DISPLAY_USERCP' => $lang['Cash_display_usercp'],
  156. 'L_CASH_DISPLAY_USERPOST' => $lang['Cash_display_userpost'],
  157. 'L_CASH_DISPLAY_MEMBERLIST' => $lang['Cash_display_memberlist'],
  158. 'L_CASH_AMOUNT_PER_POST' => $lang['Cash_amount_per_post'],
  159. 'L_CASH_AMOUNT_POST_BONUS' => $lang['Cash_amount_post_bonus'],
  160. 'L_CASH_AMOUNT_PER_REPLY' => $lang['Cash_amount_per_reply'],
  161. 'L_CASH_AMOUNT_PER_CHARACTER' => $lang['Cash_amount_per_character'],
  162. 'L_CASH_AMOUNT_PER_THANKS' => $lang['Cash_amount_per_thanks'],
  163. 'L_CASH_MAXEARN' => $lang['Cash_maxearn'],
  164. 'L_CASH_AMOUNT_PER_PM' => $lang['Cash_amount_per_pm'],
  165. 'L_CASH_INCLUDE_QUOTES' => $lang['Cash_include_quotes'],
  166. 'L_CASH_ALLOW_EXCHANGE' => $lang['Cash_exchangeable'],
  167. 'L_CASH_ALLOW_DONATE' => $lang['Cash_allow_donate'],
  168. 'L_CASH_ALLOW_MOD_EDIT' => $lang['Cash_allow_mod_edit'],
  169. 'L_CASH_ALLOW_NEGATIVE' => $lang['Cash_allow_negative'],
  170. 'L_CASH_ALLOWANCE_ENABLED' => $lang['Cash_allowance_enabled'],
  171. 'L_CASH_ALLOWANCE_AMOUNT' => $lang['Cash_allowance_amount'],
  172. 'L_CASH_ALLOWANCE_FREQUNECY' => $lang['Cash_allownace_frequency'],
  173. 'L_CASH_ALLOWANCE_FREQUNECIES_DAY' => $lang['Cash_allownace_frequencies'][CASH_ALLOW_DAY],
  174. 'L_CASH_ALLOWANCE_FREQUNECIES_WEEK' => $lang['Cash_allownace_frequencies'][CASH_ALLOW_WEEK],
  175. 'L_CASH_ALLOWANCE_FREQUNECIES_MONTH' => $lang['Cash_allownace_frequencies'][CASH_ALLOW_MONTH],
  176. 'L_CASH_ALLOWANCE_FREQUNECIES_YEAR' => $lang['Cash_allownace_frequencies'][CASH_ALLOW_YEAR],
  177. 'L_CASH_ALLOWANCE_NEXT' => $lang['Cash_allowance_next'],
  178. 'CURRENCY_ENABLED' => CURRENCY_ENABLED,
  179. 'CURRENCY_IMAGE' => CURRENCY_IMAGE,
  180. 'CURRENCY_PREFIX' => CURRENCY_PREFIX,
  181. 'CURRENCY_VIEWPROFILE' => CURRENCY_VIEWPROFILE,
  182. 'CURRENCY_VIEWTOPIC' => CURRENCY_VIEWTOPIC,
  183. 'CURRENCY_VIEWMEMBERLIST' => CURRENCY_VIEWMEMBERLIST,
  184. 'CURRENCY_INCLUDEQUOTES' => CURRENCY_INCLUDEQUOTES,
  185. 'CURRENCY_EXCHANGEABLE' => CURRENCY_EXCHANGEABLE,
  186. 'CURRENCY_DONATE' => CURRENCY_DONATE,
  187. 'CURRENCY_MODEDIT' => CURRENCY_MODEDIT,
  188. 'CURRENCY_ALLOWNEG' => CURRENCY_ALLOWNEG,
  189. 'CURRENCY_ALLOWANCE' => CURRENCY_ALLOWANCE,
  190. 'L_SUBMIT' => $lang['Submit'],
  191. 'L_RESET' => $lang['Reset']
  192. )
  193. );
  194. while ($c_cur = &$cash->currency_next($cm_i))
  195. {
  196. $enabled_cash_yes = ($c_cur->mask(CURRENCY_ENABLED)) ? 'checked="checked"' : '';
  197. $enabled_cash_no = (!$c_cur->mask(CURRENCY_ENABLED)) ? 'checked="checked"' : '';
  198. $image_yes = ($c_cur->mask(CURRENCY_IMAGE)) ? 'checked="checked"' : '';
  199. $image_no = (!$c_cur->mask(CURRENCY_IMAGE)) ? 'checked="checked"' : '';
  200. $currency_style_before = ($c_cur->mask(CURRENCY_PREFIX)) ? 'checked="checked"' : '';
  201. $currency_style_after = (!$c_cur->mask(CURRENCY_PREFIX)) ? 'checked="checked"' : '';
  202. $include_quotes_yes = ($c_cur->mask(CURRENCY_INCLUDEQUOTES)) ? 'checked="checked"' : '';
  203. $include_quotes_no = (!$c_cur->mask(CURRENCY_INCLUDEQUOTES)) ? 'checked="checked"' : '';
  204. $display_in_profile_yes = ($c_cur->mask(CURRENCY_VIEWPROFILE)) ? 'checked="checked"' : '';
  205. $display_in_profile_no = (!$c_cur->mask(CURRENCY_VIEWPROFILE)) ? 'checked="checked"' : '';
  206. $allow_exchange_yes = ($c_cur->mask(CURRENCY_EXCHANGEABLE)) ? 'checked="checked"' : '';
  207. $allow_exchange_no = (!$c_cur->mask(CURRENCY_EXCHANGEABLE)) ? 'checked="checked"' : '';
  208. $allow_donate_yes = ($c_cur->mask(CURRENCY_DONATE)) ? 'checked="checked"' : '';
  209. $allow_donate_no = (!$c_cur->mask(CURRENCY_DONATE)) ? 'checked="checked"' : '';
  210. $allow_mod_edit_yes = ($c_cur->mask(CURRENCY_MODEDIT)) ? 'checked="checked"' : '';
  211. $allow_mod_edit_no = (!$c_cur->mask(CURRENCY_MODEDIT)) ? 'checked="checked"' : '';
  212. $allow_negative_yes = ($c_cur->mask(CURRENCY_ALLOWNEG)) ? 'checked="checked"' : '';
  213. $allow_negative_no = (!$c_cur->mask(CURRENCY_ALLOWNEG)) ? 'checked="checked"' : '';
  214. $display_in_posts_yes = ($c_cur->mask(CURRENCY_VIEWTOPIC)) ? 'checked="checked"' : '';
  215. $display_in_posts_no = (!$c_cur->mask(CURRENCY_VIEWTOPIC)) ? 'checked="checked"' : '';
  216. $display_in_memberlist_yes = ($c_cur->mask(CURRENCY_VIEWMEMBERLIST)) ? 'checked="checked"' : '';
  217. $display_in_memberlist_no = (!$c_cur->mask(CURRENCY_VIEWMEMBERLIST)) ? 'checked="checked"' : '';
  218. $allowances_enabled_yes = ((!defined(CASH_ALLOWANCES_ENABLED)) ? 'disabled="disabled" ' : '') . (($c_cur->data('cash_allowance')) ? 'checked="checked"' : '');
  219. $allowances_enabled_no = (!$c_cur->data('cash_allowance')) ? 'checked="checked"' : '';
  220. $allowances_freq_day = ($c_cur->data('cash_allowancetime') == CASH_ALLOW_DAY ) ? 'checked="checked"' : '';
  221. $allowances_freq_week = ($c_cur->data('cash_allowancetime') == CASH_ALLOW_WEEK ) ? 'checked="checked"' : '';
  222. $allowances_freq_month = ($c_cur->data('cash_allowancetime') == CASH_ALLOW_MONTH) ? 'checked="checked"' : '';
  223. $allowances_freq_year = ($c_cur->data('cash_allowancetime') == CASH_ALLOW_YEAR ) ? 'checked="checked"' : '';
  224. $allowances_next = $c_cur->data('cash_allowancenext');
  225. $template->assign_block_vars('cashrow', array(
  226. 'CASH_INDEX' => $c_cur->id(),
  227. 'ENABLED_CASH_YES' => $enabled_cash_yes,
  228. 'ENABLED_CASH_NO' => $enabled_cash_no,
  229. 'CURRENCY' => $c_cur->name(),
  230. 'IMAGE_YES' => $image_yes,
  231. 'IMAGE_NO' => $image_no,
  232. 'IMAGEURL' => $c_cur->data('cash_imageurl'),
  233. 'CURRENCY_STYLE_BEFORE' => $currency_style_before,
  234. 'CURRENCY_STYLE_AFTER' => $currency_style_after,
  235. 'AMOUNT_PER_POST' => $c_cur->perpost(),
  236. 'AMOUNT_POST_BONUS' => $c_cur->postbonus(),
  237. 'AMOUNT_PER_REPLY' => $c_cur->perreply(),
  238. 'AMOUNT_PER_CHAR' => $c_cur->perchar(),
  239. 'AMOUNT_PER_THANKS' => $c_cur->perthanks(),
  240. 'MAXEARN' => $c_cur->maxearn(),
  241. 'AMOUNT_PER_PM' => $c_cur->perpm(),
  242. 'INCLUDE_QUOTES_YES' => $include_quotes_yes,
  243. 'INCLUDE_QUOTES_NO' => $include_quotes_no,
  244. 'DISPLAY_IN_PROFILE_YES' => $display_in_profile_yes,
  245. 'DISPLAY_IN_PROFILE_NO' => $display_in_profile_no,
  246. 'ALLOW_EXCHANGE_YES' => $allow_exchange_yes,
  247. 'ALLOW_EXCHANGE_NO' => $allow_exchange_no,
  248. 'ALLOW_DONATE_YES' => $allow_donate_yes,
  249. 'ALLOW_DONATE_NO' => $allow_donate_no,
  250. 'ALLOW_MOD_EDIT_YES' => $allow_mod_edit_yes,
  251. 'ALLOW_MOD_EDIT_NO' => $allow_mod_edit_no,
  252. 'ALLOW_NEGATIVE_YES' => $allow_negative_yes,
  253. 'ALLOW_NEGATIVE_NO' => $allow_negative_no,
  254. 'DISPLAY_IN_POSTS_YES' => $display_in_posts_yes,
  255. 'DISPLAY_IN_POSTS_NO' => $display_in_posts_no,
  256. 'DISPLAY_IN_MEMBERLIST_YES' => $display_in_memberlist_yes,
  257. 'DISPLAY_IN_MEMBERLIST_NO' => $display_in_memberlist_no,
  258. 'ALLOWANCES_ENABLED_YES' => $allowances_enabled_yes,
  259. 'ALLOWANCES_ENABLED_NO' => $allowances_enabled_no,
  260. 'ALLOWANCE_AMOUNT' => $c_cur->allowanceamount(),
  261. 'ALLOWANCES_FREQ_DAY' => $allowances_freq_day,
  262. 'ALLOWANCES_FREQ_WEEK' => $allowances_freq_week,
  263. 'ALLOWANCES_FREQ_MONTH' => $allowances_freq_month,
  264. 'ALLOWANCES_FREQ_YEAR' => $allowances_freq_year,
  265. 'ALLOWANCE_NEXT' => $allowances_next
  266. )
  267. );
  268. }
  269. $template->pparse('body');
  270. include(IP_ROOT_PATH . ADM . '/page_footer_admin.' . PHP_EXT);
  271. ?>