open_sharer.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: stanley-king
  5. * Date: 2016/11/17
  6. * Time: 上午11:44
  7. */
  8. namespace bonus;
  9. class open_sharer
  10. {
  11. const default_id = 1;
  12. private $mShareIds;
  13. private $mDatas;
  14. private static $stInstance;
  15. public static function instance()
  16. {
  17. if(self::$stInstance == null) {
  18. self::$stInstance = new open_sharer();
  19. }
  20. return self::$stInstance;
  21. }
  22. private function __construct()
  23. {
  24. $mod_share = Model('bonus_share');
  25. $items = $mod_share->getAll();
  26. $this->mShareIds = [];
  27. $this->mDatas = [];
  28. foreach ($items as $item)
  29. {
  30. $id = intval($item['share_id']);
  31. $val['title'] = $item['title'];
  32. $val['sub_title'] = $item['sub_title'];
  33. $val['img_url'] = BASE_SITE_URL . $item['img_url'];
  34. $val['share_id'] = $id;
  35. $this->mShareIds[] = $id;
  36. $this->mDatas[$id] = $val;
  37. }
  38. }
  39. public function get($share_id = 0)
  40. {
  41. $share_id = intval($share_id);
  42. if($share_id <= 0) {
  43. $count = count($this->mShareIds);
  44. $pos = mt_rand(0,$count - 1);
  45. $share_id = $this->mShareIds[$pos];
  46. }
  47. if(array_key_exists($share_id,$this->mDatas)) {
  48. return $this->mDatas[$share_id];
  49. }
  50. else {
  51. return $this->mDatas[self::default_id];
  52. }
  53. }
  54. }