PageRenderTime 46ms CodeModel.GetById 20ms RepoModel.GetById 1ms app.codeStats 0ms

/e107_plugins/banner/e_shortcode.php

https://github.com/CasperGemini/e107
PHP | 86 lines | 57 code | 11 blank | 18 comment | 4 complexity | 2491e0701be9ac50a698c4f9aaab8ea6 MD5 | raw file
Possible License(s): GPL-2.0
  1. <?php
  2. /*
  3. * e107 website system
  4. *
  5. * Copyright (C) 2008-2013 e107 Inc (e107.org)
  6. * Released under the terms and conditions of the
  7. * GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
  8. *
  9. * Banner shortcode
  10. *
  11. */
  12. /**
  13. * e107 Banner management plugin
  14. *
  15. * Handles the display and sequencing of banners on web pages, including counting impressions
  16. *
  17. * @package e107_plugins
  18. * @subpackage banner
  19. */
  20. class banner_shortcodes
  21. {
  22. function sc_banner($parm)
  23. {
  24. $e107 = e107::getInstance();
  25. $sql = e107::getDb();
  26. $tp = e107::getParser();
  27. $ret = '';
  28. $text = '';
  29. mt_srand ((double) microtime() * 1000000);
  30. $seed = mt_rand(1,2000000000);
  31. $time = time();
  32. $query = " (banner_startdate=0 OR banner_startdate <= {$time}) AND (banner_enddate=0 OR banner_enddate > {$time}) AND (banner_impurchased=0 OR banner_impressions<=banner_impurchased)".($parm ? " AND banner_campaign='".$tp->toDB($parm)."'" : '')."
  33. AND banner_active IN (".USERCLASS_LIST.")
  34. ORDER BY RAND($seed) LIMIT 1";
  35. if($sql->select('banner', 'banner_id, banner_image, banner_clickurl', $query))
  36. {
  37. $row = $sql->fetch();
  38. if(!$row['banner_image'])
  39. {
  40. return "<a href='".e_HTTP.'banner.php?'.$row['banner_id']."' rel='external'>no image assigned to this banner</a>";
  41. }
  42. $fileext1 = substr(strrchr($row['banner_image'], '.'), 1);
  43. $sql->update('banner', 'banner_impressions=banner_impressions+1 WHERE banner_id='.(int)$row['banner_id']);
  44. switch ($fileext1)
  45. {
  46. case 'swf':
  47. return "
  48. <object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0\" width=\"468\" height=\"60\">\n
  49. <param name=\"movie\" value=\"".e_IMAGE_ABS."banners/".$row['banner_image']."\">\n
  50. <param name=\"quality\" value=\"high\">\n
  51. <param name=\"SCALE\" value=\"noborder\">\n
  52. <embed src=\"".e_IMAGE_ABS."banners/".$row['banner_image']."\" width=\"468\" height=\"60\" scale=\"noborder\" quality=\"high\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\"></embed>
  53. </object>
  54. ";
  55. break;
  56. case 'html':
  57. case 'js':
  58. case 'php': // Code - may 'echo' text, or may return it as a value
  59. $file_data = file_get_contents(e_IMAGE.'banners/'.$row['banner_image']);
  60. return $file_data;
  61. break;
  62. default:
  63. $src = ($row['banner_image'][0] == '{') ? $tp->replaceConstants($row['banner_image'],'full') : e_IMAGE_ABS.'banners/'.$row['banner_image'];
  64. $ban_ret = "<img class='e-banner img-responsive' src='".$src."' alt='".$row['banner_clickurl']."' style='border:0' />";
  65. break;
  66. }
  67. return "<a href='".e_HTTP.'banner.php?'.$row['banner_id']."' rel='external'>".$ban_ret.'</a>';
  68. }
  69. else
  70. {
  71. return '&nbsp;';
  72. }
  73. }
  74. }
  75. ?>