From f6af8b30ef4051ddb46df88728fe73d80515e950 Mon Sep 17 00:00:00 2001 From: CaMer0n <cameron@e107coders.org> Date: Fri, 18 Sep 2009 22:20:40 +0000 Subject: [PATCH] e_sc renamed to e_shortcode and activated in shortcode handler. /banner.php now uses the banner plugin. Banner language file cleanup. --- banner.php | 119 ++---------------- e107_files/shortcode/banner.php | 59 --------- e107_handlers/shortcode_handler.php | 50 +++++++- e107_plugins/banner/banner.php | 19 ++- e107_plugins/banner/banner_menu.php | 8 +- e107_plugins/banner/e_sc.php | 59 --------- e107_plugins/banner/e_shortcode.php | 68 ++++++++++ .../{lan_banner.php => English_banner.php} | 4 +- .../{English.php => English_menu_banner.php} | 4 +- 9 files changed, 145 insertions(+), 245 deletions(-) delete mode 100644 e107_files/shortcode/banner.php delete mode 100644 e107_plugins/banner/e_sc.php create mode 100644 e107_plugins/banner/e_shortcode.php rename e107_plugins/banner/languages/{lan_banner.php => English_banner.php} (92%) rename e107_plugins/banner/languages/{English.php => English_menu_banner.php} (95%) diff --git a/banner.php b/banner.php index b92196cc2..20e0bab0f 100644 --- a/banner.php +++ b/banner.php @@ -9,119 +9,14 @@ * * * $Source: /cvs_backup/e107_0.8/banner.php,v $ - * $Revision: 1.6 $ - * $Date: 2009-08-28 15:30:25 $ - * $Author: marj_nl_fr $ + * $Revision: 1.7 $ + * $Date: 2009-09-18 22:20:39 $ + * $Author: e107coders $ */ require_once("class2.php"); -include_lan(e_LANGUAGEDIR.e_LANGUAGE.'/lan_'.e_PAGE); -require_once(e_HANDLER."form_handler.php"); -$rs = new form; - -if (e_QUERY) { - $query_string = intval(e_QUERY); - $sql->db_Select("banner", "*", "banner_id = '{$query_string}' "); - $row = $sql->db_Fetch(); - $ip = $e107->getip(); - $newip = (strpos($row['banner_ip'], "{$ip}^") !== FALSE) ? $row['banner_ip'] : "{$row['banner_ip']}{$ip}^"; - $sql->db_Update("banner", "banner_clicks = banner_clicks + 1, `banner_ip` = '{$newip}' WHERE `banner_id` = '{$query_string}'"); - header("Location: {$row['banner_clickurl']}"); - exit; -} - -require_once(HEADERF); - -if (isset($_POST['clientsubmit'])) { - - $clean_login = $tp -> toDB($_POST['clientlogin']); - $clean_password = $tp -> toDB($_POST['clientpassword']); - - if (!$sql->db_Select("banner", "*", "`banner_clientlogin` = '{$clean_login}' AND `banner_clientpassword` = '{$clean_password}'")) { - $ns->tablerender(LAN_ERROR, "<br /><div style='text-align:center'>".BANNERLAN_20."</div><br />"); - require_once(FOOTERF); - exit; - } - - $row = $sql->db_Fetch(); - $banner_total = $sql->db_Select("banner", "*", "`banner_clientname` = '{$row['banner_clientname']}'"); - - if (!$banner_total) { - $ns->tablerender(LAN_ERROR, "<br /><div style='text-align:center'>".BANNERLAN_29."</div><br />"); - require_once(FOOTERF); - exit; - } else { - while ($row = $sql->db_Fetch()) { - - $start_date = ($row['banner_startdate'] ? strftime("%d %B %Y", $row['banner_startdate']) : BANNERLAN_31); - $end_date = ($row['banner_enddate'] ? strftime("%d %B %Y", $row['banner_enddate']) : BANNERLAN_31); - - $BANNER_TABLE_CLICKPERCENTAGE = ($row['banner_clicks'] && $row['banner_impressions'] ? round(($row['banner_clicks'] / $row['banner_impressions']) * 100)."%" : "-"); - $BANNER_TABLE_IMPRESSIONS_LEFT = ($row['banner_impurchased'] ? $row['banner_impurchased'] - $row['banner_impressions'] : BANNERLAN_30); - $BANNER_TABLE_IMPRESSIONS_PURCHASED = ($row['banner_impurchased'] ? $row['banner_impurchased'] : BANNERLAN_30); - $BANNER_TABLE_CLIENTNAME = $row['banner_clientname']; - $BANNER_TABLE_BANNER_ID = $row['banner_id']; - $BANNER_TABLE_BANNER_CLICKS = $row['banner_clicks']; - $BANNER_TABLE_BANNER_IMPRESSIONS = $row['banner_impressions']; - $BANNER_TABLE_ACTIVE = BANNERLAN_36.($row['banner_active'] != "255" ? LAN_YES : "<b>".LAN_NO."</b>"); - $BANNER_TABLE_STARTDATE = BANNERLAN_37." ".$start_date; - $BANNER_TABLE_ENDDATE = BANNERLAN_34." ".$end_date; - - if ($row['banner_ip']) - { - $tmp = explode("^", $row['banner_ip']); - $BANNER_TABLE_IP_LAN = (count($tmp)-1); - for($a = 0; $a <= (count($tmp)-2); $a++) { - $BANNER_TABLE_IP .= $tmp[$a]."<br />"; - } - } - - if (!$BANNER_TABLE) - { - if (file_exists(THEME."banner_template.php")) { - require(THEME."banner_template.php"); - } else { - require(e_BASE.$THEMES_DIRECTORY."templates/banner_template.php"); - } - } - $textstring .= preg_replace("/\{(.*?)\}/e", '$\1', $BANNER_TABLE); - } - } - - if (!$BANNER_TABLE) - { - if (file_exists(THEME."banner_template.php")) { - require(THEME."banner_template.php"); - } else { - require(e_BASE.$THEMES_DIRECTORY."templates/banner_template.php"); - } - } - $textstart = preg_replace("/\{(.*?)\}/e", '$\1', $BANNER_TABLE_START); - $textend = preg_replace("/\{(.*?)\}/e", '$\1', $BANNER_TABLE_END); - $text = $textstart.$textstring.$textend; - - echo $text; - - require_once(FOOTERF); - exit; -} - - -$BANNER_LOGIN_TABLE_LOGIN = $rs->form_text("clientlogin", 30, $id, 20, "tbox"); -$BANNER_LOGIN_TABLE_PASSW = $rs->form_password("clientpassword", 30, "", 20, "tbox"); -$BANNER_LOGIN_TABLE_SUBMIT = $rs->form_button("submit", "clientsubmit", LAN_CONTINUE); - -if (!$BANNER_LOGIN_TABLE) { - if (file_exists(THEME."banner_template.php")) { - require_once(THEME."banner_template.php"); - } else { - require_once(e_BASE.$THEMES_DIRECTORY."templates/banner_template.php"); - } -} -$text = preg_replace("/\{(.*?)\}/e", '$\1', $BANNER_LOGIN_TABLE); -$ns->tablerender(BANNERLAN_19, $text); - - -require_once(FOOTERF); - +require_once(e_PLUGIN."banner/banner.php"); + +exit(); +?> \ No newline at end of file diff --git a/e107_files/shortcode/banner.php b/e107_files/shortcode/banner.php deleted file mode 100644 index df15a1afe..000000000 --- a/e107_files/shortcode/banner.php +++ /dev/null @@ -1,59 +0,0 @@ -<?php -// $Id: banner.php,v 1.1 2009-01-08 19:28:11 mcfly_e107 Exp $ - -function banner_shortcode($parm) -{ - global $menu_pref; - $e107 = e107::getInstance(); - $ret = ''; - - $text = ''; - mt_srand ((double) microtime() * 1000000); - $seed = mt_rand(1,2000000000); - $time = time(); - - $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='".$e107->tp->toDB($parm)."'" : '')." - AND banner_active IN (".USERCLASS_LIST.") - ORDER BY RAND($seed) LIMIT 1"; - - if($e107->sql->db_Select('banner', 'banner_id, banner_image, banner_clickurl', $query)) - { - $row = $e107->sql->db_Fetch(); - - if(!$row['banner_image']) - { - return "<a href='".e_HTTP.'banner.php?'.$row['banner_id']."' rel='external'>no image assigned to this banner</a>"; - } - - $fileext1 = substr(strrchr($row['banner_image'], '.'), 1); - $e107->sql->db_Update('banner', 'banner_impressions=banner_impressions+1 WHERE banner_id='.(int)$row['banner_id']); - switch ($fileext1) - { - case 'swf': - return " - <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 - <param name=\"movie\" value=\"".e_IMAGE_ABS."banners/".$row['banner_image']."\">\n - <param name=\"quality\" value=\"high\">\n - <param name=\"SCALE\" value=\"noborder\">\n - <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> - </object> - "; - break; - case 'html': - case 'js': - case 'php': // Code - may 'echo' text, or may return it as a value - $file_data = file_get_contents(e_IMAGE.'banners/'.$row['banner_image']); - return $file_data; - break; - default: - $ban_ret = "<img src='".e_IMAGE_ABS.'banners/'.$row['banner_image']."' alt='".$row['banner_clickurl']."' style='border:0' />"; - break; - } - return "<a href='".e_HTTP.'banner.php?'.$row['banner_id']."' rel='external'>".$ban_ret.'</a>'; - } - else - { - return ' '; - } -} -?> \ No newline at end of file diff --git a/e107_handlers/shortcode_handler.php b/e107_handlers/shortcode_handler.php index c9c6d825e..88eb7744e 100644 --- a/e107_handlers/shortcode_handler.php +++ b/e107_handlers/shortcode_handler.php @@ -9,9 +9,9 @@ * e107 Shortcode handler * * $Source: /cvs_backup/e107_0.8/e107_handlers/shortcode_handler.php,v $ - * $Revision: 1.29 $ - * $Date: 2009-08-20 16:41:29 $ - * $Author: secretr $ + * $Revision: 1.30 $ + * $Date: 2009-09-18 22:20:39 $ + * $Author: e107coders $ */ if (!defined('e107_INIT')) { exit; } @@ -116,6 +116,8 @@ function initShortcodeClass($class, $force = false) } } + + class e_shortcode { var $scList = array(); // The actual code - added by parsing files or when plugin codes encountered. Array key is the shortcode name. @@ -157,6 +159,9 @@ class e_shortcode } } + + $this->loadPluginShortcodes(); + // Register all .sc files found in plugin directories (via pref) if(varset($pref['shortcode_list'], '') != '') { @@ -182,6 +187,45 @@ class e_shortcode } } } + /** + * Load Plugin Shortcode Batch files (e_shortcode.php) for use site-wide. + * Equivalent to multiple .sc files in the plugin's folder. + * @return + */ + function loadPluginShortcodes() + { + $pref = e107::getConfig('core')->getPref(); + + if(!vartrue($pref['e_shortcode_list'])) + { + return; + } + + foreach($pref['e_shortcode_list'] as $key=>$val) + { + if(!e107::isInstalled($key) || !include_once(e_PLUGIN.$key.'/e_shortcode.php')) + { + continue; + } + $path = e_PLUGIN.$key.'/e_shortcode.php'; + $classFunc = $key.'_shortcodes'; + $this->scClasses[$classFunc] = new $classFunc; + + $tmp = get_class_methods($classFunc); + foreach($tmp as $c) + { + if(strpos($c, 'sc_') === 0) + { + $sc_func = substr($c, 3); + $code = strtoupper($sc_func); + if(!$this->isRegistered($scode)) + { + $this->registered_codes[$code] = array('type' => 'class', 'path' => $path, 'class' => $classFunc); + } + } + } + } + } function loadCoreShortcodes() { diff --git a/e107_plugins/banner/banner.php b/e107_plugins/banner/banner.php index e73fec3a7..3a320c47c 100644 --- a/e107_plugins/banner/banner.php +++ b/e107_plugins/banner/banner.php @@ -2,19 +2,30 @@ /* * e107 website system * - * Copyright (C) 2001-2008 e107 Inc (e107.org) + * Copyright (C) 2009 e107 Inc (e107.org) * Released under the terms and conditions of the * GNU General Public License (http://www.gnu.org/licenses/gpl.txt) * * * * $Source: /cvs_backup/e107_0.8/e107_plugins/banner/banner.php,v $ - * $Revision: 1.1 $ - * $Date: 2009-07-23 16:43:03 $ + * $Revision: 1.2 $ + * $Date: 2009-09-18 22:20:39 $ * $Author: e107coders $ */ -require_once("class2.php"); +if (!defined('e107_INIT')) +{ + require_once("../../class2.php"); +} + +if (!e107::isInstalled('banner')) +{ + header("location:".e_BASE."index.php"); +} + +e107::getLan(e_PLUGIN."banner/languages/".e_LANGUAGE."_banner.php"); + require_once(e_HANDLER."form_handler.php"); $rs = new form; diff --git a/e107_plugins/banner/banner_menu.php b/e107_plugins/banner/banner_menu.php index d5cf1e3ba..f0fd674da 100644 --- a/e107_plugins/banner/banner_menu.php +++ b/e107_plugins/banner/banner_menu.php @@ -3,7 +3,7 @@ + ----------------------------------------------------------------------------+ | e107 website system | -| �Steve Dunstan 2001-2002 +| �Steve Dunstan 2001-2002 | http://e107.org | jalist@e107.org | @@ -11,8 +11,8 @@ | GNU General Public License (http://gnu.org). | | $Source: /cvs_backup/e107_0.8/e107_plugins/banner/banner_menu.php,v $ -| $Revision: 1.1 $ -| $Date: 2009-07-23 16:43:03 $ +| $Revision: 1.2 $ +| $Date: 2009-09-18 22:20:39 $ | $Author: e107coders $ +----------------------------------------------------------------------------+ */ @@ -30,7 +30,7 @@ To define your own banner to use here ... 3. Save file */ - +e107::getLan(e_PLUGIN."banner/languages/".e_LANGUAGE."_menu_banner.php"); global $THEMES_DIRECTORY; if (file_exists(THEME."banner_template.php")) { diff --git a/e107_plugins/banner/e_sc.php b/e107_plugins/banner/e_sc.php deleted file mode 100644 index 711a076e4..000000000 --- a/e107_plugins/banner/e_sc.php +++ /dev/null @@ -1,59 +0,0 @@ -<?php -// $Id: e_sc.php,v 1.1 2009-07-23 16:43:03 e107coders Exp $ - -function banner_shortcode($parm) -{ - global $menu_pref; - $e107 = e107::getInstance(); - $ret = ''; - - $text = ''; - mt_srand ((double) microtime() * 1000000); - $seed = mt_rand(1,2000000000); - $time = time(); - - $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='".$e107->tp->toDB($parm)."'" : '')." - AND banner_active IN (".USERCLASS_LIST.") - ORDER BY RAND($seed) LIMIT 1"; - - if($e107->sql->db_Select('banner', 'banner_id, banner_image, banner_clickurl', $query)) - { - $row = $e107->sql->db_Fetch(); - - if(!$row['banner_image']) - { - return "<a href='".e_HTTP.'banner.php?'.$row['banner_id']."' rel='external'>no image assigned to this banner</a>"; - } - - $fileext1 = substr(strrchr($row['banner_image'], '.'), 1); - $e107->sql->db_Update('banner', 'banner_impressions=banner_impressions+1 WHERE banner_id='.(int)$row['banner_id']); - switch ($fileext1) - { - case 'swf': - return " - <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 - <param name=\"movie\" value=\"".e_IMAGE_ABS."banners/".$row['banner_image']."\">\n - <param name=\"quality\" value=\"high\">\n - <param name=\"SCALE\" value=\"noborder\">\n - <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> - </object> - "; - break; - case 'html': - case 'js': - case 'php': // Code - may 'echo' text, or may return it as a value - $file_data = file_get_contents(e_IMAGE.'banners/'.$row['banner_image']); - return $file_data; - break; - default: - $ban_ret = "<img src='".e_IMAGE_ABS.'banners/'.$row['banner_image']."' alt='".$row['banner_clickurl']."' style='border:0' />"; - break; - } - return "<a href='".e_HTTP.'banner.php?'.$row['banner_id']."' rel='external'>".$ban_ret.'</a>'; - } - else - { - return ' '; - } -} -?> \ No newline at end of file diff --git a/e107_plugins/banner/e_shortcode.php b/e107_plugins/banner/e_shortcode.php new file mode 100644 index 000000000..ef85734e0 --- /dev/null +++ b/e107_plugins/banner/e_shortcode.php @@ -0,0 +1,68 @@ +<?php +/* +* Copyright (c) e107 Inc 2009 - e107.org, Licensed under GNU GPL (http://www.gnu.org/licenses/gpl.txt) +* $Id: e_shortcode.php,v 1.1 2009-09-18 22:20:39 e107coders Exp $ +* +* Banner shortcode batch class - shortcodes available site-wide. ie. equivalent to multiple .sc files. +*/ + +class banner_shortcodes // must match the plugin's folder name. ie. [PLUGIN_FOLDER]_shortcodes +{ + function sc_banner($parm) + { + global $menu_pref; + $e107 = e107::getInstance(); + + $ret = ''; + + $text = ''; + mt_srand ((double) microtime() * 1000000); + $seed = mt_rand(1,2000000000); + $time = time(); + + $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='".$e107->tp->toDB($parm)."'" : '')." + AND banner_active IN (".USERCLASS_LIST.") + ORDER BY RAND($seed) LIMIT 1"; + + if($e107->sql->db_Select('banner', 'banner_id, banner_image, banner_clickurl', $query)) + { + $row = $e107->sql->db_Fetch(); + + if(!$row['banner_image']) + { + return "<a href='".e_HTTP.'banner.php?'.$row['banner_id']."' rel='external'>no image assigned to this banner</a>"; + } + + $fileext1 = substr(strrchr($row['banner_image'], '.'), 1); + $e107->sql->db_Update('banner', 'banner_impressions=banner_impressions+1 WHERE banner_id='.(int)$row['banner_id']); + switch ($fileext1) + { + case 'swf': + return " + <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 + <param name=\"movie\" value=\"".e_IMAGE_ABS."banners/".$row['banner_image']."\">\n + <param name=\"quality\" value=\"high\">\n + <param name=\"SCALE\" value=\"noborder\">\n + <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> + </object> + "; + break; + case 'html': + case 'js': + case 'php': // Code - may 'echo' text, or may return it as a value + $file_data = file_get_contents(e_IMAGE.'banners/'.$row['banner_image']); + return $file_data; + break; + default: + $ban_ret = "<img src='".e_IMAGE_ABS.'banners/'.$row['banner_image']."' alt='".$row['banner_clickurl']."' style='border:0' />"; + break; + } + return "<a href='".e_HTTP.'banner.php?'.$row['banner_id']."' rel='external'>".$ban_ret.'</a>'; + } + else + { + return ' '; + } + } +} +?> \ No newline at end of file diff --git a/e107_plugins/banner/languages/lan_banner.php b/e107_plugins/banner/languages/English_banner.php similarity index 92% rename from e107_plugins/banner/languages/lan_banner.php rename to e107_plugins/banner/languages/English_banner.php index 3e1ab981a..71cfcd391 100644 --- a/e107_plugins/banner/languages/lan_banner.php +++ b/e107_plugins/banner/languages/English_banner.php @@ -8,9 +8,9 @@ * * * - * $Source: /cvs_backup/e107_0.8/e107_plugins/banner/languages/lan_banner.php,v $ + * $Source: /cvs_backup/e107_0.8/e107_plugins/banner/languages/English_banner.php,v $ * $Revision: 1.1 $ - * $Date: 2009-07-23 16:43:03 $ + * $Date: 2009-09-18 22:20:39 $ * $Author: e107coders $ */ diff --git a/e107_plugins/banner/languages/English.php b/e107_plugins/banner/languages/English_menu_banner.php similarity index 95% rename from e107_plugins/banner/languages/English.php rename to e107_plugins/banner/languages/English_menu_banner.php index 079025287..ea1d661e9 100644 --- a/e107_plugins/banner/languages/English.php +++ b/e107_plugins/banner/languages/English_menu_banner.php @@ -3,9 +3,9 @@ + ----------------------------------------------------------------------------+ | e107 website system - Language File. | -| $Source: /cvs_backup/e107_0.8/e107_plugins/banner/languages/English.php,v $ +| $Source: /cvs_backup/e107_0.8/e107_plugins/banner/languages/English_menu_banner.php,v $ | $Revision: 1.1 $ -| $Date: 2009-07-23 16:43:03 $ +| $Date: 2009-09-18 22:20:39 $ | $Author: e107coders $ +----------------------------------------------------------------------------+ */