Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2015
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.19 KB | None | 0 0
  1. <?php
  2.  
  3. /**
  4. * Avatary przy ostatnich postach - Filip Klar 2011-12
  5. */
  6.  
  7. if(!defined("IN_MYBB")) {
  8. die("Otwarcie tego pliku jest zabronione.");
  9. }
  10.  
  11. $plugins->add_hook("global_start", "lastposteravatar_rand");
  12. $plugins->add_hook("index_start", "lastposteravatar_parents");
  13. $plugins->add_hook("forumdisplay_start", "lastposteravatar_parents");
  14. $plugins->add_hook("build_forumbits_forum", "lastposteravatar_forums");
  15. $plugins->add_hook("forumdisplay_thread", "lastposteravatar_threads");
  16. $plugins->add_hook("pre_output_page", "lastposteravatar_replace");
  17.  
  18. function lastposteravatar_info() {
  19. return array(
  20. "name" => "Avatary przy ostatnich postach",
  21. "description" => "Wyświetla avatar użytkownika, który napisał ostatni post w danym dziale lub wątku",
  22. "website" => "http://fklar.pl",
  23. "author" => "Filip Klar",
  24. "authorsite" => "http://fklar.pl",
  25. "version" => "1.5",
  26. "guid" => "",
  27. "compatibility" => "18*"
  28. );
  29. }
  30.  
  31. function lastposteravatar_activate() {
  32. global $db, $mybb;
  33.  
  34. $lastposteravatar_group = array(
  35. "gid" => "NULL",
  36. "name" => "lastposteravatar",
  37. "title" => "Avatary przy ostatnich postach",
  38. "description" => "Wyświetlanie avatarów na liście działów i wątków",
  39. "disporder" => "25",
  40. "isdefault" => "yes",
  41. );
  42. $db->insert_query("settinggroups", $lastposteravatar_group);
  43. $gid = $db->insert_id();
  44.  
  45. $lastposteravatar_size = array(
  46. "sid" => "NULL",
  47. "name" => "lastposteravatar_size",
  48. "title" => "Maksymalny rozmiar avatara",
  49. "description" => "",
  50. "optionscode" => "text",
  51. "value" => "35px",
  52. "disporder" => "1",
  53. "gid" => intval($gid),
  54. );
  55. $db->insert_query("settings", $lastposteravatar_size);
  56.  
  57. $lastposteravatar_forums = array(
  58. "sid" => "NULL",
  59. "name" => "lastposteravatar_forums",
  60. "title" => "Wyświetlanie na liście działów",
  61. "description" => "",
  62. "optionscode" => "yesno",
  63. "value" => "1",
  64. "disporder" => "2",
  65. "gid" => intval($gid),
  66. );
  67. $db->insert_query("settings", $lastposteravatar_forums);
  68.  
  69. $lastposteravatar_threads = array(
  70. "sid" => "NULL",
  71. "name" => "lastposteravatar_threads",
  72. "title" => "Wyświetlanie na liście wątków",
  73. "description" => "",
  74. "optionscode" => "yesno",
  75. "value" => "1",
  76. "disporder" => "3",
  77. "gid" => intval($gid),
  78. );
  79. $db->insert_query("settings", $lastposteravatar_threads);
  80.  
  81. $lastposteravatar_showdefault = array(
  82. "sid" => "NULL",
  83. "name" => "lastposteravatar_showdefault",
  84. "title" => "Przypisanie domyślnego avatara użytkownikom, którzy go nie posiadają",
  85. "description" => "",
  86. "optionscode" => "yesno",
  87. "value" => "1",
  88. "disporder" => "4",
  89. "gid" => intval($gid),
  90. );
  91. $db->insert_query("settings", $lastposteravatar_showdefault);
  92.  
  93. $lastposteravatar_defaultsource = array(
  94. "sid" => "NULL",
  95. "name" => "lastposteravatar_defaultsource",
  96. "title" => "Adres domyślnego avatara",
  97. "description" => "",
  98. "optionscode" => "text",
  99. "value" => $mybb->settings['bburl']."/admin/styles/default/images/default_avatar.gif",
  100. "disporder" => "5",
  101. "gid" => intval($gid),
  102. );
  103. $db->insert_query("settings", $lastposteravatar_defaultsource);
  104.  
  105. rebuild_settings();
  106.  
  107. require MYBB_ROOT."/inc/adminfunctions_templates.php";
  108. find_replace_templatesets("forumbit_depth1_forum_lastpost", "#".preg_quote('<span class="smalltext">') . "#i", '<span class="smalltext">{$forum[\'lastposteravatar\']}');
  109. find_replace_templatesets("forumbit_depth2_forum_lastpost", "#".preg_quote('<span class="smalltext">') . "#i", '<span class="smalltext">{$forum[\'lastposteravatar\']}');
  110. find_replace_templatesets("forumdisplay_thread", "#".preg_quote('<span class="lastpost smalltext">') . "#i", '<span class="lastpost smalltext">{$thread[\'lastposteravatar\']}');
  111.  
  112. }
  113.  
  114. function lastposteravatar_deactivate() {
  115. global $db;
  116.  
  117. $db->query("DELETE FROM ".TABLE_PREFIX."settinggroups WHERE name='lastposteravatar'");
  118. $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='lastposteravatar_size'");
  119. $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='lastposteravatar_forums'");
  120. $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='lastposteravatar_threads'");
  121. $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='lastposteravatar_showdefault'");
  122. $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='lastposteravatar_defaultsource'");
  123.  
  124. rebuild_settings();
  125.  
  126. require MYBB_ROOT."/inc/adminfunctions_templates.php";
  127. find_replace_templatesets("forumbit_depth1_forum_lastpost", "#".preg_quote('{$forum[\'lastposteravatar\']}') . "#i", '');
  128. find_replace_templatesets("forumbit_depth2_forum_lastpost", "#".preg_quote('{$forum[\'lastposteravatar\']}') . "#i", '');
  129. find_replace_templatesets("forumdisplay_thread", "#".preg_quote('{$thread[\'lastposteravatar\']}') . "#i", '');
  130.  
  131. }
  132.  
  133. function lastposteravatar_rand() {
  134. global $lastposteravatar_rand;
  135. $lastposteravatar_rand = uniqid();
  136. }
  137.  
  138. function lastposteravatar_parents() {
  139. global $db, $avForum;
  140.  
  141. $query = $db->query("SELECT `fid`, `pid`, `lastpost`, `lastposteruid` FROM `".TABLE_PREFIX."forums` WHERE `threads` > '0'");
  142. $n = 1;
  143. while($tempforum = $db->fetch_array($query)) {
  144. $avForum[$n]['fid'] = $tempforum['fid'];
  145. $avForum[$n]['parent'] = $tempforum['pid'];
  146. $avForum[$n]['lastpost'] = $tempforum['lastpost'];
  147. $avForum[$n]['lastposteruid'] = $tempforum['lastposteruid'];
  148. $n++;
  149. }
  150. }
  151.  
  152. function lastposteravatar_forums(&$forum) {
  153. global $mybb, $fcache, $listOfUsers, $avForum, $lastposteravatar_rand;
  154.  
  155. if($mybb->settings['lastposteravatar_forums'] == 1) {
  156. $numberOfForums = count($avForum);
  157. $listOfUsers[0] = 0;
  158. $thisParent = $fcache[$forum['pid']][$forum['disporder']][$forum['fid']]['fid'];
  159. $fid = $thisParent;
  160. $lastpost = $fcache[$forum['pid']][$forum['disporder']][$forum['fid']]['lastpost'];
  161. $uid = $fcache[$forum['pid']][$forum['disporder']][$forum['fid']]['lastposteruid'];
  162. for($i = 0; $i <= $numberOfForums; $i++) {
  163. if($avForum[$i]['parent'] == $thisParent && $avForum[$i]['lastpost'] > $lastpost) {
  164. $lastpost = $avForum[$i]['lastpost'];
  165. $uid = $avForum[$i]['lastposteruid'];
  166. }
  167. }
  168. if(in_array($uid, $listOfUsers) == FALSE) {
  169. $listOfUsers[] = $uid;
  170. }
  171.  
  172. $forum['lastposteravatar'] = "<!-- ".$lastposteravatar_rand."-avatar-".$uid." -->";
  173.  
  174. }
  175.  
  176. }
  177.  
  178. function lastposteravatar_threads() {
  179. global $mybb, $thread, $listOfUsers, $lastposteravatar_rand;
  180.  
  181. if($mybb->settings['lastposteravatar_threads'] == 1) {
  182.  
  183. $listOfUsers[0] = 0;
  184. $uid = $thread['lastposteruid'];
  185. if(in_array($uid, $listOfUsers) == FALSE) {
  186. $listOfUsers[] = $uid;
  187. }
  188.  
  189. $thread['lastposteravatar'] = "<!-- ".$lastposteravatar_rand."-avatar-".$uid." -->";
  190.  
  191. }
  192.  
  193. }
  194.  
  195. function lastposteravatar_replace($contents) {
  196. global $db, $mybb, $listOfUsers, $lastposteravatar_rand;
  197.  
  198. $numberWithAvatar = count($listOfUsers);
  199. $partQuery = "`uid` = '0'";
  200. for($i = 0; $i <= $numberWithAvatar; $i++) {
  201. $partQuery .= "OR `uid` = '".$listOfUsers[$i]."'";
  202. }
  203.  
  204. $query = $db->query("SELECT `uid`, `avatar` FROM `".TABLE_PREFIX."users` WHERE ".$partQuery);
  205. while($rekord = $db->fetch_array($query)) {
  206. if(empty($rekord['avatar']) && $mybb->settings['lastposteravatar_showdefault'] == 0) {
  207. $contents = str_replace("<!-- ".$lastposteravatar_rand."-avatar-".$rekord['uid']." -->", "", $contents);
  208. }
  209. elseif(empty($rekord['avatar']) && $mybb->settings['lastposteravatar_showdefault'] == 1) {
  210. $contents = str_replace("<!-- ".$lastposteravatar_rand."-avatar-".$rekord['uid']." -->", "<a href=\"".$mybb->settings['bburl']."/".get_profile_link($rekord['uid'])."\"><img src=\"".$mybb->settings['lastposteravatar_defaultsource']."\" style=\"max-height: ".$mybb->settings['lastposteravatar_size']."; max-width: ".$mybb->settings['lastposteravatar_size']."; float: left; margin: 5px;\" alt=\"avatar\" class=\"favimg\" /></a>", $contents);
  211. }
  212. else {
  213. $contents = str_replace("<!-- ".$lastposteravatar_rand."-avatar-".$rekord['uid']." -->", "<a href=\"".$mybb->settings['bburl']."/".get_profile_link($rekord['uid'])."\"><img src=\"".$rekord['avatar']."\" style=\"max-height: ".$mybb->settings['lastposteravatar_size']."; max-width: ".$mybb->settings['lastposteravatar_size']."; float: left; margin: 5px;\" alt=\"avatar\" class=\"favimg\" /></a>", $contents);
  214. }
  215. }
  216.  
  217. if($mybb->settings['lastposteravatar_showdefault'] == 0) {
  218. $contents = str_replace("<!-- ".$lastposteravatar_rand."-avatar-0 -->", "", $contents);
  219. }
  220. else {
  221. $contents = str_replace("<!-- ".$lastposteravatar_rand."-avatar-0 -->", "<img src=\"".$mybb->settings['lastposteravatar_defaultsource']."\" style=\"max-height: ".$mybb->settings['lastposteravatar_size']."; max-width: ".$mybb->settings['lastposteravatar_size']."; float: left; margin: 5px;\" alt=\"avatar\" class=\"favimg\" />", $contents);
  222. $contents = str_replace("<!-- ".$lastposteravatar_rand."-avatar", "<img src=\"".$mybb->settings['lastposteravatar_defaultsource']."\" style=\"max-height: ".$mybb->settings['lastposteravatar_size']."; max-width: ".$mybb->settings['lastposteravatar_size']."; float: left; margin: 5px;\" alt=\"avatar\" class=\"favimg\" /><!-- avatar", $contents);
  223. }
  224.  
  225. return $contents;
  226.  
  227. }
  228.  
  229.  
  230. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement