Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.26 KB | None | 0 0
  1. <?php
  2.  
  3. if(!defined("IN_MYBB"))
  4. {
  5. die("Sorry, you cannot access this file directly.");
  6. }
  7.  
  8. //Hooks
  9. $plugins->add_hook('global_start', 'stockticker_global_start');
  10.  
  11. // Information
  12. function stockticker_info()
  13. {
  14.  
  15. return array(
  16. "name" => "Crypto Coin Stock Ticker Bar",
  17. "description"=> "A bar showing realtime scrolling crypto coin stock values.",
  18. "author" => "Tac",
  19. "version" => "1.0",
  20. "website" => "Cryptinex.com",
  21. "guid" => "",
  22. "compatibility" => "18*"
  23. );
  24. }
  25.  
  26. function stockticker_activate() {
  27.  
  28. global $mybb, $db;
  29.  
  30. $stockticker_group = array(
  31. 'gid' => 'NULL',
  32. 'name' => 'stockticker',
  33. 'title' => 'Crypto Coin Stock Ticker Bar',
  34. 'disporder' => "1",
  35. 'isdefault' => "0",
  36. );
  37.  
  38. $db->insert_query('settinggroups', $stockticker_group);
  39. $gid = $db->insert_id();
  40.  
  41. $stockticker_setting1 = array(
  42. 'sid' => 'NULL',
  43. 'name' => 'stockticker_stocks1',
  44. 'title' => 'TickerID',
  45. 'description' => 'Enter the ticker id to be used below, one individual stock ticker and icon per line. Example: <b><br/>Bitcoin: 0<br/>Ethereum: 1<br/>Ripple: 2<br/>Litecoin: 3<br/>Ethereum-Classic: 4<br/>Nem: 5<br/>Dash:6</br>Iota: 7<br/>Bitshares: 8<br/>Stratis: 9<br/>Monero: 10<br/>ZCash: 11<br/>Golem-Network-Tokens: 12<br/>Waves: 13</br>Bytecoin-bcn: 14<br/>Siacoin: 15<br/>Steem: 16<br/>Stellar: 17<br/>Bitconnect: 18<br/>Lisk: 19<br/>Antishares: 20</b>',
  46. 'optionscode' => 'text',
  47. 'disporder' => 1,
  48. 'value' => '0',
  49. 'gid' => intval($gid),
  50. );
  51. $stockticker_setting2 = array(
  52. 'sid' => 'NULL',
  53. 'name' => 'stockticker_stocks2',
  54. 'title' => 'Ticker #2',
  55. 'optionscode' => 'text',
  56. 'disporder' => 2,
  57. 'value' => '1',
  58. 'gid' => intval($gid),
  59. );
  60. $stockticker_setting3 = array(
  61. 'sid' => 'NULL',
  62. 'name' => 'stockticker_stocks3',
  63. 'title' => 'Ticker #3',
  64. 'optionscode' => 'text',
  65. 'disporder' => 3,
  66. 'value' => '2',
  67. 'gid' => intval($gid),
  68. );
  69.  
  70. //Break
  71. $stockticker_setting4 = array(
  72. 'sid' => 'NULL',
  73. 'name' => 'stockticker_stocks4',
  74. 'title' => 'Ticker #4',
  75. 'optionscode' => 'text',
  76. 'disporder' => 4,
  77. 'value' => '3',
  78. 'gid' => intval($gid),
  79. );
  80. $stockticker_setting5 = array(
  81. 'sid' => 'NULL',
  82. 'name' => 'stockticker_stocks5',
  83. 'title' => 'Ticker #5',
  84. 'optionscode' => 'text',
  85. 'disporder' => 5,
  86. 'value' => '4',
  87. 'gid' => intval($gid),
  88. );
  89. $stockticker_setting6 = array(
  90. 'sid' => 'NULL',
  91. 'name' => 'stockticker_stocks6',
  92. 'title' => 'Ticker #6',
  93. 'optionscode' => 'text',
  94. 'disporder' => 6,
  95. 'value' => '5',
  96. 'gid' => intval($gid),
  97. );
  98. $stockticker_setting7 = array(
  99. 'sid' => 'NULL',
  100. 'name' => 'stockticker_stocks7',
  101. 'title' => 'Ticker #7',
  102. 'optionscode' => 'text',
  103. 'disporder' => 7,
  104. 'value' => '6',
  105. 'gid' => intval($gid),
  106. );
  107. $stockticker_setting8 = array(
  108. 'sid' => 'NULL',
  109. 'name' => 'stockticker_stocks8',
  110. 'title' => 'Ticker #8',
  111. 'optionscode' => 'text',
  112. 'disporder' => 8,
  113. 'value' => '7',
  114. 'gid' => intval($gid),
  115. );
  116. $stockticker_setting9 = array(
  117. 'sid' => 'NULL',
  118. 'name' => 'stockticker_stocks9',
  119. 'title' => 'Ticker #9',
  120. 'optionscode' => 'text',
  121. 'disporder' => 9,
  122. 'gid' => intval($gid),
  123. );
  124. $stockticker_setting10 = array(
  125. 'sid' => 'NULL',
  126. 'name' => 'stockticker_stocks10',
  127. 'title' => 'Background Color',
  128. 'value' => 'f1f1f1',
  129. 'optionscode' => 'text',
  130. 'disporder' => 10,
  131. 'gid' => intval($gid),
  132. );
  133. $stockticker_setting11 = array(
  134. 'sid' => 'NULL',
  135. 'name' => 'stockticker_stocks11',
  136. 'title' => 'Stock Color',
  137. 'value' => '000000',
  138. 'optionscode' => 'text',
  139. 'disporder' => 11,
  140. 'gid' => intval($gid),
  141. );
  142. $stockticker_setting12 = array(
  143. 'sid' => 'NULL',
  144. 'name' => 'stockticker_stocks12',
  145. 'title' => 'Price Color',
  146. 'value' => '0000bb',
  147. 'optionscode' => 'text',
  148. 'disporder' => 12,
  149. 'gid' => intval($gid),
  150. );
  151. $stockticker_setting13 = array(
  152. 'sid' => 'NULL',
  153. 'name' => 'stockticker_stocks13',
  154. 'title' => 'Up Color',
  155. 'value' => '008000',
  156. 'optionscode' => 'text',
  157. 'disporder' => 13,
  158. 'gid' => intval($gid),
  159. );
  160. $stockticker_setting14 = array(
  161. 'sid' => 'NULL',
  162. 'name' => 'stockticker_stocks14',
  163. 'title' => 'Down Color',
  164. 'value' => 'f00',
  165. 'optionscode' => 'text',
  166. 'disporder' => 14,
  167. 'gid' => intval($gid),
  168. );
  169.  
  170. $db->insert_query('settings', $stockticker_setting1);
  171. $db->insert_query('settings', $stockticker_setting2);
  172. $db->insert_query('settings', $stockticker_setting3);
  173. $db->insert_query('settings', $stockticker_setting4);
  174. $db->insert_query('settings', $stockticker_setting5);
  175. $db->insert_query('settings', $stockticker_setting6);
  176. $db->insert_query('settings', $stockticker_setting7);
  177. $db->insert_query('settings', $stockticker_setting8);
  178. $db->insert_query('settings', $stockticker_setting9);
  179. $db->insert_query('settings', $stockticker_setting10);
  180. $db->insert_query('settings', $stockticker_setting11);
  181. $db->insert_query('settings', $stockticker_setting12);
  182. $db->insert_query('settings', $stockticker_setting13);
  183. $db->insert_query('settings', $stockticker_setting14);
  184. rebuild_settings();
  185.  
  186. }
  187.  
  188. // Deactivate
  189. function stockticker_deactivate() {
  190.  
  191. global $mybb, $db;
  192.  
  193. $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN ('stockticker_stocks1')");
  194. $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN ('stockticker_stocks2')");
  195. $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN ('stockticker_stocks3')");
  196. $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN ('stockticker_stocks4')");
  197. $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN ('stockticker_stocks5')");
  198. $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN ('stockticker_stocks6')");
  199. $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN ('stockticker_stocks7')");
  200. $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN ('stockticker_stocks8')");
  201. $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN ('stockticker_stocks9')");
  202. $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN ('stockticker_stocks10')");
  203. $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN ('stockticker_stocks11')");
  204. $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN ('stockticker_stocks12')");
  205. $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN ('stockticker_stocks13')");
  206. $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN ('stockticker_stocks14')");
  207. $db->query("DELETE FROM ".TABLE_PREFIX."settinggroups WHERE name='stockticker'");
  208. rebuild_settings();
  209.  
  210. }
  211.  
  212. function stock_ticker ($symbols, $background_color, $stock_color, $price_color, $up_color, $down_color)
  213. {
  214. global $mybb, $lang, $stocks;
  215.  
  216. sort($symbols);
  217.  
  218. if ($background_color==$stock_color) {
  219. // something's wrong, colors weren't specified
  220. $background_color = invert_color($background_color);
  221. }
  222.  
  223. $return = '<ul id="webTicker">';
  224.  
  225. foreach ($symbols as $symbol) {
  226.  
  227. $cache_file = 'inc/cache/cache.csv';
  228. if(file_exists($cache_file)) {
  229. if(time() - filemtime($cache_file) > 86400) {
  230. // too old , re-fetch
  231. $cache = file_get_contents('https://api.coinmarketcap.com/v1/ticker/?limit=21');
  232. file_put_contents($cache_file, $cache);
  233. $tick = file_get_contents("inc/cache/cache.csv");
  234. } else {
  235. // cache is still fresh
  236. $tick = file_get_contents("inc/cache/cache.csv");
  237. }
  238. } else {
  239. // no cache, create one
  240. $cache = file_get_contents('https://api.coinmarketcap.com/v1/ticker/?limit=21');
  241. file_put_contents($cache_file, $cache);
  242. $tick = file_get_contents("inc/cache/cache.csv");
  243. }
  244.  
  245. echo $url;
  246. //$json = file_get_contents($url);
  247. $data2 = json_decode($tick, TRUE);
  248.  
  249. $name = $data2[$symbol]["symbol"];
  250. $Name = $data2[$symbol]["id"];
  251. $usd = $data2[$symbol]["price_usd"];
  252.  
  253.  
  254. $values = explode(",", $data);
  255. $lasttrade = $values[1];
  256. $change = $data2[$symbol]["percent_change_1h"];
  257.  
  258. $num == 1;
  259.  
  260. if($num%2==0)
  261. {
  262. $num++;
  263. $num++;
  264. }
  265.  
  266. $stocknum = 'stockticker_stocks'.$num;
  267.  
  268. $return .= "<li><img src='images/coins/".$Name.".png' class='stocks_icon'><span style=\"color:#$stock_color\">$name</span> &nbsp;";
  269. $return .= "<span style=\"color:#$price_color\">$$usd</span> &nbsp;";
  270. if ($change<0)
  271. $return .= "<span style=\"color:#$down_color\">$change</span></li> &nbsp;";
  272. else
  273. $return .= "<span style=\"color:#$up_color\">$change</span></li> &nbsp;";
  274. $return .= "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
  275. }
  276.  
  277. $return .= '</div></ul>';
  278.  
  279. return $return;
  280. }
  281.  
  282. function invert_color($color='008080')
  283. {
  284. $new = '';
  285. for ($i=0;$i<3;$i++){
  286. $c = 255 - hexdec(substr($color,(2*$i),2));
  287. $c = dechex($c);
  288. $new .= (strlen($c) < 2) ? '0'.$c : $c;
  289. }
  290. return $new;
  291. }
  292.  
  293. function stockticker_global_start() {
  294. global $mybb, $lang, $stocks;
  295.  
  296. //$lang->load("stockticker");
  297.  
  298. $stocks = array();
  299.  
  300. if(isset($mybb->settings['stockticker_stocks1'])) {
  301. array_push($stocks, $mybb->settings['stockticker_stocks1']);
  302. };
  303. if(!empty($mybb->settings['stockticker_stocks3'])) {
  304. array_push($stocks, $mybb->settings['stockticker_stocks2']);
  305. };
  306. if(!empty($mybb->settings['stockticker_stocks5'])) {
  307. array_push($stocks, $mybb->settings['stockticker_stocks3']);
  308. };
  309. if(!empty($mybb->settings['stockticker_stocks7'])) {
  310. array_push($stocks, $mybb->settings['stockticker_stocks4']);
  311. };
  312. if(!empty($mybb->settings['stockticker_stocks9'])) {
  313. array_push($stocks, $mybb->settings['stockticker_stocks5']);
  314. };
  315. if(!empty($mybb->settings['stockticker_stocks11'])) {
  316. array_push($stocks, $mybb->settings['stockticker_stocks6']);
  317. };
  318. if(!empty($mybb->settings['stockticker_stocks13'])) {
  319. array_push($stocks, $mybb->settings['stockticker_stocks7']);
  320. };
  321. if(!empty($mybb->settings['stockticker_stocks15'])) {
  322. array_push($stocks, $mybb->settings['stockticker_stocks8']);
  323. };
  324. if(!empty($mybb->settings['stockticker_stocks17'])) {
  325. array_push($stocks, $mybb->settings['stockticker_stocks9']);
  326. };
  327. if(!empty($mybb->settings['stockticker_stocks19'])) {
  328. array_push($stocks, $mybb->settings['stockticker_stocks10']);
  329. };
  330.  
  331. $backgroundColor = $mybb->settings['stockticker_stocks10'];
  332. $stockColor = $mybb->settings['stockticker_stocks11'];
  333. $priceColor = $mybb->settings['stockticker_stocks12'];
  334. $upColor = $mybb->settings['stockticker_stocks13'];
  335. $downColor = $mybb->settings['stockticker_stocks14'];
  336.  
  337. echo stock_ticker($stocks,$backgroundColor,$stockColor,$priceColor,$upColor,$downColor);
  338. }
  339.  
  340. ?>
  341.  
  342.  
  343. <html>
  344. <style>
  345. .stocks_icon {
  346. max-height: 25px;
  347. max-width: 65px;
  348. margin-bottom: -5px;
  349. margin-right: 5px;
  350. top: -3px;
  351. border-radius: 4px;
  352. }
  353. #webTicker {
  354. background: #f1f1f1;
  355. border-bottom: 1px solid #c3c3c3;
  356. padding-bottom: 8px !important;
  357. padding: 5px !important;
  358. color: #fff;
  359. padding: 5px;
  360. font-size: 18px;
  361. font-weight: 500;
  362. }
  363. #webTicker li {
  364. padding: 0px 20px !important;
  365. }
  366. </style>
  367.  
  368. <script src="jscripts/jquery.webticker.min.js"></script> <script> $('#webTicker').webTicker({ height:'35px', duplicate:true, rssfrequency:0, startEmpty:false, hoverpause:false }); </script>
  369.  
  370. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement