Advertisement
Guest User

ASDDSASD

a guest
Aug 4th, 2014
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 70.44 KB | None | 0 0
  1. <?php
  2.  
  3. /*
  4. * OUGC Awards plugin
  5. * Author: Omar Gonzalez.
  6. * Copyright: 2012 Omar Gonzalez, All Rights Reserved
  7. *
  8. * Website: http://www.udezain.com.ar
  9. *
  10. * This plugin will extend your forum with a powerful Awards System.
  11. *
  12. **************************************************​**********
  13.  
  14. *
  15. * This plugin is under uDezain free plugins license. In short:
  16. * ==================================================​==========
  17. * 1.- You may edit whatever you want to fit your needs without premission.
  18. * 2.- You MUST NOT redistribute this or any modified version of this plugin by any means without the author written permission.
  19. * 3.- You MUST NOT remove any license comments in any file that comes with this plugin pack.
  20. *
  21. * By downloading / installing / using this plugin you accept these conditions and the full attached license.
  22. * If no license file was attached within this plugin pack, you can read it in the following places:
  23. * 1.- http://www.udezain.com.ar/eula-free.txt
  24. * 2.- http://www.udezain.com.ar/eula-free.php
  25. **************************************************​**********/
  26.  
  27. // Necessary plugin information for the ACP plugin manager.
  28. function ougc_awards_plugin_info()
  29. {
  30. global $lang;
  31. ougc_awards_lang_load();
  32.  
  33. return array(
  34. 'name' => "OUGC Awards",
  35. 'description' => $lang->ougc_awards_plugin_d,
  36. 'website' => 'http://udezain.com.ar/',
  37. 'author' => 'Omar Gonzalez',
  38. 'authorsite' => 'http://udezain.com.ar/',
  39. 'version' => '1.0.7',
  40. 'compatibility' => '16*',
  41. 'guid' => '8172205c3142e4295ed5ed3a7e8f40d6'
  42. );
  43. }
  44.  
  45. // Activate the plugin.
  46. function ougc_awards_plugin_activate()
  47. {
  48. global $lang, $db;
  49. ougc_awards_lang_load();
  50.  
  51. // Run deactivate function.
  52. ougc_awards_plugin_deactivate();
  53.  
  54. // Insert new templates.
  55. ougc_awards_add_template('modcp_ougc_awards_m​anage', '<form action="modcp.php" method="post">
  56. <input type="hidden" name="action" value="awards" />
  57. <input type="hidden" name="manage" value="{$mybb->input[\'manage\']}" />
  58. <input type="hidden" name="aid" value="{$mybb->input[\'aid\']}" />
  59. <table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
  60. <tr>
  61. <td class="thead" colspan="2">
  62. <strong>{$lang->ougc_awards_modcp_title_give}</strong>
  63. </td>
  64. </tr>
  65. <tr>
  66. <td class="trow1" width="25%"><strong>{$lang->ougc_awards_modcp_username}:</strong></td>
  67. <td class="trow1" width="75%"><input type="text" class="textbox" name="username" id="username" value="{$mybb->input[\'username\']}" size="25" /></td>
  68. </tr>
  69. {$reason}
  70. </table>
  71. <br />
  72. <div align="center">
  73. <input type="submit" class="button" value="{$lang->ougc_awards_modcp_give}" />
  74. </div>
  75. </form>
  76. <script type="text/javascript" src="{$mybb->settings[\'bburl\']}/jscripts/autocomplete.js?ver=1400"></script>
  77. <script type="text/javascript">
  78. <!--
  79. if(use_xmlhttprequest == "1")
  80. {
  81. new autoComplete("username", "xmlhttp.php?action=get_users", {valueSpan: "username"});
  82. }
  83. // -->
  84. </script>', 1607);
  85. ougc_awards_add_template('modcp_ougc_awards_n​av', '<tr><td class="trow1 smalltext"><a href="modcp.php?action=awards" class="modcp_nav_item" style="background: url(\'images/ougc_awards/icon.png\') no-repeat left center;">{$lang->ougc_awards_modcp_nav}</a></td></tr>', 1607);
  86. ougc_awards_add_template('modcp_ougc_awards',​ '<html>
  87. <head>
  88. <title>{$mybb->settings[\'bbname\']} - {$lang->ougc_awards_modcp_nav}</title>
  89. {$headerinclude}
  90. </head>
  91. <body>
  92. {$header}
  93. <table width="100%" border="0" align="center">
  94. <tr>
  95. {$modcp_nav}
  96. <td valign="top">
  97. {$errors}
  98. {$content}
  99. </td>
  100. </tr>
  101. </table>
  102. {$footer}
  103. </body>
  104. </html>', 1607);
  105. ougc_awards_add_template('modcp_ougc_awards_l​ist_empty', '<tr>
  106. <td class="trow1" colspan="4" align="center">
  107. {$lang->ougc_awards_modcp_list_empty}
  108. </td>
  109. </tr>', 1607);
  110. ougc_awards_add_template('modcp_ougc_awards_l​ist', '<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
  111. <tr>
  112. <td class="thead" colspan="4">
  113. <a href="{$mybb->settings[\'bburl\']}/modcp.php?action=awards&amp;manage=update_cache" style="float:right;" class="smalltext">({$lang->ougc_awards_modcp_cache})</a>
  114. <strong>{$lang->ougc_awards_modcp_nav}</strong>
  115. </td>
  116. </tr>
  117. <tr>
  118. <td class="tcat smalltext" colspan="4">
  119. <strong>{$lang->ougc_awards_modcp_list_desc}</strong>
  120. </td>
  121. </tr>
  122. {$awards}
  123. </table>
  124. <span class="smalltext">{$lang->ougc_awards_modcp_list_note}</span>', 1607);
  125. ougc_awards_add_template('modcp_ougc_awards_l​ist_award', '<tr>
  126. <td class="trow1" align="center" width="1%"><a href="{$mybb->settings[\'bburl\']}/awards.php?view={$award[\'aid\']}" title="{$award[\'name\']}"><img src="{$award[\'image\']}" alt="{$award[\'name\']}" /></a></td>
  127. <td class="trow1" width="15%">{$award[\'name\']}</td>
  128. <td class="trow1">{$award[\'description\']}</td>
  129. <td class="trow1" align="center" width="15%">[<a href="{$mybb->settings[\'bburl\']}/modcp.php?action=awards&amp;manage=give&amp;aid={$award[\'aid\']}">{$lang->ougc_awards_modcp_give}</a>&nbsp;|&nbsp;<a href="{$mybb->settings[\'bburl\']}/modcp.php?action=awards&amp;manage=revoke&amp;aid={$award[\'aid\']}">{$lang->ougc_awards_modcp_revoke}</a>]</td>
  130. </tr>', 1607);
  131. ougc_awards_add_template('modcp_ougc_awards_m​anage_reason', '<tr>
  132. <td class="trow2" width="25%"><strong>{$lang->ougc_awards_modcp_reason}:</strong></td>
  133. <td class="trow2" width="75%"><textarea type="text" class="textarea" name="reason" id="reason" rows="4" cols="40">{$mybb->input[\'reason\']}</textarea></td>
  134. </tr>', 1607);
  135. ougc_awards_add_template('postbit_ougc_awards​', '{$br}<a href="{$mybb->settings[\'bburl\']}/awards.php?view={$award[\'aid\']}" title="{$award[\'name\']}"><img src="{$award[\'image\']}" alt="{$award[\'name\']}" /></a><br />', 1607);
  136. ougc_awards_add_template('member_profile_ougc​_awards', '<br />
  137. <table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
  138. <tr>
  139. <td class="thead" colspan="2"><a style="float:right;" href="{$mybb->settings[\'bburl\']}/awards.php?user={$memprofile[\'uid\']}">{$lang->ougc_awards_profile_viewall}</a><strong>{$lang->ougc_awards_profile_title}</strong></td>
  140. </tr>
  141. {$awards}
  142. </table>
  143. {$multipage}', 1607);
  144. ougc_awards_add_template('member_profile_ougc​_awards_row', '<tr>
  145. <td class="tcat" rowspan="2" width="1">
  146. <a href="{$mybb->settings[\'bburl\']}/awards.php?view={$award[\'aid\']}" title="{$award[\'name\']}"><img src="{$award[\'image\']}" alt="{$award[\'name\']}" /></a>
  147. </td>
  148. <td class="{$trow} smalltext" >
  149. <span style="float:right;">{$award[\'date\']}</span> {$award[\'name\']}
  150. </td>
  151. </tr>
  152. <tr>
  153. <td class="{$trow}" >
  154. {$award[\'reason\']}
  155. </td>
  156. </tr>', 1607);
  157. ougc_awards_add_template('member_profile_ougc​_awards_row_empty', '<tr>
  158. <td class="trow1" colspan="2">
  159. {$lang->ougc_awards_profile_empty}
  160. </td>
  161. </tr>', 1607);
  162. ougc_awards_add_template('ougc_awards_page', '<html>
  163. <head>
  164. <title>{$mybb->settings[\'bbname\']} - {$lang->ougc_awards_page_title}</title>
  165. {$headerinclude}
  166. </head>
  167. <body>
  168. {$header}
  169. {$content}
  170. {$footer}
  171. </body>
  172. </html>', 1607);
  173. ougc_awards_add_template('ougc_awards_page_li​st', '<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
  174. <tr>
  175. <td class="thead" colspan="4">
  176. <strong>{$lang->ougc_awards_page_title}</strong>
  177. </td>
  178. </tr>
  179. <tr>
  180. <td class="tcat smalltext" align="center" width="1%"><strong>{$lang->ougc_awards_page_list_award}</strong></td>
  181. <td class="tcat smalltext" width="15%"><strong>{$lang->ougc_awards_page_list_name}</strong></td>
  182. <td class="tcat smalltext"><strong>{$lang->ougc_awards_page_list_description}</strong></td>
  183. </tr>
  184. {$award_list}
  185. </table>', 1607);
  186. ougc_awards_add_template('ougc_awards_page_li​st_award', '<tr>
  187. <td class="{$trow}" align="center"><a href="{$mybb->settings[\'bburl\']}/awards.php?view={$award[\'aid\']}" title="{$award[\'name\']}"><img src="{$award[\'image\']}" alt="{$award[\'name\']}" /></a></td>
  188. <td class="{$trow}"><a href="{$mybb->settings[\'bburl\']}/awards.php?view={$award[\'aid\']}" title="{$award[\'name\']}">{$award[\'name\']}</a></td>
  189. <td class="{$trow}">{$award[\'description\']}</td>
  190. </tr>', 1607);
  191. ougc_awards_add_template('ougc_awards_page_li​st_empty', '<tr>
  192. <td class="trow1" colspan="4" align="center">
  193. {$lang->ougc_awards_page_list_empty}
  194. </td>
  195. </tr>', 1607);
  196. ougc_awards_add_template('ougc_awards_page_us​er', '<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
  197. <tr>
  198. <td class="thead" colspan="4">
  199. <strong>{$user[\'username\']}</strong>
  200. </td>
  201. </tr>
  202. <tr>
  203. <td class="tcat smalltext" align="center" width="1%"><strong>{$lang->ougc_awards_page_list_award}</strong></td>
  204. <td class="tcat smalltext"><strong>{$lang->ougc_awards_modcp_reason}</strong></td>
  205. <td class="tcat smalltext" align="center" width="20%"><strong>{$lang->ougc_awards_page_view_date}</strong></td>
  206. </tr>
  207. {$awards_list}
  208. </table>', 1607);
  209. ougc_awards_add_template('ougc_awards_page_us​er_award', '<tr>
  210. <td class="{$trow}" align="center"><a href="{$mybb->settings[\'bburl\']}/awards.php?view={$award[\'aid\']}" title="{$award[\'name\']}"><img src="{$award[\'image\']}" alt="{$award[\'name\']}" /></a></td>
  211. <td class="{$trow}">{$award[\'reason\']}</td>
  212. <td class="{$trow}" align="center">{$award[\'date\']}</td>
  213. </tr>', 1607);
  214. ougc_awards_add_template('ougc_awards_page_us​er_empty', '<tr>
  215. <td class="trow1" colspan="3" align="center">{$lang->ougc_awards_page_list_empty}</td>
  216. </tr>', 1607);
  217. ougc_awards_add_template('ougc_awards_page_vi​ew', '<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
  218. <tr>
  219. <td class="thead" colspan="4">
  220. <strong>{$award[\'name\']}</strong>
  221. </td>
  222. </tr>
  223. <tr>
  224. <td class="tcat smalltext" width="15%"><strong>{$lang->ougc_awards_modcp_username}</strong></td>
  225. <td class="tcat smalltext"><strong>{$lang->ougc_awards_modcp_reason}</strong></td>
  226. <td class="tcat smalltext" align="center" width="20%"><strong>{$lang->ougc_awards_page_view_date}</strong></td>
  227. </tr>
  228. {$users_list}
  229. </table>', 1607);
  230. ougc_awards_add_template('ougc_awards_page_vi​ew_empty', '<tr>
  231. <td class="trow1" colspan="3" align="center">{$lang->ougc_awards_page_view_empty}</td>
  232. </tr>', 1607);
  233. ougc_awards_add_template('ougc_awards_page_vi​ew_row', '<tr>
  234. <td class="{$trow}">{$gived[\'username\']}</td>
  235. <td class="{$trow}">{$gived[\'reason\']}</td>
  236. <td class="{$trow}" align="center">{$gived[\'date\']}</td>
  237. </tr>', 1607);
  238.  
  239. // Modify some templates.
  240. require_once MYBB_ROOT.'/inc/adminfunctions_templates.php';
  241. find_replace_templatesets('postbit', '#'.preg_quote('{$post[\'user_details\']}').'#', '{$post[\'user_details\']}{$post[\'ougc_awards\']}');
  242. find_replace_templatesets('postbit_classic', '#'.preg_quote('{$post[\'user_details\']}').'#', '{$post[\'user_details\']}{$post[\'ougc_awards\']}');
  243. find_replace_templatesets('member_profile', '#'.preg_quote('{$signature}').'#', '{$signature}{$memprofile[\'ougc_awards\']}');
  244. find_replace_templatesets('modcp_nav', '#'.preg_quote('mcp_nav_modlogs}</a></td></tr>').'#', 'mcp_nav_modlogs}</a></td></tr><!--OUGC_AWARDS-->');
  245.  
  246. // Add our setting group.
  247. $gid = $db->insert_query('settinggroups',
  248. array(
  249. 'name' => 'ougc_awards',
  250. 'title' => $db->escape_string($lang->ougc_awards_settinggroup),
  251. 'description' => $db->escape_string($lang->ougc_awards_settinggroup_d),
  252. 'disporder' => 9,
  253. 'isdefault' => 'no'
  254. )
  255. );
  256. ougc_awards_add_setting('power', 'onoff', 1, 1, $gid);
  257. ougc_awards_add_setting('postbit', 'text', 4, 2, $gid);
  258. ougc_awards_add_setting('profile', 'text', 4, 4, $gid);
  259. ougc_awards_add_setting('hidemcp', 'yesno', 1, 5, $gid);
  260. ougc_awards_add_setting('moderators', 'text', '', 6, $gid);
  261. ougc_awards_add_setting('multipage', 'yesno', 0, 7, $gid);
  262. ougc_awards_add_setting('pmuser', 'yesno', 0, 8, $gid);
  263. ougc_awards_add_setting('pmuserid', 'text', '-1', 9, $gid);
  264. rebuild_settings();
  265. }
  266.  
  267. // Deactivate the plugin.
  268. function ougc_awards_plugin_deactivate()
  269. {
  270. global $db;
  271.  
  272. // Delete any old templates.
  273. $db->delete_query('templates', "title IN('modcp_ougc_awards', 'modcp_ougc_awards_manage', 'modcp_ougc_awards_nav', 'modcp_ougc_awards_list', 'modcp_ougc_awards_list_empty', 'modcp_ougc_awards_list_award', 'modcp_ougc_awards_manage_reason', 'postbit_ougc_awards', 'member_profile_ougc_awards_row_empty', 'member_profile_ougc_awards_row', 'member_profile_ougc_awards', 'ougc_awards_page', 'ougc_awards_page_list', 'ougc_awards_page_list_award', 'ougc_awards_page_list_empty', 'ougc_awards_page_user', 'ougc_awards_page_user_award', 'ougc_awards_page_user_empty', 'ougc_awards_page_view', 'ougc_awards_page_view_empty', 'ougc_awards_page_view_row') AND sid='-2'");
  274.  
  275. // Remove added variables.
  276. require_once MYBB_ROOT.'/inc/adminfunctions_templates.php';
  277. find_replace_templatesets('postbit', '#'.preg_quote('{$post[\'ougc_awards\']}').'#', '', 0);
  278. find_replace_templatesets('postbit_classic', '#'.preg_quote('{$post[\'ougc_awards\']}').'#', '', 0);
  279. find_replace_templatesets('member_profile', '#'.preg_quote('{$memprofile[\'ougc_awards\']}').'#', '', 0);
  280. find_replace_templatesets('modcp_nav', '#'.preg_quote('<!--OUGC_AWARDS-->').'#', '', 0);
  281.  
  282. // Delete setting group.
  283. $q = $db->simple_select('settinggroups', 'gid', 'name="ougc_awards"');
  284. $gid = $db->fetch_field($q, 'gid');
  285. if($gid)
  286. {
  287. $db->delete_query('settings', "gid='{$gid}'");
  288. $db->delete_query('settinggroups', "gid='{$gid}'");
  289. rebuild_settings();
  290. }
  291. }
  292.  
  293. // Install the plugin.
  294. function ougc_awards_plugin_install()
  295. {
  296. global $db;
  297.  
  298. // Run uninstall function
  299. ougc_awards_plugin_uninstall();
  300.  
  301. $collation = $db->build_create_table_collation();
  302. // Create our tables if none exists.
  303. if(!$db->table_exists('ougc_awards'))
  304. {
  305. $db->write_query("CREATE TABLE `".TABLE_PREFIX."ougc_awards` (
  306. `aid` bigint(30) UNSIGNED NOT NULL AUTO_INCREMENT,
  307. `name` varchar(100) NOT NULL DEFAULT '',
  308. `description` varchar(255) NOT NULL DEFAULT '',
  309. `image` varchar(255) NOT NULL DEFAULT '',
  310. `visible` smallint(1) NOT NULL DEFAULT '1',
  311. `users` text NOT NULL DEFAULT '',
  312. `pm` varchar(255) NOT NULL DEFAULT '',
  313. `type` smallint(1) NOT NULL DEFAULT '0',
  314. PRIMARY KEY (`aid`)
  315. ) ENGINE=MyISAM{$collation};"
  316. );
  317. }
  318. if(!$db->table_exists('ougc_awards_users'))
  319. {
  320. $db->write_query("CREATE TABLE `".TABLE_PREFIX."ougc_awards_users` (
  321. `gid` bigint(30) UNSIGNED NOT NULL AUTO_INCREMENT,
  322. `uid` bigint(30) NOT NULL DEFAULT '0',
  323. `aid` bigint(30) NOT NULL DEFAULT '0',
  324. `reason` varchar(255) NOT NULL DEFAULT '',
  325. `date` int(10) NOT NULL DEFAULT '0',
  326. PRIMARY KEY (`gid`)
  327. ) ENGINE=MyISAM{$collation};"
  328. );
  329. }
  330.  
  331. // Insert template group.
  332. $db->insert_query("templategroups",
  333. array(
  334. 'prefix' => 'ougc_awards',
  335. 'title' => 'OUGC Awards'
  336. )
  337. );
  338. }
  339.  
  340. // Is this plugin installed?
  341. function ougc_awards_plugin_is_installed()
  342. {
  343. global $db;
  344. if($db->table_exists('ougc_awards') && $db->table_exists('ougc_awards_users'))
  345. {
  346. return true;
  347. }
  348. return false;
  349. }
  350.  
  351. // Uninstall the plugin.
  352. function ougc_awards_plugin_uninstall()
  353. {
  354. global $db;
  355.  
  356. // Delete our tables if none exists.
  357. if($db->table_exists('ougc_awards'))
  358. {
  359. $db->drop_table('ougc_awards');
  360. }
  361. if($db->table_exists('ougc_awards_users'))
  362. {
  363. $db->drop_table('ougc_awards_users');
  364. }
  365.  
  366. // Insert template group.
  367. $db->delete_query("templategroups", "prefix='ougc_awards'");
  368.  
  369. // Delete the cache.
  370. $db->delete_query('datacache', "title='ougc_awards'");
  371. }
  372.  
  373. //\\ ACP SECTION //\\
  374. // Insert our menu at users section.
  375. function ougc_awards_menu(&$sub_menu)
  376. {
  377. global $lang;
  378. ougc_awards_lang_load();
  379.  
  380. $sub_menu[] = array('id' => 'ougc_awards', 'title' => $lang->ougc_awards_acp_nav, 'link' => 'index.php?module=user-ougc_awards');
  381. }
  382.  
  383. // Insert our action handler in users section awards page.
  384. function ougc_awards_action_handler(&$action)
  385. {
  386. $action['ougc_awards'] = array('active' => 'ougc_awards', 'file' => 'ougc_awards');
  387. }
  388.  
  389. // Insert our plugin into the admin permissions page.
  390. function ougc_awards_admin_permissions(&$admin_permissions)
  391. {
  392. global $lang;
  393.  
  394. $admin_permissions['ougc_awards'] = $lang->ougc_awards_acp_permissions;
  395. }
  396.  
  397. // Actual ACP page.
  398. function ougc_awards_admin_load()
  399. {
  400. global $run_module, $action_file;
  401.  
  402. if($run_module == 'user' && $action_file == 'ougc_awards')
  403. {
  404. global $mybb, $db, $lang, $page;
  405.  
  406. $page->add_breadcrumb_item($lang->ougc_awards_acp_nav, 'index.php?module=user-ougc_awards');
  407. $page->output_header($lang->ougc_awards_acp_nav);
  408. $mybb->input['aid'] = intval($mybb->input['aid']);
  409. $mybb->input['uid'] = intval($mybb->input['uid']);
  410.  
  411. if(!$mybb->input['action'] || in_array($mybb->input['action'], array('awards', 'add', 'edit', 'give', 'revoke', 'users', 'user')))
  412. {
  413. $sub_tabs['ougc_awards_view'] = array(
  414. 'title' => $lang->ougc_awards_tab_view,
  415. 'link' => 'index.php?module=user-ougc_awards',
  416. 'description' => $lang->ougc_awards_tab_view_d
  417. );
  418. $sub_tabs['ougc_awards_add'] = array(
  419. 'title' => $lang->ougc_awards_tab_add,
  420. 'link' => 'index.php?module=user-ougc_awards&amp;action=add',
  421. 'description' => $lang->ougc_awards_tab_add_d
  422. );
  423. if($mybb->input['action'] == 'edit')
  424. {
  425. $sub_tabs['ougc_awards_edit'] = array(
  426. 'title' => $lang->ougc_awards_tab_edit,
  427. 'link' => 'index.php?module=user-ougc_awards&amp;action=edit&amp;aid='.$mybb->input['aid'],
  428. 'description' => $lang->ougc_awards_tab_edit_d
  429. );
  430. }
  431. elseif($mybb->input['action'] == 'give')
  432. {
  433. $sub_tabs['ougc_awards_give'] = array(
  434. 'title' => $lang->ougc_awards_tab_give,
  435. 'link' => 'index.php?module=user-ougc_awards&amp;action=give&amp;aid='.$mybb->input['aid'],
  436. 'description' => $lang->ougc_awards_tab_give_d
  437. );
  438. }
  439. elseif($mybb->input['action'] == 'revoke')
  440. {
  441. $sub_tabs['ougc_awards_revoke'] = array(
  442. 'title' => $lang->ougc_awards_tab_revoke,
  443. 'link' => 'index.php?module=user-ougc_awards&amp;action=revoke&amp;aid='.$mybb->input['aid'],
  444. 'description' => $lang->ougc_awards_tab_revoke_d
  445. );
  446. }
  447. elseif($mybb->input['action'] == 'users')
  448. {
  449. $sub_tabs['ougc_awards_users'] = array(
  450. 'title' => $lang->ougc_awards_tab_users,
  451. 'link' => 'index.php?module=user-ougc_awards&amp;action=users&amp;aid='.$mybb->input['aid'],
  452. 'description' => $lang->ougc_awards_tab_users_d
  453. );
  454. }
  455. elseif($mybb->input['action'] == 'user')
  456. {
  457. $sub_tabs['ougc_awards_edit_user'] = array(
  458. 'title' => $lang->ougc_awards_tab_edit_user,
  459. 'link' => 'index.php?module=user-ougc_awards&amp;action=user&amp;aid='.$mybb->input['aid'].'&amp;uid='.$mybb->input['uid'],
  460. 'description' => $lang->ougc_awards_tab_edit_user_d
  461. );
  462. }
  463. $sub_tabs['ougc_awards_cache'] = array(
  464. 'title' => $lang->ougc_awards_tab_cache,
  465. 'link' => 'index.php?module=user-ougc_awards&amp;action=rebuilt_cache',
  466. 'description' => $lang->ougc_awards_tab_cache_d
  467. );
  468. }
  469.  
  470. if(!$mybb->input['action'] || $mybb->input['action'] == 'awards')
  471. {
  472. $page->output_nav_tabs($sub_tabs, 'ougc_awards_view');
  473.  
  474. $table = new Table;
  475. $table->construct_header($lang->ougc_awards_view_image, array('width' => '1%'));
  476. $table->construct_header($lang->ougc_awards_form_name, array('width' => '19%'));
  477. $table->construct_header($lang->ougc_awards_form_desc, array('width' => '45%'));
  478. $table->construct_header($lang->ougc_awards_form_visible, array('width' => '10%', 'class' => 'align_center'));
  479. $table->construct_header($lang->ougc_awards_view_actions, array('width' => '15%', 'class' => 'align_center'));
  480.  
  481. $query = $db->simple_select('ougc_awards');
  482. if($db->num_rows($query) < 1)
  483. {
  484. $table->construct_cell('<div align="center">'.$lang->ougc_awards_view_empty.'</div>', array('colspan' => 6));
  485. $table->construct_row();
  486. }
  487. else
  488. {
  489. while($award = $db->fetch_array($query))
  490. {
  491. $table->construct_cell('<img src="'.ougc_awards_get_icon($award['image']).'" />', array('class' => 'align_center'));
  492. $table->construct_cell(htmlspecialchars_uni($award['name']));
  493. $table->construct_cell(htmlspecialchars_uni($award['description']));
  494. $table->construct_cell('<img src="../inc/plugins/ougc_awards/bullet_'.(!$award['visible'] ? 'red' : 'green').'.png" alt="" title="'.(!$award['visible'] ? $lang->ougc_awards_form_hidden : $lang->ougc_awards_form_visible).'" />', array('class' => 'align_center'));
  495.  
  496. $popup = new PopupMenu("award_{$award['aid']}", $lang->options);
  497. $popup->add_item($lang->ougc_awards_tab_give, "index.php?module=user-ougc_awards&amp;action=give&amp;aid={$award['aid']}");
  498. $popup->add_item($lang->ougc_awards_tab_revoke, "index.php?module=user-ougc_awards&amp;action=revoke&amp;aid={$award['aid']}");
  499. $popup->add_item($lang->ougc_awards_tab_users, "index.php?module=user-ougc_awards&amp;action=users&amp;aid={$award['aid']}");
  500. $popup->add_item($lang->ougc_awards_tab_edit, "index.php?module=user-ougc_awards&amp;action=edit&amp;aid={$award['aid']}");
  501. $popup->add_item($lang->ougc_awards_tab_delete, "index.php?module=user-ougc_awards&amp;action=delete&amp;aid={$award['aid']}");
  502. $table->construct_cell($popup->fetch(), array('class' => 'align_center'));
  503.  
  504. $table->construct_row();
  505. }
  506. }
  507. $db->free_result($query);
  508. $table->output($lang->ougc_awards_tab_view_d);
  509. }
  510. elseif($mybb->input['action'] == 'add')
  511. {
  512. if($mybb->request_method == 'post')
  513. {
  514. if($mybb->input['name'] == '')
  515. {
  516. flash_message($lang->ougc_awards_error_add, 'error');
  517. admin_redirect("index.php?module=user-ougc_awards&amp;action=add");
  518. }
  519. $insert_data = array(
  520. 'name' => $mybb->input['name'],
  521. 'description' => $mybb->input['description'],
  522. 'image' => $mybb->input['image'],
  523. 'visible' => $mybb->input['visible'],
  524. 'pm' => $mybb->input['pm'],
  525. 'type' => $mybb->input['type']
  526. );
  527. log_admin_action($lang->ougc_awards_form_name.': '.$insert_data['name']);
  528. ougc_awards_add_award($insert_data);
  529. flash_message($lang->ougc_awards_success_add, 'success');
  530. admin_redirect("index.php?module=user-ougc_awards");
  531. }
  532.  
  533. $page->output_nav_tabs($sub_tabs, 'ougc_awards_add');
  534. $form = new Form("index.php?module=user-ougc_awards&amp;action=add", "post");
  535. $form_container = new FormContainer($lang->ougc_awards_form_add);
  536.  
  537. $form_container->output_row($lang->ougc_awards_form_name." <em>*</em>", $lang->ougc_awards_form_name_d, $form->generate_text_box('name'));
  538. $form_container->output_row($lang->ougc_awards_form_desc, $lang->ougc_awards_form_desc_d, $form->generate_text_box('description'));
  539. $form_container->output_row($lang->ougc_awards_form_image, $lang->ougc_awards_form_image_d, $form->generate_text_box('image'));
  540. $form_container->output_row($lang->ougc_awards_form_visible, $lang->ougc_awards_form_visible_d, $form->generate_yes_no_radio('visible'));
  541. $form_container->output_row($lang->ougc_awards_form_pm, $lang->ougc_awards_form_pm_d, $form->generate_text_area('pm', '', array('rows' => 8, 'style' => 'width:80%;')));
  542. $types = array(
  543. 0 => $lang->ougc_awards_form_type_0,
  544. 1 => $lang->ougc_awards_form_type_1,
  545. 2 => $lang->ougc_awards_form_type_2
  546. );
  547. $form_container->output_row($lang->ougc_awards_form_type, $lang->ougc_awards_form_type_d, $form->generate_select_box('type', $types));
  548.  
  549. $form_container->end();
  550. $buttons = array();
  551. $buttons[] = $form->generate_submit_button($lang->ougc_awards_button_submit);
  552. $buttons[] = $form->generate_reset_button($lang->ougc_awards_button_reset);
  553. $form->output_submit_wrapper($buttons);
  554. $form->end();
  555. }
  556. elseif($mybb->input['action'] == 'edit')
  557. {
  558. if(!($award = ougc_awards_get_award($mybb->input['aid'])))
  559. {
  560. flash_message($lang->ougc_awards_error_edit, 'error');
  561. admin_redirect("index.php?module=user-ougc_awards");
  562. }
  563. if($mybb->request_method == 'post')
  564. {
  565. if($mybb->input['name'] == '')
  566. {
  567. flash_message($lang->ougc_awards_error_edit, 'error');
  568. admin_redirect("index.php?module=user-ougc_awards&amp;action=edit&amp;aid={$award['aid']}");
  569. }
  570. $update_data = array(
  571. 'name' => $mybb->input['name'],
  572. 'description' => $mybb->input['description'],
  573. 'image' => $mybb->input['image'],
  574. 'visible' => $mybb->input['visible'],
  575. 'pm' => $mybb->input['pm'],
  576. 'type' => $mybb->input['type']
  577. );
  578. log_admin_action($lang->ougc_awards_form_name.': '.$update_data['name'], $award['aid']);
  579. ougc_awards_update_award($award['aid'], $update_data);
  580. ougc_awards_update_cache();
  581. flash_message($lang->ougc_awards_success_edit, 'success');
  582. admin_redirect("index.php?module=user-ougc_awards");
  583. }
  584.  
  585. $page->output_nav_tabs($sub_tabs, 'ougc_awards_edit');
  586. $form = new Form("index.php?module=user-ougc_awards&amp;action=edit&amp;aid={$award['aid']}", "post");
  587. $form_container = new FormContainer($lang->ougc_awards_tab_edit_d);
  588.  
  589. $form_container->output_row($lang->ougc_awards_form_name." <em>*</em>", $lang->ougc_awards_form_name_d, $form->generate_text_box('name', $award['name']));
  590. $form_container->output_row($lang->ougc_awards_form_desc, $lang->ougc_awards_form_desc_d, $form->generate_text_box('description', $award['description']));
  591. $form_container->output_row($lang->ougc_awards_form_image, $lang->ougc_awards_form_image_d, $form->generate_text_box('image', htmlspecialchars_uni($award['image'])));
  592. $form_container->output_row($lang->ougc_awards_form_visible, $lang->ougc_awards_form_visible_d, $form->generate_yes_no_radio('visible', intval($award['visible'])));
  593. $form_container->output_row($lang->ougc_awards_form_pm, $lang->ougc_awards_form_pm_d, $form->generate_text_area('pm', htmlspecialchars_uni($award['pm']), array('rows' => 8, 'style' => 'width:80%;')));
  594. $types = array(
  595. 0 => $lang->ougc_awards_form_type_0,
  596. 1 => $lang->ougc_awards_form_type_1,
  597. 2 => $lang->ougc_awards_form_type_2
  598. );
  599. $form_container->output_row($lang->ougc_awards_form_type, $lang->ougc_awards_form_type_d, $form->generate_select_box('type', $types, array('selected' => $award['type'])));
  600.  
  601.  
  602. $form_container->end();
  603. $buttons = array();
  604. $buttons[] = $form->generate_submit_button($lang->ougc_awards_button_submit);
  605. $buttons[] = $form->generate_reset_button($lang->ougc_awards_button_reset);
  606. $form->output_submit_wrapper($buttons);
  607. $form->end();
  608. }
  609. elseif($mybb->input['action'] == 'delete')
  610. {
  611. if(!($award = ougc_awards_get_award($mybb->input['aid'])) || ($mybb->request_method == 'post' && $mybb->input['my_post_key'] != $mybb->post_code) || $mybb->input['no'])
  612. {
  613. if(!$mybb->input['no'])
  614. {
  615. flash_message($lang->ougc_awards_error_delete, 'error');
  616. }
  617. admin_redirect("index.php?module=user-ougc_awards");
  618. }
  619. if($mybb->request_method == 'post')
  620. {
  621. log_admin_action($lang->ougc_awards_form_name.': '.$award['name'], $award['aid']);
  622. ougc_awards_delete_award($award['aid']);
  623. flash_message($lang->ougc_awards_success_delete, 'success');
  624. admin_redirect("index.php?module=user-ougc_awards");
  625. }
  626. $form = new Form("index.php?module=user-ougc_awards&amp;action=delete&amp;aid={$award['aid']}&amp;my_post_key={$mybb->post_code}", 'post');
  627. echo("
  628. <div class=\"confirm_action\">\n
  629. <p>{$lang->ougc_awards_delete_confirm}</p><br />\n
  630. <p class=\"buttons\">
  631. {$form->generate_submit_button($lang->yes, array('class' => 'button_yes'))}
  632. {$form->generate_submit_button($lang->no, array("name" => "no", 'class' => 'button_no'))}
  633. </p>\n
  634. </div>
  635. ");
  636. $form->end();
  637. }
  638. elseif($mybb->input['action'] == 'give')
  639. {
  640. if(!($award = ougc_awards_get_award($mybb->input['aid'])))
  641. {
  642. flash_message($lang->ougc_awards_error_give, 'error');
  643. admin_redirect("index.php?module=user-ougc_awards");
  644. }
  645. if($mybb->request_method == 'post')
  646. {
  647. if((!($user = ougc_awards_get_user($mybb->input['username']))))
  648. {
  649. flash_message($lang->ougc_awards_error_give, 'error');
  650. admin_redirect("index.php?module=user-ougc_awards&amp;action=give&amp;aid={$award['aid']}");
  651. }
  652. if(($gived = ougc_awards_get_gived_award($award['users'], $user['uid'])))
  653. {
  654. flash_message($lang->ougc_awards_error_give, 'error');
  655. admin_redirect("index.php?module=user-ougc_awards&amp;action=give&amp;aid={$award['aid']}");
  656. }
  657. log_admin_action($lang->ougc_awards_form_username.': '.$mybb->input['username'], $lang->ougc_awards_form_award.': '.$award['name'].'('.$award['aid'].')');
  658. ougc_awards_give_award($award, $user['uid'], $mybb->input['reason']);
  659. flash_message($lang->ougc_awards_success_give, 'success');
  660. admin_redirect("index.php?module=user-ougc_awards");
  661. }
  662. $page->output_nav_tabs($sub_tabs, 'ougc_awards_give');
  663. $form = new Form("index.php?module=user-ougc_awards&amp;action=give&amp;aid={$award['aid']}", "post");
  664. $form_container = new FormContainer($lang->ougc_awards_tab_give_d);
  665.  
  666. $form_container->output_row($lang->ougc_awards_form_username." <em>*</em>", $lang->ougc_awards_form_username_d, $form->generate_text_box('username'));
  667. $form_container->output_row($lang->ougc_awards_form_reason, $lang->ougc_awards_form_reason_d, $form->generate_text_area('reason', '', array('rows' => 8, 'style' => 'width:80%;')));
  668.  
  669. $form_container->end();
  670. $buttons = array();
  671. $buttons[] = $form->generate_submit_button($lang->ougc_awards_button_submit);
  672. $buttons[] = $form->generate_reset_button($lang->ougc_awards_button_reset);
  673. $form->output_submit_wrapper($buttons);
  674. $form->end();
  675. }
  676. elseif($mybb->input['action'] == 'revoke')
  677. {
  678. if(!($award = ougc_awards_get_award($mybb->input['aid'])))
  679. {
  680. flash_message($lang->ougc_awards_error_revoke, 'error');
  681. admin_redirect("index.php?module=user-ougc_awards");
  682. }
  683. if($mybb->request_method == 'post')
  684. {
  685. if(!($user = ougc_awards_get_user($mybb->input['username'])))
  686. {
  687. flash_message($lang->ougc_awards_error_revoke, 'error');
  688. admin_redirect("index.php?module=user-ougc_awards&amp;action=revoke&amp;aid={$mybb->input['aid']}");
  689. }
  690. if(!($gived = ougc_awards_get_gived_award($award['users'], $user['uid'])))
  691. {
  692. flash_message($lang->ougc_awards_error_revoke, 'error');
  693. admin_redirect("index.php?module=user-ougc_awards&amp;action=revoke&amp;aid={$mybb->input['aid']}");
  694. }
  695. log_admin_action($lang->ougc_awards_form_username.': '.$mybb->input['username'], $lang->ougc_awards_form_award.': '.$award['name'].'('.$award['aid'].')');
  696. ougc_awards_revoke_award($award, $user['uid']);
  697. flash_message($lang->ougc_awards_success_revoke, 'success');
  698. admin_redirect("index.php?module=user-ougc_awards");
  699. }
  700. $page->output_nav_tabs($sub_tabs, 'ougc_awards_revoke');
  701. $form = new Form("index.php?module=user-ougc_awards&amp;action=revoke&amp;aid={$mybb->input['aid']}", "post");
  702. $form_container = new FormContainer($lang->ougc_awards_tab_revoke_d);
  703.  
  704. $form_container->output_row($lang->ougc_awards_form_username." <em>*</em>", $lang->ougc_awards_form_username_d, $form->generate_text_box('username'));
  705.  
  706. $form_container->end();
  707. $buttons = array();
  708. $buttons[] = $form->generate_submit_button($lang->ougc_awards_button_submit);
  709. $buttons[] = $form->generate_reset_button($lang->ougc_awards_button_reset);
  710. $form->output_submit_wrapper($buttons);
  711. $form->end();
  712. }
  713. elseif($mybb->input['action'] == 'users')
  714. {
  715. $page->output_nav_tabs($sub_tabs, 'ougc_awards_users');
  716.  
  717. $table = new Table;
  718. $table->construct_header($lang->ougc_awards_form_username, array('width' => '15%'));
  719. $table->construct_header($lang->ougc_awards_form_reason, array('width' => '45%'));
  720. $table->construct_header($lang->ougc_awards_users_date, array('width' => '25%', 'class' => 'align_center'));
  721. $table->construct_header($lang->ougc_awards_view_actions, array('width' => '15%', 'class' => 'align_center'));
  722.  
  723. $limit = 20;
  724. $mybb->input['page'] = intval($mybb->input['page']);
  725. if($mybb->input['page'] && $mybb->input['page'] > 0)
  726. {
  727. $start = ($mybb->input['page'] - 1)*$limit;
  728. }
  729. else
  730. {
  731. $start = 0;
  732. $mybb->input['page'] = 1;
  733. }
  734.  
  735. $q = $db->simple_select('ougc_awards_users', '*', "aid='{$mybb->input['aid']}'", array('order_by' => 'date', 'order_dir' => 'desc', 'limit_start' => $start, 'limit' => $limit));
  736. $q2 = $db->simple_select('ougc_awards_users', 'COUNT(uid) AS users', "aid='{$mybb->input['aid']}'");
  737. $num_results = $db->fetch_field($q2, "users");
  738. $db->free_result($q2);
  739. if($db->num_rows($q) < 1)
  740. {
  741. $table->construct_cell('<div align="center">'.$lang->ougc_awards_users_empty.'</div>', array('colspan' => 6));
  742. $table->construct_row();
  743. }
  744. else
  745. {
  746. while($gived = $db->fetch_array($q))
  747. {
  748. $user = get_user($gived['uid']);
  749. $user['username'] = format_name(htmlspecialchars_uni($user['username']), $user['usergroup'], $user['displaygroup']);
  750. $table->construct_cell("<a href=\"index.php?module=user-users&action=edit&uid={$user['uid']}\">{$user['username']}</a>");
  751. $table->construct_cell(htmlspecialchars_uni($gived['reason']));
  752. $table->construct_cell($lang->sprintf($lang->ougc_awards_users_time, my_date($mybb->settings['dateformat'], intval($gived['date'])), my_date($mybb->settings['timeformat'], intval($gived['date']))), array('class' => 'align_center'));
  753. $table->construct_cell("<a href=\"index.php?module=user-ougc_awards&amp;action=user&amp;aid={$gived['aid']}&amp;uid={$user['uid']}\">{$lang->ougc_awards_tab_edit}</a>", array('class' => 'align_center'));
  754.  
  755. $table->construct_row();
  756. }
  757. }
  758. $db->free_result($q);
  759. $table->output($lang->ougc_awards_tab_users_d);
  760. echo draw_admin_pagination($mybb->input['page'], $limit, $num_results, $view['url']."index.php?module=user-ougc_awards&amp;action=users&amp;aid=1");
  761. }
  762. elseif($mybb->input['action'] == 'user')
  763. {
  764. if(!($award = ougc_awards_get_award($mybb->input['aid'])))
  765. {
  766. flash_message($lang->ougc_awards_error_edit, 'error');
  767. admin_redirect("index.php?module=user-ougc_awards");
  768. }
  769. if(!($gived = ougc_awards_get_gived_award($award['users'], $mybb->input['uid'])))
  770. {
  771. flash_message($lang->ougc_awards_error_edit, 'error');
  772. admin_redirect("index.php?module=user-ougc_awards&amp;action=users&amp;aid={$mybb->input['aid']}");
  773. }
  774. $gived = ougc_awards_get_awarded($award['aid'], $mybb->input['uid']);
  775. if($mybb->request_method == 'post')
  776. {
  777. $data = array(
  778. 'aid' => $mybb->input['awards_selector'],
  779. 'date' => $mybb->input['date'],
  780. 'reason' => $mybb->input['reason']
  781. );
  782. log_admin_action($lang->ougc_awards_form_award.': '.$award['name'].'('.$award['aid'].')', 'UID: '.$mybb->input['uid']);
  783. ougc_awards_update_user($gived['gid'], $mybb->input['uid'], $data);
  784. flash_message($lang->ougc_awards_success_edit, 'success');
  785. admin_redirect("index.php?module=user-ougc_awards&amp;action=users&aid={$mybb->input['aid']}");
  786. }
  787.  
  788. $page->output_nav_tabs($sub_tabs, 'ougc_awards_edit_user');
  789. $form = new Form("index.php?module=user-ougc_awards&amp;action=user&aid={$mybb->input['aid']}&uid={$mybb->input['uid']}", "post");
  790. $form_container = new FormContainer($lang->ougc_awards_tab_edit_user_d);
  791.  
  792. $form_container->output_row($lang->ougc_awards_form_award, $lang->ougc_awards_form_award_d, ougc_awards_build_selector($award['aid']));
  793. $form_container->output_row($lang->ougc_awards_form_reason, $lang->ougc_awards_form_reason_d, $form->generate_text_area('reason', htmlspecialchars_uni($gived['reason']), array('rows' => 8, 'style' => 'width:80%;')));
  794. $form_container->output_row($lang->ougc_awards_users_timestamp, $lang->ougc_awards_users_timestamp_d, $form->generate_text_box('date', intval($gived['date'])));
  795.  
  796. $form_container->end();
  797. $buttons = array();
  798. $buttons[] = $form->generate_submit_button($lang->ougc_awards_button_submit);
  799. $buttons[] = $form->generate_reset_button($lang->ougc_awards_button_reset);
  800. $form->output_submit_wrapper($buttons);
  801. $form->end();
  802. }
  803. elseif($mybb->input['action'] == 'rebuilt_cache')
  804. {
  805. log_admin_action();
  806. ougc_awards_update_cache();
  807. flash_message($lang->ougc_awards_success_cache, 'success');
  808. admin_redirect("index.php?module=user-ougc_awards");
  809. }
  810. $page->output_footer();
  811. }
  812. }
  813.  
  814.  
  815. //\\ FORUM SECTION //\\
  816. // Show awards in profile function.
  817. function ougc_awards_postbit(&$post)
  818. {
  819. global $mybb;
  820.  
  821. $post['ougc_awards'] = '';
  822. $max_postbit = intval($mybb->settings['ougc_awards_postbit']);
  823. if($mybb->settings['ougc_awards_power'] == 1 && ($max_postbit > 0 || $max_postbit == -1))
  824. {
  825. global $cache, $templates;
  826.  
  827. $awards = $cache->read('ougc_awards'); // Get all awards.
  828. if(is_array($awards))
  829. {
  830. $count = 0;
  831. foreach($awards as $award)
  832. {
  833. $award['users'] = explode(',', $award['users']);
  834. // Check if this user UID match with the list of each awards already in the cache.
  835. // Only visible awards and awards that are suppose to be shown should be in the cache.
  836. if(in_array($post['uid'], $award['users']))
  837. {
  838. $award['aid'] = intval($award['aid']);
  839. $award['name'] = ougc_awards_get_award_info('name', $award['aid'], $award['name']);
  840. $award['image'] = ougc_awards_get_icon($award['image']);
  841. if($max_postbit == -1 || $count < $max_postbit)
  842. {
  843. $count++;
  844. $br = '';
  845. if($count == 1)
  846. {
  847. $br = '<br />'; // We insert a break if it is the first award.
  848. }
  849. eval("\$post['ougc_awards'] .= \"".$templates->get("postbit_ougc_awards")."\";");
  850. }
  851. }
  852. }
  853. }
  854. }
  855. }
  856.  
  857. // Show awards in profiles function
  858. function ougc_awards_profile()
  859. {
  860. global $mybb, $memprofile;
  861.  
  862. $memprofile['ougc_awards'] = '';
  863. $max_profile = intval($mybb->settings['ougc_awards_profile']);
  864. if($mybb->settings['ougc_awards_power'] == 1 && ($max_profile > 0 || $max_profile == -1))
  865. {
  866. global $db, $lang, $templates, $theme;
  867. ougc_awards_lang_load();
  868.  
  869. // Query our data.
  870. // First we need to figure out the total amount of awards.
  871. $query = $db->query("
  872. SELECT u.aid, a.aid
  873. FROM ".TABLE_PREFIX."ougc_awards_users u
  874. LEFT JOIN ".TABLE_PREFIX."ougc_awards a ON (u.aid=a.aid) AND a.visible='1'
  875. WHERE u.uid='".intval($memprofile['uid'])."'
  876. ORDER BY u.date desc
  877. ");
  878. $awardscount = $db->num_rows($query);
  879.  
  880. // Now we get the awards.
  881. $limit = '';
  882. $multipage = '';
  883. if($mybb->settings['ougc_awards_multipage'] == 1)
  884. {
  885. if($max_profile == -1)
  886. {
  887. $max_profile = 10;
  888. }
  889. $page = intval($mybb->input['page']);
  890. if($page > 0)
  891. {
  892. $limit_start = ($page-1)*$max_profile;
  893. $pages = ceil($awardscount/$max_profile);
  894. if($page > $pages)
  895. {
  896. $limit_start = 0;
  897. $page = 1;
  898. }
  899. }
  900. else
  901. {
  902. $page = 1;
  903. $limit_start = 0;
  904. }
  905. $limit .= " LIMIT {$limit_start},{$max_profile}";
  906. $link = get_profile_link($memprofile['uid']);
  907. $link .= (strpos($link, "?") === false ? '?' : '&amp;').'awards';
  908. $multipage = multipage($awardscount, $max_profile, $page, $link);
  909. }
  910. elseif($max_profile != -1)
  911. {
  912. $limit .= " LIMIT {$max_profile}";
  913. }
  914. $query = $db->query("
  915. SELECT u.*, a.*
  916. FROM ".TABLE_PREFIX."ougc_awards_users u
  917. LEFT JOIN ".TABLE_PREFIX."ougc_awards a ON (u.aid=a.aid) AND a.visible='1'
  918. WHERE u.uid='".intval($memprofile['uid'])."'
  919. ORDER BY u.date desc{$limit}
  920. ");
  921.  
  922. // Output ouw awards.
  923. $awards = '';
  924. while($award = $db->fetch_array($query))
  925. {
  926. $trow = alt_trow();
  927. $award['name'] = ougc_awards_get_award_info('name', $award['aid'], $award['name']);
  928. $award['description'] = ougc_awards_get_award_info('desc', $award['aid'], $award['description']);
  929. $award['image'] = ougc_awards_get_icon($award['image']);
  930. $award['reason'] = ougc_awards_get_award_info('reason', $award['aid'], $award['reason'], $award['gid']);
  931. $award['date'] = $lang->sprintf($lang->ougc_awards_profile_tine, my_date($mybb->settings['dateformat'], $award['date']), my_date($mybb->settings['timeformat'], $award['date']));
  932. eval("\$awards .= \"".$templates->get("member_profile_ougc_awards_row")."\";");
  933. }
  934. $db->free_result($query);
  935.  
  936. // User has no awards.
  937. if(!$awards)
  938. {
  939. eval("\$awards = \"".$templates->get("member_profile_ougc_awards_row_empty")."\";");
  940. }
  941. $lang->ougc_awards_profile_title = $lang->sprintf($lang->ougc_awards_profile_title, htmlspecialchars_uni($memprofile['username']));
  942. eval("\$memprofile['ougc_awards'] = \"".$templates->get("member_profile_ougc_awards")."\";");
  943. }
  944. }
  945.  
  946. // ModCP Part
  947. function ougc_awards_modcp()
  948. {
  949. global $mybb, $modcp_nav, $templates, $lang;
  950. ougc_awards_lang_load();
  951.  
  952. $permission = (($mybb->usergroup['cancp'] == 1 || ougc_check_groups($mybb->settings['ougc_awards_moderators'], false)) && $mybb->settings['ougc_awards_power'] == 1 ? true : false);
  953. if($permission)
  954. {
  955. eval("\$awards_nav = \"".$templates->get("modcp_ougc_awards_nav")."\";");
  956. $modcp_nav = str_replace('<!--OUGC_AWARDS-->', $awards_nav, $modcp_nav);
  957. }
  958. else
  959. {
  960. $modcp_nav = str_replace('<!--OUGC_AWARDS-->', '', $modcp_nav);
  961. }
  962. if($mybb->input['action'] == 'awards' && $permission)
  963. {
  964. global $headerinclude, $header, $errors, $theme, $cache, $footer;
  965.  
  966. add_breadcrumb($lang->ougc_awards_modcp_nav, 'modcp.php?action=awards');
  967. $error = array();
  968. // Clean the cache from the ModCP
  969. if($mybb->input['manage'] == 'update_cache')
  970. {
  971. log_moderator_action(null, $lang->ougc_awards_modcp_cache);
  972. ougc_awards_update_cache();
  973. redirect('modcp.php?action=awards', $lang->ougc_awards_redirect_cache);
  974. }
  975. // We can give awards from the ModCP
  976. elseif($mybb->input['manage'] == 'give')
  977. {
  978. if(!($award = ougc_awards_get_award($mybb->input['aid'])))
  979. {
  980. error($lang->ougc_awards_error_wrongaward);
  981. }
  982. if($mybb->settings['ougc_awards_hidemcp'] == 1 && $award['visible'] != 1)
  983. {
  984. $award['visible'] = 1;
  985. }
  986. if($award['visible'] != 1)
  987. {
  988. error($lang->ougc_awards_error_wrongaward);
  989. }
  990. if($mybb->request_method == 'post')
  991. {
  992. if(!($user = ougc_awards_get_user($mybb->input['username'])))
  993. {
  994. $error[] = $lang->ougc_awards_error_wronguser;
  995. }
  996. if(($gived = ougc_awards_get_gived_award($award['users'], $user['uid'])))
  997. {
  998. $error[] = $lang->ougc_awards_error_duplicated;
  999. }
  1000. if($error)
  1001. {
  1002. $errors = inline_error($error);
  1003. }
  1004. else
  1005. {
  1006. // Everythig is suppose to be alright. Insert our award.
  1007. $log = array(
  1008. 'award' => $award['name'],
  1009. 'awardid' => $award['aid'],
  1010. 'user' => $mybb->input['username']
  1011. );
  1012. log_moderator_action($log, $lang->ougc_awards_redirect_gived);
  1013. ougc_awards_give_award($award, $user['uid'], $mybb->input['reason']);
  1014. redirect('modcp.php?action=awards', $lang->ougc_awards_redirect_gived);
  1015. }
  1016. }
  1017. add_breadcrumb($lang->ougc_awards_modcp_give);
  1018. $lang->ougc_awards_modcp_title_give = $lang->sprintf($lang->ougc_awards_modcp_title_give, ougc_awards_get_award_info('name', $award['aid'], $award['name']));
  1019. eval("\$reason = \"".$templates->get("modcp_ougc_awards_manage_reason")."\";");
  1020. eval("\$content = \"".$templates->get("modcp_ougc_awards_manage")."\";");
  1021. eval("\$page = \"".$templates->get("modcp_ougc_awards")."\";");
  1022. output_page($page);
  1023. exit;
  1024. }
  1025. // We can revoke awards from the ModCP
  1026. elseif($mybb->input['manage'] == 'revoke')
  1027. {
  1028. if(!($award = ougc_awards_get_award($mybb->input['aid'])))
  1029. {
  1030. error($lang->ougc_awards_error_wrongaward);
  1031. }
  1032. if($mybb->settings['ougc_awards_hidemcp'] == 1 && $award['visible'] != 1)
  1033. {
  1034. $award['visible'] = 1;
  1035. }
  1036. if($award['visible'] != 1)
  1037. {
  1038. error($lang->ougc_awards_error_wrongaward);
  1039. }
  1040. if($mybb->request_method == 'post')
  1041. {
  1042. if(!($user = ougc_awards_get_user($mybb->input['username'])))
  1043. {
  1044. $error[] = $lang->ougc_awards_error_wronguser;
  1045. }
  1046. if(!($gived = ougc_awards_get_gived_award($award['users'], $user['uid'])))
  1047. {
  1048. $error[] = $lang->ougc_awards_error_nowarded;
  1049. }
  1050. if($error)
  1051. {
  1052. $errors = inline_error($error);
  1053. }
  1054. else
  1055. {
  1056. // Everythig is suppose to be alright. Revoke our award.
  1057. $log = array(
  1058. 'award' => $award['name'],
  1059. 'awardid' => $award['aid'],
  1060. 'user' => $mybb->input['username']
  1061. );
  1062. log_moderator_action($log, $lang->ougc_awards_redirect_revoked);
  1063. ougc_awards_revoke_award(array('aid' => $award['aid'], 'users' => $award['users']), $user['uid']);
  1064. redirect('modcp.php?action=awards', $lang->ougc_awards_redirect_revoked);
  1065. }
  1066. }
  1067. add_breadcrumb($lang->ougc_awards_modcp_revoke);
  1068. $lang->ougc_awards_modcp_title_give = $lang->sprintf($lang->ougc_awards_modcp_title_give, ougc_awards_get_award_info('name', $award['aid'], $award['name']));
  1069. $lang->ougc_awards_modcp_give = $lang->ougc_awards_modcp_revoke;
  1070. eval("\$content = \"".$templates->get("modcp_ougc_awards_manage")."\";");
  1071. eval("\$page = \"".$templates->get("modcp_ougc_awards")."\";");
  1072. output_page($page);
  1073. exit;
  1074. }
  1075. /*elseif($mybb->input['manage'] == 'edit')
  1076. {
  1077. // TODO: Write this part.
  1078. $log = array(
  1079. 'awardid' => $award['aid'],
  1080. 'uid' => $award['uid']
  1081. );
  1082. log_moderator_action($log, $lang->ougc_awards_redirect_revoked);
  1083. }*/
  1084. else
  1085. {
  1086. global $db;
  1087. $where = '';
  1088. if($mybb->settings['ougc_awards_hidemcp'] != 1)
  1089. {
  1090. $where .= "visible='1'";
  1091. }
  1092. $query = $db->simple_select('ougc_awards', 'image, name, description, aid', "{$where}");
  1093. $awards = '';
  1094. while($award = $db->fetch_array($query))
  1095. {
  1096. $trow = alt_trow();
  1097.  
  1098. $award['aid'] = intval($award['aid']);
  1099. $award['image'] = ougc_awards_get_icon($award['image']);
  1100. $award['name'] = ougc_awards_get_award_info('name', $award['aid'], $award['name']);
  1101. $award['description'] = ougc_awards_get_award_info('desc', $award['aid'], $award['description']);
  1102.  
  1103. eval("\$awards .= \"".$templates->get("modcp_ougc_awards_list_award")."\";");
  1104. }
  1105. $db->free_result($query);
  1106.  
  1107. if(!$awards)
  1108. {
  1109. eval("\$awards = \"".$templates->get("modcp_ougc_awards_list_empty")."\";");
  1110. }
  1111.  
  1112. eval("\$content = \"".$templates->get("modcp_ougc_awards_list")."\";");
  1113. eval("\$page = \"".$templates->get("modcp_ougc_awards")."\";");
  1114. output_page($page);
  1115. exit;
  1116. }
  1117. }
  1118. elseif($mybb->input['action'] == 'awards')
  1119. {
  1120. error_no_permission();
  1121. }
  1122. }
  1123.  
  1124.  
  1125. //\\ SOME FUNCTIONS //\\
  1126. // Get the award from cache or DB.
  1127. function ougc_awards_get_award($aid)
  1128. {
  1129. global $db;
  1130.  
  1131. $aid = intval($aid);
  1132. $query = $db->simple_select('ougc_awards', '*', "aid='{$aid}'");
  1133. $award = $db->fetch_array($query);
  1134. $db->free_result($query);
  1135.  
  1136. if($award['aid'])
  1137. {
  1138. return $award;
  1139. }
  1140. return false;
  1141. }
  1142.  
  1143. // Get UID by username (we just need the uid).
  1144. function ougc_awards_get_user($username)
  1145. {
  1146. global $db;
  1147.  
  1148. $q = $db->simple_select('users', 'uid', "username='{$db->escape_string($username)}'");
  1149. $user = $db->fetch_array($q);
  1150. $db->free_result($q);
  1151.  
  1152. if($user['uid'] && intval($user['uid']) > 0)
  1153. {
  1154. return $user;
  1155. }
  1156. return false;
  1157. }
  1158.  
  1159. // Check if this user already has an award.
  1160. function ougc_awards_get_gived_award($users, $uid)
  1161. {
  1162. $users = explode(',', $users);
  1163. if(!is_array($users))
  1164. {
  1165. $users = array();
  1166. }
  1167. foreach($users as $user)
  1168. {
  1169. if($user == $uid)
  1170. {
  1171. return true;
  1172. }
  1173. }
  1174. return false;
  1175. }
  1176.  
  1177. // Give an award.
  1178. function ougc_awards_give_award($award, $uid, $reason)
  1179. {
  1180. global $db;
  1181.  
  1182. // Insert our gived award.
  1183. $db->insert_query('ougc_awards_users',
  1184. array(
  1185. 'aid' => intval($award['aid']),
  1186. 'uid' => intval($uid),
  1187. 'reason' => $db->escape_string($reason),
  1188. 'date' => TIME_NOW
  1189. )
  1190. );
  1191.  
  1192. // Send our PM.
  1193. $pm_data = array(
  1194. 'aid' => $award['aid'],
  1195. 'visible' => $award['visible'],
  1196. 'pm' => $award['pm'],
  1197. 'name' => ougc_awards_get_award_info('name', $award['aid'], $award['name']),
  1198. 'image' => $award['image']
  1199. );
  1200. ougc_awards_send_pm($pm_data, $uid, $reason);
  1201.  
  1202. // We need to update the cache.
  1203. ougc_awards_update_cache();
  1204. }
  1205.  
  1206. // Revoke an award.
  1207. function ougc_awards_revoke_award($award=array(), $uid)
  1208. {
  1209. global $db;
  1210.  
  1211. // If user has two of the same award, it will delete it now too (this plugin doesn't support multiple of the same award anyways).
  1212. $db->delete_query('ougc_awards_users', "aid='".intval($award['aid'])."' AND uid='".intval($uid)."'");
  1213. ougc_awards_update_cache();
  1214. }
  1215.  
  1216. // Update the defined award.
  1217. function ougc_awards_update_award($aid, $data=array())
  1218. {
  1219. global $db;
  1220.  
  1221. $aid = intval($aid);
  1222. if($data['name'])
  1223. {
  1224. $data['name'] = $db->escape_string(unhtmlentities($data['name']));
  1225. }
  1226. if($data['description'])
  1227. {
  1228. $data['description'] = $db->escape_string(unhtmlentities($data['description']));
  1229. }
  1230. if($data['image'])
  1231. {
  1232. $data['image'] = $db->escape_string(unhtmlentities($data['image']));
  1233. }
  1234. if($data['visible'])
  1235. {
  1236. $data['visible'] = (intval($data['visible']) == 1 ? 1 : 0);
  1237. }
  1238. if($data['pm'])
  1239. {
  1240. $data['pm'] = $db->escape_string(unhtmlentities($data['pm']));
  1241. }
  1242. if($data['users'])
  1243. {
  1244. $data['users'] = $db->escape_string($data['users']);
  1245. }
  1246. if($data['type'])
  1247. {
  1248. $data['type'] = intval($data['type']);
  1249. }
  1250. $db->update_query('ougc_awards', $data, "aid='{$aid}'");
  1251. }
  1252.  
  1253. // Update a awarded user data
  1254. function ougc_awards_update_user($gid=0, $uid=0, $data=array())
  1255. {
  1256. global $db;
  1257. $gid = intval($gid);
  1258. $uid = intval($uid);
  1259.  
  1260. if(!$gid || !$uid || !is_array($data))
  1261. {
  1262. return false;
  1263. }
  1264. if($data['aid'])
  1265. {
  1266. // Check if award exist.
  1267. if(($award = ougc_awards_get_award($data['aid'])))
  1268. {
  1269. // Check is this user already has the new award..
  1270. if(!($gived = ougc_awards_get_gived_award($award['users'], $uid)) && $uid)
  1271. {
  1272. // Change it.
  1273. $data['aid'] = intval($award['aid']);
  1274. }
  1275. else
  1276. {
  1277. unset($data['aid']);
  1278. }
  1279. }
  1280. else
  1281. {
  1282. unset($data['aid']);
  1283. }
  1284. }
  1285. if($data['date'])
  1286. {
  1287. $data['date'] = intval($data['date']);
  1288. }
  1289. if($data['reason'])
  1290. {
  1291. $data['reason'] = $db->escape_string(unhtmlentities($data['reason']));
  1292. }
  1293. $db->update_query('ougc_awards_users', $data, "gid='{$gid}'");
  1294. ougc_awards_update_cache();
  1295. }
  1296.  
  1297. // Send a PM when award is given.
  1298. function ougc_awards_send_pm($pm_data=array(), $uid, $reason='')
  1299. {
  1300. global $mybb, $lang, $cache;
  1301. ougc_awards_lang_load(true);
  1302.  
  1303. // Check if send this award.
  1304. if(!$pm_data['aid'] || $pm_data['visible'] != 1 || $mybb->settings['enablepms'] != 1)
  1305. {
  1306. return false;
  1307. }
  1308.  
  1309. // Get the award PM content.
  1310. $pm_data['pm'] = ougc_awards_get_award_info('pm', $pm_data['aid'], $pm_data['pm']);
  1311. if(empty($pm_data['pm']))
  1312. {
  1313. return false;
  1314. }
  1315.  
  1316. // We are ready to send it.
  1317. require_once MYBB_ROOT."inc/datahandlers/pm.php";
  1318. $pmhandler = new PMDataHandler();
  1319. $touid = array();
  1320. $touid[] = intval($uid);
  1321.  
  1322. // Figure out if to use current connected user as PM sender.
  1323. $uid = intval($mybb->settings['ougc_awards_pmuserid']);
  1324. if($mybb->settings['ougc_awards_pmuser'] == 1 && $mybb->user['uid'])
  1325. {
  1326. $uid = $mybb->user['uid'];
  1327. }
  1328. elseif($uid < 1)
  1329. {
  1330. $uid = -1;
  1331. }
  1332.  
  1333. $pm_data['username'] = htmlspecialchars_uni($mybb->input['username']);
  1334. $pm_data['name'] = ougc_awards_get_award_info('name', $pm_data['aid'], $pm_data['name']);
  1335. $reason = (!empty($reason) ? htmlspecialchars_uni($reason) : $lang->ougc_awards_pm_noreason); // TODO: Maybe modify this to search for lang variable too.
  1336. $pm_data['image'] = ougc_awards_get_icon($pm_data['image']);
  1337. $pm = array(
  1338. 'subject' => $lang->sprintf($lang->ougc_awards_pm_title, $pm_data['name']),
  1339. 'message' => $lang->sprintf($pm_data['pm'], $pm_data['username'], $pm_data['name'], $reason, $pm_data['image'], htmlspecialchars_uni($mybb->settings['bbname'])),
  1340. 'icon' => -1,
  1341. 'fromid' => intval($uid),
  1342. 'toid' => $touid
  1343. );
  1344. $pmhandler->admin_override = true;
  1345. $pmhandler->set_data($pm);
  1346.  
  1347. if(!$pmhandler->validate_pm())
  1348. {
  1349. $pmhandler->is_validated = true;
  1350. $pmhandler->errors = array();
  1351. }
  1352. $pminfo = $pmhandler->insert_pm();
  1353. }
  1354.  
  1355. // Parse data with the mybb parser (for reasons).
  1356. function ougc_awards_parse_text($message)
  1357. {
  1358. global $parser;
  1359. if(!is_object($parser))
  1360. {
  1361. require_once MYBB_ROOT.'inc/class_parser.php';
  1362. $parser = new postParser;
  1363. }
  1364. $parser_options = array(
  1365. 'allow_html' => 0,
  1366. 'allow_smilies' => 1,
  1367. 'allow_mycode' => 1,
  1368. 'filter_badwords' => 1,
  1369. 'shorten_urls' => 1
  1370. );
  1371. $message = $parser->parse_message($message, $parser_options);
  1372. return $message;
  1373. }
  1374.  
  1375. // Load lang files from our plugin directory, not from mybb default.
  1376. function ougc_awards_lang_load($datahandler=false)
  1377. {
  1378. global $lang, $mybb;
  1379.  
  1380. $lang->set_path(MYBB_ROOT."inc/plugins/ougc_awards/languages");
  1381.  
  1382. // We need to load it like a datahandler because well, it actualy is used to handle data >_>? (for sending PM)
  1383. if($datahandler == false)
  1384. {
  1385. $lang->load('ougc_awards');
  1386. }
  1387. else
  1388. {
  1389. $lang->load('ougc_awards', true);
  1390. }
  1391.  
  1392. // Load extra lang files if they exists, if no, not a big deal...
  1393. if((defined('IN_ADMINCP') && $mybb->input['module'] == 'user-ougc_awards') || (!defined('IN_ADMINCP') && $mybb->input['action'] == 'awards'))
  1394. {
  1395. // If we use $isdatahandler=true to call our optional lang file, it will trow some errors, better use more to to evoid so.
  1396. //$lang->load('ougc_awards_extra_vals', true, true);
  1397. $lang_file = $lang->path.'/'.str_replace('/admin', '', $lang->language).'/ougc_awards_extra_vals.lang.php';
  1398. if(file_exists($lang_file))
  1399. {
  1400. require_once $lang_file;
  1401. if(is_array($l))
  1402. {
  1403. foreach($l as $key => $val)
  1404. {
  1405. if((empty($lang->$key) || $lang->$key != $val) && !in_array($key, array('language', 'path', 'settings')))
  1406. {
  1407. $lang->$key = $val;
  1408. }
  1409. }
  1410. }
  1411. }
  1412. }
  1413.  
  1414. $lang->set_path(MYBB_ROOT."inc/languages");
  1415. }
  1416.  
  1417. // I liked as I did the pm thing, so what about award name, description, and reasons?
  1418. function ougc_awards_get_award_info($type, $aid, $text, $gid=0)
  1419. {
  1420. global $lang;
  1421. ougc_awards_lang_load();
  1422.  
  1423. $aid = intval($aid);
  1424. $gid = intval($gid);
  1425.  
  1426. // Lets figure out our lang variable first.
  1427. if($type == 'reason')
  1428. {
  1429. $lang_val = "ougc_awards_award_reason_gived_{$gid}";
  1430. if(!$lang->$lang_val || empty($lang->$lang_val))
  1431. {
  1432. $lang_val = "ougc_awards_award_reason_{$aid}";
  1433. }
  1434. if((!$lang->$lang_val || empty($lang->$lang_val)) && empty($text))
  1435. {
  1436. $lang_val = "ougc_awards_pm_noreason";
  1437. }
  1438. }
  1439. else
  1440. {
  1441. $lang_val = "ougc_awards_award_{$type}_{$aid}";
  1442. }
  1443.  
  1444. // If lang variable exists and it is not empty, use it instead of provided text.
  1445. if($lang->$lang_val && !empty($lang->$lang_val))
  1446. {
  1447. $text = $lang->$lang_val;
  1448. }
  1449. if($type == 'pm' && $lang->ougc_awards_award_pm_all && !empty($lang->ougc_awards_award_pm_all))
  1450. {
  1451. $text = $lang->ougc_awards_award_pm_all;
  1452. }
  1453. $text = htmlspecialchars_uni($text);
  1454. if($type == 'reason')
  1455. {
  1456. $text = ougc_awards_parse_text($text);
  1457. }
  1458. return $text;
  1459. }
  1460.  
  1461. // Update the awards cache.
  1462. function ougc_awards_update_cache()
  1463. {
  1464. global $db, $cache;
  1465.  
  1466. // First we need to update all users by award.
  1467. $q1 = $db->simple_select('ougc_awards', 'aid');
  1468.  
  1469. while($award = $db->fetch_array($q1))
  1470. {
  1471. $q2 = $db->simple_select('ougc_awards_users', 'uid', "aid='{$award['aid']}'");
  1472. $users = array();
  1473. while($user = $db->fetch_array($q2))
  1474. {
  1475. $users[] = intval($user['uid']);
  1476. }
  1477. $db->free_result($q2);
  1478. $update = implode(',', $users);
  1479. ougc_awards_update_award($award['aid'], array('users' => $update));
  1480. }
  1481. $db->free_result($q1);
  1482. unset($update);
  1483.  
  1484. // Now lets update all awards cache.
  1485. $q3 = $db->simple_select('ougc_awards', 'aid, name, image, users', "visible='1' AND type!='2'");
  1486.  
  1487. $update = array();
  1488. while($award = $db->fetch_array($q3))
  1489. {
  1490. $update[$award['aid']] = $award;
  1491. }
  1492. $db->free_result($q3);
  1493. $cache->update('ougc_awards', $update);
  1494. }
  1495.  
  1496. // Delete a award.
  1497. function ougc_awards_delete_award($aid)
  1498. {
  1499. global $db;
  1500.  
  1501. $aid = intval($aid);
  1502.  
  1503. $db->delete_query('ougc_awards', "aid='{$aid}'");
  1504. $db->delete_query('ougc_awards_users', "aid='{$aid}'");
  1505. ougc_awards_update_cache();
  1506. }
  1507.  
  1508. // Add a award.
  1509. function ougc_awards_add_award($data)
  1510. {
  1511. global $db;
  1512. if(!is_array($data))
  1513. {
  1514. $data = array();
  1515. }
  1516. if($data['name'])
  1517. {
  1518. $data['name'] = $db->escape_string($data['name']);
  1519. }
  1520. if($data['description'])
  1521. {
  1522. $data['description'] = $db->escape_string($data['description']);
  1523. }
  1524. if($data['image'])
  1525. {
  1526. $data['image'] = $db->escape_string($data['image']);
  1527. }
  1528. if($data['visible'])
  1529. {
  1530. $data['visible'] = intval($data['visible']);
  1531. }
  1532. if($data['pm'])
  1533. {
  1534. $data['pm'] = $db->escape_string($data['pm']);
  1535. }
  1536. if($data['type'] == 1 || $data['type'] == 2)
  1537. {
  1538. $data['type'] = intval($data['type']);
  1539. }
  1540. $db->insert_query('ougc_awards', $data);
  1541. ougc_awards_update_cache();
  1542. }
  1543.  
  1544. // Get awarded user data from db.
  1545. function ougc_awards_get_awarded($aid, $uid)
  1546. {
  1547. global $db;
  1548.  
  1549. $q = $db->simple_select('ougc_awards_users', '*', "aid='".intval($aid)."' AND uid='".intval($uid)."'");
  1550. $data = $db->fetch_array($q);
  1551. $db->free_result($q);
  1552. if($data['gid'])
  1553. {
  1554. return $data;
  1555. }
  1556. return false;
  1557. }
  1558.  
  1559. // Get a select box with all cached awards.
  1560. function ougc_awards_build_selector($aid=0)
  1561. {
  1562. global $cache;
  1563.  
  1564. $awards = $cache->read('ougc_awards');
  1565. if(!is_array($awards))
  1566. {
  1567. $awards = array();
  1568. }
  1569. $select_box = "<select name=\"awards_selector\">";
  1570. foreach($awards as $award)
  1571. {
  1572. $selected = '';
  1573. if($award['aid'] == $aid)
  1574. {
  1575. $selected = ' selected="selected"';
  1576. }
  1577. $name = $award['name'];
  1578. $award['name'] = htmlspecialchars_uni($award['name']);
  1579. if(!defined('IN_ADMINCP'))
  1580. {
  1581. $award['name'] = ougc_awards_get_award_info('name', $award['aid'], $name);
  1582. }
  1583. $select_box .= "<option value=\"{$award['aid']}\"{$selected}>".htmlspecialchars_uni($award['name'])."</option>";
  1584. }
  1585. $select_box .= "</select>";
  1586. return $select_box;
  1587. }
  1588.  
  1589. // This will check current user's groups.
  1590. if(!function_exists('ougc_check_groups'))
  1591. {
  1592. function ougc_check_groups($groups, $empty=true)
  1593. {
  1594. global $mybb;
  1595. if(empty($groups) && $empty == true)
  1596. {
  1597. return true;
  1598. }
  1599. if(!empty($mybb->user['additionalgroups']))
  1600. {
  1601. $usergroups = explode(',', $mybb->user['additionalgroups']);
  1602. }
  1603. if(!is_array($usergroups))
  1604. {
  1605. $usergroups = array();
  1606. }
  1607. $usergroups[] = $mybb->user['usergroup'];
  1608. $groups = explode(',', $groups);
  1609. foreach($usergroups as $gid)
  1610. {
  1611. if(in_array($gid, $groups))
  1612. {
  1613. return true;
  1614. }
  1615. }
  1616. return false;
  1617. }
  1618. }
  1619.  
  1620. // Return the image depending in the award image value.
  1621. function ougc_awards_get_icon($img)
  1622. {
  1623. global $mybb;
  1624.  
  1625. // Default image.
  1626. $image = $mybb->settings['bburl'].'/images/ougc_awards/default.png';
  1627.  
  1628. // The image is suppose to be external.
  1629. if(my_strpos($img, "ttp:/"))
  1630. {
  1631. $image = $img;
  1632. }
  1633.  
  1634. // The image is suppose to be internal inside our images folder.
  1635. if(!my_strpos($img, "/") && !empty($img) && file_exists(MYBB_ROOT.'/images/ougc_awards/'.$img))
  1636. {
  1637. $image = $mybb->settings['bburl'].'/images/ougc_awards/'.htmlspecialchars_uni($img);
  1638. }
  1639.  
  1640. // Image is suppose to be internal.
  1641. if(!empty($img) && file_exists(MYBB_ROOT.'/'.$img))
  1642. {
  1643. $image = $mybb->settings['bburl'].'/'.htmlspecialchars_uni($img);
  1644. }
  1645. return $image;
  1646. }
  1647.  
  1648. // Save us time when inserting our settings.
  1649. function ougc_awards_add_setting($name, $type, $value, $order, $gid)
  1650. {
  1651. global $lang, $db;
  1652. ougc_awards_lang_load();
  1653.  
  1654. $lang_val = 'ougc_awards_s_'.$name;
  1655. $lang_val_d = $lang_val.'_d';
  1656.  
  1657. $db->insert_query('settings',
  1658. array(
  1659. 'name' => $db->escape_string('ougc_awards_'.$name),
  1660. 'title' => $db->escape_string($lang->$lang_val),
  1661. 'description' => $db->escape_string($lang->$lang_val_d),
  1662. 'optionscode' => $db->escape_string($type),
  1663. 'value' => $db->escape_string($value),
  1664. 'disporder' => intval($order),
  1665. 'gid' => intval($gid)
  1666. )
  1667. );
  1668. }
  1669.  
  1670. // Save us time when inserting our templates.
  1671. function ougc_awards_add_template($name, $content, $version)
  1672. {
  1673. global $db;
  1674.  
  1675. $db->insert_query('templates',
  1676. array(
  1677. 'title' => $db->escape_string($name),
  1678. // 'title' => $db->escape_string('ougc_awards_'.$name),
  1679. 'template' => $db->escape_string($content),
  1680. 'version' => intval($version),
  1681. 'dateline' => TIME_NOW,
  1682. 'sid' => -2
  1683. )
  1684. );
  1685. }
  1686. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement