html.class.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. /**
  3. *
  4. * @param 广告生成js类
  5. */
  6. defined('IN_PHPCMS') or exit('No permission resources.');
  7. class html {
  8. private $db, $s_db, $queue;
  9. public function __construct() {
  10. $this->s_db = pc_base::load_model('poster_space_model');
  11. $this->db = pc_base::load_model('poster_model');
  12. $this->queue = pc_base::load_model('queue_model');
  13. }
  14. /**
  15. * 生成广告js文件
  16. * @param intval $id 广告版位ID
  17. * @return boolen 成功返回true
  18. */
  19. public function create_js($id = 0) {
  20. $id = intval($id);
  21. if (!$id) {
  22. $this->msg = L('no_create_js');
  23. return false;
  24. }
  25. $siteid = get_siteid();
  26. $r = $this->s_db->get_one(array('siteid'=>$siteid, 'spaceid'=>$id));
  27. $now = SYS_TIME;
  28. if ($r['setting']) $space_setting = string2array($r['setting']);
  29. if ($r['type']=='code') return true;
  30. $poster_template = getcache('poster_template_'.$siteid, 'commons');
  31. if ($poster_template[$r['type']]['option']) {
  32. $where = "`spaceid`='".$id."' AND `siteid`='".$siteid."' AND `disabled`=0 AND `startdate`<='".$now."' AND (`enddate`>='".$now."' OR `enddate`=0) ";
  33. $pinfo = $this->db->select($where, '*', '', '`listorder` ASC, `id` DESC');
  34. if (is_array($pinfo) && !empty($pinfo)) {
  35. foreach ($pinfo as $k => $rs) {
  36. if ($rs['setting']) {
  37. $rs['setting'] = string2array($rs['setting']);
  38. $pinfo[$k] = $rs;
  39. } else {
  40. unset($pinfo[$k]);
  41. }
  42. }
  43. extract($r);
  44. } else {
  45. return true;
  46. }
  47. } else {
  48. $where = " `spaceid`='".$id."' AND `siteid`='".$siteid."' AND `disabled`=0 AND `startdate`<='".$now."' AND (`enddate`>='".$now."' OR `enddate`=0)";
  49. $pinfo = $this->db->get_one($where, '*', '`listorder` ASC, `id` DESC');
  50. if (is_array($pinfo) && $pinfo['setting']) {
  51. $pinfo['setting'] = string2array($pinfo['setting']);
  52. }
  53. extract($r);
  54. if (!is_array($pinfo) || empty($pinfo)) return true;
  55. extract($pinfo, EXTR_PREFIX_SAME , 'p');
  56. }
  57. $file = CACHE_PATH.$path;
  58. ob_start();
  59. include template('poster', $type);
  60. $data = ob_get_contents();
  61. ob_end_clean();
  62. $strlen = pc_base::load_config('system','lock_ex') ? file_put_contents($file, $data, LOCK_EX) : file_put_contents($file, $data);
  63. @chmod($file,0777);
  64. return true;
  65. }
  66. }
  67. ?>